Перейти к содержимому
Compvision.ru
batchat25t

Определить состояние объекта

Recommended Posts

Здравствуйте, в теме computer vision я новичок.

Возникла задача - объект (например, разводной мост) имеет два возможных состояния: "сведен" и "разведён".

Требуется, анализируя видео объекта, определить его текущее состояние.

Объект неподвижен относительно камеры и всегда известно его точное местоположение в кадре.

Объект освещён в ночное время.

Фон, на котором располагается объект, меняется в зависимости от времени года и погодных условий.

Подскажите пожалуйста, в какую сторону рыть. Какие алгоритмы использовать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собрать кучу изображений моста в открытом состоянии, примерно такую же-кучу в закрытом (думаю штук по 50 каждого класса должно хватить).

Уменьшить изображение, чтобы глазом можно было различить мост и понять закрыт он или открыт.

При помощи этого набора обучить классификатор (нейронную сеть, SVM, регрессию, ну или любой другой).

Для нейронки пример я приводил здесь: http://www.compvision.ru/forum/index.php?showtopic=1552&pid=10803&st=0&#entry10803

Дальше подаем картинку на классификатор, получаем ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Или если это "например мост" то там скорее всего доминирующая горизонтальная прямая или две под углом, можно их найти HoughLine или по Фурье углы определить. Но вариант с классификатором конечно лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за ответы.

Я вообще в лоб хотел решать задачу простым расчетом корреляции между наблюдаемой картинкой и образцами в базе, сделанными с той же точки в различных состояниях в различное время (день/ночь).

Но что-то нет уверенности, что получу надёжное определение состояния. Поэтому обучаемый классификатор будет надежнее.

Вариация моделей "моста" присутствует. Это может быть два пролёта сходящиеся в центре. Может быть один длинный пролёт выдвигающийся с берега.

Либо длинный пролёт, имеющий сочленение посередине, сгибающийся пополам и отходящий к одному берегу. Поэтому с анализом линий в разведенном состоянии наверное много мороки возникнет.

Скажите, а в связи с тем, что фон, на котором наблюдаем мост (летом травка, зимой снег) меняется, придётся обучать классификатор по изображениям, снятым в течение года?

А если поставить камеру снизу моста и снимать его на фоне неба, как много вариаций неба(ясно, пасмурно) придётся подсунуть на обучение , чтобы получить надёжный классификатор?

По ночам освещенный объект будет светлее неба, а днём - наоборот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ставить камеру под мост мне кажется не очень хорошая мысль, так как средний кадр, равномерный тон и для моста и для неба.

По поводу фона, лучше чтобы обучающая выборка содержала как можно более полное описание модели, поэтому да, хорошо бы чтобы она содержала изображения снятые в течение года.

Но может быть будет достаточно и снятых в один сезон в разное время суток.

Так сказать сложно, надо пробовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я бы в качестве первого шага не обучал классификатор, а попробовал бы качественно разобраться с проблемой.

Например, на изображении выделить область со сведённым мостом и поискать там горизонтальные отрезки или кривые второго порядка (дуги окружностей). При необходимости можно провести предобработку (увеличение контраста, фильтрация - можно даже билатеральный фильтр).

Не получилось найти линии? Построить горизонтальную гистограмму (как при поискте строк с текстом).

Можно попробовать связку Canny + контуры.

В целом подход должен быть понятен: выделить признаки моста, за которые цепляется глаз. Если это получается, то можно обойтись и без классификатора. Или подавать на него не просто изображение, а результат какой-нибудь фильтрации, которая на глаз значимо выделяет мост.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Произвёл билатеральную фильтрацию и бинаризацию изображения, снятого снизу моста.

Контуры объекта видны достаточно отчетливо как в закрытом состоянии,

https://www.dropbox.com/s/v03gt5ftw25o5e5/%D0%97%D0%B0%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9.jpg

так и в открытом

https://www.dropbox.com/s/goxx88zcqpuq5ok/%D0%9E%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D0%B9.png

Правильно я понимаю, что мне достаточно установить наличие связи между точкой А и Б (что между ними есть "маршрут" черных пикселей)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ага. Можно это и контурами попробовать проверить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не знаете, в OpenCV реализованы алгоритмы нахождения пути между точками? Или нужно реализовывать самому, поиском в глубину/ширину?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

судя по картинкам лучше определять наклон линий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×