파이썬에서 darknet (yolov2)의 검출 결과를 이미지에 포함

하고 싶은 일



이전 기사 실시간 물체 검출 시스템 darknet을 python으로 서버화 에서 소개한 darknet을 python으로 만나 보자 제2단입니다.

  • 지난번
  • 이미지를 POST하면 '객체 이름, 점수'가 반환되는 API를 만듭니다


  • 이번에
  • 마지막으로 작성한 API의 응답에 위치 정보를 돌려주도록 수정한다
  • 탐지 결과가 포함된 이미지를 반환하는 API 추가


  • 또한 darknet이나 python의 버전은 이전 기사와 동일하므로 생략합니다.

    작동 방법



    소스는 github에 있습니다.
  • htps : // 기주 b. 코 m / 코모린 0521 / 다 rk t_se rゔぇr

  • 기동에 대해서는, 전회 기사 실시간 물체 검출 시스템 darknet을 python으로 서버화 를 참고해 주세요!

    확인 방법



    검출 결과의 JSON 취득


    curl에서 아래와 같이 이미지 파일을 업로드하십시오.
    $ curl -XPOST -F file=@./data/person.jpg http://localhost:8080/detect`
    

    json에서 아래와 같이 결과가 돌아와 이것이 OK입니다!
    {
      "result": [
        {
          "bounding_box": {
            "height": 86.09929656982422,
            "width": 137.61703491210938,
            "x_min": 61.68614196777344,
            "y_min": 264.98239517211914
          },
          "obj_name": "dog",
          "score": 0.8622361421585083
        },
        {
          "bounding_box": {
            "height": 285.868408203125,
            "width": 84.6079330444336,
            "x_min": 187.8837776184082,
            "y_min": 96.93341064453125
          },
          "obj_name": "person",
          "score": 0.8603283762931824
        },
        {
          "bounding_box": {
            "height": 220.17135620117188,
            "width": 191.89932250976562,
            "x_min": 399.44847106933594,
            "y_min": 131.2899169921875
          },
          "obj_name": "horse",
          "score": 0.8156660199165344
        }
      ],
      "status": "200"
    }
    

    검출 결과의 화상 취득



    이쪽도 curl 에서 확인할 수 있습니다.
    $ curl -XPOST -F file=@/home/omori/darknet/data/person.jpg http://localhost:8080/get_predict_image > predictions.jpg
    

    조금 시간이 걸리지만 성공하면 해당 폴더에 predictions.jpg가 출력되고 있을 것입니다.
    (튜토리얼을 하고 있는 경우는, 같은 이미지명으로 출력되므로, predictions.jpg 의 이름을 변경해 curl 를 하거나, 혹은 ls -all 로 갱신 시각을 확인해 주세요)

    이 이미지가 아래와 같이 표시되면 성공합니다.$ eog predictions.jpg


    선의 굵기라든지 색이라든지 문자의 크기라든지 폰트라든지 모모로모는 더 멋있게 할 수 있으므로,
    원하는대로 스크립트 편집하십시오 (웃음)

    기타



    처음 yolo 의 결과가, (x_min, y_min, x_max, y_max)라든지라고 생각해 써 보면, 아래와 같이 되어 버렸다(웃음)



    이것을 보고, x, y의 심혼과 폭 및 고도가 나온ㄴ다는 것을 주의했기 때문에, 좋았다, 좋았다.

    2017/11/01 API 사양 수정



    yolo 본가에서는, 확신도는 detection을 실시할 때 지정하고 있었으므로,
    API에서도 지정할 수 있도록 변경했습니다.
    덧붙여 디폴트치는, (본가와 같을 것) 0.25로 하고 있습니다.
    $ curl -XPOST -F thresh=0.1 -F file=@/home/omori/darknet/data/person.jpg http://localhost:8080/get_predict_image > predictions.jpg
    

    와 -F 옵션으로 지정 가능하고, 값을 작게 하면 보다 많은 물체 검출 결과가 되돌아 옵니다만, 그만큼 인식도 많아지므로, 주의해 주세요.

    참고



  • darknet
  • htps : // pj 어서. 이 m/다 rk네 t/
  • htps : // 기주 b. 이 m / pj Reet / rk t


  • OPENCV 정보
  • Python과 OpenCV로 화상 처리 ③【그리기 처리】
  • opencv2 documentation
  • opencv python 자습서


  • Flask 이미지 처리 관련
  • https://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0ahUKEwiGuPm_4vzWAhVKmZQKHSjtBhgQFggyMAE&url=https%3A%2F%2Fgist.github.com%2FMiserlou%2Ffcf0e9410364d98a853cb7ff42efd35a&usg= AOvVaw2-Cec1uS31GMYTPUTeAkSd

  • 좋은 웹페이지 즐겨찾기