20차시 - [Advanced] 특정 손 모양 인식하기

leeda06·2023년 7월 20일
0

AIFriendsSchool

목록 보기
20/32

rps.py

rps.py는 손 모양 인식 프로그램으로, 손가락이 펴졌는지 접혔는지를 확인하여 손 모양을 인식하는 기능을 구현한 파일입니다.

  • distance(): 두 개의 랜드마크 좌표 사이의 거리를 구하는 함수입니다.

  • 손 인식을 위해 MediaPipe 패키지의 기능들을 사용합니다. 비디오 캡쳐 객체를 생성하고 연결을 확인한 뒤, 손을 인식하는 객체를 생성하여 hand라는 변수에 할당합니다.

  • while문으로 블록 안의 코드를 반복합니다. cap.read() 함수를 사용하여 카메라 데이터를 읽고 정상적으로 읽었는지 확인합니다. 영상을 반전시키고 RGB 색공간으로 변경한 뒤, 손 인식을 진행합니다.

  • 인식된 손가락들의 좌표 정보를 points 변수로 확인하여 손가락이 펴졌는지 확인합니다. fingers 변수는 펴진 손가락의 개수를 세는 변수입니다.

  • 엄지손가락이 폈다면 fingers 변수에 1을 더하고, 나머지 손가락들도 반복문을 통해 확인합니다. 그 다음 펴진 손가락의 개수를 확인하여 hand_shape에 알맞은 문자열을 대입합니다.

  • cv2.imshow() 함수를 사용하여 영상을 화면에 출력하고, 키보드의 입력을 받아 esc 키를 누르면 반복문을 종료합니다.

thumbs_up_ok.py

thumbs_up_ok.pyrps.py와 비슷한 기능으로, 엄지손가락과 OK 손 모양을 인식하는 프로그램입니다. 중복되는 부분은 생략되었고, 손가락의 펴진 정도를 확인하여 엄지손가락이 폈을 때는 "thumbs up"을, 엄지와 검지가 닿아있고 나머지 손가락이 펴져 있을 때는 "OK"를 hand_shape에 대입하는 기능을 구현하고 있습니다. cv2.putText() 함수를 사용하여 frame 이미지에 hand_shape 값이 씌워집니다.

profile
웹솔루션과

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

항상 좋은 글 감사합니다.

답글 달기