Сейчас возможности Computer Vision (CV) полностью перекраивают ландшафт рынка Public Safety solutions. В то время, как традиционными системами видеонаблюдения уже не просто никого не удивить, а странно не найти её в любом общественном месте, использование ИИ в данной области всё ещё вновинку.
Как R&D департамент Oxagile, мы исследуем применение CV для различных бизнес-задач в сфере Public safety. В этом посте мы предлагаем вариант перевода видео с движущейся камеры в неподвижную систему координат для последующего анализа.
Допустим у нас есть какое-то видео и мы хотим построить для него неподвижную систему координат, чтобы оценивать расположение объектов относительно друг друга.
Зачем это нужно? Очень часто в задачах public surveillance видео, которое нужно анализировать, снято на движущуюся камеру. Из-за этого возникает несколько проблем в определении положения объектов относительно друг друга:
- Непонятно, чем вызвано изменение координат объекта: движется камера или сам объект;
- При смене сцены из-за поворота камеры разные объекты могут получить одни и те же координаты, даже если объекты были статичными.
![image](https://webcf.waybackmachine.org/web/20200821200532im_/https://habrastorage.org/webt/vl/hz/cs/vlhzcseene4pjbjnrty7elgly7i.png)
Рисунок 1- Одинаковые объекты имеют разные координаты из-за движения камеры
Для того, чтобы построить неподвижную систему координат необходимо:
- Определить начало координат;
- Сопоставить между собой два последовательных фрейма;
- Найти преобразование, которое будет переводить координаты объекта на текущем фрейме в координаты относительно начала координат, при этом учитывать все движения камеры (поворот, перемещение, наклон и т.д.).
![image](https://webcf.waybackmachine.org/web/20200821200532im_/https://habrastorage.org/webt/u0/p5/ks/u0p5kszog-tn-gdqis4o_z51ygk.png)
Рисунок 2-проективное преобразование