== GRASS GSoC 2016 Additional Image Segmentation Algorithms for i.segment == || Student Name: || Bo Yang |||| Organization: || [http://www.osgeo.org/ OSGeo - Open Source Geospatial Foundation] |||| Mentors: || Moritz Lennert, Markus Neteler, Markus Metz |||| Title: || Additional segmentation algorithms for [https://grass.osgeo.org/grass71/manuals/i.segment.html i.segment] |||| Repository: || GRASS 7, browse at: [https://grass.osgeo.org/grass71/manuals/i.segment.html i.segment] == 16 – 21 May week 0: Setup coding environmental, get familiar with programming manual == === What did you get done this week? === * Finished A small exercise too get more familiar with basic GRASS code Because currently i.segment only provides one algorithm, the entire layout of the module GUI is related to that one algorithm. By modifying the codes in [https://trac.osgeo.org/grass/browser/sandbox/bo/i.segment.gsoc2016/i.segment/parse_args.c parse_args.c] I added three inputs in the Required tab, then one tab per algorithm with algorithm-specific parameters. * 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 * Some discussions were made about the algorithm and literature === What do you plan on doing next week? === * Make clear understanding about the algorithm mechanism and write the pseudo codes for prototyping === Are you blocked on anything? === * Some issues happened during the compiling of the GRASS in Windows environmental. but with the help of community, the problem was later solved. == 23 - 28 May week 1: Start coding, develop pseudo code to outline the work == * Further discussion about the algorithm mechanism (about the edge effect) >>Markus: >> >>That is easy, there is no need to cut off edges.I would also not work with the number of pixels in nominator and denominator, because this number of pixels will vary for each window anyway depending on how many pixels are discarded because the spectral difference is larger than the spectral bandwidth. NULL cells are discarded anyway. Chopping off edges can be avoided for example for the very first pixel at row 0, col 0 by setting the window to those pixels east and south of the corner pixel, of course adhering to the spatial bandwidth. The window will thus be about a quarter of the size of a full window, that is not a problem. The new bandvalue is new value += weight * current value and weightsum += weight >> >>after processing all cells in the window, the new value is new value = new value / weightsum >> >>It does not matter how many valid cells are in the moving window. >> >>See also r.resamp.filter >> >>Moritz: >> >>My question would be how reliable results would be if you only one or two pixels are in the window. But I guess this is a marginal issue and we can see later if it really is a problem. >> >>Markus: >> >>This can also happen if only one or two cells are within the spectral bandwidth, all other cells will be ignored. If this is not desired, the spatial / spectral bandwidths could be adjusted. Sometimes this (small objects of only one or two cells) might be desired. * Got the access for GRASS-addons-svn and [https://trac.osgeo.org/grass/browser/sandbox/bo/i.segment.gsoc2016 sandbox] * Finished the [https://trac.osgeo.org/grass/browser/sandbox/bo/i.segment.gsoc2016/i.segment/MeanShift_pseudo_yb pseudo code] for the mean-shift algorithm * Mentors reviewed pseudo code and send the improved [https://trac.osgeo.org/grass/browser/sandbox/bo/i.segment.gsoc2016/i.segment/MeanShift_pseudo_2016_05_25_MM version]