올레올레 "Face Detection"상자 만들기

8139 단어 ChoregraphePepper

소개


  • Pepper 튜토리얼 (7) : 이미지 인식 > 기본 얼굴 인식

  • 이쪽의 「인식한 얼굴의 수를 말한다」라고 하는 동작을 시도하고 있어, 왠지 「Face Detection」박스의 소스를 들여다 보았습니다만, 왜 이것만의 코드로 이 기능을 할 수 있을 것이라고, ( 그 때는) 이상하게 생각했습니다.

    구조를 확인해 보는 것과, 독자 박스를 작성해 보는 것과 함께, 「Face Detection」동등의 박스를 자작해 보았습니다.

    Face Detection 상자 확인



    먼저 "Face Detection"상자의 테두리가 있으며, 그 안에 "Count Det. Faces"가 배치되어 있습니다.

    Face Detection 상자





    Count Det. Faces 상자



    그건 그렇고, Mac에서 스크린 샷을 찍는 데 command + shift를 누르면 이미지와 같은 팁이 나오는 것 같습니다.



    Count Det. Faces 코드


    class MyClass(GeneratedClass):
        def __init__(self):
            GeneratedClass.__init__(self, False)
    
        def onLoad(self):
            self.nFacesDetected = -1
    
        def onUnload(self):
            #puts code for box cleanup here
            pass
    
        def onInput_onStart(self, p):
            if(len(p) > 0):
                if(self.nFacesDetected != len(p[1]) -1): # an additional array has been placed at the end for time
                    self.nFacesDetected = len(p[1]) -1  # filtered info and has to be substracted when counting faces
                    if(self.nFacesDetected != 0):
                        self.onFaceDetected( self.nFacesDetected )
                    else:
                        self.onNoFace()
            else:
                if(self.nFacesDetected != 0):
                    self.nFacesDetected = 0
                    self.onNoFace()
    
        def onInput_onStop(self):
            pass
    

    올레올레 "Face Detection"상자 만들기



    oreore Face Detection 상자 만들기



    상자를 배치하는 창에서 컨텍스트 메뉴

    새 상자 만들기 > 다이어그램...



    이름, 개요를 입력하고 출력에서 ​​[+]를 눌러 다음 항목을 추가합니다.


    이름
    유형
    자연


    numberOfFaces

    즉시

    onNoFace
    "밴"
    즉시


    이제 "Face Detection"상자와 동등한 "프레임만"을 할 수 있었습니다.



    oreore Count Det. Faces 상자 만들기



    oreore Face Detection 상자의 컨텍스트 메뉴

    새 상자 만들기 > Python...



    이름, 개요를 입력하고 출력에서 ​​[+]를 눌러 다음 항목을 추가합니다.


    이름
    유형
    자연


    onFaceDetected

    onStopped

    onNoFace
    "밴"
    onStopped


    OK를 눌러 닫은 후 onStart의 입력 부분에서 컨텍스트 메뉴에서 Edit input을 선택하고 Type을 Dynamic으로 변경합니다.

    oreore Count Det. Faces 코드 편집



    "Count Det. Faces"에서 그대로 복사합니다.

    입출력 연결



    지금까지 와서 마침내 "Count Det. Faces"의 입력이 onStart가 아니라 이상한 곳으로 연결되어 있다는 것을 깨달았습니다.



    ALMemory 라는 기구를 개입시켜, 각종 API 의 이벤트, 값을 취득할 수 있는 것 같습니다.
  • Pepper API를 사용한 연령 인식 > ALMemory를 통한 이벤트, 값 획득

  • 그러면 ALMemory에서 이벤트 추가 [+]를 눌러 FaceDetected를 확인하여 연결을 만들고 입출력을 연결합니다.
    (Pepper 실제 기계가 아니면 FaceDetected는 나오지 않는 것 같습니다)



    "Face Detection"에서 "oreore Face Detection"에 다시 연결합니다.



    오레올레 버전에서 실행



    오리지널과 동등한 움직임을 하는 것을 확인했습니다.

    감상


  • "Face Detected"박스에서는 얼굴 인식 결과를 ALMemory 경유로 받아서 분류하는 것만 하는 처리인 것에 납득했습니다.
  • 그 밖에 어떤 이벤트가 있는지 확인해 봅니다. 재미.
  • 좋은 웹페이지 즐겨찾기