Jump to content
Compvision.ru

Recommended Posts

Привет! Хочу поделится с Вами результатами своей работы по сегментации изображений. Исходные фотографии взяты из статей, стереоизображения произвольные из интернета. За 9 месяцев в графическом редакторе Лубок проведены следующие изменения:

1) Преобразование к палитре цветов. Количество цветов от 2 до 32.  Преобразования веду методом медианного среза, преобразую изображение к 256 цветам, затем методом кластеризации 256 цветов привожу к заданному количеству цветов. Подобные преобразования есть в графическом редакторе GIMP и Color quantizer . Gimp выполняет преобразование изображения 24 МП в среднем более 1 минуты, но качество преобразования мне не нравится. Изображение приводится к серым цветам. Более качественное преобразование за счет большого количества ручных настроек выполняет  Color quantizer , но время выполнения превышает 15 минут. Наше преобразование по качеству находится между GIMP и Color quantizer и выполняется 0,4 секунды.

2) На основе палитры цветов выполнена сегментация, которую я назвал сегментация медианного среза вначале выполняется преобразование к палитре цветов, а затем сегментация изображения.

3) После сегментации изображения получаю очень большое количество мелких сегментов (на 24 МП фотографии до 2 миллионов сегментов). В Каждом мелком сегменте находятся ближайшие соседи и работает алгоритм присоединения мелких сегментов к более крупным. В программе задается минимальная площадь сегмента от 1 до 500 пикселей. Это позволяет резко сократить количество сегментов. Время сегментации и сокращения количества сегментов для 24 МП фотографии всего менее 3 сек!!!

4) Доработана программа векторизации растровых изображений. В начале мы получаем векторный файл методом "хромого" жука (более подробно об этом методе я напишу статью на хабре), в котором углы между векторами кратны 90 градусов. Описание такого файла получается большим. Для сокращения векторного описания необходимо применять аппроксимацию полученного контура. Аппроксимацию я выполняю ломанной линией. Для дизайнерских работ аппроксимацию необходимо выполнять кривыми Безье, тогда векторное изображение выглядит более эстетично. Но для компьютерного зрения ломанная линия более предпочтительна, потому что проще производить распознавание объектов. После аппроксимации я формирую файл *.svg, который можно просмотреть любым браузером или векторным редактором.

5) Если производить аппроксимацию в чистом виде, каждого сегмента, то между границами сегментов появляются разрывы, особенно при грубой сегментации. Т.к. сегменты аппроксимируются по разному в зависимости от начала сегмента. В моей программе выполняется стыковка границ сегментов, если этот сегмент уже аппроксимирован, то следующий сегмент берет в качестве описания границу ранее описанного сегмента. Этот метод работает, только для 4-х связной сегментации медианного среза

6) Обработка больших файлов до 8000 х 8000 пикселей. Для обработки больших файлов очень хорошее предложение дал smorodov, делать обработку не каждого пикселя, а через пиксель и строку. В этом случае время выполнения можно сократить в 4 раза. Но мы этого пока не сделали. 

Пример 1:

8.jpg

Результат в векторе:

8.svg

Сегментация ректифицированных стереоизображений:

img1.jpg.ce2eac2373b48fa7b2283112085dd44e.jpg

исходное изображение

img1-2.PNG.da0d9cd5bf547380da0d5aafbedc4e07.PNG

сегментация 2 цвета. Минимальный размер сегмента 50

img1-4.PNG.acb49fad968a56270642155adb2104f9.PNG

сегментация 4 цвета. Минимальный размер сегмента 50

img1-8.PNG.0521d5df18e4e85d7650a54a81fec948.PNG

сегментация 8 цветов. Минимальный размер сегмента 50

img1-32.PNG.65297a8b88d6065800d7a32deb5e552e.PNG

сегментация 32 цвета. Минимальный размер сегмента 50

Полученные результаты позволяют получать привязки к сегментам, узнать расстояние до объектов. Время обработки до 65 мс (это одним ядром)- это позволяет производить обработку в реальном масштабе времени  30 кадров в секунду.

Пример, из статьи https://habrahabr.ru/company/intel/blog/266347/ :

moneta.jpg.7f59c322f95be6915b9bea209b63d3ea.jpg

исходное изображение

moneta1.jpg.ef915602f024dd859d47cd7bb3907d1e.jpg

Изображение после сегментации алгоритмом WaterShed полученное в статье

moneta6.PNG.f42c04264f93ea50101704a7447e5957.PNG

результат полученный в графическом редакторе Лубок. 4-х связная сегментация (6 цветов, мин размер сегмента 500)

В полученном мной результате монеты отделены от фона, многие монеты разделены друг от друга.

 

  • Like 1

Share this post


Link to post
Share on other sites

Занятно. Давай я тебе свои картинки вышлю. Может чем-то сможешь помочь? Еще и заплачу серьезно.

Share this post


Link to post
Share on other sites

Картинки по этой теме?

 

Share this post


Link to post
Share on other sites

Да, по этой. Вот уже 3 месяц пошел. Всё никак...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×