동작 인식 작업 가이드

MediaPipe 동작 인식기 작업을 통해 실시간으로 손동작을 인식할 수 있습니다. 인식된 손 동작 결과를 감지된 손입니다. 이 작업을 사용하여 카메라에서 특정 손동작을 인식할 수 있습니다. 해당 동작에 해당하는 애플리케이션 기능을 호출할 수 있습니다.

이 작업은 머신러닝 (ML) 모델을 사용하여 이미지 데이터를 대상으로 작동하며, 정적 데이터 또는 연속 스트림입니다. 작업에서 핸드 랜드마크를 출력하며 이미지 좌표, 세계 좌표의 손 랜드마크, 잘 쓰는 정도 (왼손/오른손), 여러 손의 손 동작 카테고리를 볼 수 있습니다.

<ph type="x-smartling-placeholder"></ph> 직접 해 보세요.

시작하기

다음 구현 가이드 중 하나를 따라 이 작업을 사용해 보세요. 확인할 수 있습니다 이 플랫폼별 가이드에서는 기본적인 권장 모델을 사용하여 작업을 구현하고 코드 예제를 제공 다음 권장 구성 옵션을 사용하세요.

를 통해 개인정보처리방침을 정의할 수 있습니다.

태스크 세부정보

이 섹션에서는 기능, 입력, 출력, 구성을 설명합니다. 이 태스크의 옵션 중 하나입니다.

기능

  • 입력 이미지 처리 - 처리에는 이미지 회전, 크기 조절, 정규화 및 색상 공간 변환이 있습니다.
  • 점수 임곗값 - 예측 점수를 기준으로 결과를 필터링합니다.
  • 라벨 허용 목록 및 차단 목록 - 동작 카테고리를 지정합니다. 모델에서 인식할 수 있습니다.
작업 입력 작업 출력
동작 인식기는 다음 데이터 유형 중 하나의 입력을 허용합니다.
<ph type="x-smartling-placeholder">
    </ph>
  • 정지 이미지
  • 디코딩된 동영상 프레임
  • 라이브 동영상 피드
동작 인식기는 다음과 같은 결과를 출력합니다.
<ph type="x-smartling-placeholder">
    </ph>
  • 손 동작의 카테고리
  • 감지된 손의 잘린 정도
  • 이미지 좌표에서 감지된 손의 랜드마크
  • 세계 좌표에서 감지된 손의 랜드마크

구성 옵션

이 작업에는 다음과 같은 구성 옵션이 있습니다.

옵션 이름 설명 값 범위 기본값
running_mode 작업의 실행 모드를 설정합니다. 다음과 같은 세 가지 모드:

IMAGE: 단일 이미지 입력 모드입니다.

동영상: 동영상의 디코딩된 프레임 모드입니다.

