Сейчас возможности Computer Vision (CV) полностью перекраивают ландшафт рынка Public Safety solutions. В то время как традиционными системами видеонаблюдения уже не просто никого не удивить, а странно не найти её в любом общественном месте, использование ИИ в данной области всё ещё вновинку.
Мы исследуем применение CV для различных бизнес-задач в сфере Public safety. В этом посте мы предлагаем вариант перевода видео с движущейся камеры в неподвижную систему координат для последующего анализа.
Полностью проект лежит на GitHub.
Допустим, у нас есть какое-то видео и мы хотим построить для него неподвижную систему координат, чтобы оценивать расположение объектов относительно друг друга.
Зачем это нужно? Очень часто в задачах public surveillance видео, которое нужно анализировать, снято на движущуюся камеру. Из-за этого возникает несколько проблем в определении положения объектов относительно друг друга:
- Непонятно, чем вызвано изменение координат объекта: движется камера или сам объект;
- При смене сцены из-за поворота камеры разные объекты могут получить одни и те же координаты, даже если объекты были статичными.

Рисунок 1 — Одинаковые объекты имеют разные координаты из-за движения камеры
Для того, чтобы построить неподвижную систему координат необходимо:
- Определить начало координат;
- Сопоставить между собой два последовательных фрейма;
- Найти преобразование, которое будет переводить координаты объекта на текущем фрейме в координаты относительно начала координат, при этом учитывать все движения камеры (поворот, перемещение, наклон и т.д.).

Рисунок 2 — проективное преобразование