Обнаружением объекта с помощью аппаратуры разведки называется процесс принятия решения о наличии или отсутствии объекта в данной области пространства в результате приема и обработки сигналов.
Прием сигналов всегда происходит на фоне помех того или иного вида (собственные шумы приемника, радиошумы космического пространства, отражение от гидрометеоров, земной поверхности и др.).
Наличие помех приводит к искажению передаваемых сигналов и к возникновению ошибок в оценке обстановки. При обнаружении возможны четыре ситуации.
Во-первых, если объект действительно имеется и сигналы поступают при наличии помех, то по данным разведки наблюдателем могут быть приняты два решения: первое - объект есть и второе - объекта нет. В первом случае (т.е. принятие решения о том, что объект есть при наличии объекта в действительности) называется правильным обнаружением объекта. Во втором случае (принятие решения об отсутствии объекта в то время, как объект есть) - пропуском объекта. Возможность неопределенного ответа - «неизвестно, есть ли объект или его нет» - исключается.
Во-вторых, если объекта нет, то при наличии помех также возможны два решения: объект есть и объекта нет. В этом случае принятие решения о нали чий объекта (когда его в действительности нет) называется ложной тревогой, а решение об отсутствии объекта - правильным необнаружением.
Пропуск цели и ложная тревога являются ошибками при обнаружении объектов. Так как в общем случае сигналы и помехи являются случайными функциями времени, то принятие того или иного решения носит случайный характер. Поэтому возможность возникновения перечисленных ситуаций принято характеризовать соответствующими вероятностями: вероятностью правильного обнаружения W по> пропуска Wпр, ложной тревоги Wлт и правильного необнаружения W пн.
Правильное обнаружение и пропуск объекта (при наличии объекта в действительности) образуют полную группу несовместимых событий, поэтому
Точно так же ложная тревога и правильное необнаружение образуют полную группу несовместимых событий при отсутствии объекта
W ЛT +W ПH =l (2)
Рассмотренные четыре вероятности являются условными, т.к. они характеризуют события, происходящие при условии наличия или отсутствия объекта. В реальных условиях работы станции разведки мы не можем заранее знать, имеются ли объекты в просматриваемой области пространства или их там нет.
Обозначим вероятность наличия объекта в интересующий нас области пространства через W(ц), а вероятность отсутствия объекта через W(o).
Четыре указанных события также составляют полную группу несовместимых событий, поэтому
W(ц).Wпо+W(ц)Wпр+W(o)Wлт+W(o)W ПН =l (3)
где: W(ц).Wпо - безусловная вероятность правильного обнаружения,
W(ц)Wпр - безусловная вероятность пропуска цели,
W(o)Wлт - безусловная вероятность ложной тревоги,
W(o)W ПН - безусловная вероятность правильного необнаружения. Оптимальным устройством обнаружения будет такое устройство, с помощью которого может быть достигнуто лучшее (по сравнению с другими) значение выбранного критерия при прочих равных условиях. Наиболее употребляемыми являются три критерия: критерий идеального наблюдателя, критерий Неймана-Пирсона, критерий последовательного анализа.
В соответствии с критерием идеального наблюдателя оптимальное устройство обнаружения должно обеспечивать минимум суммарной безусловной вероятности ошибок обнаружения, т.е.
Wош=W(ц).Wnp+W(o)Wлт -»min (4)
Критерий идеального наблюдателя применяется для систем радиосвязи, когда вероятности W(ц) и W(o) известны априори.
Относительная частота появления ошибок определяется априорными вероятностями W(ц) и W(o) соответственно. Поэтому средняя вероятность обшей (суммарной) ошибки равна
Wош =W(ц) Wпр+ W(o)Wлт, (5)
а вероятность правильного обнаружения сигнала равна
В соответствии с критерием Неймана-Пирсона, оптимальное устройство характеризуется максимумом разности
Wпо*Wлт при Wлт <=(Wлт)доп (6)
Следовательно, оптимальный характер критерия Неймана-Пирсона состоит в том, что он максимизирует вероятность правильного обнаружения при фиксированной вероятности ложной тревоги.
В приемном устройстве, с помощью которого производится обнаружение сигналов, осуществляется определение апостериорных вероятностей различных сообщений (например, сообщение - есть объект или его нет) и указание в качестве решения на то сообщение, вероятность которого больше остальных. Основными характеристиками устройства, используемыми для обнаружения сигналов являются рабочие характеристики приемника.
Рабочая характеристика приемника (обнаружителя) представляет зависимость Wпо от отношения сигнал/шум на входе обнаружителя (q) для заданного значения Wлт ■
На рис. 1 представлены соответствующие зависимости для обнаружителя, описываемого соотношением
и случая узкополосного импульсного сигнала. Таким образом, рассчитав соотношение сигнал/шум в точке приема и зная Wлт , можно определить Wпо.
Рисунок 1 Зависимость Wпo от отношения сигнал/шум
Здравствуйте, уважаемые хабрачитатели и хабракритики. Этот пост я хотел бы посвятить такой актуальной на сегодняшний день теме, как обнаружение объектов на изображениях.
В качестве одного из алгоритмов такого обнаружения рассмотрим выбор порога быстрым и эффективным методом Оцу
.
Введение
Итак, начнем по порядку. Вообще, задача обнаружения объектов заключается в установлении наличия на изображении объекта, обладающего некоторыми определенными характеристиками.Такой характеристикой может быть, например, яркость. Одним из наиболее простых и естественных способов обнаружения объекта (или объектов) является выбор порога по яркости, или пороговая классификация (thresholding). Смысл такого порога заключается в том, чтобы разделить изображение на светлый объект (foreground) и темный фон (background). Т.е. объект - это совокупность тех пикселей, яркость которых превышает порог (I > T ), а фон - совокупность остальных пикселей, яркость которых ниже порога (I < T ).
Таким образом, ключевой параметр - это порог T . Как его выбирать?
Существуют десятки методов выбор порога. Быстрым и эффективным методом является метод, придуманный японским ученым Нобуюки Оцу в 1979 году. О нем то и пойдет речь далее.
Метод Оцу
Пусть имеется 8-битное изображение, для которого требуется вычислить порог T . В случае 24-битной картинки, ее легко перегнать в 8-битную с помощью приведения к серому (grayscale):I = 0.2125 R + 0.7154 G + 0.0721 B
Метод Оцу (Otsu"s Method) использует гистограмму изображения для расчета порога. Напомню, что гистограмма - это набор бинов, каждый из которых характеризует количество попаданий в него элементов выборки. В нашем случае выборка - это пиксели различной яркости, которая может принимать целые значения от 0 до 255.
Пример изображения с объектом:
Гистограмма для такого изображения:
Из гистограммы человек легко видит, что имеется два четко разделяющихся класса. Суть метода Оцу заключается в том, чтобы выставить порог между классами таким образом, чтобы каждый их них был как можно более «плотным». Если выражаться математическим языком, то это сводится к минимизации внутриклассовой дисперсии, которая определяется как взвешенная сумма дисперсий двух классов:
Здесь w 1 и w 2 - вероятности первого и второго классов соответственно.
В своей работе Оцу показывает, что минимизация внутриклассовой дисперсии эквивалента максимизации меж
классовой дисперсии, которая равна:
В этой формуле a 1 и a 2 - средние арифметические значения для каждого из классов.
Особенность этой формулы заключается в том, что w 1 (t + 1), w 2 (t + 1), a 1 (t + 1), a 2 (t + 1) легко выражаются через предыдущие значения w 1 (t ), w 2 (t ), a 1 (t ), a 2 (t ) (t - текущий порог). Эта особенность позволила разработать быстрый алгоритм:
- Вычисляем гистограмму (один проход через массив пикселей). Дальше нужна только гистограмма; проходов по всему изображению больше не требуется.
- Начиная с порога t = 1, проходим через всю гистограмму, на каждом шаге пересчитывая дисперсию σ b (t ). Если на каком-то из шагов дисперсия оказалась больше максимума, то обновляем дисперсию и T = t .
- Искомый порог равен T .
Вот такой результат дает реализация вышеописанного алгоритма:
Расчитанный порог:
Реальный пример
Хотелось бы также кроме искусственно сгенерированного примера показать и реальноеиспользование метода.
В моей текущей дипломной работе требуется локализация штрих-кода на изображении:
Перед тем как использовать метод Оцу, нужно сделать предобработку, чтобы как-то учесть особенности структуры одномерного штрих-кода. Если ее не сделать, то метод просто-напросто ничего не даст. Особенность же структуры штрих-кода состоит в том, что он состоит из вертикальных полос, и поэтому имеет большие горизонтальные производные и маленькие вертикальные. Поэтому, если взять изображение как разницу горизонтальной и вертикальной производной, а дальше применить усредняющий фильтр, то получится вот что:
Неплохо, да? Образ штрих-кода четко проглядывается на изображении и выделяется значительно более высокой яркостью по сравнению с окружающими предметами. Вот теперь можно смело применять метод Оцу:
В результате получили правильно локализованный штрих-код.
Реализация на C++
Ну, как я и обещал, реализация расчета порога методом Оцу на языке C++ с комментариями:* This source code was highlighted with Source Code Highlighter .
- typedef unsigned char imageInt;
- // Определение порога методом Оцу
- int otsuThreshold(imageInt *image, int size)
- // Проверки на NULL и проч. опустим, чтобы сконцетрироваться
- // на работе метода
- // Посчитаем минимальную и максимальную яркость всех пикселей
- int min = image;
- int max = image;
- for (int i = 1; i < size; i++)
- int value = image[i];
- if (value < min)
- min = value ;
- if (value > max)
- max = value ;
- // Гистограмма будет ограничена снизу и сверху значениями min и max,
- // поэтому нет смысла создавать гистограмму размером 256 бинов
- int histSize = max - min + 1;
- int * hist = new int ;
- // Заполним гистограмму нулями
- for (int t = 0; t < histSize; t++)
- hist[t] = 0;
- // И вычислим высоту бинов
- for (int i = 0; i < size; i++)
- hist - min]++;
- // Введем два вспомогательных числа:
- int m = 0; // m - сумма высот всех бинов, домноженных на положение их середины
- int n = 0; // n - сумма высот всех бинов
- for (int t = 0; t <= max - min; t++)
- m += t * hist[t];
- n += hist[t];
- float maxSigma = -1; // Максимальное значение межклассовой дисперсии
- int threshold = 0; // Порог, соответствующий maxSigma
- int alpha1 = 0; // Сумма высот всех бинов для класса 1
- int beta1 = 0; // Сумма высот всех бинов для класса 1, домноженных на положение их середины
- // Переменная alpha2 не нужна, т.к. она равна m - alpha1
- // Переменная beta2 не нужна, т.к. она равна n - alpha1
- // t пробегается по всем возможным значениям порога
- for (int t = 0; t < max - min; t++)
- alpha1 += t * hist[t];
- beta1 += hist[t];
- // Считаем вероятность класса 1.
- float w1 = (float )beta1 / n;
- // Нетрудно догадаться, что w2 тоже не нужна, т.к. она равна 1 - w1
- // a = a1 - a2, где a1, a2 - средние арифметические для классов 1 и 2
- float a = (float )alpha1 / beta1 - (float )(m - alpha1) / (n - beta1);
- // Наконец, считаем sigma
- float sigma = w1 * (1 - w1) * a * a;
- // Если sigma больше текущей максимальной, то обновляем maxSigma и порог
- if (sigma > maxSigma)
- maxSigma = sigma;
- threshold = t;
- // Не забудем, что порог отсчитывался от min, а не от нуля
- threshold += min;
- // Все, порог посчитан, возвращаем его наверх:)
- return threshold;
Заключение
Итак, мы рассмотрели применение метода Оцу для обнаружения объектов на изображениях. Достоинствами этого метода являются:- Простота реализации.
- Метод хорошо адаптируется к различного рода изображения, выбирая наиболее оптимальный порог.
- Быстрое время выполнения. Требуется O (N ) операций, где N - количество пикселей в изображении.
- Метод не имеет никаких параметров, просто берете и применяете его. В MatLab это функция graythresh() без аргументов (Почему я привел пример именно MatLab? Просто этот инструмент - стандарт де-факто для обработки изображений).
- Сама по себе пороговая бинаризация чувствительна к неравномерной яркости изображения. Решением такой проблемы может быть введение локальных порогов, вместо одного глобального.
Источники
- Otsu, N., «A Threshold Selection Method from Gray-Level Histograms,» IEEE Transactions on Systems, Man, and Cybernetics, Vol. 9, No. 1, 1979, pp. 62-66.
Вероятность обнаружения объектов простой геометрической формы на однородном фоне в присутствии случайных шумов рассматривалась в гл. 4. Выводы, сделанные на основе этого рассмотрения, таковы, что визуальная система работает, как бы вычисляя отношение сигнала к шуму и сравнивая его с пороговым значением отношения сигнала к шуму как критерием важности полученного сигнала. Имеется значительное количество данных, подтверждающих эту теорию в различных условиях наблюдения. В условиях ограничения видимости квантовыми шумами или контрастом теория подтверждается данными Блэкуэлла , а при наличии аддитивных шумов - данными Кольтмана и Андерсона , Шаде , а также Розелла и Вильсона , проведенные с реальными объектами в натурных условиях, показали, что процент обнаруживаемых объектов действительно возрастает с увеличением контраста. Бернштейн , например, установил, что изображения на экране электронно-лучевой трубки автомашин и людей должны иметь контраст CJL (LT - LB)/L в, равный 90%, чтобы обеспечить максимально возможную вероятность различения.
Кроме того, Бернштейн установил, что разрешение влияет на вероятность обнаружения только в той мере, в какой оно изменяет отношение сигнала к шуму или контраст объекта. Однако Колюччио и др. }