からログ

からあげが鳥並の頭で学んだことを記録する場所だよ

Yolo v3をROSで動かす方法

 ros対応のyoloを以下でclone & buildします。

$ cd catkin_workspace/src
$ git clone --recursive https://github.com/kanezaki/darknet_ros.git
$ cd darknet_ros/darknet_ros
$ catkin bt -DCMAKE_BUILD_TYPE=Release

 ビルドは1回目最後まで終わらなかったので、一回強制終了して2回目で通りました(謎)。

 GPUの有無は、勝手に判別してよしなにしてくれるらしいです。

 次に学習パラメータをダウンロードします。

$ cd catkin_darknet_ros/yolo_network_config/weights/
$ wget http://pjreddie.com/media/files/yolov3.weights

 カメラは、今回は手持ちのUSB Cam(ELECOM UCAM-C0220FBNBK)を使用しました。ROSで動くカメラであれば、基本OKなはずです。

 以下で必要なドライバインストールします。

$ sudo apt-get update
$ sudo apt-get install ros-kinetic-usb-cam

 以下コマンドでroscore動かして

$ roscore

 以下コマンドでカメラを起動します。

$ rosparam set usb_cam/pixel_format yuyv
$ rosrun usb_cam usb_cam_node

 続いて、カメラに合わせて、 トピック名を変更しておきます。 /darknet_ros/darknet_ros/config/ros.yaml というファイルで変更します(最初 launchでremapしようとしてハマりました)

 以下のように修正しました。

diff --git a/darknet_ros/config/ros.yaml b/darknet_ros/config/ros.yaml
index 04abce5..5d72612 100644
--- a/darknet_ros/config/ros.yaml
+++ b/darknet_ros/config/ros.yaml
@@ -1,7 +1,7 @@
 subscribers:
  
   camera_reading:
-    topic: /camera/rgb/image_raw
+    topic: /usb_cam/image_raw
     queue_size: 1

 以下コマンド実行すると、Yolo v3が走って、ウィンドウが開いてリアルタイムに結果が出力されます。

$ roslaunch darknet_ros darknet_ros.launch

 コンソールによると5fps近く出ているようです。

FPS:4.7
Objects:
 
person: 98%

 ウィンドウが邪魔な場合は、ros.yamlの image_view/enable_opencv を falseにすればOKです。Readmeにも書いてあります。

 あとは、以下実行すれば、検出結果が表示されます。

$ rosrun image_view image_view image:=/darknet_ros/detection_image