Обнаружение пешеходов используется главным образом в исследованиях, посвященных беспилотным автомобилям. Общая цель обнаружения пешеходов — предотвращение столкновения автомобиля с человеком. На Хабре недавно был топик про «умные машины». Создание подобных систем очень популярное направление исследований (Darpa challenge). Я занимаюсь распознаванием пешеходов для подобного проекта интеллектуальных автомобилей. Очевидно, что проблема обнаружения пешеходов — программная, а предотвращение столкновения — аппаратная. В данной статье я упомяну лишь о программной части, кратко расскажу об одном способе обнаружения людей на изображении и алгоритме классификации.

Введение


В своей работе я использую два сенсора: инфракрасную камеру и лидар. Температура тела человека обычно выше окружающей среды. Поэтому на изображении с инфракрасной камеры человека можно легко локализовать. Как правило, легко обнаружить незакрытые одеждой части тела: голову и кисти рук. Но с помощью одной только камеры сложно определить размеры объекта, сложно сказать насколько далеко человек находится от камеры. Здесь на помощь приходит лидар. Он измеряет расстояние до объектов.

Зачем вообще нам лидар? Посмотрим для начала на наши картинки. Вся идея предварительной обработки изображения сводится к тому, чтобы локализовать области интереса. Нам не важно, что из себя представляет все изображение. Мы хотим выделить несколько областей и работать дальше с ними. В идеале область интереса должна охватывать изображения человека целиком. Зная что голова человека теплее окружающей среды, мы легко находим её на изображении. Дальше нам надо оценить размер человека. Тут–то и приходят на помощь данные от лидара. Зная расстояние до объекта, фокусное расстояние камеры, размер объекта в координатах реального мира, легко подсчитать размер объекта в пикселях. Мы определили размер объекта в координатах реального мира равный прямоугольнику 2 на 1 метр в уверенности, что среднестатистический человек вписывается в такой прямоугольник. Но в системе координат изображения области интереса все еще разного размера. Еще одно преобразование масштаба и наконец все области интереса не только охватывают одинаковую область реального мира, но и имеют одинаковые размеры в пикселях.

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


Конечно, на тестовой машине все немного иначе. Во–первых, приведенный рисунок показывает расположение статических сенсоров: их положение не меняется со временем. Во–вторых, на нашей тестовой машине используется другой тип лидара — трехмерный. Он установлен посередине крыши автомобиля. Камера устанавливается в передней части крыши. Таким образом, центры сенсоров уже нельзя считать находящимися в одной точке. Вариантов решения данной проблемы я вижу два: параллельно перенести данные из системы координат одного сенсора в систему координат другого сенсора (предварительно измерив расстояние между ними), либо же (автоматически)откалибровать сенсоры.

Извлечение областей интереса



Извлечение признаков, которые используются для распознавание образов, и их классификация занимают достаточно много времени. Обработка одного кадра с 6–7 объектами в Матлабе может занять целую минуту. Для систем, ориентированных на работу в реальном времени, такая длительная обработка неприемлема. На скорость сильно влияет количество обнаруженных теплых объектов, а человек не единственный теплый объект. Части машин, окна, светофоры тоже могут выделяться на общем температурном фоне. В данной работе упор сделан на скорость обработки информации. Нам нужно быстро отсеять максимум объектов, которые точно не являются людьми. При этом желательно не пропустить ни одного реального человека. Все оставшиеся объекты можно затем классифицировать с помощью полноценного статического классификатора.

Горячие области на изображении обнаруживаются с помощью метода под названием «Максимально стабильные области экстремума» (МСЕР от англ. Maximally Stable Extremal Regions [1]). Исходное изображение обрабатывается пороговой функцией с изменяющимся значением порога. В результате получается новая последовательность изображений, размер которой соответствует количеству различных значений порога (например, для монохромного изображения со значениями пикселей от 0 до 255 получим 256 изображений). Первое изображение в последовательности будет абсолютно белым. Дальше появятся черные области и самое последнее изображение в последовательности будет полностью черным. На рисунке ниже представлена такая последовательность в виде анимации:


Белые области на изображении являются областями экстремума. Мы можем проанализировать как долго та или иная область экстремума присутствует в последовательности изображений. Для этого можно использовать еще одну пороговую функцию. Например, со значением 10. Если область экстремума присутствует больше чем на 10 изображениях последовательности, то такая область называется максимально стабильной областью экстремума.

Найдя максимально стабильные области интереса, мы можем их еще немного отфильтровать: проверить соотношение сторон, отбросить далекие от камеры объекты, обработать перекрывающиеся между собой области.

Исходное изображение

Максимально стабильные области экстремума

Области интереса

Отфильтрованные области интереса


Дисперсия



В качестве метрики для классификации объектов используется «дисперсия»[2]. Вычисление данной метрики занимает мало времени и, к тому же, её значение инвариантно к условиям освещения. Считается она по формуле . В оригинальной работе дисперсия вычисляется по контуру объекта. Для получения контура из областей интереса применяются последовательно фильтр Гаусса и оператор Собеля. Решение о принадлежности образа к тому или иному классу выносится с помощью пороговой функции. Изображения людей обладают меньшим значением дисперсии, чем изображения частей машин или зданий.



Заключение



Результаты работы алгоритма в картинках:


Тестовой компьютер оснащен процессором Интел коре 2 дуо с частотой 3 ГГц, кэшем размером 6 МБ, оперативной памятью размером 2 ГБ. Тесты проводились в системе Матлаб. Среднее время обработки одного кадра 64 мс. Это значит, что за 1 секунду система сможет обрабатывать примерно 16 кадров. Это, конечно, лучше чем 1 кадр в минуту.

Закономерно возникают следующие вопросы: насколько надежна дисперсия для классификации, как увеличится время работы над одним кадром при использовании полноценного классификатора. Ответов на эти вопросы у меня пока нет. Сейчас как раз работаю над этим. Будут результаты — сообщу!

Литература


[1] J. Matas, O. Chum, M. Urban, and T. Pajdla, “Robust wide baseline stereo from maximally stable extremal regions,” in British Machine Vision Conference, 2002, pp. 384–396.
[2] A. L. Hironobu, A. J. Lipton, H. Fujiyoshi, and R. S. Patil, “Moving Target Classification and Tracking From Real-Time Video,” in Applications of Computer Vision, 1998. WACV ’98. Proceedings., Fourth IEEE Workshop on, October 1998, pp. 8–14.