Сергей Мальцев 3)Создание системы распознавания конкретных объектов, т.е., например: распознавание не всех столов, а конкретного, такого который робот уже ранее видел
Мною разработана программа идентификации автомобилей. Программе «предъявляются» снимки двух автомобилей спереди, и программа возвращает ответ ? один и то же автомобиль на снимках или разные автомобили. Правильная идентификация автомобилей обеспечивается даже если автомобиль на одном снимков повернут относительно другого автомобиля на угол до 60 градусов или имеется сильное изменение условий освещенности. Картинки прилагаются. В имеющейся версии программы для ускорения процесса идентификации происходит привязка к четырехугольнику номерного знака, но в принципе можно делать привязку и без использования номерного знака, т.е. распознавать и другие объекты.
Ели использовать стереопару, то без особых проблем можно идентифицировать другие объектов - стол, стул, телефон, компьютер, батарею отопления, входную дверь, окно, лампу, ведро и т.д.
Для получения 3D модели видимой части сложных объектов думаю подойдет что-то типа инфракрасной подсветки, которую применяет a4vision для распознавания лиц.
Существует очень большой класс объектов, которые не могут быть опознаны с алгоритмов, подобных тому, которые используются при идентификации автомобилей. Например, свернутая ткань, деревья, тропинка в лесу, кусты, куча снега, водная поверхность и т.д.
Похоже, что большинство из этих объектов можно объединить в классы, и для каждого класса создать свой алгоритм распознавания.
Насколько безошибочно робот будет ориентироваться в пространстве, будет сильно зависеть от количества (и качества) софта, написанного в первую очередь для системы распознавания.
Я пытался оценить, насколько безошибочно может пройти робот (использующий уже имеющиеся наработки в области распознавания) по длинной траектории вперед-назад. Получается - почти безошибочно, за исключением некоторых специфичных условий. Например, степь, в которой не за что «зацепится», снегопад, который заносит все на пути, сильное изменение обстановки по пути следования.
Практическое применение робота, который может самостоятельно ориентироваться на местности, в настоящий момент просматривается очень призрачно. Я пока вижу единственное место, где применение подобно робота может оказаться экономически целесообразным, является охрана большого числа помещений с помощью самодвижущегося робота. А может и нет.
Я думаю, что раз Вы уважаемые взялись за проект, то, наверное, у Вас есть и какие-то и другие идеи применения самодвижущихся роботов со встроенной ориентаций. Хотелось бы узнать об этом.
Кратко о себе: образование ? МИФИ, факультет теоретической физики. Работаю гл. специалистом в фирме, занимающейся разработкой систем безопасности, в частности, средств видеонаблюдения.
Vlad7 писал(а):Мною разработана программа идентификации автомобилей. Программе «предъявляются» снимки двух автомобилей спереди, и программа возвращает ответ ? один и то же автомобиль на снимках или разные автомобили. Правильная идентификация автомобилей обеспечивается даже если автомобиль на одном снимков повернут относительно другого автомобиля на угол до 60 градусов или имеется сильное изменение условий освещенности. Картинки прилагаются. В имеющейся версии программы для ускорения процесса идентификации происходит привязка к четырехугольнику номерного знака, но в принципе можно делать привязку и без использования номерного знака, т.е. распознавать и другие объекты.
Принципы использованного алгоритма закрыты или можете поделиться?
Vlad7 писал(а):Я думаю, что раз Вы уважаемые взялись за проект, то, наверное, у Вас есть и какие-то и другие идеи применения самодвижущихся роботов со встроенной ориентаций. Хотелось бы узнать об этом.
Да хоть уборку ночью в торговом центре проводить в автоматическом режиме, была бы технология, а применения найдутся...
А в целом, разве проекты интересны только с целью получить следующим же ходом какую-то выгоду?
=DeaD= Принципы использованного алгоритма закрыты или можете поделиться?
Коммерческая разработка. Могу только в общих чертах описать принцип работы.
Мне очень интересно было бы опробовать работу свого алгоритма в системе ориентации роботов. Возможный вариант сотрудничества с Вами ? это передача для испытаний защищенного экземпляра программы распознавания, от Вас ? отчет об испытаниях.
Да хоть уборку ночью в торговом центре проводить в автоматическом режиме, была бы технология, а применения найдутся...
Так вот, казалось бы очень нужная технология, а как начинаешь думать, где применить, то сразу и встают вопросы целесообразности.
А в целом, разве проекты интересны только с целью получить следующим же ходом какую-то выгоду?
Коммерческая разработка. Могу только в общих чертах описать принцип работы.
Мне очень интересно было бы опробовать работу свого алгоритма в системе ориентации роботов. Возможный вариант сотрудничества с Вами ? это передача для испытаний защищенного экземпляра программы распознавания, от Вас ? отчет об испытаниях.
Нам было бы интересно узнать о вашем алгоритме хотя бы в общих чертах, если возможно опишите здесь. Что касается испытаний вещь это хорошая, но нам бы хотелось иметь собственную систему доступную для доработки.
Да хоть уборку ночью в торговом центре проводить в автоматическом режиме, была бы технология, а применения найдутся...
Так вот, казалось бы очень нужная технология, а как начинаешь думать, где применить, то сразу и встают вопросы целесообразности.
Задача наивигации - это всего лишь подазадача более общей задачи - универсального зрения. А вот универсальное зрение - это уже довольно целесобразаная задача. Напиремер, тот же робот-домохозяка, если находится достаточное количестов желающих купить робота-собачку Aibo за $2000, то уж робота домохозяйку и подавно захотят купить, особенно если цену удастся удержать в разумных пределах, скажем $10000.
Суть алгоритма идентификации заключается в следующем ? производится векторизация двух растровых изображений и производиться наложение векторного изображения на растр другого изображения. Для сравнивания изображений автомобилей опорной точкой для первоначального наложения служит номерной знак. Далее путем последовательной деформации векторного изображения производится поиск максимального совмещения векторного изображения с растровым. Критерием максимального совпадения является минимальная разница между градиентами интенсивности двух наложений векторного изображения на растровое исходное и растровое тестируемое (с учетом нормирования интенсивности).
Определение подобия изображений путем наложения векторного изображения на растровое позволило сделать алгоритм устойчивым к разрывам контура (что неизбежно на зашумленных изображениях) и достичь высокой скорости идентификации (порядка 20-50ms для автомобиля).
Думаю, что хорошие бесплатные программы распознавания объектов еще не скоро будут доступны пользователям - сложные программы требуют больших вложений на разработку. Чем больше вложения в разработку, тем лучше будет программа распознавать.
Суть алгоритма идентификации заключается в следующем ? производится векторизация двух растровых изображений и производиться наложение векторного изображения на растр другого изображения. Для сравнивания изображений автомобилей опорной точкой для первоначального наложения служит номерной знак. Далее путем последовательной деформации векторного изображения производится поиск максимального совмещения векторного изображения с растровым. Критерием максимального совпадения является минимальная разница между градиентами интенсивности двух наложений векторного изображения на растровое исходное и растровое тестируемое (с учетом нормирования интенсивности).
Определение подобия изображений путем наложения векторного изображения на растровое позволило сделать алгоритм устойчивым к разрывам контура (что неизбежно на зашумленных изображениях) и достичь высокой скорости идентификации (порядка 20-50ms для автомобиля).
Уж очень общее описание, на самом деле почти ничего так и не понятно. Что подразумевается по векторизацией? Какой может быть градиент интесивности у векторного изображения? Если нельзя выкладывать в открытую, может напишите детали алгоритма на мыло maltseff@mail.ru?
Думаю, что хорошие бесплатные программы распознавания объектов еще не скоро будут доступны пользователям - сложные программы требуют больших вложений на разработку. Чем больше вложения в разработку, тем лучше будет программа распознавать.
Про векторизацию - оно конечно понятно про машины, там производитель старается отчиличиться, но вот насколько оно будет идентифицировать другие предметы, создатель которых не смог выделить большой бюджет на уникальный дизайн... ?
PS Off про линзы: Раскачивать в вакууме на магнитной подвеске
Сергей Мальцев Что подразумевается по векторизацией? Какой может быть градиент интесивности у векторного изображения?
Каждый отрезок векторного контура имеет свои атрибуты ? ширину линии, градиент перпендикулярно направлению отрезка и др. При сравнивании двух изображений градиент отрезков одного изображения сравнивается с градиентом в соответствующих точках другого изображения.
Vlad7 писал(а):Сергей Мальцев Что подразумевается по векторизацией? Какой может быть градиент интесивности у векторного изображения?
Каждый отрезок векторного контура имеет свои атрибуты ? ширину линии, градиент перпендикулярно направлению отрезка и др. При сравнивании двух изображений градиент отрезков одного изображения сравнивается с градиентом в соответствующих точках другого изображения.
Кстати, тоже неплохой метод, мне нравится. Но будет работать только на объектах с хорошими контурами, без прерываний. Или я ошибаюсь?
Работает и на плохих контурах (имеющих невосстанавливаемые однозначно разрывы). Как раз изюминка метода и заключается в том, что при пропадании части контура коэффициент схожести практически не уменьшается (уменьшается, но значительно меньше, чем доля пропавшей части контура).
Vlad7 писал(а):Работает и на плохих контурах (имеющих невосстанавливаемые однозначно разрывы). Как раз изюминка метода и заключается в том, что при пропадании части контура коэффициент схожести практически не уменьшается (уменьшается, но значительно меньше, чем доля пропавшей части контура).
Только проблема в том, как определить, что все эти части контура относятся к одному объекту. В случае с машиной с номером в целом понятно, это некая окрестность номера. Хотя кое-какое соображение есть: если объектом покрутить перед камерой, то можно повыявлять контуры в движущейся области изображения. Но в общем случае не понятно, как объединить контуры в объект.
И еще, получается, что задача сводится к перебору. Что не особо и хорошо. В случае с автомобилем хорошо то, что по номеру более-менее можно выяснить углы поворота, чем существенно сократить область поиска. В общем случае это не так.
Сергей Мальцев И еще, получается, что задача сводится к перебору. Что не особо и хорошо. В случае с автомобилем хорошо то, что по номеру более-менее можно выяснить углы поворота, чем существенно сократить область поиска. В общем случае это не так.
В общем случае можно «зацепиться» за место пересечения нескольких линий. В худшем случае за кусок линии.
Перебор плох, когда он работает медленно. Сейчас перебор работает в режиме реального времени при идентификации автомобилей (20-50 миллисекунд на идентификацию). Небольшая модификация алгоритма позволит увеличить скорость идентификации на пару порядков. Оптимизация программы позволит увеличить скорость идентификации в несколько раз.
С учетом того, что для некоторых объектов удастся выделить характерные детали контура и в этом случае достаточно упрощенного алгоритма распознавания, получается, что можно будет реально идентифицировать находящиеся в комнате предметы с имеющейся базой данных в несколько тысяч объектов в режиме реального времени. Все это справедливо только для объектов определенной группы ? это непротяженные объекты со стабильной формой и без плавных сложных поверхностей. Тело вращения можно отнести к указанной группе, человеческое лицо ? нет. Хотя группа и охватит подавляющее число объектов, тем не менее, еще большое количество объектов программа не сможет опознать. Для других групп предметов потребуется свой алгоритм распознавания.
Использование стереопары позволит еще на порядок, а то и больше, поднять скорость распознавания.
Сейчас я делаю модификацию программы, которая будет распознавать автомобили без «привязки» к номеру (номера не видно, видна только крыша автомобиля).
Vlad7 писал(а):В общем случае можно «зацепиться» за место пересечения нескольких линий. В худшем случае за кусок линии.
Перебор плох, когда он работает медленно. Сейчас перебор работает в режиме реального времени при идентификации автомобилей (20-50 миллисекунд на идентификацию). Небольшая модификация алгоритма позволит увеличить скорость идентификации на пару порядков. Оптимизация программы позволит увеличить скорость идентификации в несколько раз.
С учетом того, что для некоторых объектов удастся выделить характерные детали контура и в этом случае достаточно упрощенного алгоритма распознавания, получается, что можно будет реально идентифицировать находящиеся в комнате предметы с имеющейся базой данных в несколько тысяч объектов в режиме реального времени. Все это справедливо только для объектов определенной группы ? это непротяженные объекты со стабильной формой и без плавных сложных поверхностей. Тело вращения можно отнести к указанной группе, человеческое лицо ? нет. Хотя группа и охватит подавляющее число объектов, тем не менее, еще большое количество объектов программа не сможет опознать. Для других групп предметов потребуется свой алгоритм распознавания.
Использование стереопары позволит еще на порядок, а то и больше, поднять скорость распознавания.
Сейчас я делаю модификацию программы, которая будет распознавать автомобили без «привязки» к номеру (номера не видно, видна только крыша автомобиля).
В общем нужно смотреть. Еще вижу проблему с масштабированием.