본문 바로가기
축구관련 코딩

Match Analyzer(based on OD & Opencv)

by Candy Lee 2021. 1. 1.

안녕하세요

 

Candy Lee입니다.

 

이번 게시글은 2020년 3월부터 2020년 10월달 까지 약 7달에 걸쳐 만들어본

 

축구 영상 분석 프로젝트 입니다.

 

 

프로젝트의 전반적 흐름

 

 

 

깃허브 주소 : github.com/gang3039/Custom-TF-OD-Opencv-soccer-analysis

 

 

 

 

 

 

1. 축구 선수만 인식하는 Model 생성

 

저는 완전 무지식? 인 상태에서 이러한 프로젝트를 떠올리게 되었는데 어떻게 할지

 

너무도 막막하더라구요.. 그래서 제가 참고해 본 자료는 

 

www.youtube.com/watch?v=COlbP62-B-U

 

유튜버 SendTex 님의 6개 강의였습니다! 너무 설명을 자세히 잘해주셔서 감사했어요!

 

그래서 해당 콘텐츠 내용을 바탕으로 저도 처음으로 저만의 Image Dataset을 만들어서 선수만을 인식하는

 

Model을 만들어서 배포해 보았습니다

 

 

그러나! 직접 학습 데이터를 레이블링 해야했고 조금 번거로웠습니다..ㅠㅠ 그래도 공부하는 셈 치고 해보았는데요 하하

 

[Outline]
1.Labeling Image for Player Detection

2.Dataset conversion

 

 

3.Training Custom Player Detection Model

 

Trained Models

Custom OD 모델을 만들어서 배포했고 이를 영상과 병합해서 돌려보았습니다.

 

그 결과 이렇게 나왔습니다. 선수 인식은 잘 되는 것 같네요!

 

 

 

 

2. Team Segmentation of Detected Players

 

위에서 보셨던 결과처럼 인식된 부분들은 Draw_box를 통해서 localization이 시각화 됩니다!

 

이렇게 localization된 box들 내부의 픽셀값 처리를 통해서 홈팀과 어웨이팀을 분리할 수 있었습니다!

 

 

 

 

3. ROI based Real-time formation Estimation & Show current status

 

축구에서는 보다 나은 전술을 사용하기 위해서 실시간 포메이션 정보가 필요한데요,

 

저는 이 포메이션 정보를 영상의 4~6개의 ROI 설정을 통한 인원수 파악을 바탕으로 해서 

 

현재 포메이션에 대한 정보를 화면 아래에 시각화 했습니다.

 

또한 선수간의 거리를 Centroid 기반과 축구장의 실제 크기간의 ratio 변환을 통해서 측정하여 시각화 하였습니다.

 

Formation Calc Code

그리고 현재 축구 상황이 Home팀과 Away팀 중에서 어떤 쪽이 더 공격적인지를 판단하기 위해

Optical Flow를 사용하였습니다

 

 

 

 

 

최종 결과는 아래의 이미지를 통해 보실 수 있습니다.

#Home Team Attack

#Home Team Attack & Build Up

 

#Away Team Attack

 

#Away Team Attack & Build Up

 

 

 

최종 콘솔 출력

 

이상으로 2020년에 제가 구현했던 Match Analyzer 포스팅을 마치도록 하겠습니다.

 

감사합니다.

반응형

댓글