Mask R-CNN(keras)에서 인물 검출 on Colaboratory

4987 단어 Kerascolaboratory

소개



최신의 물체 검출 수법이라고 하는 Mask R-CNN(keras판)을 움직여 봅니다.
모처럼이므로 Google Colaboratory에서 시도하기로 결정했습니다.

실행 소스는 여기 → GitHub

마스크 R-CNN



물체 검출, 세그멘테이션뿐만 아니라 사람의 골격 추정도 가능한 것 같습니다.



출처 : htps : // / r ぃ v. rg / pdf / 1703.06870v1. pdf

처리 내용에 대한 설명은 다음 사이트를 참조하십시오.
  • 최신 물체 검출 방법 Mask R-CNN의 RoI Align과 Fast(er) R-CNN의 RoI Pooling의 차이를 올바르게 이해한다
  • 마스크 R-CNN

  • 환경



    Google Colaboratory(python3/GPU)

    Google Colaboratory 노트북을 새로 만들고 '런타임' '런타임 유형 변경'에서 python3/GPU를 선택.


    설치



    이번 시도는 여기 → Github
    ReadMe의 "Installation"에 따라 작업을 진행합니다.

    ■1.Clone this repository



    github에서 소스를 가져옵니다.

    maskRnn-keras.ipynb
    # gitからソースを取得
    !git clone https://github.com/matterport/Mask_RCNN.git
    
    # 確認
    !ls
    

    ■2.Install dependencies



    Mask_RCNN-master/requirements.txt에 나열된 관련 라이브러리를 설치합니다.

    maskRnn-keras.ipynb
    # フォルダへ移動
    %cd Mask_RCNN
    
    # 確認
    !ls
    
    # ライブラリを取得
    !pip install -r requirements.txt
    

    ■3.Run setup from the repository root directory



    Mask_RCNN-master/setup.py를 실행합니다.

    maskRnn-keras.ipynb
    # フォルダへ移動
    %cd Mask_RCNN
    
    # setup.pyを実行
    %run -i setup.py install
    

    ■4.Download pre-trained COCO weights (mask_rcnn_coco.h5)



    학습된 가중치(mask_rcnn_coco.h5)를 가져옵니다.

    maskRnn-keras.ipynb
    # フォルダへ移動
    %cd Mask_RCNN
    
    # 重みを取得
    !wget https://github.com/matterport/Mask_RCNN/releases/download/v2.0/mask_rcnn_coco.h5
    
    

    ■5.MS COCO install



    Microsoft COCO에서 제공하는 이미지 데이터 세트용 API를 설치합니다.

    maskRnn-keras.ipynb
    # COCO 用ソースを取得
    !git clone https://github.com/waleedka/coco.git
    
    # 確認
    !ls
    
    # cythonをインストール
    !pip install cython 
    
    # python用APIをインストール
    %cd Mask_RCNN/coco/PythonAPI
    %run -i setup.py build_ext --inplace
    %run -i setup.py build_ext install
    

    위에서 문제없는 것 같습니다만, ,, 설치한 pycocotools가 없다, 라고 에러가 되어 버리므로,
    경로를 설정했습니다.

    maskRnn-keras.ipynb
    import sys
    sys.path.append('/content/Mask_RCNN/coco/PythonAPI')
    

    데모 실행



    ■1. keras 설치



    Google Colaboratory에 기본적으로 포함되지 않은 keras 설치

    maskRnn-keras.ipynb
    !pip install keras
    

    ■2. demo.ipynb 실행



    htps : // 기주 b. 이 m/정해 r포rt/마sk_RCn/bぉb/마s r/사 mp㎇s/에서도. 이 pyn b을 복사하여 실행

    실행 결과. 기린과 얼룩말을 구분합니다.



    인물 감지



    openCV와 Keras로 이미지에서 인물 감지 하지만 사용한 스포츠 장면의 이미지로 시도한 결과


    요약



    같은 모양의 물건이 겹치면 잘 감지되지 않았습니까?
    (사람이 겹치는 경우에, 다른 사람이라고 판정하거나, 사람이 검출할 수 없거나)
    다만, 전회 시도한 SSD에서는 검출할 수 없었던 볼이나 버트, 글러브 등 작은 형상까지 검출할 수 있고 있어 대단하다.
    이용 목적에 맞추어, 구분하는 것이 좋은 것일까? ?

    참고 사이트



  • Mask R-CNN을 쉽게 카메라 영상에서 시험하는 방법
  • 【초속으로 무료 GPU 사용】 심층 학습 실천 Tips on Colaboratory
  • 좋은 웹페이지 즐겨찾기