JLOG
OpenPose, ildoonet 실행하기, 구현하기 본문
[참고]
이 글은 이 블로그 내용을 참고해서 작성 되었습니다.
jin-t.tistory.com/4#comment5854351
Human pose estimation 관련 프로젝트를 시작하기 위해 OpenPose를 먼저 실행시켜 보려 했다.
mac환경에서 OpenPose를 구동하려고 하니
8GB RAM 이상/ 8 cores CPU 이상의 사양이 요구 되었다.
내 소중한 맥북은 그 사양이 되지 않아 ildoonet으로 대체해서 실행시켰다.
(혹시 사양을 충족한다면 아래 블로그를 참조하자)
(Run OpenPose on Mac : maelfabien.github.io/tutorials/open-pose/#functionalities)
ildoonet이란? (tf-pose-estimation)
ildoonet은 OpenPose를 tensorflow로 구현한 것이다.
비교적 낮은 사양에서도 human pose estimation 프로그램을 실행할 수 있다.
ildoonet github :
github.com/ildoonet/tf-pose-estimation
Mac에서의 ildoonet의 설치과정을 설명하자면,
1. 가상환경
먼저, 가상환경을 설정해주여야 한다.
이미 설치된 ananconda, pyenv, virtualenv 등 사용하는 환경이 있다면 사용하면 되고 없다면,
을 참고해 가상환경을 구현해 보는 것을 추천한다.
참고로, 가상환경에서 개발 환경을 구성하면 파이썬 버전을 관리하기도 편하고, 후에 설치된 모듈들을 공유하기에도 편하다.
2. tensorflow 1.14, openCV3 설치
가상환경 안에서
pip을 이용해 tensorflow와 openCV3를 설치하자
이때, 주의할 점은 tensorflow 1.14 버전으로 설치해야지 에러가 안난다고 한다.
$ pip install tensorflow==1.14
$ pip install opencv-python
만약, 이미 tensorflow 2.0 이상 버전이 설치되어있다면, 아래 주소를 참고해서 다시 깔아보자
www.tutorialfor.com/questions-287431.htm
3. C++ & Swig 설치
github.com/ildoonet/tf-pose-estimation/tree/master/tf_pose/pafprocess
앞서 올린 ildoonet git에서 C++와 Swig를 설치할 수 있다.
나는 homebrew를 이용해서 Swig를 설치한 후
$ brew install swig
C++를 설치해주었다. (해당 git clone 후 - ./tf-pose-estimation/tf_pose/pafprocess/에서 해당 라인을 터미널에 입력하면 된다.)
$ swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace
4. 관련 module & Package 설치
clone 한 git파일의 tf-pose-estimation/requirement.txt 과 tf-pose-estimation/tf_pose/pafprocess를 이용하여 필요한 모듈들을 설치하면 된다.
$ git clone https://www.github.com/ildoonet/tf-pose-estimation
$ cd tf-pose-estimation
$ pip3 install -r requirements.txt
$ git clone https://www.github.com/ildoonet/tf-pose-estimation
$ cd tf-pose-estimation
$ python setup.py install # Or, `pip install -e .`
5. 실행
-image 실행
$ python run.py --model=mobilenet_thin --resize=432x368 --image=./images/p1.jpg
human pose emtimation의 결과가 나오는 것을 알 수 있다.
-video(using webcam) 실행
$ python run_webcam.py --model=mobilenet_thin --resize=432x368 --camera=0
으로 웹캠 결과를 실행할 수도 있다.
실행결과
3FPS로 했더니 움직임을 바로바로 따라잡지 못하는 느낌이 있었다.
그래도 실시간으로 잘 따라잡는 것을 확인하였다.