ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Player Tracking] A Computer Vision driven Squash Players Tracking System 논문 리뷰
    Paper review/Player Tracking 2021. 7. 27. 20:44

    https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=8379085

     

    주요 기여:

    - 전체적인 sports 경기 분석 방법론 제안.

    - localization 및 tracking 인터페이스 개발.


     

    0. Abstract

    본 논문은 squash player를 tracking 하여 경기력을 분석하여 경기력 개선 방향을 탐색할 수 있는 기회를 제공하는 비디오 분석 시스템 제안.

    이미지 처리를 통해 player의 위치 파악 및 추적 후 궤적 파악.

     

    3. Methodology

    Squash player tracker 시스템 아키텍처

    1. squash 경기를 비디오로 캡처

    2. 매치 완료 후 무선 통신을 통해 local 컴퓨터 혹은 서버로 전송

    3. 경기 영상을 프레임으로 변환

    4. 변환된 영상에 이미지 처리 알고리즘을 적용하여 player 위치 탐지

    5. player의 시간 기반 tracking 일러스트 시각화

     

    3.1. Video Capturing

    GoPro HERO3+ Silver Edition 카메라 사용하여 video capturing.

     

    3.2. Frames extraction

    처리 전에 FFMPEG 도구를 사용하여 녹화된 비디오를 별도의 프레임으로 변환. (FFmpeg은 디지털 음성 스트림과 영상 스트림에 대해서 다양한 종류의 형태로 기록하고 변환하는 컴퓨터 프로그램. 비디오 파일의 경우 비디오의 프레임률 변경, 비디오 자르기, 크기 조정을 하여 프레임을 추출할 수 있음.)  

     

    본 시스템에서는 input 비디오를 프레임으로 분리하고, 각 프레임은 플레이어의 위치를 찾기 위한 이미지 처리 수행.

     

    3.3. Image processing

    c/c++로 구현하고 OpenCV 라이브러리 활용.

     

    3.4. Data logging

    본 시스템의 핵심은 경기가 끝날 때마다 player의 position을 기록하는 것.

    Aoache와 MySQL을 사용해 기록 (XAMPP 로컬 서버를 사용).

     

    4. System Implementation

    경기 중에 캡처된 비디오는 FFMPEG를 사용하여 프레임으로 분할.

    → 각 프레임은 시스템에 input 되어 player detection.

    → 본 알고리즘이 발을 detect 하여 위치 추적.

    → DB에 저장.

     

    4.1. Camera Point of View

    카메라의 위치와 설정은 2가지 옵션이 가능.

    • 옵션 1: 카메라를 코트 위에 고정하며 렌즈를 코트 쪽으로 향하게 함. 
    • 옵션 2: 대부분의 squash 코트에서 선수들을 다 탐지할 수 있도록 카메라 롤을 조정하여 고정. 

    우리는 옵션 2가 더 실용적이고 더 나은 비디오 녹화 품질을 제공한다고 판단하여 옵션 2를 사용.

    경기 기록이 완료되면, 프레임이 input 되어 플레이어의 발에 해당하는 픽셀을 식별하고 predefined image와 비교.

    predefined image는 코트에 가상으로 그려진 수평, 수직 라인으로 구성.


    본 시스템은 각 player의 x, y 좌표가 수집되면 XAMPP를 사용하여 DB에 저장 후 모든 프레임을 검사 시 DB에서 데이터를 가져와 squash 코트에서 각  player의 움직임을 시각화.

    제안 시스템의 run-time 흐름

    4.2. Players detection

    FFMPEG를 사용하여 추출한 이미지 프레임에 이미지 처리 적용.

    OpenCV 라이브러리 내에서 구현된 HOG(Histogram of Oriented Gradients) 알고리즘을 사용하여 플레이어를 감지.

    HOG는 정확하고 높은 탐지율을 갖고, 카메라에 방향에 영향을 받지 않음. 

    하지만 실시간 처리는 불가능함. (본 시스템은 실시간으로 처리되지 않음으로 무관함.)

     

    input은 하나의 프레임. 

    detection 과정을 줄이고 정확도를 높여 높은 양의 positive detection을 얻을 수 있도록 HOG 알고리즘 조정.

    EX. player detection을 담당하는 detectMultiScale() 함수의 hit_threshold 매개변수를 미세 조정. 이 매개 변수는 입력 HOG feature와 SVM의 classification plane 사이의 거리 제어. 거리가 이 임계값을 초과하면 detection 거부. 그러나 거리가 이 임계값보다 작으면 detection 허용.
    우리는 이 값을 조정하고 두 명의 player가 관찰되는 100개의 프레임에서 검출 결과에 미치는 영향을 관찰 (표 1).

    hit_threshold 변수 조정 결과

    실험을 통해 임계값을 0에서 0.25로 증가시킬 때 3개 이상의 detection이 발생하던 곳에서 잘못된 결과를 제거하여 player의 detection 프로세스를 향상시킨다는 결론을 내림. 그러나 0.25 이상으로 늘리면 positive detection 결과 수가 감소할 수 있음. 따라서 임계값을 0.25로 조정.

    image에 HOG 알고리즘을 적용한 결과

     

    4.3. Players localization

    player의 localization은 detection 된 초록색 사각형 중 하단의 1/4 지점으로 설정 (점 하나로 위치 인식).

     

    앞서 player의 localization 좌표를 Figure 5의 행과 열에 매핑. Figure 5는 Figure 4를 기준으로 계산되었고, 한 블록은 1m x 1m의 크기.

    선이 그어진 빈 코트의 이미지를 이용하여 각 블록의 모서리에 해당하는 픽셀을 보여주는 1층 가상 모델을 구성.

    평면 코트 좌표 (X, Y)

    player의 발의 위치에 해당하는 (x, y) 쌍을 이 모델과 매핑하여 발 위치의 행, 열 결정.

    EX) player의 localization 좌표가 (550,160) 일 경우, 해당 플레이어는 평면 코트 좌표에서 3행과 6열에 위치한다는 것. 3행, 6열에 있는 player는 정면 벽에서 약 3m, 좌측 벽에서 약 6m 떨어져 있음.

     

    몇 번의 랜덤 frame에서 테스트 수행 시 85%의 정확도로 player localization. negative result frame은 1m (1행/1열)의 오차까지 발생.

     

    4.4. Player Identification

    player들의 옷 색상을 통해 구별.

    이미지에서 image color’s histograms manipulation을 기반으로 수행. 기준 색상 히스토그램을 계산 후 input frame의 Histogram과 비교하여 유사성을 기준으로 판단.

    100개의 랜덤 frame에서 테스트 수행 시 96%의 정확도로 player를 구별.

     

    4.5. Trajectory illustration

    코트에 player의 이동경로를 표시하는 인터페이스 개발.

     

    5. Conclusion

    squash player의 경기력을 모니터하고 향상시키기 위한 시스템 제안.

    HOG (Histogram of Oriented Gradients) 알고리즘을 통해 player를 detection 하고 color’s histograms manipulation을 통해 player 구분.

     

    댓글

Designed by Tistory.