LIVE_STREAM: 입력의 라이브 스트림 모드 데이터를 수집할 수 있습니다. 이 모드에서는 resultListener가 결과를 수신하도록 리스너를 설정하기 위해 호출 있습니다.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
num_hands 감지 가능한 최대 손 개수 GestureRecognizer Any integer > 0 1
min_hand_detection_confidence 손 감지를 위한 최소 신뢰도 점수입니다. 손바닥 감지 모델에서 성공적인 것으로 간주됩니다. 0.0 - 1.0 0.5
min_hand_presence_confidence 손에 있는 손 존재 점수의 최소 신뢰도 점수입니다. 특징 감지 모델입니다. 동작 인식기의 동영상 모드와 라이브 스트림 모드에서, 손 랜드마크 모델의 손 인기척 점수가 아래인 경우 손바닥 감지 모델을 트리거합니다. 그렇지 않은 경우 경량 손 추적 알고리즘을 사용하여 후속 랜드마크 감지를 위한 시곗바늘입니다. 0.0 - 1.0 0.5
min_tracking_confidence 고려해야 할 손 추적의 최소 신뢰도 점수입니다. 있습니다. 이것은 네트워크 안의 시곗바늘 사이의 경계 상자 IoU 임곗값입니다. 현재 프레임과 마지막 프레임입니다. 다음 기기의 동영상 모드 및 스트림 모드 동작 인식기, 추적에 실패하면 동작 인식기가 손을 트리거함 있습니다 그렇지 않으면 손 감지를 건너뜁니다. 0.0 - 1.0 0.5
canned_gestures_classifier_options 미리 준비된 동작 분류기 동작을 구성하는 옵션입니다. 미리 준비된 동작은 ["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"]
입니다.
  • 표시 이름 언어: TFLite 모델 메타데이터를 통해 지정된 표시 이름에 사용할 언어입니다(있는 경우).
  • 최대 결과: 반환할 최고 점수 분류 결과의 최대 개수입니다. < 0이면 사용 가능한 모든 결과가 반환됩니다.
  • 점수 임곗값: 이 점수보다 낮으면 결과가 거부되는 점수입니다. 0으로 설정하면 사용 가능한 모든 결과가 반환됩니다.
  • 카테고리 허용 목록: 카테고리 이름의 허용 목록입니다. 비어 있지 않으면 카테고리가 이 세트에 없는 분류 결과가 필터링됩니다. 차단 목록과 상호 배타적입니다.
  • 카테고리 차단 목록: 카테고리 이름의 차단 목록입니다. 비어 있지 않으면 카테고리가 이 집합에 속한 분류 결과가 필터링됩니다. 허용 목록과 상호 배타적입니다.
    • 표시 이름 언어: any string
    • 최대 결과 수: any integer
    • 점수 기준: 0.0-1.0
    • 카테고리 허용 목록: vector of strings
    • 카테고리 차단 목록: vector of strings
    • 표시 이름 언어: "en"
    • 최대 결과 수: -1
    • 점수 기준: 0
    • 카테고리 허용 목록: 비어 있음
    • 카테고리 차단 목록: 비어 있음
    custom_gestures_classifier_options 맞춤 동작 분류 기준 동작을 구성하는 옵션입니다.
  • 표시 이름 언어: TFLite 모델 메타데이터를 통해 지정된 표시 이름에 사용할 언어입니다(있는 경우).
  • 최대 결과: 반환할 최고 점수 분류 결과의 최대 개수입니다. < 0이면 사용 가능한 모든 결과가 반환됩니다.
  • 점수 임곗값: 이 점수보다 낮으면 결과가 거부되는 점수입니다. 0으로 설정하면 사용 가능한 모든 결과가 반환됩니다.
  • 카테고리 허용 목록: 카테고리 이름의 허용 목록입니다. 비어 있지 않으면 카테고리가 이 세트에 없는 분류 결과가 필터링됩니다. 차단 목록과 상호 배타적입니다.
  • 카테고리 차단 목록: 카테고리 이름의 차단 목록입니다. 비어 있지 않으면 카테고리가 이 집합에 속한 분류 결과가 필터링됩니다. 허용 목록과 상호 배타적입니다.
    • 표시 이름 언어: any string
    • 최대 결과 수: any integer
    • 점수 기준: 0.0-1.0
    • 카테고리 허용 목록: vector of strings
    • 카테고리 차단 목록: vector of strings
    • 표시 이름 언어: "en"
    • 최대 결과 수: -1
    • 점수 기준: 0
    • 카테고리 허용 목록: 비어 있음
    • 카테고리 차단 목록: 비어 있음
    result_callback 분류 결과를 수신하도록 결과 리스너를 설정합니다. 동작 인식기가 라이브 스트림 모드일 때 비동기식으로 호출됩니다 달리기 모드가 LIVE_STREAM로 설정된 경우에만 사용할 수 있습니다. ResultListener 해당 사항 없음 해당 사항 없음

    모델

    동작 인식기는 두 개의 사전 패키징된 모델 번들이 포함된 모델 번들을 사용합니다. 동작 분류 모델 번들을 살펴보겠습니다. 이 랜드마크 모델이 손과 손의 모양, 동작 감지 인식 모델은 손의 기하학적 구조를 기반으로 동작을 인식합니다.

    <ph type="x-smartling-placeholder">
    모델 이름 입력 형태 양자화 유형 모델 카드 버전
    <ph type="x-smartling-placeholder"></ph> HandGestureClassifier 192 x 192, 224 x 224 부동 소수점 수 16 <ph type="x-smartling-placeholder"></ph> 정보 <ph type="x-smartling-placeholder"></ph> 최신 버전

    이 작업에서는 Model Maker를 사용하여 모델 번들을 수정할 수도 있습니다. Model Maker를 사용하여 이 태스크의 모델을 맞춤설정하는 방법에 대한 자세한 내용은 동작 인식기의 모델 맞춤설정 페이지를 참조하세요.

    핸드 랜드마크 모델 번들

    손 랜드마크 모델 번들이 21개의 손가락 관절에 대한 핵심 지점의 위치를 감지합니다. 좌표에 저장됩니다. 모델은 약 30, 000개의 실제 이미지 및 여러 개의 렌더링된 합성 손 모델을 학습시키는 작업도 반복해야 합니다 아래 21개 랜드마크의 정의를 참고하세요.

    손 랜드마크 모델 번들에는 손바닥 감지 모델이 포함되어 있습니다. 감지 모델을 학습시킵니다. 손바닥 감지 모델은 손바닥이 닿는 부분을 인식 모델에서 손이 완전히 새로운 이미지를 손바닥 감지 모델에서 정의한 잘린 손 이미지의 랜드마크입니다.

    손바닥 감지 모델은 동영상 모드 또는 라이브에서 훨씬 더 많은 시간이 소요되므로 스트림 모드에서는 감지된 손이 정의한 경계 상자를 사용하여 동작 인식기가 사용합니다. 현재 프레임에 있는 랜드마크를 옮겨 다음 프레임의 손이 닿는 영역을 있습니다. 이렇게 하면 동작 인식기가 손바닥 감지 모델을 트리거하는 시간이 줄어듭니다. 손 랜드마크 모델이 필요한 부분을 충분히 식별할 수 없을 때만 손이 있거나 손을 추적하지 못한 경우 손바닥 감지 모델이 손을 다시 배치할 수 있습니다.

    동작 분류 모델 번들

    동작 분류 모델 번들은 다음과 같은 일반적인 손 동작을 인식할 수 있습니다.

    0 - Unrecognized gesture, label: Unknown
    1 - Closed fist, label: Closed_Fist
    2 - Open palm, label: Open_Palm
    3 - Pointing up, label: Pointing_Up
    4 - Thumbs down, label: Thumb_Down
    5 - Thumbs up, label: Thumb_Up
    6 - Victory, label: Victory
    7 - Love, label: ILoveYou
    

    모델이 손을 감지하지만 동작을 인식하지 못하는 경우 인식기가 'None' 결과를 반환합니다. 모델이 손을 감지하지 못하면 동작 인식기가 빈 상태를 반환합니다.

    동작 분류 모델 번들에는 2단계 신경망 파이프라인이 포함되어 있습니다. 동작 임베딩 모델이 있고 그 뒤에 동작 분류 모델이 있습니다. 동작 분류 모델 카드에서 자세한 내용을 확인하세요.

    동작 임베딩 모델이 이미지 특성을 특징 벡터로 인코딩합니다. 분류 모델은 특성을 취하는 경량 동작 분류기임 벡터를 입력합니다. 제공된 동작 분류 모델 번들에는 미리 준비된 제스처 분류기를 통해 도입된 일반적인 손동작 7가지를 감지합니다. 참조하세요. 모델 번들을 확장하여 학습을 통해 더 많은 동작을 인식할 수 있음 자체 맞춤 동작 분류 기준을 구현합니다. 자세한 내용은 다음을 참고하세요. 커스텀 모델 섹션

    미리 준비된 동작 분류기와 맞춤 동작 분류기가 둘 다 있는 동작 인식기 두 분류자가 동일한 동작을 인식하고 있다면 파악할 수 있습니다. 하나의 동작 분류기에서만 동작을 인식하는 경우 동작 인식기는 인식된 동작을 직접 출력합니다.

    작업 업계 기준치

    다음은 위 파이프라인을 기반으로 한 전체 파이프라인의 작업 벤치마크입니다. 모델을 학습시키는 작업도 반복해야 합니다 지연 시간 결과는 CPU / GPU

    모델 이름 CPU 지연 시간 GPU 지연 시간
    GestureRecognizer 16.76밀리초 20.87밀리초

    커스텀 모델

    본 가이드에서 제공하는 모델의 기능을 개선하거나 변경하려는 경우 Model Maker를 사용하여 기존 모델을 수정할 수 있습니다. 사용된 커스텀 모델 MediaPipe가 포함된 파일은 모델 번들 파일인 .task 형식이어야 합니다. 나 Model Maker를 사용하여 이 작업에 제공된 모델을 수정하는 것이 좋습니다. 해답을 찾을 수 있습니다

    이 작업을 위한 모델 맞춤설정에 대한 자세한 내용은 다음을 참조하세요. 동작 인식기의 모델 맞춤설정