스포츠는 나날이 발전하고 있으며 이러한 스포츠를 지원하는 기술은 기하급수적으로 발전하고 있습니다. 많은 스포츠에서는 심판 호출과 게임의 전반적인 공정성을 개선하기 위해 컴퓨터 비전을 구현했습니다. 테니스에서는 카메라를 사용하여 공이 아웃되었는지 감지하고, 육상 경기에서는 카메라를 사용하여 누가 경주에서 승리했는지 감지하는 등 다양한 기능을 사용합니다. 그러나 상당한 규모로 그렇게 하지 못한 스포츠 중 하나는 농구입니다. 게다가 농구는 챔피언십을 바꾸는 심각한 심판 호출로 악명이 높은 스포츠 중 하나입니다. 농구 경기를 감시하기 위해 컴퓨터 비전을 구현하면 게임이 선수와 팬에게 훨씬 더 공정한 경험이 될 수 있을 뿐만 아니라 더 나은 기계 학습 모델 및 통계에 사용할 데이터를 수집하는 방법이 될 수도 있습니다.
AI 농구 심판은 실시간으로 농구를 감지하기 위해 3000개의 주석이 달린 이미지로 훈련된 맞춤형 YOLO(You Only Look Once) 기계 학습 모델을 사용하는 컴퓨터 비전 기반 시스템입니다. 또한 YOLO 포즈 추정을 활용하여 플레이어 신체의 키포인트를 감지합니다. 이 두 가지 기술을 결합함으로써 AI 농구 심판은 농구 경기에서 이동과 더블 드리블을 정확하게 식별할 수 있습니다.
AI 농구 심판 프로세스의 첫 번째 단계는 농구 감지입니다. YOLO 기계 학습 모델은 비디오 프레임 내에서 농구를 인식하도록 훈련되었습니다. 다양한 농구 자세, 조명 조건 및 배경이 포함된 3000개의 주석이 달린 이미지로 구성된 다양한 데이터 세트에 대해 훈련되었습니다. 런타임 동안 모델은 각 프레임을 실시간으로 분석하고 감지된 농구공 주위의 경계 상자를 예측합니다.
이동 및 이중 드리블을 감지하기 위해 AI 농구 심판은 YOLO 포즈 추정도 사용합니다. 이 기술을 통해 시스템은 플레이어 신체의 주요 지점을 식별하고 추적할 수 있습니다. 발목, 무릎, 엉덩이, 팔꿈치, 손목과 같은 주요 신체 관절은 선수의 움직임을 정확하게 결정하는 데 중요합니다.
농구공과 선수의 키포인트가 감지되면 AI 농구 심판은 사전 정의된 규칙 세트를 적용하여 여행 위반이 발생했는지 확인합니다. 연속된 프레임에 걸쳐 선수의 키포인트 위치와 움직임을 분석함으로써 시스템은 선수가 공을 드리블하지 않고 스텝을 밟았거나 드리블이나 패스 없이 허용된 거리 이상 이동한 사례를 감지할 수 있습니다.
마찬가지로, AI 농구 심판은 감지된 농구와 선수 키포인트를 활용하여 더블 드리블을 식별합니다. 선수의 키포인트의 위치와 움직임을 추적하고 농구와의 상호 작용을 분석함으로써 시스템은 다른 선수가 공을 만지거나 소유하지 않고도 선수가 공을 드리블하고 멈췄다가 다시 드리블을 시작하는 상황을 감지할 수 있습니다.
AI 농구 심판은 농구 경기 중 이동 및 더블 드리블 위반에 대한 실시간 피드백을 제공합니다. 이는 비디오 피드에서 감지된 위반 사항을 강조 표시하므로 심판이나 사용자가 시스템 결정의 정확성을 쉽게 식별하고 평가할 수 있습니다. 또한 시스템은 추가 분석 또는 검토를 위해 감지된 위반을 기록하는 로그 또는 경고를 생성할 수 있습니다.
AI 농구 심판은 사용자 정의 및 확장이 가능하도록 설계되었습니다. 사용자는 농구공의 감지 임계값, 이동 감도, 이중 드리블 감지 등 시스템 매개변수를 특정 요구 사항에 맞게 미세 조정할 수 있습니다. 또한, 다른 농구 위반이나 게임 상황을 해결하기 위해 추가 규칙 및 탐지 기능을 시스템에 통합할 수 있습니다.
전반적으로 AI 농구 심판은 YOLO 객체 감지 및 자세 추정을 포함한 최첨단 컴퓨터 비전 기술을 결합하여 실시간 농구 경기에서 이동 및 더블 드리블을 정확하게 감지합니다. 이는 심판, 코치 및 선수가 게임 플레이를 분석하고, 선수 성과를 향상시키며, 농구 경기의 전반적인 공정성을 향상시킬 수 있는 귀중한 도구를 제공합니다.
프로젝트 복제
VSCode에서 프로젝트 열기
새 conda 환경 만들기: conda create -n exercise-tracking python=3.11
Conda 환경 활성화: conda activate exercise-tracking
Ultralytics 패키지 설치: pip install ultralytics
시험해보고 싶은 Python 스크립트를 실행하세요. double_dribble.py
및 travel_detection.py
는 실시간 심판 호출을 제공하는 것입니다.
비디오 입력을 웹캠( cv2.VideoCapture(0)
) 또는 상대 경로가 있는 비디오 파일( cv2.VideoCapture('video.mp4')
)로 변경합니다.
이 파일은 농구 감지 모델의 핵심입니다. 안타깝게도 파일이 너무 커서 GitHub 저장 용량 한도를 초과했습니다. 여기에서 파일을 다운로드하세요: https://drive.google.com/file/d/1e6HLRuhh1IEmxOFaxHQMxfRqhzD92t3B/view?usp=sharing
https://news.gatech.edu/news/2023/07/25/tech-student-brings-artificial-intelligence-basketball-officiating
https://www.hackster.io/news/ai-basketball-referee-Detects-traveling-ed1ed45f8ccd
https://aifinityhub.com/2023/06/03/hoops-and-algorithms-ais-role-in-nbas-refereeing/
https://www.fry-ai.com/p/ai-basketball-referee-days-yelling-human-officials-soon
SingleStore 웹 세미나 https://www.singlestore.com/resources/webinar-how-to-build-an-openai-basketball-referee-system-with-computer-vision-2023-07/
초과 근무(7M+) https://www.instagram.com/reel/CtMd6LgAAMo/?igshid=ZmZiYTY5ZDNhOA%3D%3D
바르시 AI https://twitter.com/WGMImedia/status/1664205786644455424