tensorflow (tf-openpose)로 이미지에서 골격 추정

소개



이미지만으로 골격 추정이 가능한 OpenPose.

htps : // 기주 b. 코 m / C 무 ぺr 세 p


Latest Features
· Mar 2018 : CPU 버전!

라는 것으로, 올해 CPU판도 나온 것 같습니다. CPU 버전을 사용하고 싶었지만,,,
환경 준비가 적당히 힘들었기 때문에,
Tensorflow에서 구현된 여기를 시도해 보았습니다.
  • htps : // 기주 b. 코 m / I ldo One t / tf Posee s Chimachion

  • 환경


  • Google Colaboratory(python3/GPU)

  • windows10 home(64bit)
  • 파이썬 3.5.4
  • tensorflow 1.2.1
  • openCV 3.3.1
  • anaconda navigator 1.8.3


  • windows 터미널과 Colaboratory(ubuntu) 모두에서 실행해 보았습니다.

    Google 공동체에서 실행



    Colab Notebooks를 새로 작성(python3/GPU)하고 작업을 진행합니다.

    실행 소스는 여기 → GitHub

    소개


  • 설치

  • anaconda의 「Environments」에서 「Open Terminal」로 터미널을 기동.
    터미널

    tf-pose-estimation.ipynb
    # gitからclone
    !git clone https://github.com/ildoonet/tf-pose-estimation.git
    
    # 確認
    !ls
    
    # 必要なライブラリをインストール
    %cd ./tf-pose-estimation
    !ls
    !pip install -r requirements.txt
    
  • 학습된 모델(.pb 파일) 얻기

  • tf-pose-estimation.ipynb
    %cd /content/tf-pose-estimation/models/graph/cmu
    !bash download.sh
    

    실행



    선인에게 배우고 같은 이미지로 우선 골격 추정

    tf-pose-estimation.ipynb
    # 画像を取得
    !wget https://www.pakutaso.com/shared/img/thumb/150415022548_TP_V.jpg
    
    # 確認
    !ls
    
    # 実行
    %cd /content/tf-pose-estimation/src
    %run -i run.py --model=mobilenet_thin --resolution=432x368 --image=/content/tf-pose-estimation/models/graph/cmu/150415022548_TP_V.jpg
    
    

    이미지가 작아서 이해하기 어렵지만, 잘 골격을 검출할 수 있는 것 같습니다.


    windows에서 실행



    기본적으로 Google Colaboratory와 동일합니다.

    이전 준비


  • git을 명령 줄에서 사용할 수있게합니다.

    여기 를 참고로, git 를 인스톨.
    환경 변수에도 경로를 통해 두었습니다.
  • 소스 취득 & 수정

  • htps : // 기주 b. 코 m / I ldoone t / tf Posee s Chimachion에서 zip을 다운로드하여 적절한 디렉토리로 확장합니다.
    설치에 오류가 발생하여 tf-pose-estimation-master/requirements.txt에서 "ast"를 주석 처리했습니다.

    requirements.txt
    argparse
    matplotlib
    scipy
    tqdm
    requests
    fire
    #ast ←コメントアウト
    dill
    git+https://github.com/ppwwyyxx/tensorpack.git
    

    소개


  • 설치
  • # 展開ディレクトリへ移動
    cd ./tf-pose-estimation-master
    
    # 必要なライブラリをインストール
    pip install -r requirements.txt
    

    실행 전 준비


  • 실행 결과 표시 크기를 크게

  • run.py의 50 행 정도 출력 크기를 지정하도록 수정

    tf-pose-estimation-master/src/run.py
        # fig = plt.figure()
        fig = plt.figure(figsize=(15, 10)) # ←変更
    
  • 실행 결과를 파일에 저장

  • 실행 결과를 파일로 출력하고 싶었으므로 파일 출력 처리를 추가했습니다.
    (가로 입고, 폴더와 파일 이름은 고정 ...)
    마찬가지로 run.py의 50 행 정도, 파일 출력 추가

    tf-pose-estimation-master/src/run.py
        a = fig.add_subplot(2, 2, 1)
        a.set_title('Result')
        plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
        cv2.imwrite('./result.jpg', image) # ←追加
    

    실행



    jupyterNotebook을 새로 만들고 실행합니다.
    %run -i run.py --model=mobilenet_thin --resolution=432x368 --image=C:/path/to/image/AdobeStock_122984958.jpeg
    

    Mask R-CNN(keras)에서 인물 검출 on Colaboratory 하지만 사용한 스포츠 장면의 이미지로 시도한 결과







    요약



    복잡한 자세는 잘 검출할 수 없는 곳도 있었습니다만, 움직임이 있는 것 같은 동작에서도 훌륭하게 골격 추정할 수 있습니다.
    다음은 각각의 좌표 데이터를 취할 수 있도록 해보고 싶다.

    참고 사이트


  • GPU 없이 이미지만으로부터 인간의 본 추정을 할 수 있는 tf-openpose를 도입한다
  • 명령줄에서 Git 사용(for Windows)
  • 좋은 웹페이지 즐겨찾기