Есть задача отслеживать движение автомобилей по шоссе.
В дневное и ночное время суток для этого используются разные алгоритмы.
(Свет фар мешает использовать дневной алгоритм ночью).
Вопрос: как определить, день сейчас, или ночь.
Хотя более правильным был бы вопрос: как определить, едут автомобили с включёнными фарами, или нет.
Пробовал ориентироваться на уровень яркости изображения и на количество шумов матрицы.
Но, к сожалению, в зависимости от настроек тюнера эти параметры могут сильно варьироваться на разных компьютерах/тюнерах.
Вариант с предварительным обучением на разных последовательностях, заказчика пока не устраивает.
Вариант с определением гистограммы изображения не надёжен.
Да, чуть не забыл, получать от камеры данные об установленных выдержке, диафрагме, чувствительности камеры пока нельзя.
Пробовал следить за передвигающимися яркими пятнами (в надежде, что это свет фар на асфальте) — не получается,
т.к. машины в дневное время суток тоже могут быть яркими.
Может у кого-то есть идеи?
Желательно, если возможно, ссылки на статьи.
Было бы интересно почитать что-то про слежение за машинами в ночное время суток.
Кое-что уже удалось реализовать, но было бы интересно почитать что-то ещё.
30.06.09 13:59: Перенесено модератором из 'C/C++' — Кодт
Re: Определение времени суток видео последовательности
Здравствуйте, gmGreen, Вы писали:
G>Если камера не поворотная, то можно попробовать назначить контрольную область для подсчёта яркости.
Забыл сказать:
камера может поворачиваться и изменять фокусное расстояние.
Так что ориентироваться на верхнюю часть кадра (где должно быть небо) нельзя.
К тому же, некоторые камеры могут быть установлены под мостами.
Так что верхняя часть кадра может быть закрыта сводом моста.
Re: Определение времени суток видео последовательности
Камера автоматически не переключается в дневной/ночной режимы? Там будет сложнее.
На первый взгляд, надо смотреть уровень освещённости (яркости?) сцены. А это банальная гистограмма.
А какой алгоритм уже реализован? Насколько точно он работает?
Re[2]: Определение времени суток видео последовательности
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, alexander_kravchenko, Вы писали:
N>Камера автоматически не переключается в дневной/ночной режимы? Там будет сложнее. N>На первый взгляд, надо смотреть уровень освещённости (яркости?) сцены. А это банальная гистограмма.
N>А какой алгоритм уже реализован? Насколько точно он работает?
Как я уже писал в первом сообщении, метод с определением гистограммы работает не стабильно.
Т.е. в большинстве случаев так действительно можно определить, время суток.
Но, существует ряд последовательностей с обширными лесными участками, для которых в утреннее время в гистограмме преобладают тёмные тона.
Re: Определение времени суток видео последовательности
Здравствуйте, alexander_kravchenko, Вы писали:
Запусти на этапе обучения оба алгоритма, кто выиграет тот и молодец. А потом либо периодически переобучайся, либо следи за освещенностью на неподвижных участках.
<Подпись удалена модератором>
Re[3]: Определение времени суток видео последовательности
Здравствуйте, alexander_kravchenko, Вы писали:
_>Как я уже писал в первом сообщении, метод с определением гистограммы работает не стабильно. _>Т.е. в большинстве случаев так действительно можно определить, время суток. _>Но, существует ряд последовательностей с обширными лесными участками, для которых в утреннее время в гистограмме преобладают тёмные тона.
Я имел в виду смотреть на характер изменения гистограммы, при смещении на определённую величину влево или вправо принимать решение. Т.е. брать относительный критерий. Хотя это тоже проверять надо.
Re: Определение времени суток видео последовательности
От:
Аноним
Дата:
01.07.09 19:00
Оценка:
Здравствуйте, alexander_kravchenko, Вы писали:
_>Вопрос: как определить, день сейчас, или ночь.
BOOL IsReallyDay()
{
WORD DayBegin=5; //настраиваемый параметр - час начала дня
WORD DayEnd=17; //настраиваемый параметр - час конца дня
SYSTEMTIME st={0};
GetSystemTime(&st); //in system time we trustif (st.wHour>=DayBegin && st.wHour<DayEnd)
return TRUE; //деньelse
return FALSE; //ночь
}
_>Хотя более правильным был бы вопрос: как определить, едут автомобили с включёнными фарами, или нет.
Ну за границей (сам не был, но слышал) вроде с включенными всегда ездят (у них они не отключаются просто — завёл двигатель, включились фары), наши водители ещё столько не выпили чтоб днём фары включать
Re[2]: Определение времени суток видео последовательности
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, alexander_kravchenko, Вы писали:
_>>Вопрос: как определить, день сейчас, или ночь.
А>
А>BOOL IsReallyDay()
А>{
А> WORD DayBegin=5; //настраиваемый параметр - час начала дня
А> WORD DayEnd=17; //настраиваемый параметр - час конца дня
А> SYSTEMTIME st={0};
А> GetSystemTime(&st); //in system time we trust
А> if (st.wHour>=DayBegin && st.wHour<DayEnd)
А> return TRUE; //день
А> else
А> return FALSE; //ночь
А>}
А>
_>>Хотя более правильным был бы вопрос: как определить, едут автомобили с включёнными фарами, или нет. А>Ну за границей (сам не был, но слышал) вроде с включенными всегда ездят (у них они не отключаются просто — завёл двигатель, включились фары), наши водители ещё столько не выпили чтоб днём фары включать
К сожалению, этот вариант точно не проходит.
Водители включают фары исходя из освещённости, а не в зависимости от времени на часах
Зимой темнеет раньше.
В пасмурную погоду зимой — ещё раньше.
Касательно того, что за границей ездят всегда с включёнными фарами — в моём случае фары включают исходя из освещения.
Re[3]: Определение времени суток видео последовательности
_>>>Хотя более правильным был бы вопрос: как определить, едут автомобили с включёнными фарами, или нет. А>>Ну за границей (сам не был, но слышал) вроде с включенными всегда ездят (у них они не отключаются просто — завёл двигатель, включились фары), наши водители ещё столько не выпили чтоб днём фары включать
определи якркие(засвеченные) точки, это и будут фары
_>К сожалению, этот вариант точно не проходит. _>Водители включают фары исходя из освещённости, а не в зависимости от времени на часах _>Зимой темнеет раньше. _>В пасмурную погоду зимой — ещё раньше.
_>Касательно того, что за границей ездят всегда с включёнными фарами — в моём случае фары включают исходя из освещения.
в европе по правилам нужно днем ездитить с вклюеными. а у нас — как хочеш. я днем включаю фары когда еду по трасе чтобы встречные любители обгонов видели меня издалека.
Re[3]: Определение времени суток видео последовательности
Здравствуйте, alexander_kravchenko, Вы писали:
_>Здравствуйте, Аноним, Вы писали:
А>>Здравствуйте, alexander_kravchenko, Вы писали:
_>>>Вопрос: как определить, день сейчас, или ночь.
А>>
А>>BOOL IsReallyDay()
А>>{
А>> WORD DayBegin=5; //настраиваемый параметр - час начала дня
А>> WORD DayEnd=17; //настраиваемый параметр - час конца дня
А>> SYSTEMTIME st={0};
А>> GetSystemTime(&st); //in system time we trust
А>> if (st.wHour>=DayBegin && st.wHour<DayEnd)
А>> return TRUE; //день
А>> else
А>> return FALSE; //ночь
А>>}
А>>
_>>>Хотя более правильным был бы вопрос: как определить, едут автомобили с включёнными фарами, или нет. А>>Ну за границей (сам не был, но слышал) вроде с включенными всегда ездят (у них они не отключаются просто — завёл двигатель, включились фары), наши водители ещё столько не выпили чтоб днём фары включать
_>К сожалению, этот вариант точно не проходит. _>Водители включают фары исходя из освещённости, а не в зависимости от времени на часах _>Зимой темнеет раньше. _>В пасмурную погоду зимой — ещё раньше.
_>Касательно того, что за границей ездят всегда с включёнными фарами — в моём случае фары включают исходя из освещения.
Ещё одну камеру поставьте
Re[4]: Определение времени суток видео последовательности
Здравствуйте, alexander_kravchenko, Вы писали:
_>Водители включают фары исходя из освещённости, а не в зависимости от времени на часах _>Зимой темнеет раньше. _>В пасмурную погоду зимой — ещё раньше.
Прикрутите погодный сайт. Например, на gismeteo.ru есть облачность, данные по восходу/закату и API