Os recursos de visão computacional (CV) estão agora remodelando completamente o cenário do mercado de soluções de segurança pública. Embora já não seja fácil surpreender ninguém com os sistemas tradicionais de videovigilância, e seja estranho não o encontrar em nenhum local público, o uso de IA nesta área ainda é uma novidade.
Estamos investigando a aplicação do CV a várias tarefas de segurança pública. Nesta postagem, oferecemos uma opção para traduzir o vídeo de uma câmera em movimento em um sistema de coordenadas fixas para análise posterior.
O projeto está totalmente no GitHub .
Digamos que temos algum tipo de vídeo e queremos construir um sistema de coordenadas fixas para ele, a fim de avaliar a localização dos objetos em relação uns aos outros.
Por que isso é necessário? Muitas vezes, nas tarefas de vigilância pública, o vídeo que precisa ser analisado é filmado com uma câmera em movimento. Por causa disso, vários problemas surgem na determinação da posição de objetos em relação uns aos outros:
- Não está claro o que causou a mudança nas coordenadas do objeto: a câmera ou o próprio objeto está se movendo;
- Quando a cena muda devido à rotação da câmera, diferentes objetos podem obter as mesmas coordenadas, mesmo se os objetos fossem estáticos.
Figura 1 - Objetos idênticos têm diferentes coordenadas devido ao movimento da câmera
Para construir um sistema de coordenadas fixas, você deve:
- Determine a origem das coordenadas;
- Compare dois quadros consecutivos entre si;
- , , (, , ..).
2 —
:
3 — matching visualization
:

- a, e — x y ;
- b, d — ( a e );
- c, f — ;
- g, h — .
, , . (x,y) (x',y') :
:
:
k- .
N — (f1,..., fN). . matching points , fk fk-1.
:
— ;
(Xk, Yk)=((x1k, y1k),…, (xnk, ynk)) – n matching points;
(X'k, Y'k) =((x'1k, y'1k),…, (x'nk, y'nk)) – n matching points ;
(X''k, Y''k) =((x''1k, y''1k),…, (x''nk, y''nk)) – k — n matching points , fk-1.
Hk – , fk-1 fk.
, .
(Xk, Yk) (X'k, Y'k). f1 fk , .. . Hk.
, (H1,…, Hk-1). Hk (Xk-1, Yk-1) (Xk, Yk), , .
3:

3 — ,
, . a :
x1k= x1k-1 — a, , a : x'1k = x1k — a, 3. , , .
?
(H1,…, Hk-1). , 1 k-1 mathcing points fk-1 . (1), , — .
, , , fk-1 fk, : (Xk-1, Yk-1) (Xk, Yk) ( (2)), (X'k-1, Y'k-1) (X''k, Y''k) Hk. , , (x1k, y1k) (x'1k, y'1k).
: , ( , , .. ), - , . .
:
- "" matching points ((x1k, y1k),… ,(x'nk, y'nk)),
- H, k- k-1 .
- ((x'1k, y'1k),… ,(x'nk, y'nk))
- :
- , ;
- . , ;
- - ( LENGTH_ACCOUNTED_POINTS len(matching points)), , , , .
, . .
"" , . , , , , . T , . , motion video segmentation.
- evenvizion_component.py
- evenvizion_visualization.py
- compare_evenvizion_with_original_video.py
evenvizion_component.py
, evenvizion_component.py. , json , fk-1 fk. , json , . , , .
- , json --path_to_original_coordinate recalculated_coordinates.json , .
json :
{"frame_no": [{"x1": x coordinate, "y1": y coordinate}, ...], ...}
evenvizion_component.py , 3 ( matching and heatmap --show_matches --visualize_fixed_coordinate_system ).
evenvizion_visualization.py compare_evenvizion_with_original_video.py .
README.
, .
:
matching points — matching visualization:
5 — matching visualization
.
, , (heatmap visualization):
6 — heatmap visualization
20 , , . , . : r=sqrt(x2+y2), heatmap_constant , : 0 — , 1 — .
7 — fixed_coordinate_system_visualization
json , , fixed_coordinate_system_visualization ( 7).
evenvizion_visualization.py compare_evenvizion_with_original_video.py , ( ). 8 9 .
8 — visualize_camera_stabilization
9 — original_video_with_EvenVizion
Known issues
N/a . matching points , , 90 , . video motion segmentation, , , static points motion points. — .
. 4 matching points, , 4 , =None. : none_H_processing True, : Hk=Hk-1. False, H — , . .
. . . :
- . , , (, ).
- findHomography() opencv. .
Assim, obtemos um componente que nos permite estimar a posição real dos objetos em relação uns aos outros, para traduzir as coordenadas do objeto em um sistema estacionário em relação ao quadro. Porque Nessa solução, o principal é avaliar a transformação dos aviões usando pontos-chave, então, como mostrado acima, o problema pode ser resolvido mesmo em más condições de filmagem (movimentos nítidos da câmera, condições climáticas difíceis, filmagem à noite, etc.).