Обнаружение признаков в шумных изображениях - PullRequest
3 голосов
/ 22 февраля 2012

Я построил систему обработки изображений с веб-камерой и функцией сопоставления, которая позволяет перемещать камеру;Я могу отслеживать движение камеры.Я делаю что-то похожее на здесь , за исключением того, что в качестве входных данных используются кадры веб-камеры.

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

Кто-нибудь знает хорошее решение для этого?Какие еще методы используются для поиска и сопоставления объектов?

Вот два примера изображений с очень низкими характеристиками:

Frame 1

Frame 2

1 Ответ

3 голосов
/ 24 февраля 2012

Я думаю, фазовая корреляция будет вашим лучшим выбором здесь. Он предназначен для того, чтобы сообщать вам фазовый сдвиг (т.е. перевод) между двумя изображениями. Он намного более устойчив (но не защищен) от шума, чем обнаружение признаков, потому что работает в частотном пространстве; тогда как детекторы функций работают пространственно. Еще одним преимуществом является то, что он очень быстрый по сравнению с методами обнаружения признаков. У меня есть доступная реализация в стволе OpenCV, которая с точностью до субпикселя расположена здесь .

Тем не менее, ваши изображения в значительной степени "безликие", за исключением складки посередине, поэтому даже фазовая корреляция может иметь некоторые проблемы с этим. Думайте об этом как о попытке обнаружить перевод в снежной бури. Если все, что вы видите, - белое, вы не можете сказать, что вы вообще перевели, поэтому термин whiteout . В вашем случае алгоритм может пострадать от "greenout":)

Можете ли вы отрегулировать настройки камеры для лучшей работы в условиях низкой освещенности. Вы полностью открыли радужную оболочку? Можете ли вы жить с более низкой частотой кадров? Установка более длительного времени экспозиции позволит камере собирать больше света, что даст вам больше возможностей за счет добавления размытия в движении. Или, если в качестве среды по умолчанию используется слабое освещение, вы, вероятно, захотите что-то для этого, например, ИК-камеру, но это может быть дорого. Кроме этого, ваш друг - большой объектив и длинные выдержки:)

Выравнивание гистограммы может представлять интерес для улучшения контрастности изображения. Но иногда это может только усилить шум. OpenCV имеет глобальную функцию выравнивания гистограммы, которая называется equalizeHist . Для более локализованной реализации вам нужно взглянуть на Contrast Limited Adaptive Histogram Equalization или CLAHE для краткости. Здесь хорошая статья об этом. На этой странице есть несколько хороших примеров и некоторый код.

...