Контакты
Подписка
МЕНЮ
Контакты
Подписка

Видеодетекторы: пять лет спустя. Часть 2. Статья печатается в авторской редакции

Видеодетекторы: пять лет спустя. Часть 2. Статья печатается в авторской редакции

В рубрику "Видеонаблюдение (CCTV)" | К списку рубрик  |  К списку авторов  |  К списку публикаций

Видеодетекторы: пять лет спустя

Часть 2
Статья печатается в авторской редакции

М. В. Руцков
Генеральный директор компании Megapixel Ltd., к.т.н

Итак, займемся вопросом быстродействия систем. Ведь действительно, кому нужен сверхнавороченный видеодетектор, который только по одному каналу грузит процессор под завязку, да и работает далеко не в режиме real-time! Получается, что лишь для показухи. Вот и спрашивается, а на сколько реально использовать полосовую пространственную фильтрацию для видеодетекции. Ну, тогда поведаю вам быль!

Дело было четыре года назад, нас любезно пригласила редакция журнала CCTV Focus для тестирования наших видеодетекторов. Ну, мы и поехали, прихватив с собой системный блок, в котором пригрелись, нами сотворенные, аж два 8-ствольных Видеопроцессора MegaFrame-X. Короче, аппаратные средства теоретически позволяли работать в режиме real-time. А что же получилось на практике. Привожу сводную таблицу тестов из статьи "MegaFrame-X новая плата видеоввода с интерфейсом PCI-X" (CCTV Focus, N1 2005).

Необходимо отметить, что было запрограммировано 16 каналов, по каждому из которых работали все три полосовые фильтры - грубый, средний и точный. Итого 48 видеодетекторов! Нетрудно заметить, что скорость упала в разы после включения записи и передачи данных по сети. Естественно, снизился и темп контроля, поскольку все было завязано в единый жесткий цикл. Причем после обнаружения движения автоматически включалась запись и еще добавлялась процедура JPEG-компрессии. Однако не забывайте - это было 4 года назад, сейчас системные параметры компьютеров значительно возросли. Появились двух- и четырехъядерные процессоры, увеличилась L2 кэш, системная шина стала работать быстрее и т.д. Поэтому сегодня уж ничто не тормозит -все работает в real-time. Но самое интересное место в таблице - первая строка в предпоследнем блоке. В режиме только отображения и обработки развивалась скорость 25 кадр/с. Это боевой режим - обнаружение движения. Значит, система за 40 мс обрабатывает все 16 каналов по 3 видеодетектора в каждом.

Спрашивается, а как же процессор успевает делать столько умножений и сложений? Ответ прост - алгоритм так оптимизирован, что не надо вычислять свертку "в лоб". Более того, в любой его точке промежуточные результаты никогда не вылезают за пределы одного фиксированного байта. Вот тут-то и сказываются преимущества ММХ и SSE обработки! Однако поверьте профессионалу, как и в повседневной жизни надо соблюдать золотое правило - не ставить телегу впереди лошади! Что это означает в нашем случае, в плане сочинения алгоритмов? А означает сие следующее -прежде чем сочинять что-либо, внимательно изучите особенности микроархитектуры того процессора, на котором все это будет крутиться. Алгоритмы должны быть аппаратно-ориентированными, иначе можно такой "математики" нагородить, что уж никакая оптимизация не поможет. И это замечательно, но хотелось бы понять - а что, собственно, дает нам полосовая фильтрация? Сточки зрения видеодетекции?

Как уже отмечалось, любой полосовой фильтр подавляет высокочастотные шумы и помехи, а также срезает постоянную составляющую. Очень даже полезное свойство! А теперь поговорим о фильтрах, которые задействованы в нашей системе. Их три -точный, средний и грубый. Точный позволяет детектировать мельчайшие объекты. Для иллюстрации можно глянуть в мою статью: "Видеодетекторы - взгляд изнутри. Практическая плоскость" ("Системы безопасности" №3 (51), 2003) -там движение глаз и пальцев отлавливаются (рис. 1, 2).

Можете даже посмотреть, что поступает на точный детектор - там видны все эти мелкие детали (рис.3).

