농구 슛과 슈팅 포즈를 머신러닝으로 분석해보세요!
농구 슛을 분석하기 위해 물체 감지 에 초점을 맞춘 AI 기반 애플리케이션입니다. 이 앱을 통해 사용자는 분석을 위해 농구 비디오를 업로드하거나 API에 POST 요청을 제출할 수 있습니다. 결과에는 객체 감지 데이터를 기반으로 한 상세한 샷 및 포즈 분석이 포함됩니다. 이 프로젝트는 OpenPose를 활용하여 신체 키포인트 및 기타 측정항목을 계산합니다.
AI 농구 분석은 인공 지능을 활용하여 선수의 움직임, 슛 정확도 및 포즈 데이터를 감지하여 농구 슛을 분석합니다. 인간의 자세 추정을 위해 널리 사용되는 OpenPose 프레임워크를 사용합니다. 개발자이든 스포츠 분석가이든 이 프로젝트는 AI가 농구 분석을 자동화하고 향상할 수 있는 방법을 탐색하는 데 도움이 됩니다.
중요 : 이 프로젝트는 OpenPose의 라이선스를 사용하므로 비상업적 연구 용도로만 사용됩니다 . 자세한 내용은 라이센스를 검토하십시오.
인간 자세 추정이 처음이라면 OpenPose의 주요 개념을 분석한 이 요약 문서를 확인하세요.
프로젝트 사본을 얻으려면 다음 명령을 실행하십시오.
자식 클론 https://github.com/chonyy/AI-basketball-analytic.git
프로젝트를 실행하기 전에 다음을 실행하여 필요한 모든 종속성이 설치되었는지 확인하세요.
pip 설치 -r 요구사항.txt
참고 : 이 프로젝트에서는 특히 비디오 분석을 위해 OpenPose를 효율적으로 실행하려면 CUDA를 지원하는 GPU가 필요합니다.
모든 것이 설정되면 간단한 명령을 사용하여 프로젝트를 로컬에서 호스팅할 수 있습니다.
파이썬 app.py
그러면 분석을 위해 농구 비디오나 이미지를 업로드할 수 있는 애플리케이션이 로컬로 실행됩니다.
프로젝트를 로컬로 실행하지 않으려면 다음 대안을 시도해 볼 수 있습니다.
hardik0 덕분에 자체 GPU 없이도 Google Colab 에서 AI 농구 분석을 실험할 수 있습니다.
이 프로젝트는 Heroku에서도 사용할 수 있지만 TensorFlow와 같은 과도한 계산은 제한된 리소스로 인해 Heroku에서 시간 초과 오류가 발생할 수 있습니다. 최상의 성능을 위해서는 앱을 로컬에서 실행하는 것이 좋습니다.
다음은 프로젝트의 주요 구성 요소에 대한 분석입니다.
app.py : 웹 애플리케이션을 실행하기 위한 기본 파일입니다.
/static : 이미지, CSS 및 JavaScript와 같은 모든 정적 자산을 포함합니다.
/models : 객체 감지를 위해 사전 훈련된 모델이 포함된 디렉터리입니다.
/scripts : 데이터 처리 및 모델 훈련을 위한 유틸리티 스크립트입니다.
입력 비디오에서 농구 슛을 분석하여 성공 및 실패 슛을 결정합니다. 다양한 색상의 키포인트는 다음을 나타냅니다.
파란색 : 정상 상태의 농구공 감지
보라색 : 미결정샷
녹색 : 성공적인 샷
빨간색 : 놓친 샷
프로젝트는 OpenPose를 사용하여 슛 중 선수의 팔꿈치와 무릎 각도를 분석하여 릴리스 각도와 시간을 결정하는 데 도움을 줍니다.
이 기능은 샷 감지를 시각화하여 각 감지에 대한 신뢰 수준과 좌표를 표시합니다.
프로젝트에는 감지를 위한 REST API가 포함되어 있어 POST 요청을 통해 이미지를 제출하고 감지된 키포인트 및 기타 데이터가 포함된 JSON 응답을 받을 수 있습니다.
POST /Detection_json
키 : 이미지
값 : 입력 이미지
이 모델은 COCO 데이터세트 로 훈련된 Faster R-CNN 아키텍처를 기반으로 합니다. 자세한 내용은 TensorFlow Model Zoo를 참조하세요.
더 나은 성능을 위해 모델을 YOLOv4로 전환하세요.
잘못된 탐지를 필터링하기 위해 SORT 추적 알고리즘을 구현합니다.
보다 명확한 결과를 위해 시각화 기능을 개선합니다.
더 나은 웹 앱 통합을 위해 효율성을 최적화합니다.
우리는 커뮤니티의 기여를 환영합니다! 참여 방법은 다음과 같습니다.
저장소 포크
브랜치 생성 : git checkout -b feature/your-feature-name
변경 사항 커밋 : git commit -m 'Add some feature'
브랜치로 푸시 : git push origin feature/your-feature-name
끌어오기 요청 열기
기여에 대한 자세한 내용은 Make A Pull Request를 참조하세요.