В последние годы влияние технологий на нашу жизнь значительно возросло: до недавнего времени сложно было представить, что человек сможет носить у себя в кармане компактное электронное устройство, сравнимое по производительности с суперкомпьютерами двадцатого века, на которых решались сложнейшие для их эпохи задачи и проводились научные исследования. В наше время, имея такую мощность в кармане, люди не спешат исследовать вселенную или решать насущные задачи человечества.
Данные компактные устройства, - смартфоны, помимо своей мощности приобрели также и другие весьма важные для современного человека характеристики. Это, несомненно, большой экран и камера, позволяющая получать многомегапиксельные изображения окружающего мира. Благодаря камерам в смартфонах и видеокамерам на улицах города, как частным, так и государственным, стремительно возросло количество фотографий и видеоматериалов, которые, в итоге, спустя какое-то время или незамедлительно оказываются в сети Интернет.
В силу всех этих причин, а также принимая во внимание, что количество научных исследований, использующих различную фото- и видеоаппаратуру также возросло, возникает необходимость автоматической обработки подобных данных. Учёным могут потребоваться более современные механизмы для выделения на изображении всех объектов для дальнейшего их сравнения или подсчёта. Обработка может вестись в различных направлениях: из-за постоянной угрозы террористических актов, при известном изображении преступника, государству требуются производительные подходы к распознаванию подозрительных личностей на видеокамерах, например, в аэропорту, и дальнейшему отслеживанию их на видео. Обычным гражданам технологии могут предоставить новые развлечения или более удобные инструменты в случае работы с различными графическими редакторами. Из всех вышеописанных причин следует, что важность алгоритмов в области компьютерного зрения возрастает.
Из сказанного также следует, что необходимо исследовать новые подходы и совершенствовать старые в решении обработки изображений. В частности, необходимо заботиться о скорости и точности выполнения алгоритмов. При постоянно возрастающем объёме требующих проверки данных, скорость будет являться одним из ключевых факторов в выборе алгоритма.
Операция выделения контура является одним из базовых алгоритмических подходов, открывающих возможности для применения алгоритмов использующих более высокую степень абстракции. Таким образом, улучшения возможностей различных подходов к выделению контура благотворно скажется на решении многих задач компьютерного зрения.
В рамках проведённого исследования рассмотрен и реализован один из алгоритмов семейства модели активного контура. На основе него определена возможности применения генетического алгоритма к данной задаче. Применительно к задаче поиска контура определены основные понятия генетического алгоритма, а именно гены, особи, поколения. Определены операции генетического алгоритма, позволяющие получать новых особей: два вида кроссовера, отбор турниром, мутация. В том числе описана функция приспособленности. На основе этих знаний описан и реализован генетический алгоритма поиска контура на изображении.
В связи с этим можно выделить следующие направления дальнейшей работы:
1. Реализовать адаптивный метод установки значений вероятностей кроссовера и мутации (данный подход описан в работе Srinivas et al. [14]);
2. Исследовать возможность модификации данного алгоритма для определения контуров нескольких объектов на одном изображении;
3. Исследовать различные виды предобработки изображения, позволяющие избежать наличия точек локальной оптимальности.
[1] Michael Kass, Andrew Witkin, and Demetri Terzopoulos. Snakes: Active contour models. International Journal of Computer Vision, 1(4):321, January 1988.
[2] Donna J Williams and Mubarak Shah. A fast algorithm for active contours and curvature estimation. CVGIP: Image understanding, 55(1):14—26, 1992.
[3] John H Holland. Adaptation in natural and artificial systems: an introductory analysis with applications to biology, control, and artificial intelligence. U Michigan Press, 1975.
[4] Jean-Jacques Rousselle, Nicole Vincent, and Nicolas Verbeke. Genetic algorithm to set active contour. In Computer Analysis of Images and Patterns. Springer, January 2003.
[5] A Mishra, PK Dutta, and MK Ghosh. A ga based approach for boundary detection of left ventricle with echocardiographic image sequences. Image and vision Computing, 21(11) :967-976, 2003.
[6] Kyeong-Jun Mun, Hyeon Tae Kang, Hwa-Seok Lee, Yoo-Sool Yoon, Chang- Moon Lee, and June Ho Park. Active contour model based object contour detection using genetic algorithm with wavelet based image preprocessing. International Journal of Control Automation and Systems, 2:100-106, 2004.
[7] L Ballerini. Genetic snakes: Active contour models by genetic algorithms. Genetic and evolutionary computation in image processing and computer vision, EURASIP book series on SP & C, pages 177-194, 2007.
[8] Kenneth A De Jong. Evolutionary computation: a unified approach. MIT press, pages 64-65, 2006.
[9] Shengxiang Yang. Genetic algorithms with elitism-based immigrants for changing optimization problems. In Applications of Evolutionary Computing, pages 627-636. Springer, 2007.
[10] Emgu cv is a cross platform .net wrapper to the opencv image processing library, http: / / www. emgu. сот/wiki/index. php/Main_Page. Accessed: 2016-05-12.
[11] Morelinq extensions to linq to objects, https://morelinq.github.io/. Accessed: 2016-05-12.
[12] D. Martin, C. Fowlkes, D. Tai, and J. Malik. A database of human segmented natural images and its application to evaluating segmentation algorithms and measuring ecological statistics. In Proc. 8th Int’l Conf. Computer Vision, volume 2, pages 416-423, July 2001.
[13] Vaibhav E Waghmare. Leaf image database.
[14] Mandavilli Srinivas and Lalit M Patnaik. Adaptive probabilities of crossover and mutation in genetic algorithms. Systems, Man and Cybernetics, IEEE Transactions on, 24(4):656-667, 1994.