wiki:GSoC/2016/Additional_segmentation_algorithms/weekly_report

Version 3 (modified by hao2309, 8 years ago) ( diff )

--

GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment

{| {{Prettytable}} | Student Name: | Bo Yang

| Organization: | OSGeo - Open Source Geospatial Foundation

| Mentors: | Moritz Lennert, Markus Neteler, Markus Metz

| Title: | Additional segmentation algorithms for i.segment

| Repository: | GRASS 7, browse at: i.segment |}

16 – 21 May week 0: Setup coding environmental, get familiar with programming manual

  • A small exercise too get more familiar with basic GRASS code

As as part of bonding period, and as you are now able to compile GRASS, I would like to propose a small exercise which is already a first step in the direction of your project and which should allow you to become a bit more familiar with the code and with coding practices: As currently i.segment only provides one algorithm, the entire layout of the module GUI is related to that one algorithm. In the attached screenshot you see the current GUI. My idea would be to have the three mandatory inputs in the Required tab, then one tab per algorithm with algorithm-specific parameters, then the Optional tab. Otherwise, I'm afraid that the current'Settings' tab becomes overcrowded.

The code that defines options and which 'guisection' they are in is in parse_args.c [1]. For more info about how the command parser and its options work, see [2], but the existing examples in the code might already be enough.

You can add new parameters there without them being used in the code, yet, so don't hesitate, at this stage, to add one phony parameter per new algorithm, just to get the relevant tabs.

Once you've done this, compile just the i.segment module (by running make in the directory) and see if the GUI corresponds to what you aim for. Then, send me a diff of the code.

  • Finish the exercise to adding more parameters to the i.segment

I think I've finished the exercise. For the time being I applied the following changes to the module GUI:

  1. I kept "required" tab and add the selection of algorithms. Because I think for all of the three algorithms the input data and output location are required, so this tab now is designed for the inputs and outputs for all three algorithms
  2. The "setting" tab has been changed to the setting of "region growth" since previously it only provided the setting of that algorithm.
  3. Two Tabs of "shift_mean" and "watershed" were added to input the setting of each algorithm. I just give some preliminary input parameters for them, when we start coding I will give more >substantial parameters required in the algorithm.

The user are supposed to give the input, output, and select which algorithm are utilized. Then define settings of that algorithm in the corresponding tab. The option tab are supposed to be additional settings. Please see attached pics for new GUI and advise if you think this setting logistic works.

  • Review some literature for mean-shift algorithm
  1. Deng, C., Li, S., Bian, F., & Yang, Y. (2015). Remote Sensing Image Segmentation Based on Mean, (1999), 179–185.
  2. Michel, J., Youssefi, D., & Grizonnet, M. (2015). Stable mean-shift algorithm and its application to the segmentation of arbitrarily large remote sensing images. IEEE Transactions on Geoscience and Remote Sensing, 53(2), 952–964. http://doi.org/10.1109/TGRS.2014.2330857
  3. Zhang, Q., Liu, C., Zhang, G., & Zhou, A. (2014). Adaptive image segmentation by using mean-shift and evolutionary optimisation. IET Image Processing, 8(6), 327–333. http://doi.org/10.1049/iet-ipr.2013.0195
  4. Zhou, J.-X., Li, Z.-W., & Fan, C. (2015). Improved fast mean shift algorithm for remote sensing image segmentation. IET Image Processing, 9(5), 389–394. http://doi.org/10.1049/iet-ipr.2014.0393

23 - 28 May week 1: Start coding, develop pseudo code to outline the work

Note: See TracWiki for help on using the wiki.