суббота, 6 апреля 2013 г.

Анализ движения в программировании

В данной статье не будет кода но будет описание проблем и логики их решения.

Итак. Проект для регистрации движения с камер наблюдения оказался достаточно интересным.
Столкнулся с многими вопросами и успешно их решил.

Вопросы
1 Принцип достаточности и необходимости при постановке задачи
2 Методика анализа изображения




Давно уяснил для себя один момент - всегда необходимо использовать принцип достаточности. Распространённая болезнь программистов - стремление к улучшению, оптимизации и совершенству кода :) Но если на этом заиорочиться на начальных этапах проектирования то можно потерять много премного времени...

Я исходил, в данном случае, из следующих соображений:
1 Достаточно что бы регистрировался бы факт движения при любой скорости перемещения
2 Необходимо что бы вокруг объекта рисовалась бы прямоугольная рамка.
3 Достаточно того что анализируется только один объект (так было в ТЗ)
4 Достаточно того что в случае испарения объекта на регистрирующем экране
останется последняя картинка перемещений.


Исходя из данных условий анализ движения производился следующим образом:
1 Ищем крайнюю верхнюю левую точку изменения изображени
2 Ищем крайнюю нижнюю правую точку изменения изображения
3 Разница в изменении цвета точки подбирается опытным путём (от этого зависит чувствительность системы)
4 Для достижения скорости картинка анализируется случайным распределением с количеством шагов в 50 % (в результате достигалась приличная скорость анализа изображения)
5 И... контрольный выстрел области случайного распределения разбиваются на 10 частей и запускается 10 потоков.


В результате клиент доволен, программа работает быстро задание выполнено.:)

TotalCoder

Комментариев нет:

Отправить комментарий