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
12047
antoshka1303 писал(а):
что такое интерлейс?

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

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


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

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


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


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

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


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

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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