機械学習のお勉強(DeepPose, OpenPose)
やること
- pythonでのcaffe環境構築
- OpenPoseを動かしてみる
Caffe Install
設定(GPU)
【Caffe】はじめてCaffeをmakeするまでOn Ubuntu16.04 - 緑茶思考ブログ
Ubuntu 14.04にCaffeをインストール(GPU編) - Qiita
Installing Caffe on Ubuntu (CPU-ONLY) - Chun’s Machine Learning Page
nvcc fatal : Unsupported gpu architecture 'compute_61' · Issue #5141 · BVLC/caffe · GitHub
PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/lib/python2.7/dist-packages/numpy/core/include to this: PYTHON_INCLUDE := /usr/include/python2.7 \ /usr/local/lib/python2.7/dist-packages/numpy/core/include
設定(CPU only)
configをcpu onlyに変更
Caffeでニューラルネットワークを試してみる - Sample Space of BB-Club
Ubuntu14.04にCaffeをインストール(CPUモード) - Qiita
OpenPose(Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields)
論文:https://arxiv.org/abs/1611.08050
プレゼン資料:http://image-net.org/challenges/talks/2016/Multi-person%20pose%20estimation-CMU.pdf
実行結果
外骨君だとある程度ちゃんとでた↓
イラスト等ではうまくでないこともあった...
コード理解
part_str = [nose, neck, Rsho, Relb, Rwri, Lsho, Lelb, Lwri, Rhip, Rkne, Rank, Lhip, Lkne, Lank, Leye, Reye, Lear, Rear, pt19]
この体の19点の位置を出力する
実装部
all_peaks[i][j][0:2]に位置情報が入っている
# visualize colors = [[255, 0, 0], [255, 85, 0], [255, 170, 0], [255, 255, 0], [170, 255, 0], [85, 255, 0], [0, 255, 0], \ [0, 255, 85], [0, 255, 170], [0, 255, 255], [0, 170, 255], [0, 85, 255], [0, 0, 255], [85, 0, 255], \ [170, 0, 255], [255, 0, 255], [255, 0, 170], [255, 0, 85]] cmap = matplotlib.cm.get_cmap('hsv') canvas = cv.imread(test_image) # B,G,R order for i in range(18): rgba = np.array(cmap(1 - i/18. - 1./36)) rgba[0:3] *= 255 for j in range(len(all_peaks[i])): cv.circle(canvas, all_peaks[i][j][0:2], 4, colors[i], thickness=-1) to_plot = cv.addWeighted(oriImg, 0.3, canvas, 0.7, 0) plt.imshow(to_plot[:,:,[2,1,0]]) fig = matplotlib.pyplot.gcf() fig.set_size_inches(12, 12)
この点をつなぐと↓こんな感じ
わかりやすい参考
CVPR2017勉強会 Realtime Multi-Person 2D Pose Estimation using Part Affin…
【やじうまPC Watch】Webカメラからリアルタイムにボーン検出できるソフト「OpenPose」が無償公開 - PC Watch
OpenPoseチュートリアルのソースコードを読む。 - Qiita
Caffe: Tutorial: Blob, 層, そしてネット : Caffe モデルの解剖 – PyTorch
DeepPose
論文: https://arxiv.org/pdf/1312.4659.pdf
わかりやすい参考:
PyTorchでDeepPoseを実装してみた - Qiita
PyTorchでDeepPoseを実装してみた PartⅡ - Qiita
GitHub - ynaka81/DeepPoseComparison: DeepPose with chainer and pytorch