#TL;DR
- RealSense SDKでの顔検出とかの提供をインテルがやめてしまった[1]。
- しかし、インテルが提供しているROSラッパーを使えば、ラッパー経由で何個かROSの顔検出パッケージが使えるっぽい。
- そこで、今回はROSラッパーを使った顔検出ROSパッケージの使い方を説明する。
はじめに
本記事は先日書いた3D Face Detection with RealSense D400 series and ROSを和訳しただけのものになります。
ただ、その記事を書いていた頃から状況が変わったため、インストール手順が若干楽になるように修正しました。
必要なもの
- インテル製CPU (x86) とUSB 3.0以上が載っているパソコン
- パソコンのOSは、Ubuntu 16.04 (LTS)。 (VMは非推奨)
- RealSense D415 か D435
インストール方法
-
以下のROSのホームページを読みつつ、ROS Kinetic (LTS)をダウンロードする。個人的にはdesktop-fullがおすすめ。
-
以下のインテルのgithubを読みつつ、aptでRealSense SDK(バージョン2.8.1)をインストールする。
- https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
- なお、バージョンを指定してインストールする場合はlibrealsense2をインストールする直前に下記のコマンドを入力する
sudo apt install librealsense2-udev-rules=2.8.1-0~realsense0.41
sudo apt install librealsense2-dkms=1.3.1-0ubuntu3
sudo apt install librealsense2=2.8.1-0~realsense0.41
sudo apt install librealsense2-utils=2.8.1-0~realsense0.41
sudo apt install librealsense2-dev=2.8.1-0~realsense0.41
sudo apt install librealsense2-dbg=2.8.1-0~realsense0.41
-
以下のインテルのgithubを読みつつ、ROS Wrapper 2.0 for Intel RealSense Devices (build 2.0.1)をダウンロードする。
-
以下のインテルのgithubを読みつつ、ROS Wrapperをインストールする。
-
ロボット界のパロアルト研究所と呼ばれるらしいWillow Garageが作った顔検出のROSパッケージをダウンロードする。
-
以下のコマンドをbashに打ち込むことでROSパッケージをインストールする。
cd ~/Downloads
unzip people-1.0.11
cp -r people-1.0.11 ~/catkin_ws/src/
cd ~/catkin_ws/
#Navigation package was required by people package.
sudo apt-get install ros-kinetic-navigation
catkin_make
使い方
- RealSenseカメラノードを立ち上げるために、端末を開いて以下のコマンドを打つ。
roslaunch realsense_ros_camera rs_camera.launch
- 顔検出ノードを立ち上げるために、別の端末を開いて以下のコマンドを打つ。
roslaunch face_detector face_detector.rgbd.launch \
rgb_ns:=color image_topic:=image_raw \
depth_ns:=depth depth_topic:=image_raw
- ロボット用可視化ツールrvizを立ち上げるために、さらに別の端末を開いて以下のコマンドを打つ。
rosrun rviz rviz
-
rviz内の世界座標系を固定するために、"Fixed Frame"の横にあるコンボボックスの中から"camera_link"を選択する。
-
顔の位置を表示するために、"Add"ボタンを押して、"/face_detector/faces_cloud/PointCloud"を追加する。
-
【任意】 顔の位置を見やすくするために、まず、"PointCloud"の横にある三角形をクリックします。その後、"Style"の"Flat Squares"をSpheres"に変えます。最後に"Size(m)"を"0.01"から"0.2"に変える。
結果
rvizウィンドウの中に赤い点で顔の座標が三次元として表示されます。
また、顔検出ノードを起動している端末には以下のような検出結果が表示されているはずです。
[ INFO] [s.s]: Detection duration = 0.0598671sec
[ INFO] [s.s]: Found face to match with id 0
[ INFO] [s.s]: Number of faces found: 1, number with good depth and size: 1
まとめ
以上で、ROSパッケージを使った顔検出ができるようになりました。
他にもいろいろなROSパッケージを試してみてください。
参考文献
[1] https://software.intel.com/en-us/realsense-sdk-windows-eol
[2] http://wiki.ros.org/face_detector