![]() |
|
![]() ![]() ![]() |
|
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
Добрый день.
Есть задача - определить границы радужки на снимке. То есть границу зрачка с радужкой и радужки с белой частью глаза (назову ее так для простоты), далее внутренняя и внешняя границы радужки. В аттаче картинка. Что испробовано: из библиотеки OpenCV алгоритм Кэнни (Canny) выделения краев на картинке - cvCanny(). Дает различные результаты на разных снимках (зависит от резкости картинки). Но выделяет максимум внутреннюю границу. Внешнюю - никогда. Задавать входные параметры для cvCanny() исходя из какогото предварительного анализа изображения (например каким то образом определять уровень резкости) не знаю как. Далее даже если этим алгоритмом удастся выделить внутренний край, помимо него будут определны и другие края, ресницы веки, какие то фрагменты самой радужки - все это нужно отфильтровывать, опять не понятно как. Еще пытался использовать радиальные производные из центра изображения. можно считать что точка центра изображения всегда попадает в зрачок, и что максимальная производная будет на внутренней границе радужки... но тоже есть вопросы: нужно предварительно грамотно убрать блики для того чтобы на них не было ложных макс. производных. Сейчас уже в каком-то тупике нахожусь, нужны какието свежие мысли, идеи. Только пожалуйста не кидайтесь сильными математическими терминами )) Присоединённый файл ( Кол-во скачиваний: 45 ) ![]() |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
А что это за яркие точки в зрачке; это уже какая-то обработка?
Я бы попробовала так: - размытие, чтобы убрать мелкие детали (ресницы и небольшие блики) - сегментация на 3-4 уровня яркости (снимок ведь серый?) - детектор краев; можно попробовать и попроще чем Canny - любой дифференциальный фильтр Возможно, между размытием и сегментацией нужно выполнить усиление резкости (UnsharpMask). -------------------- ... |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
блики от ИК подсветки |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Т.е. на снимке они всегда есть?
Тогда, если они всегда в зрачке, то можно их попробовать использовать для поиска. Но в любом случае для начала их можно найти и убрать. Найти только их не должно составить проблемы - они очень яркие. После обнаружения их нужно, видимо, закрасить фоновым цветом. Но вообще задача нетривиальная и требует исследований. Наверняка такие исследования уже проводились, нужно только поискать. Статей в открытом доступе полно, попытай гугл или начни с вики. -------------------- ... |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
это первое о чем я подумал когда увидел снимки. но как оказалось позже их расположение зависит от настройки прибора и полагаться на них нельзя. их может быть разное количество и расположение.
перелопатил довольно много... и даже пробовал бесплатные программы, обещающие распознавание радужки... штуки 3-4 - все в ауте. Это сообщение отредактировал(а) deniska - 10.8.2011, 10:35 |
|||
|
||||
VictorTsaregorodtsev |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 28.7.2006 Репутация: 3 Всего: 8 |
deniska,
Кластерный анализ (яркостей или цветов точек) либо, если хочется чего-то покруче для анализа не просто яркостей, а текстур на изображении - двумерная HMM (скрытая марковская модель). Плюс набор эмпирик для выяснения, что же брать в качестве найденного кластера - простейшие эмпирики, например, будут на основе расчета и сравнения центров масс и дисперсий координат пикселов кластеров (кластер-радужка должна иметь центр, близкий к центру зрачка, но дисперсия кластера-радужки должна быть больше дисперсии кластера-зрачка, центры масс левого и правого кластеров для белка глаза должны быть, соответственно, слева и справа от радужки, кластера для век - сверху и снизу, соответственно). |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
кхе, кхе....
а можно объяснить както немного менее "эмпирично" выражаясь Вашими терминами. Если честно, вообще ничего не понял из поста. Что означает в Вашем понимании кластерный анализ? нуда, знаем мы что сверху и снизу МОГУТ быть веки, справа и слева белок... в общем ![]() |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 7 Всего: 183 |
Полагаю, то, что я обозвала "сегментацией" - разделение точек изображения по яркости на несколько классов. Тоже мне "даже" ![]() Не могу поверить, что в сети нет статей на соответствующие темы... только лучше английские источники искать... -------------------- ... |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
ну что есть, то есть... статьи, естественно не все))), читал, но все в них очень абстрактно описывается, и в большинстве своем из того что читал, используют фильтры для выделения краев в том числе и Кэнни. другие дифы попробую тоже. Проблема в том, что прибор, с которого бирутся снимки, могут настраивать, менять подсветку и т.д. и т.п.. есть у меня некоторая база снимков в разных условиях. и вот вроде подберешь параметры для тогоже Кэнни для нескольких снимков, начинаешь проверять по другим - фигня. Для начала мне бы зрачок выкинуть(по крайней мере это должно оказаться легче, чем определить внешнюю границу радужки), думаю это позволит разбить оставшуюся картинку на более точные "кластеры" ![]() |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
если предположить, что центр радужки там же, где и центр зрачка, то можно построить гистограмму "яркость в зависимости от удалённости", думаю, на ней работать будет проще... Это сообщение отредактировал(а) maxim1000 - 11.8.2011, 10:39 -------------------- qqq |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
почти совпадают, ну то есть рядом))) будут. тоже попробую |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
google -> iris detection
|
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
Думаете я отстал от вас? не дождетесь))
Определение внутренней границы радужки ( выделение зрачка ) на данном этапе, с точностью ПОКА достаточной сделал. В общих словах так: из центра изображения строю производные по интенсивности радиальных линий(360 штук). Беру абсолютные максимумы производных - это является основой для контура зрачка. Дальше эти точки анализируются, выкидываются ложные, если производная в нужной окрестности не найдена (например ресницы мешают), то точка достраивается геометрически аппроксимацией зрачка до окружности. теперь перехожу к самому сложному - внешней границе радужки, тн "лимб" или лимбус... |
|||
|
||||
mrgloom |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 8.6.2011 Репутация: нет Всего: нет |
![]() можно попробовать local threshold (Bernsen) и можно попробовать еще active countours http://imagejdocu.tudor.lu/doku.php?id=plu...e_contour:start |
|||
|
||||
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: нет Всего: 0 |
mrgloom,
спс, буду "шупать" |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |