Традиционное машинное зрение обычно состоит из двух этапов: предварительной обработки и обнаружения объектов. Мост между нимиСегментация изображения )[1]. Сегментация изображений упрощает анализ изображений за счет упрощения или изменения их представления.
Например, на пищевом комбинате появилась новая партия бройлеров, и он хочет визуально проверить, насколько она вкусная. После того, как машина предварительно обработает и оптимизирует изображение, она должна сначала отделить курицу и фон на изображении и отдельно проанализировать интересующую область, чтобы сделать быстрое и точное суждение.
Обработка изображений на предприятиях пищевой промышленности
Однако сегментация изображений не так проста для глупого ИИ. Умные люди могут с первого взгляда сказать, что съедобно, а что нет на картинке ниже. Но компьютеру требуется много работы, чтобы разделить эти вещи.
исходное изображение
Результат сегментации изображения
Самый простой метод сегментации изображенияБинаризация.
Бинаризация изображения — это процесс установки значения серого пикселей на изображении в 0 или 255, то есть процесс представления всего изображения с очевидным черно-белым эффектом. Бинарное изображение имеет только два значения для каждого пикселя: либо чисто черный, либо чисто белый.
Цветное изображение, изображение в градациях серого, сравнение бинарных изображений
Поскольку данные бинарного изображения достаточно просты, многие алгоритмы зрения полагаются на бинарные изображения. С помощью бинарного изображения можно лучше проанализировать форму и контур объекта. Бинарные изображения также часто используются в качествеМаска (также известная как маска, маска, маска): это похоже на частично выдолбленный лист бумаги, скрывающий области, которые нас не интересуют. Существует много способов бинаризации, наиболее часто используемым является использованиеПороговый метод ( Thresholding )Бинаризировать.
В компьютерном зрении изображения обычно представляются матрицами. То есть, как бы аппетитно ни выглядело ваше изображение, для компьютера оно не более чем матрица.
В этой матрице каждый пиксель является элементом матрицы. В трехканальном цветном изображении этот элемент представляет собой кортеж из трех чисел.
Цветное трехканальное изображение
Для одноканальных изображений в градациях серого этот элемент является числом. Это число представляет яркость изображения в этой точке. Чем больше число, тем ярче будет пиксель. В обычном восьмибитном одноканальном цветовом пространстве 0 соответствует полностью черному, а 255 — полностью белому.
Одноканальное изображение в градациях серого
Пороговый метод относится к выбору числа, большее которого считается полностью белым, а меньшее — полностью черным. Подобно выключателю света в классе, мы осторожно нажимаем на него, и если какой-то порог внезапно пересекается, свет включается.
В соответствии с различными методами выбора порога его можно разделить на глобальный порог и локальный порог.
1. Глобальный метод
Глобальный порог относится к выбору одного и того же порога для каждого пикселя всего изображения. Мы можем испытать эту операцию в Photoshop Image — Adjustment — Threshold:
Порог в фотошопе
Видно, что по мере изменения порогового уровня от 1 до 255 все больше и больше областей изображения становятся черными. Когда пороговое значение находится в пределах определенного диапазона, четко различим контур красной рисовой колбасы.
Правильная бинаризация делает четко различимым контур красной рисовой колбасы.
В среде производственной линии, где известно освещение, в качестве глобального порога часто устанавливается фиксированное число. Но в соревнованиях на открытом воздухе или в робототехнике условия освещения зачастую более сложные.
Это тоже мороженое Oreo.Днем и ночью картинка, которую видит камера, может не совпадать, а постоянный порог не может адаптироваться к обеим ситуациям одновременно.
различные светлые и темные изображения
Для темной ночи нам нужен более низкий порог, например ставим порог 50, он может четко разделять черный и белый цвета ночью, а днем он белый (слева); если поставить Порог ставь выше, скажем 172, днем можно плавно делить, а вот ночью совсем темно (справа). Нам нужны алгоритмы, которые могут адаптироваться к сложным средам.
Левый порог = 50, правый порог = 172
Фактически, после небольшого анализа мы можем обнаружить, что цветовая разница на этом изображении все еще относительно очевидна, только два цвета темный и светлый. Следовательно, будь то день или ночь, его гистограмма уровня должна иметь два отчетливых пика, представляющих темные и светлые области. Просто гистограмма уровня днем в целом смещена вправо, а ночью в целом влево.
Уровень гистограммы изображения
Если вы выберете впадину между двумя пиками в качестве порога, вы можете легко разделить два типа пикселей. Однако гистограмма изображения часто прерывистая, с множеством всплесков и дрожаний, и найти точную точку экстремума очень сложно.
Японский инженер Оцу Чжанжи нашел подходящее математическое выражение для этой долины волн и опубликовал его в 1979 г. [2]. Этот метод бинаризации называетсяАлгоритм Оцу ( метод Оцу ). Алгоритм Оцу подобен дискретному моделированию одномерного дискриминантного анализа Фишера. Переборным методом находится пороговое число, и эти пиксели разбиваются на две категории, так что минимизируется внутриклассовая дисперсия яркости двух категорий пикселей. Внутриклассовая дисперсия относится к взвешенной сумме дисперсий двух типов пикселей, где вес относится к отношению количества таких пикселей к количеству пикселей во всем изображении.
Возможно, на вашей картинке не будет только двух разных цветов, например, у этого мороженого три вершины.
Трехцветное мороженое (возьмите гистограмму части мороженого)
В настоящее время можно завершить лишь небольшое расширение алгоритма Оцу. Многоуровневое обобщение алгоритма Оцу становитсяАлгоритм Оцу ( multi Otsu method )[3].
2. Локальный порог (локальный метод)
Локальный порог (Local Method) также называется адаптивным порогом (Adaptive Thresholding).
В игре часто на определенную область светят прожекторы, в результате чего картинка частично освещена, а частично не освещена.
частично освещенное изображение
Глобальная пороговая установка для изображений с локальным освещением может привести к тому, что «независимо от того, какие пороговые параметры установлены, требования всего изображения не могут быть удовлетворены». Например, на изображении выше, когда глобальное пороговое значение выполняется напрямую, когда все суши в верхней левой половине открыты, нижняя правая половина по-прежнему остается черной.
Глобальная пороговая обработка изображений с локальным освещением
На этот раз мы будем использовать локальный порог, чтобы справиться с этим. На самом деле, человеческий глаз также проходит этот этап работы. Мы судим о цвете объекта, и на него часто влияет цвет вокруг объекта, поэтому черные зубы выглядят белее.
Метод локального порога предполагает, что освещенность изображения относительно близка в определенной области. Он сканирует изображение с помощью скользящего окна и принимаетЦентральная точка раздвижного окнаЯркость иДругие регионы в скользящем окне (называемые районами) , neighborhood area )яркость для сравнения. еслиЦентральная точкаЯрче, чемПлощадьяркость, т.Центральная точкаотмечены белым цветом, в противном случае отмечены черным цветом.
Скользящее окно для локального порогового значения
Здесь упоминается базовый метод локальной пороговой обработки Другие методы локальной пороговой обработки, обычно используемые на практике, можно найти в адаптивном методе пороговой обработки Чоу-Канеко [4].
Область применения локального порога очень широка, особенно для обработки черно-белых символов. Многие алгоритмы оптического распознавания символов (OCR) и сканирования QR-кода используют локальные пороговые операции.
Например, следующий QR-код является типичным локальным светоприемным изображением:
QR-код для частичного приема света
Если для этого изображения используется глобальный порог (например, следующее изображение сегментировано алгоритмом Оцу), оно все равно не сможет быть правильно сегментировано.
Глобальные методы не могут обрабатывать изображения с локальным освещением.
Метод локального порога можно использовать для хорошей сегментации изображения. На картинке хорошо видно, что локальный пороговый метод более чувствителен к деталям большой чистой области, поэтому на бумаге много пятен, которые мы раньше не заметили.
Частичный метод сегментации QR-кода
В практическом применении нам нужно выбирать различные методы бинаризации в соответствии с нашими потребностями, и ни один метод не является абсолютно идеальным.
Например, при идентификации вражеских роботов, поскольку бронированная световая полоса является самосветящимся объектом, на нее меньше влияет окружающий свет.Для повышения эффективности программы мы используем фиксированное число в качестве глобального порога:
Базовая автоматическая контратака
При идентификации энергетических органов, поскольку энергетические органы имеют только два цвета, черный и белый, мы используем алгоритм Оцу и его различные варианты:
Бинарная карта каждой области большого энергетического органа
Когда воздушный робот считывает QR-код в зоне базы, используется метод локального порога:
База идентификации воздушных роботов
В дополнение к методам сегментации изображения на основе порога широко используемые методы сегментации также могут быть основаны на границах (например, метод адаптивного порога Яновица-Брукштейна [5]), областях (например, алгоритме роста области [6]) и т. д., которые широко используются в обработке спутниковых изображений, системах управления дорожным движением, мониторинге промышленного производства, медицинской визуализации и других областях, играющих огромную роль.
Сегментация изображения мозговой ткани
О реализации OpenCV метода пороговой обработки, описанной в этой статье, см. в блоге:Эксперимент по обработке изображений Python + OpenCV
Эффект проекта
использованная литература
[1] Spirkovska, L. (1993). A summary of image segmentation techniques.
[2] Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber. 9(1): 62–66.
[3] Ping-Sung Liao and Tse-Sheng Chen and Pau-Choo Chung (2001). "A Fast Algorithm for Multilevel Thresholding". J. Inf. Sci. Eng. 17(5): 713–727.
[4] Chow,C.K.; and Kaneko, T.: Boundary Detection of Radiographic Images by a Thresholding Method. Frontiers of Pattern Recognition, S. Watanabe, ed.,Academic Press, New York, 1972, pp. 61-82.
[5] Yanowitz, S. D., & Bruckstein, A. M. (1988, November). A new method for image segmentation. In Pattern Recognition, 1988., 9th International Conference on (pp. 270-275). IEEE.
[6] Richardson H W. Regional growth theory[M]. Macmillan,1973.