Выделение области на изображении, работа с образами

Общие вопросы: версии и диалекты, синтаксис языка, cтруктуры и типы данных (массивы, строки, списки...), обработка данных и т.д.
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

03 ноя 2009, 23:20

Есть два автомобиля, один оснащен камерой, второй - любой впередиидущий атомобиль. Во время движения через опр. промежутки времени с камеры передаются кадры. Программа анализирует кадр на наличие номерного знака, и при нахождении сравнивает его размер с эталлоном и делает вывод о дистанции между автомобилями. Если дистанция меньше порогового значения, подается сигнал. Так же в изображении находятся линии дорожной разметки и фиксируется их пересечение автомобилем с камерой.
Главная особенность, это то что камера подвижна! Поэтому для нахождения области со знаком, отбрасывание фона не подходит и, скорее всего, придется проходить построчно, начиная с нижней строчки, по всему кадру.

Буду благодарен за любую информацию. Может кто-то работал с алгоритмом Канни или Хока?
Нет религии выше истины
atavin-ta
Сообщения: 572
Зарегистрирован: 30 янв 2009, 06:38

05 ноя 2009, 08:26

Дабавь в задачу дорожные знаки и оценку собственной скросте по динамике фона. Думаю, будет интересней.
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

05 ноя 2009, 14:17

atavin-ta писал(а):...и оценку собственной скрости по динамике фона.
Да, собственную скорость машины с камерой тоже приходится учитывать. Сейчас отказался от определения растояния между авто, и делаю анализ быстроты изменения размера области номерного знака. Знак выделяю по Хаафу.
Нет религии выше истины
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

10 ноя 2009, 02:34

atavin-ta писал(а):по динамике фона.
Можно по-подробней про это?
Сейчас встала проблема определения минимального прямоугольника, описывающего объект. И вообще определения объекта. Нужен надежный алгоритм. У кого какие мысли?
Нет религии выше истины
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

10 ноя 2009, 09:13

Минимальный прямоугольник - имеется в виду со сторонами, параллельными сторонам изображения, или перекошенный? В первом варианте все банально - взять точку, которая гарантированно принадлежит объекту, и потом от нее рекурсивно ходить на соседние, если те тоже принадлежат объекту. В процессе обхода сохранять максимальные и минимальные координаты обходимых точек.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

10 ноя 2009, 11:39

Хыиуду писал(а):параллельными сторонам изображения, или перекошенный?
Прямой. При этом стороны проходят через крайние точки объекта. Пример в атаче.
Хыиуду писал(а):взять точку, которая гарантированно принадлежит объекту.
В этом, то и проблема: если мы будем знать, какие точки гарантированно принадлежат объекту, мы можем по количеству точек сравнивать объекты между собой. Сейчас пробую строить гистограммы по бинарному изображению и, анализируя скачки, выделять области по сопоставлению минимумов. Нахожу 4 точки, выделяю из две, строю по ним прямоугольник. Нахожу длины отрезков, от точки до точки (определяю длины двух сторон), нахожу площадь. Всё бы хорошо, если цвет объекта не близок к цвету фона.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Нет религии выше истины
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

10 ноя 2009, 12:22

Какая интересная задача...
Начнем с граничных условий:
- Считать, что обе машины движутся прямолинейно?
- С какой частотой делаются снимки?
- Какие машины подходят под наблюдение? Обязательно прямоугольные (фургоны, газели), или хоть трактор Беларусь?
- Считать, что номерной знак на машине обязательно белый (т.е. не голубой и не грязный)?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

10 ноя 2009, 13:24

Хыиуду писал(а):Считать, что обе машины движутся прямолинейно?
На коротких промежутках прямолинейно, а так произвольно.
Хыиуду писал(а):С какой частотой делаются снимки?
Обычная видеокамера с черезстрочной разверткой и частотой кадров примерно 25 кадров/сек.
Хыиуду писал(а):Какие машины подходят под наблюдение? Обязательно прямоугольные (фургоны, газели), или хоть трактор Беларусь?
Объекты любой формы (и даже не машины).
Хыиуду писал(а):Считать, что номерной знак на машине обязательно белый (т.е. не голубой и не грязный)?
Я хотел использовать номерной знак (а скорее его размер) для определения дистанции до впередиидущего авто. Но сейчас отказался от этого, поскольку авто может быть без номера, иметь транзитный, загрязненный, помятый, иметь много надписей похожих на номерной знак или вообще вести полный кузов номеров :) . А так как степень надежности системы должна быть максимальной, лучше не брать номер во внимание или использовать его обработку как дополнение к основному методу.
Нет религии выше истины
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

10 ноя 2009, 15:02

С тем же успехом впереди может ехать автобус, а может газель, которая по форме выглядит так же (квадрат), в этом случае надо как-то определять размер машины, чтобы система не впадала в панику, если вы едете позади Белаза.
Можно попробовать проанализировать однотонный участок дороги перед вами и отсечь тот уровень, где он заканчивается (начинаются колеса впередиидущего). В этом случае вообще все равно, что там перед вами едет - хоть телега. Только этот случай очень уязвим при езде после дождя или по заснеженной трассе.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

10 ноя 2009, 19:34

Хыиуду писал(а):С тем же успехом впереди может ехать автобус, а может газель, которая по форме выглядит так же (квадрат), в этом случае надо как-то определять размер машины, чтобы система не впадала в панику, если вы едете позади Белаза.
Программа реагирует не на размер, а на быстроту его увеличения. Для этого и необходимо описать квадрат вокруг предмета, чтобы по нескольким кадрам можно было анализировать эту самую быстроту. Другими словами, нам не важен размер объекта сам по себе, мы просто сравнимаем площади, и если скажем объект увеличился в два раза, мы прибегаем к панике :) .
Хыиуду писал(а):Можно попробовать проанализировать однотонный участок дороги перед вами и отсечь тот уровень, где он заканчивается (начинаются колеса впередиидущего). В этом случае вообще все равно, что там перед вами едет - хоть телега. Только этот случай очень уязвим при езде после дождя или по заснеженной трассе.
Этот вариант не эффективен, так как будет множество ошибочных определений, связанных с цветом дороги, освещением, её рельефом, а главное, что препятствие можем не иметь колёс :) .
Нет религии выше истины
Ответить