2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 
Сообщение03.05.2006, 18:28 


25/01/06
102
Цитата:

А что делать, если картинка цветная?


Все то же самое - надо получить картинку с выделенными и вычищенными границами. Это делается независимо по каждому каналу, затем или усредняется или берется максимум (как в фотошопе). Цель - иметь изображение границ в 256 серых тонах или, что еще лучше, бинарное (черно белое) изображение границ.

ЖВМ и МФ, вероятно, Журнал Вычислтельной математики и мат физики? Подозреваю, есть места для более продуктивного поиска алгоритмов сегментации, это во первых. Во вторых, речь о сегментации движения вообще здесь не идет. В качестве альтернативы, сделайте поиск в гугле по color segmentation или image segmentation. Еще стоит поиcкать по algorithms of optical character recognition. Почти в каждом забугорном университете есть кафедра занятая подобными вещами, профессора там содержат обширные веб страницы со своими лекциями и лабами. Что то полезное наверняка всплывет уже с первой страницы гугловских результатов.

Вот несколько таких ссылок:

http://www.cfar.umd.edu/~kanungo/course/course1.html
http://jocr.sourceforge.net/ - отсюда даже код кое какой можно наверное позаимствовать
http://www.ccs.neu.edu/home/feneric/charrec.html

ну и т.д.

А вообще было бы интересно посмотреть на Ваши картинки живьем. Eсли это возможно, не выложите парочку на zalil.ru в оригинальном формате и разрешении?

 Профиль  
                  
 
 
Сообщение03.05.2006, 22:03 
Аватара пользователя


24/10/05
400
Здесь одна из картинок
http://slil.ru/22732571

 Профиль  
                  
 
 
Сообщение04.05.2006, 05:05 


25/01/06
102
Спасибо, с живой картинкой проблема стала гораздо понятнее.

Сразу бросилось в глаза, что картинка получена с видеокамеры и потому имеет интерлейс. От него лучше бы избавиться. В ФШ для этого есть специальный фильтр. Если его лень изучать и имплементировать, то придется работать на ужатых вдвое картинках. Но это даже неплохо, т.к. ускорит алгоритм.

Вот что я делал с картинкой. В Фотошопе на оригинальной картинке (после деинтерлейса) я запустил медианный фильтр с радиусом 3 (параметр метода, подбирается вручную), затем запустил Edge фильтр. Затем сделал инверсию (границы стали белыми) и с помощью curves отсек все пикселы темнее 0.6 (еще один параметр, тоже ручной подбор). Все что получилось спас в grayscale файл. Эти процедуры, понятное дело, Вам придется запрограммировать, но дело это нехитрое.

Чтоб сократить поиск по всей картинке, я, во первых, уменьшил ее разрешение вдвое (важно делать это гладко, а не простым выкидывание строк или столбцов). Во вторых, сделал маску для сокращения поиска следующим способом. Сначала сосчитал суммы пикселей по строкам и столбцам. Потом оставил только строки (и, соотвественно, столбцы) в которых сумма была больше среднего взятого с некоторым коэффициентом (у меня получилось 0.3, это параметр метода, подбирать вручную). Таким образом удалось отсечь примерно половину картинки. Подозреваю что этот результат можно легко улучшить (оставляю место для Вашего творчества :-) )

Затем я заготовил образцы цифр от 0 до 9 – напечатал в фотошопе жирным шрифтом, примерно нужного размера, и построил их границы. Спас их все в отдельные файлы.

После всего этого по оставшимся пикселам я начал перебор и поиск наилучшей корреляции с образцами. Найденные цифры из картинки удалялись.

Оставшиеся длинные горизонтальные линии сильно коррелировали с семеркой. Поэтому мой совет с помощью преобразования Хафа (Hough) от них избавиться теперь мне кажется вполне оправданным. Цифры уверенно находились даже при одной только вариации масштаба. Не нашлась только цифра 4 – для нее всеж был нужен поворот.

