Вероятность обнаружения объекта несколькими пунктами наблюдения. Обнаружение объектов методом оцу. Рекомендованный список диссертаций

Обнаружением объекта с помощью аппаратуры разведки называется процесс принятия решения о наличии или отсутствии объекта в данной области пространства в результате приема и обработки сигналов.

Прием сигналов всегда происходит на фоне помех того или иного вида (собственные шумы приемника, радиошумы космического пространства, отражение от гидрометеоров, земной поверхности и др.).

Наличие помех приводит к искажению передаваемых сигналов и к возникновению ошибок в оценке обстановки. При обнаружении возможны четыре ситуации.

Во-первых, если объект действительно имеется и сигналы поступают при наличии помех, то по данным разведки наблюдателем могут быть приняты два решения: первое - объект есть и второе - объекта нет. В первом случае (т.е. принятие решения о том, что объект есть при наличии объекта в действительности) называется правильным обнаружением объекта. Во втором случае (принятие решения об отсутствии объекта в то время, как объект есть) - пропуском объекта. Возможность неопределенного ответа - «неизвестно, есть ли объект или его нет» - исключается.

Во-вторых, если объекта нет, то при наличии помех также возможны два решения: объект есть и объекта нет. В этом случае принятие решения о нали чий объекта (когда его в действительности нет) называется ложной тревогой, а решение об отсутствии объекта - правильным необнаружением.

Пропуск цели и ложная тревога являются ошибками при обнаружении объектов. Так как в общем случае сигналы и помехи являются случайными функциями времени, то принятие того или иного решения носит случайный характер. Поэтому возможность возникновения перечисленных ситуаций принято характеризовать соответствующими вероятностями: вероятностью правильного обнаружения 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 - текущий порог). Эта особенность позволила разработать быстрый алгоритм:

  1. Вычисляем гистограмму (один проход через массив пикселей). Дальше нужна только гистограмма; проходов по всему изображению больше не требуется.
  2. Начиная с порога t = 1, проходим через всю гистограмму, на каждом шаге пересчитывая дисперсию σ b (t ). Если на каком-то из шагов дисперсия оказалась больше максимума, то обновляем дисперсию и T = t .
  3. Искомый порог равен T .
Естественно, это лишь общее описание алгоритма. В точной реализации можно сделать массу оптимизаций. Например, проход через гистограмму можно (и нужно) делать не от 1 до 254, а от минимальной до максимальной яркости минус единица. В конце будет приведена реализация на языке C++ с учетом некоторых таких оптимизаций.

Вот такой результат дает реализация вышеописанного алгоритма:

Расчитанный порог:

Реальный пример

Хотелось бы также кроме искусственно сгенерированного примера показать и реальное
использование метода.

В моей текущей дипломной работе требуется локализация штрих-кода на изображении:

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

Неплохо, да? Образ штрих-кода четко проглядывается на изображении и выделяется значительно более высокой яркостью по сравнению с окружающими предметами. Вот теперь можно смело применять метод Оцу:

В результате получили правильно локализованный штрих-код.

Реализация на C++

Ну, как я и обещал, реализация расчета порога методом Оцу на языке C++ с комментариями:
  1. typedef unsigned char imageInt;
  2. // Определение порога методом Оцу
  3. int otsuThreshold(imageInt *image, int size)
  4. // Проверки на NULL и проч. опустим, чтобы сконцетрироваться
  5. // на работе метода
  6. // Посчитаем минимальную и максимальную яркость всех пикселей
  7. int min = image;
  8. int max = image;
  9. for (int i = 1; i < size; i++)
  10. int value = image[i];
  11. if (value < min)
  12. min = value ;
  13. if (value > max)
  14. max = value ;
  15. // Гистограмма будет ограничена снизу и сверху значениями min и max,
  16. // поэтому нет смысла создавать гистограмму размером 256 бинов
  17. int histSize = max - min + 1;
  18. int * hist = new int ;
  19. // Заполним гистограмму нулями
  20. for (int t = 0; t < histSize; t++)
  21. hist[t] = 0;
  22. // И вычислим высоту бинов
  23. for (int i = 0; i < size; i++)
  24. hist - min]++;
  25. // Введем два вспомогательных числа:
  26. int m = 0; // m - сумма высот всех бинов, домноженных на положение их середины
  27. int n = 0; // n - сумма высот всех бинов
  28. for (int t = 0; t <= max - min; t++)
  29. m += t * hist[t];
  30. n += hist[t];
  31. float maxSigma = -1; // Максимальное значение межклассовой дисперсии
  32. int threshold = 0; // Порог, соответствующий maxSigma
  33. int alpha1 = 0; // Сумма высот всех бинов для класса 1
  34. int beta1 = 0; // Сумма высот всех бинов для класса 1, домноженных на положение их середины
  35. // Переменная alpha2 не нужна, т.к. она равна m - alpha1
  36. // Переменная beta2 не нужна, т.к. она равна n - alpha1
  37. // t пробегается по всем возможным значениям порога
  38. for (int t = 0; t < max - min; t++)
  39. alpha1 += t * hist[t];
  40. beta1 += hist[t];
  41. // Считаем вероятность класса 1.
  42. float w1 = (float )beta1 / n;
  43. // Нетрудно догадаться, что w2 тоже не нужна, т.к. она равна 1 - w1
  44. // a = a1 - a2, где a1, a2 - средние арифметические для классов 1 и 2
  45. float a = (float )alpha1 / beta1 - (float )(m - alpha1) / (n - beta1);
  46. // Наконец, считаем sigma
  47. float sigma = w1 * (1 - w1) * a * a;
  48. // Если sigma больше текущей максимальной, то обновляем maxSigma и порог
  49. if (sigma > maxSigma)
  50. maxSigma = sigma;
  51. threshold = t;
  52. // Не забудем, что порог отсчитывался от min, а не от нуля
  53. threshold += min;
  54. // Все, порог посчитан, возвращаем его наверх:)
  55. return threshold;
* This source code was highlighted with Source Code Highlighter .

Заключение

Итак, мы рассмотрели применение метода Оцу для обнаружения объектов на изображениях. Достоинствами этого метода являются:
  1. Простота реализации.
  2. Метод хорошо адаптируется к различного рода изображения, выбирая наиболее оптимальный порог.
  3. Быстрое время выполнения. Требуется O (N ) операций, где N - количество пикселей в изображении.
  4. Метод не имеет никаких параметров, просто берете и применяете его. В MatLab это функция graythresh() без аргументов (Почему я привел пример именно MatLab? Просто этот инструмент - стандарт де-факто для обработки изображений).
Недостатки:
  1. Сама по себе пороговая бинаризация чувствительна к неравномерной яркости изображения. Решением такой проблемы может быть введение локальных порогов, вместо одного глобального.

Источники

  1. 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%, чтобы обеспечить максимально возможную вероятность различения.
Кроме того, Бернштейн установил, что разрешение влияет на вероятность обнаружения только в той мере, в какой оно изменяет отношение сигнала к шуму или контраст объекта. Однако Колюччио и др. }

error: