OpenPose의 Face Estimation을 움직여 보았습니다.

목차



1.OpenPose를 움직여 보았다.
2.OpenPose 자습서의 소스 코드를 읽습니다.
3. Windows에서 OpenPose를 움직여 보았다.
4.OpenPose의 Face Estimation을 움직여 보았다.
5.OpenPose의 Hand Estimation을 움직여 보았다.

목적



OpenPose 1.0.0rc3(Jun 2017)에서 Pose Estimation 외에도 Face Estimation이 구현되었다. OpenPose의 Face Estimation을 움직여 보았습니다.
github OpenPose


프리 소재 아이돌 mika☆rika님의 소재 화상을 사용했습니다. h tp : // 미카 리카 - f 예. jp/

사용환경



Description: Ubuntu 14.04.5(x64) LTS trusty
CUDA 버전 8.0.61
NVIDIA-SMI 375.66/Driver Version: 375.66/GeForce GTX 1050
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
OpenPose 1.0.0rc3(Jun 2017)

OpenPose 설치



OpenPose를 움직여 보았다. 참조.
$ mkdir ~/development
$ cd ~/development
$ git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
$ cd openpose
$ chmod +x install_caffe_and_openpose.sh
$ ./install_caffe_and_openpose.sh

소스 코드 수정



renderer.hpp 수정



./include/openpose/core/renderer.hpp:24:84: error: ‘atomic’ is not a member of ‘std’

와 컴파일 에러가 일어났을 경우, 소스의 선단에 #include 를 추가.
htps : // 기주 b. 코 m / C 무 ぺ rp p tha l - m 쁘띠 g ぁ b / 오 펜 포세 / 이스에 s / 64

openpose.cpp 수정



샘플 소스, openpose.cpp를 수정합니다.

./example/openpose/openpose.cpp

face keypoint detection을 활성화합니다.


   82:DEFINE_bool(face, false, "Enables face keypoint detection. It will share some parameters from the body pose, e.g. `model_folder`.");
→  82:DEFINE_bool(face, true , "Enables face keypoint detection. It will share some parameters from the body pose, e.g. `model_folder`.");

net_resolution · face_net_resolution을 GPU의 메모리에 맞추어 조정한다.



net_resolution의 값은 16의 배수(16,32,48...)로 한다.net_resolution을 들수록 검출 정밀도가 올라가지만 처리 속도가 느려진다.net_resolution을 낮추면 처리 속도가 증가하지만 검출 정밀도가 떨어집니다. 예를 들어, 아래의 값으로 하면, GPU 메모리가 1.5GB 소비된다.

  71:DEFINE_string(net_resolution,"656x368","Multiples of 16. If it is increased, the accuracy usually increases. If it is decreased, the speed increases.");

→ 71:DEFINE_string(net_resolution,"320x160","Multiples of 16. If it is increased, the accuracy usually increases. If it is decreased, the speed increases.");
  83:DEFINE_string(face_net_resolution,"328x328","Multiples of 16. Analogous to `net_resolution` but applied to the face keypoint detector. 320x320 usually works fine while giving a substantial speed up when multiple faces on the image.");

→ 83:DEFINE_string(face_net_resolution,"160x160","Multiples of 16. Analogous to `net_resolution` but applied to the face keypoint detector. 320x320 usually works fine while giving a substantial speed up when multiple faces on the image.");


openpose를 움직여 보자.



1. 샘플 동영상으로 움직여보세요



./build/examples/openpose/openpose.bin --video examples/media/video.avi

2. 웹캠으로 움직여보세요



./build/examples/openpose/openpose.bin

3. 샘플 정지 영상으로 움직여 봅니다.



./build/examples/openpose/openpose.bin --image_dir examples/media/

오류가 발생하면,



아래와 같은 에러가 발생하는 경우, GPU의 메모리를 오버플로우하고 있다.net_resolution을 조정한다.

Check failed: error == cudaSuccess (2 vs. 0) out of memory

참고:
htps : // 기주 b. 코 m / C 무 ぺ rp p t ㅁ l m 뿌찐 g g b

후기



hand estimation의 공개도 가깝다. 공개되는 대로 시험할 예정.
>Multi-person 2x21-keypoint hand estimation and rendering. Note: In this initial version, running time linearly depends on the number of people on the image. Coming soon (in around 1-5 weeks)!
OpenPose v1.0 게시와 함께 hand estimation이 구현되었습니다..

좋은 웹페이지 즐겨찾기