AlphaPoseをROS化する(PoseTrackingをROSで実装する)
はじめに
AlphaPoseとはこれ(https://github.com/MVIG-SJTU/AlphaPose)
1.AlphaPoseをROSで動かしたい.(Pose TrackingをROSで実装したい)
2.とりあえず動くようなコードができたが(https://github.com/yone-moto/AlphaPose_ros.git) ,β版であり,修正点が多いので,はやめに公開することでコードの改善をしたい.
というモチベーションです.
AlphaPoseとは
画像or動画内の複数人の人物の姿勢を推定してくれる深層学習のツールです.
人物の姿勢を推定してくれる深層学習のツールはAlphaPose以外にもたくさん公開されています.
その中でも一番メジャーなOpenPoseと比べて異なる点を挙げると,
・RealtimeでPose Trackingをしてくれる.
・Human Pose Estimationの一種で,OpenPoseよりもAPが優れている.
・Top-downアプローチである.
だと理解しています.
今回はPose estimationとTrackingの実装がしたかったので,AlphaPoseをチョイスしました.
環境
ubuntu16.04
ROS version kinetic
というところです.
あとはAlphaPoseが動く環境であること.
AlphaPoseのROS化
機能の追加
AlphaPoseではapiのスクリプトを公開していますが,私の要求と比べると
・画像対応のAPIなので動画に対応していない.
・トラッキングの実装がない.
などがなく,追加をしました.コードはこちら(Alphapose_ros.py)
動いたらいいという感じなので最適化されてないです.
Pythonバージョン問題
Kineticはデフォルトでpython2なのでPython3への対応...(はやくROS2なりnoeticにしたい...)
なのでROSでノード化する場合こちらを参考にして,AlphaPoseで作成した仮装環境のPython3で動くようにしました.
画像をwebカメラから持ってくるときにpython3からcv_brige使ってtopic化を試みたのですが,どうやらpython3系に対応するにはcv_brigeのBuildのし直しが必要で仮装環境内では他のライブラリとの共存でうまく行きませんでした.こちらを参考に
そこでいろいろ調べたところ CompressedImageはpython3系に対応しているということでこちらを使ってwebcameraからの画像topicをpython3で受け取れるようにしました.こちらを参考に
動かし方
pkgになっているのでsrc直下に置く.
catkin_ws/src/ $ git clone https://github.com/yone-moto/AlphaPose_ros.git
catkin_ws/ $ catkin_make
######準備完了・実行######
catkin_ws/src/ $ roslaunch alphapose_ros alphapose_demo.launch
(alphapose) (path to)AlphaPose_ros/scripts/$./alphapose.sh
結果
一人の動画しかなくてトラッキングは見せられない...
右半分しか塗られてないのは意図的で,左半分も出力としてでてます.
オプション
どうしてもトラッキングをみせたかったので速度ベクトル(人物の進行方向)をライダーと組み合わせて算出.
こんな感じ
以上です.最後まで見ていただきありがとうございました.
今後もこの記事とコードを追記なり修正なりしたいです!!!!
そしてもっと世の中の役にたちたいです.
Author And Source
この問題について(AlphaPoseをROS化する(PoseTrackingをROSで実装する)), 我々は、より多くの情報をここで見つけました https://qiita.com/yoneyoneclub/items/38c66c947cb4376c5daf著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .