Python 패키지 버전의 MediaPipe가 매우 쉽고 간단한 MLP로 손가락 제스처 추정

  • 이 문서는 TensorFlow Advent Calendar 2020의 9일째 기사입니다.

  • MediaPipe (Python 패키지 버전)



    Python 패키지 버전의 MediaPipe가 매우 쉽습니다.
    pip install mediapipe
    

    pip로 설치하고,,,
    import mediapipe as mp
    

    import하고,,,
    mp_hands = mp.solutions.hands
    hands = mp_hands.Hands(
        min_detection_confidence=0.7,
        min_tracking_confidence=0.5,
    )
    

    인스턴스 만들기,,,
    image = cv2.imread('XXXXXXXX.jpg')
    image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    results = hands.process(image)
    

    process()에 이미지 던지면, 손의 랜드마크를 겟트🦔!

    ※별도, 묘화 처리가 필요합니다.

    CPU 동작에서도 꽤 빠르다!
    오히려 GPU 대응하고 있지 않다고 생각한다

    MediaPipe (Python 패키지 버전)가 지원하는 기능 (2020/12/17 시점)



    Python 패키지 버전의 MediaPipe는 현재 다음 4가지 기능을 지원합니다.



    포즈

    얼굴 메쉬

    Holistic (Pose, Face Mesh, Hands를 한 번에 추정)


    MediaPipe (Python 패키지 버전) 샘플 프로그램



    위의 샘플 프로그램은 아래에 공개되어 있습니다.


    덤: 간단한 MLP로 손가락 제스처 추정



    너무 쉽게 손의 랜드마크를 잡을 수 있게 되었기 때문에,
    간단한 MLP와 함께 다음과 같은 프로그램도 만들어 보았습니다.
    모처럼 MediaPipe 자체의 동작이 빠르기 때문에 가능한 한 방해하지 않도록 Tensorflow-Lite
    로 만들고 있습니다.

    손의 랜드마크 좌표를 입력으로 3분류(파, 구, 가리키는)하는 모델과,
    가리킬 때의 궤적을 입력으로 4분류(정지, 시계방향, 반시계방향, 이동)하는 모델을
    함께 움직이고 있습니다.


    「파」「구」「가리키기」의 분류




    손의 랜드마크의 ID는 이런 느낌↑이므로,,,


    이런 느낌으로 전처리하고, ,,(ID:0이 결국 0,0이 되고 있는 것 조금 낭비입니다만,,,)


    이런 느낌의 간단한 MLP에 푹 빠져 있습니다 🦔

    「정지」 「시계 방향」 「반시계 방향」 「이동」의 분류




    검지 손가락의 좌표 이력을 16점 정도 취해, 이런 느낌에 전처리해, , ,


    이런 느낌의 간단한 MLP에 푹 빠져 있습니다 🦔

    프로그램



    위의 프로그램도 Github에서 공개합니다.
    적당한 MLP이므로, 더 오징어한 구조로 하면, 더 정밀도가 올라갑니다🦔

    좋은 웹페이지 즐겨찾기