피로그래밍 24기 4주차 컴퓨터 비전 세션 과제를 위한 스켈레톤 코드입니다.
피로그래밍 24기 4주차 화요일 과제: MediaPipe 기반 실시간 손동작 인식 및 분류 알고리즘 구현
- 컴퓨터 비전을 활용한 실시간 인식 기술 실습
MediaPipe의 Hand Landmarker는 사람 손에서 총 21개의 랜드마크를 감지합니다
감지할 수 있는 랜드마크를 기반으로 가위, 바위, 보를 인식하는 로직을 구현해주세요
-
실시간 스트림을 기준으로 참고해서 코드를 작성하시면 됩니다
공식 문서와 Colab 기반의 초기 세팅 가이드 과제 시작이 막막할 때 참고해주세요:
-
시작 부분은 기존과 동일합니다 - 본인 디렉토리 생성
-
프로젝트 클론 받기(bash)
git clone https://github.com/j2nii/Piro24-RPSGame.git
- 가상환경 세팅은 기존과 동일하게 해주시면 됩니다(bash)
python -m venv venv
- mediapipe 패키지 설치(bash)
pip install mediapipe
필요하다면 opencv-python 패키지도 설치해주세요
- hand_landmarker 모델 다운로드(bash)
curl -o hand_landmarker.task https://storage.googleapis.com/mediapipe-models/hand_landmarker/hand_landmarker/float16/1/hand_landmarker.task
- 이제 스켈레톤 코드를 활용하시면 됩니다!
-
visualization.pydraw_manual함수: landmarks 시각화 함수 공식 코랩 코드에서는mediapipe.solutions로 시각화를 진행 오류가 나는 경우 사용 가능한 cv2를 활용한 landmarks 시각화 함수- (참고)
print_RSP_result함수: 가위, 바위, 보 출력 함수 - 당연히 이 함수 말고 따로 코딩하셔도 됩니다 :)
-
webcam.py: openCV 기반 카메라 비디오 라이브 스트림 레거시 코드공식 문서의
Capture Video from Camera코드와 동일한 코드 입니다실행해보시면 본인의 노트북 환경에 있는 카메라의 비디오 화면이 뜰 거예요
- 창을 x 표시하는 게 아니라 키보드의 "q" 버튼을 눌러야 종료됩니다
-
main.py: main.py 실행했을 때, 다음과 같이 카메라 스트리밍 화면이 뜨고, 결과가 나오도록 해주세요- (당연히 모두 같을 필요는 없고 가위, 바위, 보를 잘 판별하고 화면에 출력되도록 하면 됩니다.)
가위 바위 보 


-
- 언어: Python 3.11+
- AI Framework: MediaPipe (Hand Landmarker)
- 컴퓨터 비전: OpenCV
