자체 제작 얼굴 감지 API를 작성하고 IBM Cloud에 게시

OpenCV를 사용하면 심층 학습 기반 얼굴 감지를 구현할 수 있습니다. 이 기사에서는 여기 문서의 코드를 기반으로 이미지에서 사람의 얼굴을 감지하고 성별, 연령을 식별하는 API를 작성하고 IBM Cloud에 게시하는 단계를 소개합니다.

1. 코드 및 모델 얻기



아래에서 코드를 가져옵니다.
$ git clone https://github.com/schiyoda/FaceDetection.git

성별 및 연령 추정 모델은 위의 기사에 아래 그림과 같이 링크가 있으므로 코드와 같은 폴더에 다운로드합니다.



2. 로컬에서 실행



다음 명령으로 실행할 수 있습니다.
$ python run_server.py 
 * Flask starting server...
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

얼굴 검출은 이미지 파일 또는 이미지의 URL을 POST함으로써 실행 가능합니다.
  • 이미지 파일을 POST
  • $ curl -X POST -F [email protected] http://0.0.0.0:5000/detectFace
    
  • 이미지 URL POST
  • curl -X POST -F url=https://images.pexels.com/photos/1470110/pexels-photo-1470110.jpeg http://0.0.0.0:5000/detectFace
    

    두 방법 모두 다음과 같은 응답을 반환합니다.
    {
      "faces": [
        {
          "age": {
            "confidence": "0.996", 
            "max": "12", 
            "min": "8"
          }, 
          "face_location": {
            "height": 505, 
            "left": 1789, 
            "top": 1023, 
            "width": 415
          }, 
          "gender": {
            "confidence": "1.000", 
            "gender": "Male"
          }
        }, 
        {
          "age": {
            "confidence": "0.995", 
            "max": "2", 
            "min": "0"
          }, 
          "face_location": {
            "height": 444, 
            "left": 1014, 
            "top": 1057, 
            "width": 380
          }, 
          "gender": {
            "confidence": "1.000", 
            "gender": "Male"
          }
        }, 
        {
          "age": {
            "confidence": "0.999", 
            "max": "32", 
            "min": "25"
          }, 
          "face_location": {
            "height": 526, 
            "left": 1402, 
            "top": 463, 
            "width": 413
          }, 
          "gender": {
            "confidence": "0.943", 
            "gender": "Female"
          }
        }
      ]
    }
    

    코드에는 포함되지 않지만 OpenCV에서 시각화하면 다음과 같은 결과를 얻을 수 있습니다.



    3. IBM Cloud에 배치



    IBM Cloud의 Cloud Foundry 앱으로 배치하려면 다음을 수행하십시오.
    $ ibmcloud login
    $ ibmcloud target --cf
    $ ibmcloud app push アプリ名
    

    배포 후에는 다음과 같이 실행할 수 있습니다.
    curl -X POST -F [email protected] http://アプリ名.mybluemix.net/detectFace 
    {"faces":[{"age":{"confidence":"0.983","max":"12","min":"8"},"face_location":{"height":195,"left":677,"top":384,"width":160},"gender":{"confidence":"1.000","gender":"Male"}},{"age":{"confidence":"0.701","max":"6","min":"4"},"face_location":{"height":171,"left":383,"top":400,"width":146},"gender":{"confidence":"1.000","gender":"Male"}},{"age":{"confidence":"0.987","max":"32","min":"25"},"face_location":{"height":199,"left":530,"top":177,"width":158},"gender":{"confidence":"0.992","gender":"Female"}}]}
    
    

    좋은 웹페이지 즐겨찾기