Программа была на Python 2.4 с использованием PIL. Программирование заняло примерно два часа, включая рисование картинок и т.п. и т.д. Работала она не быстро даже на уменьшенной картинке, но все цифры кроме 4 нашла. К сожалению, False positives на семерку нашлись тоже в избытке, но по их поводу применяйте уже упомнятного Хафа.

Успехов.

 Профиль  
                  
 
 
Сообщение04.05.2006, 20:20 
Аватара пользователя


24/10/05
400
что такое интерлейс?
И такой вопрос. В русскоязычном вариатне есть метериалы по ЖВМ или что-то подобное?

 Профиль  
                  
 
 
Сообщение05.05.2006, 08:22 


25/01/06
102
Интерлейс это когда камера записывает (или показывает) четные строки картинки в один квант времени, а нечетные в следующий. Визуально это приводит в тому, что на статической картинке на краях объекта видна "пила" - за промежуток между двумя квантами строки на движущихся объектах слега сместились. Хуже всего, когда камера панорамирует - тогда на всей картинке четные строки смещены относительно нечетных.

Про ЖВМ, к сожалению, сказать ничего не могу - по географическим причинам.

 Профиль  
                  
 
 
Сообщение27.06.2006, 14:14 
Аватара пользователя


24/10/05
400
PAV писал(а):
Вопрос такой - в постановке задачи требуется ли распознать цифры или их нужно только найти?

объект распознания нужно сначала найти, а потом распознать.
Я разделил задачу на 2 части. первая часть выделить образ, вторая часть опознавание образа.[/list]

 Профиль  
                  
 
 
Сообщение09.07.2006, 11:25 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
antoshka1303 писал(а):
объект распознания нужно сначала найти, а потом распознать.
Я разделил задачу на 2 части. первая часть выделить образ, вторая часть опознавание образа.


Это в общем правильно, но как правило критерий для того, является ли найденный кусок искомой картинкой, полезно совмещать с распознаванием. Правда, в Ваших примерах картинки не слишком зашумленные (по крайней мере, искомый образ легко "видится") и это возможно не понадобится.

Но вообще-то следует сделать блок, который принимает на вход кусок картинки и пытается прочесть на нем цифры. Он должен выдавать ответ и степень уверенности в этом ответе.

Первый же блок должен по каким-то более простым критериям находит эти самые куски. Они подаются на второй блок.

Суть в том, что у Вас может оказаться несколько гипотез по поводу расположения цифр и хорошо бы пытаться распознавать на каждой, если это будет приемлемо по времени. А для принятия окончательного решения пользуйтесь степенями уверенности, которые должен выдавать распознаватель.

 Профиль  
                  
 
 
Сообщение11.07.2006, 12:12 
Аватара пользователя


24/10/05
400
Вообще я планирую сделать как минимум 2 глобальные нейронные сети. Одна для выделения образа на картинке, вторая - для распознавания. Пока разработки идут неронной сети по выделению образа. Сначала избавляюсь от шума, выделяю границы, провожу морфологическое преобразование и иущу сточку(столбец)

 Профиль  
                  
 
 
Сообщение11.07.2006, 12:34 
Экс-модератор
Аватара пользователя


23/12/05
12063
antoshka1303 писал(а):
что такое интерлейс?

Есть и русский термин:
interlace - чересстрочная развертка

 Профиль  
                  
 
 
Сообщение11.07.2006, 21:36 


25/01/06
102
м.б. тогда уж "череЗстрочная"?

 Профиль  
                  
 
 
Сообщение11.07.2006, 21:48 
Заслуженный участник
Аватара пользователя


23/07/05
17976
Москва
Igor Borovikov писал(а):
м.б. тогда уж "череЗстрочная"?


В орфографическом словаре - череСстрочная.

 Профиль  
                  
 
 
Сообщение11.07.2006, 22:03 


25/01/06
102
понятно, спасибо

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Rasool


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group