основы применения видеодекодеров
в системах видеонаблюдения
Витольд КАчурБА (Witold KACZURBA) Перевод: Елена ТРОШКОВА
Системы видеонаблюдения широко используются в практике коммерческих и промышленных применений. Камеры, ассортимент которых распространяется от недорогих черно-белых телевизионных систем кабельного вещания с низкой четкостью (ССТС) до современных цифровых видеосистем высокого разрешения, применяются для разнообразных целей, от он-троля товаров до мониторинга движущегося транспорта, позволяющего в реальном времени распознавать лица.
Введение
Видео как таковое включает в себя множество данных, что усложняет обработку сигнала и сохранения данных. Система видеонаблюдения часто может быть упрощена путем устранения избыточной информации. Это позволяет передавать лишь наиболее важные части изображения, что экономит и память, и количество вычислительных операций. На рис. 1 показаны элементы системы видеонаблюдения.
Рис. 1. Упрощенный поток данных в системе видеонаблюдения
В статье приведено несколько примеров того, как удаление бесполезных данных может упростить процесс обработки, уменьшить размер памяти и объем цифровой обработки сигнала, а также показано, как специальные свойства видеодекодеров фирмы Analog Devices способны сделать проще алгоритмы обработки видео и ускорить разработку систем видеонаблюдения.
Пример 1. Подсчет и контроль параметров объектов
Изображение широкой ленты конвейера содержит множество быстро двигающихся деталей. Большое количество продукции делает ручной счет затруднительным. Автоматизацию счета продукции в дополнение к отслеживанию ее качества способна обеспечить видеокамера. Это может быть выполнено путем модификации простого счетного алгоритма для фокусирования на контролируемых деталях и эталонах.
Накопление всех видеоданных требует огромной памяти, и обработка большого количества данных вызовет немалые затраты на аппаратное обеспечение и вычислительную мощность. Вместо сохранения в памяти полных видеокадров во время контроля продукции на конвейере система может находить во множестве считанных данных интересующие детали и отсекать как можно больше бесполезных данных.
В большинстве случаев изображения в оттенках серого могут нести достаточно информации. Поэтому цветовую информацию можно отсечь путем конвертирования RGB-сигналов в Y (только яркость). Полученное монохромное изображение может быть затем подвергнуто анализу с помощью распознавания контура объекта для обнаружения продукции на конвейере, сравнения ее очертания с шаблоном и определения, не деформирована ли она.
Алгоритм распознавания контура объекта, который требует всего нескольких линий изображения и небольшого количества памяти, позволяет находить нарушения непрерывности в яркости соседних элементов путем определения производных первого и второго порядка, как описано в работе [3].
Распознавание контура объекта может быть осуществлено на практике с помощью методов матричного исчисления (например, при использовании матричного оператора Sobel [4]). Реализация такой обработки пикселей в FPGA (field-programmable gate-array, программируемая вентильная матрица) дает удовлетворительные результаты. Простой пример такой обработки на FPGA показан в работе [5]. Шум может быть удален при использовании Гауссовского 2D-фильтра, как описано в [6], где приводится успешное применение детектора, аналогичного детектору края изображения Кэнни (Canny edge detector) [7].
Несколько дополнительных алгоритмов оптимизации могут улучшить качество изображения, но все они занимают значительное количество ресурсов FPGA. Тем не менее несколько интегральных схем видеодекодеров уже оснащены полезными алгоритмами обработки или фильтрами; выбрав один из них, можно спасти часть ресурсов FPGA. Например, видеодекодер ADV7802 [8] содержит оба блока коррекции яркостных (Luma Transient Improvement, LTI) и цветовых (Chroma Transient Improvement, CTI) переходов. Эти блоки, которые повышают качество результирующего изображения за счет коррекции крутизны фронтов яркостного и цветового сигналов, используют адаптивные методы сглаживания пиков и нелинейности (без увеличения шума или внесения искажений) и могут быть очень полезны в процессе распознавания контура объекта. Для улучшения
J'-—► LTI/CTI -
Рис. 2. Диаграмма коррекции яркости и цвета (LTI/CTI)
I | РЕЗКОЕ ИЗОБРАЖЕНИЕ -и—\+- РАССТОЯНИЕ
1 1 0,5 м 2 м 5 м 20 м INF
Рис. 3. Узкая область, расположенная в фокусе объектива камеры
качества сигнала используется коррекция формы яркостного сигнала и другие встроенные фильтры, которые дополнительно могут убирать высокочастотный шум от источника и внешние шумы (рис. 2).
Распознавание контура объекта оставляет от полного кадра только информацию
о контуре объекта. Такое снижение информации — от 3x8 bpp (bpp, bits per pixel — бит на пиксель) до 1 bpp — позволяет сэкономить очень много памяти:
• 640 пикселей x 480 пикселей = 307 200 бит при 1 bpp;
• 800 пикселей x 600 пикселей = 480 200 бит при 1 bpp;
• 1024 пикселя x 768 пикселей = 786 200 бит при 1 bpp;
• 1280 пикселей x 720 пикселей = 921 200 бит при 1 bpp.
При конвертировании RGB-сигнала изображения в яркостный (Y), сохраняя в памяти совсем немного строк от исходного изображения и используя обработки в FPGA, мы можем обнаружить объекты и увидеть их очертания. Поскольку их положение на конвейере известно, мы можем оценить скорость их движения и получить цветовую или какую-то другую информацию в следующих кадрах с гарантией того, что задействовано минимальное количество памяти. Процесс включает в себя:
1. Распознавание контура объекта.
2. Запоминание информации.
3. Прогнозирование следующей позиции •W
4. Извлечение информации с места, на котором должна находиться продукция.
Пример 2. Определение скорости перемещения и качества объекта
Робот ищет отдельные предметы на определенном расстоянии и в определенной зоне. Для некоторых применений используется ультразвук, но, если ультразвук поглощается поверхностью или продукция находится за стеклянной перегородкой, взамен может применяться видеосъемка. Камера устанавливается в центре и фокусируется на ближайших объектах. Продукция, располагающаяся примерно на одном расстоянии относительно камеры, будет иметь четкие очертания, но расположенные вне этой области изделия будут иметь размытые границы (рис. 3).
Распознавание контура объекта может быть использовано для различения предметов
внутри целевого диапазона, поскольку здесь все объекты имеют четкий контур. Объекты на заднем плане будут иметь довольно сильно размытые очертания и не пройдут тест на распознавание.
При обработке данных создается двоичная матрица, в которой «1» означает, что край контура опознан, а «0» — что нет. Координаты (х, у) каждой точки контура могут быть использованы для аппроксимации середины изолированного объекта при использовании уравнения (1):
ХС1
Ех, Ел
” V ”
✓ С1
N
N
(1)
где хп — позиция х краевого элемента контура п; уп — позиция “у” краевого элемента контура п N — число распознанных элементов.
Поскольку расположение объекта и его границы известны, мы можем начертить его. Целью является выделить из изображения точно один объект, приводя его границы к чертежу. Путем контроля среднего расстояния элементов от середины объекта можно определить, например, движется ли изделие по направлению к камере (рис. 4). Как показано в уравнении (2), можно увидеть, изменяется ли размер объекта, где N — число пикселей контура в текущем кадре; М — число пикселей контура в предыдущем кадре (кадр-1).
УВЕЛИЧЕНИЕ РАССТОЯНИЯ
• СЕРЕДИНА ОБЪЕКТА
----ОБЪЕКТ В ПРЕДЫДУЩЕМ КАДРЕ
----ОБЪЕКТ В ТЕКУЩЕМ КАДРЕ
Рис. 4. Изменение в кадре при движении объекта
Обратите внимание, что объект должен находиться в диапазоне фокусировки камеры. Модифицируя алгоритм, мы можем активно менять фокус [9], чтобы охватить более широкую область:
1 Я , ч
— \'(укадр_ -уКадР-1\_
АА-*' і Хер )
1 М , .
VI _лгкадР-1\ , „,
М2Л*- )' (3)
Как только объекты распознаны, они могут быть сегментированы, обработаны и отслежены.
Отслеживание объектов становится более трудным при увеличении степени сложности видео. Это особенно касается текстурных объектов и объектов, которые потеряли очертания из-за быстрого движения. Несколько алгоритмов отслеживания приведены в [11].
Благодаря продолжительному потоку данных, поступающих с камеры, объект может отслеживаться с целью определения ускорения и других параметров. Тем не менее для получения хороших результатов видеоанализа должна использоваться высококачественная видеопоследовательность. При определении границ контура путем анализирования соседних пикселей разрешение будет больше, если вместо низкокачественной чересстрочной развертки PAL- или NTSC-сигналов будет использоваться прогрессивная развертка видеосигнала. Видеодекодеры ADV7401 и ADV7403 могут работать со многими стандартами видео, включая современные. Способные оцифровывать видеосигналы до 140 МГц, они умеют обращаться с SD-, ED- и HD-компонентными сигналами, CVBS и графикой. К тому же они поддерживают нестандартные режимы видео, позволяющие использовать менее популярные стандарты, такие как STANAG. Гибкая пиксельная выходная шина позволяет обрабатывать данные в форматах 4:2:2, 4:4:4 YCbCr или 4:4:4 RGB. Нестандартные видеоформаты могут иметь дискретизацию с повышенной частотой или субдискретизацию для того, чтобы получить заданную ширину, как описано в [13].
Встроенный преобразователь цветового пространства (CSC), показанный на рис. 5, преобразует цветовое пространство в соответствии с требованием заказчика:
ChanelAout Chanel В out Chanel C out Al A2 A3 В 3 51 В 2
С 2 СЗ С1_ ____j ^
’ ^ " (4)
где А1-А4, В1-В4, С1-С4 — регулируемые параметры CSC.
Chanel _ A_in A 4
Chanel В in + B4
Chanel _C_in С 4
1 N -Е
(хґр-хТ)Чу^р-уТ)2
(х^-хТУ+іу^-уТ1)2
(2)
А1[12:0]
і
ВХ0Д_А[11:0] -
ВХОД_____В[11:0] -
А2[12:0]
к
А3[12:0]
к
ВХОД____С[11:0] -► X
А4[12:0]
к
БСБ МАСШТАБ
+ -► +
Рис. 5. Одиночный канал CSC (ADV7403)
ПРОДУКТ СГОРЕЛ
НЕСВЕЖИЙ ПРОДУКТ
к СЛИШКОМ СИЛЬНЫЙ СВЕТ-ОГРАНИЧЕНИЕ
ВЫХОД СИГНАЛА ВИДЕО- ДЕКОДЕРА Л/ ХОРОШЕЕ ОСВЕЩЕНИЕ (ОПОРНАЯ ВЕЛИЧИНА)
і (СМЕЩЕНИЕ) ] / КОНТРАСТ / \ (УСИЛЕНИЕ) СЛАБОЕ ОСВЕЩЕНИЕ
1 ^ ОПОРНЫЕ ВЕЛИЧИНЫ 1 (1«ЗВ) ДЛЯ ХОРОШЕГО ОСВЕЩЕНИЯ
Рис. 8. Смещение и усиление настроены для компенсации изменения окружающего освещения
Рис. 6. Цветовое пространство YUV при оценке качества продукции.
При этом Y (яркость) является постоянной
Входные сигналы YPrPb или RGB можно конвертировать в другие форматы при помощи конфигурируемого матричного преобразователя. К примеру, преобразование RGB в YCbCr позволяет изъять информацию о цветности (СЬ, Сг), упрощая распознавание контура по монохромному изображению.
Преобразователь цветового пространства (CSC) очень полезен. При наличии входных сигналов RGB или YCbCr цветовая информация может быть легко преобразована при помощи матрицы цветового пространства. На рис. 6 показано цветовое пространство YUV, аналогичное YCbCr.
Как показано на рис. 6, цвет (или величина YPrPb) может помочь определить качество продукта, например, сгорел он или заплесневел. Преобразование цветового пространства необходимо при обработке видео и для согласования с интегральными схемами, работающими в других стандартах. Видеодекодеры ADV7401/ADV7403 содержат входной мультиплексор, который дает возможность легко переключать источники видео. Это очень полезное свойство, особенно для случаев, когда производятся переключения от остановленного конвейера на работающий.
Пример 3. Настройка баланса белого и цветового баланса для видеонаблюдения
Сложно разработать видеосистему, способную выделять объекты на изображении в условиях, когда простые изменения угла падения света или его яркости могут значительно изменить это изображение. Инженеры по видеотехнике могут использовать регулировку усиления и смещения в видеодекодерах ADV7401/ADV7403 для настройки яркости и контраста путем расположения на ленте конвейера двух небольших контрольных ленточек (одна темная, другая яркая) (рис. 7). Регулировки смещения и усиления в видеодекодерах ADV7401/ADV7403 согласованы с целью получения сопоставимых величин, что дает возможность системе компенсировать изменения света, цвета, угла и интенсивности.
ВИДЕОКАМЕРА
ОПОРНЫЕ ЛЕНТОЧКИ
Рис. 7. Контрольные ленточки
на видимой части ленты конвейера
Алгоритм достижения правильного баланса белого [14] может быть очень простым. Прежде всего, получите величину опорного сигнала RGB (или YСbСr) для ленточек. Затем для компенсации света просто измените смещение и усиление, чтобы получить такую же величину, как в опорном сигнале. Этот алгоритм может быть выполнен следующим образом:
1. Измерить величину RGB (или YСbСr) сигнала на темной ленточке.
2. Отрегулировать смещение для согласования требуемых величин RGB (или YСbСr) на темной ленточке.
3. Измерить величину RGB (или YСbСr) сигнала на яркой ленточке.
4. Отрегулировать усиление для согласования требуемых величин RGB (или YСbСr) на яркой ленточке.
5. Для повышения точности повторить шаги
2 и 4.
Эта процедура полезна главным образом в процессе разработки системы, поскольку она обеспечивает правильное смещение (яркость) и усиление (контраст), даже когда свет слишком сильный или слишком слабый, как показано на рис. 8.
Регистры смещения и усиления доступны по шине 12С, что способствует быстрой настройке.
Опорные ленточки также могут быть цветными. Такая коррекция подобна широко используемой процедуре баланса белого. Но если баланс белого предназначен для согласования с человеческим восприятием, то коррекция цвета должна компенсировать изменения вследствие различного освещения. Хотя алгоритм является таким же, дополнительное смещение обуславливает темные тона, которые выглядят неестественно. Преобразование цветового пространства в видеодекодерах ADV7401/ADV7403, гибкий выходной пиксельный порт и регистры настройки усиления и смещения позволяют инженерам быстро разрабатывать алгоритмы, использующие уже подготовленные для обработки данные. Как обсуждалось ранее, важно уменьшать количество данных, требуемых для обработки видео, и избегать продвинутых алгоритмов, если они не нужны для простого видео. Оценочная плата для ADV7401/ADV7403 с легко доступным пиксельным портом удобна для ускорения старта новой разработки. Можно осуществить простое подключение платы видеозахвата к пиксельному порту оценочной платы и захват видеоданных (рис. 9).
Видеокодер, видео-ЦАП и HDMI-передатчик AD9889B [15] подключены к одной и той же пиксельной шине, а возможность
визуализации текущего изображения обеспечивается на втором выходе. Видеодекодеры фирмы Analog Devices включают блоки, которые требуются для обработки видео, обеспечивая надежное функционирование и стабильное изображение.
Заключение
Видеокамеры обеспечивают множество преимуществ для индустриальных применений. Это особенно важно, когда движущиеся предметы должны быть отсортированы, отслежены или записаны. Видеотехнология и обработка в реальном времени с высоко интегрированными видеодекодерами могут быть использованы для продукции, требующей эффективного анализа, или сортировки смешанной продукции на движущейся конвейерной ленте. ■
Литература
1. http://www.analog.com/en/industrial-solutions/machine-vision/applications/ index.html
2. http://www.analog.com/en/audiovideo-products/video-decoders/products/ index.html
3. Джане Б. Цифровая обработка изображения — http://www.amazon.com/ Digital-Image-Processing-CD-ROMBernd/dp/3540677542
4. http://en.wikipedia.org/wiki/Sobel_operator
5. Аббаси Т. А., Аббаси М. Ю. Предлагаемая архитектура на базе FPGA для оператора распознавания контура объекта Sobel—http://www.oldcitypublishing. com/FullText/JAPEDfulltext/JAPED2.4fulltext/Abbasi.pdf
6. Венкатесан М., Венкатешвар Рао Д. Аппаратное ускорение алгоритма обнаружения границ — http://www.uweb.ucsb.edu/~shahnam/HAoEDAoF.pdf
Рис. 9. Пиксельная шина на оценочной плате ADV7401/ADV7403
7. http://en.wikipedia.org/wiki/Canny_edge_detector
8. http://www.analog.com/en/analog-to-digital-converters/videodecoders/ adv7802/products/product.html
9. http://en.wikipedia.org/wiki/Autofocus
10. http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=323794
11. Яо Ванг (Yao Wang), Остерман Й. (Jorn Ostermann), Йа-Квин Жанг (Ya-Qin Zhang). Хорошие функциональные возможности для отслеживания — http://www.amazon.com/Video-Processing-Communications-Prentice-Hall-Signal/dp/0130175471
12. http://www.analog.com/en/analog-to-digital-converters/videodecoders/ adv7403/products/product.html
13. AN-0978. Компонентный процессор нестандартных видеоформатов—http:// www.analog.com/static/imported-files/application_notes/AN-0978.pdf
14. http://en.wikipedia.org/wiki/White_balance
15. http://www.analog.com/en/audiovideo-products/ analoghdmidviinterfaces/ ad9889b/products/product.html