Если говорить о размерах объектов, то отсылаю к результатам тестирования: "Тестирование детекторов движения в российских системах видеонаблюдения" (CCTV Focus, N3 2005). Нам удавалось "ловить" квадратики размером всего 4x4 пиксела при формате кадра 720x576. Кому интересно будет, отсылаю к самой методике: "Методика тестирования детекторов движения" (CCTV Focus, N3 2005). Кроме того, привожу таблицу результатов по нашей системе. Теперь поговорим о среднечастотном фильтре. Посмотрим, что поступает соответственно на средний детектор - там уже мелких деталей не видать (глаза и пальцы) (рис. 4). Но проступают некоторые очертания. Хорошо это или плохо? Вот представьте, что надо отсечь всякого ряда мелочь - малюсенькие машинки вдалеке, качание веток, летание птичек, блики и т.д.

Перейдем к грубому детектору. Посмотрите еще одно отфильтрованное изображение (рис. 5). Кулак уже практически превратился в яркое белое пятно, а сам я в - "сеятеля". Типа картины руки великого мастера - Остапа Бендера! Естественно вы спросите - "А куда это...?". Рассказываю! Дело было в году так 98-ом прошлого тысячелетия. Сижу в здании Московского ГАИ - около Театра Кукол и тестирую нашу систему распознавания автономеров. Камера была установлена на эстакаде через Цветной Бульвар и тряслась как бешенная! Разметка и трещины ходили ходуном (камера сверху вниз смотрела под углом 20-25 градусов к дороге) с амплитудой примерно 10 сантиметров! Какодержимый естествоиспытатель запускаю видеодетекторы. Естественно на точном и среднем детекторах идут сработки. Ставлю грубый - о чудо, нет тревог, а все проезжающие авто детектируются! Вот вам первое применение - Детектор Транспортного Потока. Причем, была бы нужда, можно и кое-что дописать в плане статистических измерений едущих пятен. И худо-бедно определить тип машины - легковая, грузовая иль автобус! Однако отличить последний от троллейбуса при таком подходе - невыполнимая задача, надо еще и рожки электрические вылавливать.

Атеперь, на закуску, расскажу и проиллюстрирую забавную историю, которая наглядно показывают как работают полосовые фильтры. И случилась она именно с нашей системой, причем на тестах в рамках выставки PROST 2006. Все материалы здесь: 'Тестирование детекторов движения на выставке ProST 20065", (CCTV Focus, N5, 2006). Вот гляньте на 30-ой странице, последняя таблица Тест на быстрые движения". Смотрим колонку результатов системы MegaSense - нас то бишь. И что ж мы видим? А видим парадокс - наше творение в упор не видит крупных шаров с диаметром 45 при контрастности в 1 и даже 4 процента! Зато ловит все остальные, более мелкие шары, вплоть до колобка диаметром 15 и контрастностью всего 2 процента! Какжетак? Вот они голубчики (рис. 6,7):

А почему по два шара в кадре? Так он же из двух полей состоит, меж которых как раз 20 мс и будет! Это еще раз к вопросу Деинтерлейсинга - попробуйте объединить. Так почему ж мы такую лошадь не увидели? Все очень просто - для тестов был установлен только точный детектор (лопухнулись - сам процесс не контролировал, поскольку был в Жюри), который своим фильтром буквально срезал размытый крупняк. Там высоких частот практически не было. Зато маленькие шары очень даже хорошо и вписались! Если бы параллельно был запущен средний детектор (это нормальный режим работы системы), отловили бтолькотак! Сия ситуация проявилась и в "Тесте на реальных сценах" (самая первая таблица, стр. 29), где система схлопотала один "минус". А взялся он от выхлопа автомобиля (первоначально даже не был прописан в списке объектов), в котором "высокие" также отсутствуют. Да и "неуверенной детекции""+/-" тоже можно было бы избежать! Ох уж эти если бы, да кабы!!! Но на то они и тесты, чтоб в последствии избегать таких "проколов" на реальных объектах.

Опубликовано: Журнал "Системы безопасности" #5, 2008
Посещений: 6955


  Автор
Руцков М. В.

Руцков М. В.

Генеральный директор компании MegaPixel Ltd., к.т.н.

Всего статей:  47

В рубрику "Видеонаблюдение (CCTV)" | К списку рубрик  |  К списку авторов  |  К списку публикаций