YOLO V3をROSで使うためのパッケージdarknet_rosのインストール、設定法と使い方のメモ。
- 本家サイト
- SSH keyの設定 (Ubuntu)
- SSH keyを設定しないとインストールできないので端末を開き、ssh-keygenコマンドでkeyを設定する。すでにUbunutとgithubに設定している場合はこの作業を飛ばす。
$ ssh-keygen
- Enter file in which to save the key (/home/user_name/.ssh/id_rsa):
- keyの保存先を聞かれる。デフォルトで良いのでエンターキーを押す。
- Enter passphrase (empty for no passphrase):
- passphrase(パスフレーズ)を聞かれるので設定したいパスフレーズを入力する。パスフレーズはパスワードの長いもの。
- Enter same passphrase again:
- 同じパスフレーズを入力する。
- Your identification has been saved in /home/user_name/.ssh/id_rsa.
- Your public key has been saved in /home/user_name/.ssh/id_rsa.pub.
- プライベイトキー(秘密鍵) ~/.ssh/id_rsaとパブリックキー(公開鍵)~/.ssh/id_rsa.pubが生成される。
- Enter file in which to save the key (/home/user_name/.ssh/id_rsa):
- パスフレーズの登録
$ eval 'ssh-agent'
$ ssh-add ~/.ssh/id_rsa
- 上で入力したパスフレーズを入力する。
- SSH Keyの設定(github)
- インストール
$ cd ~/catkin_ws/src
$ git clone --recursive git@github.com:leggedrobotics/darknet_ros.git
- SSH keyを設定しないとクローンできない。できない場合はもう一度、上のSSH Key設定作業をする。
$ cd ..
- ビルド
$ catkin build -DCMAKE_BUILD_TYPE=Release
- 重みファイルをダウンロードするので少し時間がかかる。私の環境では7分かかった。
- 重みファイルのダウンロード
- yolov2-tiny.weightsとyolov3.weightsはcatkin buildすると自動的にダウンロードする。その他のウェイトが欲しい場合は、以下のファイルを参照。
- ~/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights/how_to_download_weights.txt
- yolov2-tiny.weightsとyolov3.weightsはcatkin buildすると自動的にダウンロードする。その他のウェイトが欲しい場合は、以下のファイルを参照。
- 実行方法
- カメラの起動
- USB Cameraの場合
$ roslaunch usb_cam usb_cam-test.launch
- RealSense D435,D435iの場合
$ roslaunch realsense2_camera rs_camera.launch
- USB Cameraの場合
- darknet_ros起動
$ roslaunch darknet_ros yolo_v3.launch
- 一番上図のようなYOLO V3のウインドウが開き、物体が識別されていれば成功。私の環境では20フレーム/sの速度で物体識別できていた。
- カメラの起動
- 自分のオブジェクトを検出する方法
- 学習で作られた重みファイルwrs_10000.weightsと設定ファイルwrs_test.cfgを次のディレクトリに保存する。これらのファイルは学習で使ったもの。
- 重みフアイル:~/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights/
- 設定ファイル:~/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/cfg/
- 次のROS用の設定ファイルを修正する。
- catkin_ws/src/darknet_ros/darknet_ros/config/ros.yaml
- ウェブカメラを使う場合は、サブスクライブするカメラ画像のトピック名の変更が必要。
- この例ではusb_cameraの場合は次のように変更。
camera_reading:
topic: /usb_cam/image_raw
queue_size: 1 - Realsense D435の場合は次のように変更
camera_reading:
topic: /camera/color/image_raw
queue_size: 1
- $ cd ~/catkin_ws/src/darknet_ros/darknet_ros/config
- $ cp yolov3.yaml wrs.yaml
- wrs.yamlの内容を変更する。この例では以下にした。yolo_model:config_file:
name: wrs_test.cfg
weight_file:
name: wrs_10000_0415.weights
threshold:
value: 0.3
detection_classes:
names:
– onigiri
– sandwich
- catkin_ws/src/darknet_ros/darknet_ros/config/ros.yaml
- launchファイルを必要があれば修正する
- $ cd ~/catkin_ws/src/darknet_ros/darknet_ros/launch
- yolo_v3.launchの13行目yolov3.yamlを先ほどコピーしたwrs.yamlに変更する。
- 学習で作られた重みファイルwrs_10000.weightsと設定ファイルwrs_test.cfgを次のディレクトリに保存する。これらのファイルは学習で使ったもの。
以上
コメント