Ubuntu18.04: darknetをROSで使う (darknet_ros)

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が生成される。
    • パスフレーズの登録
      • $ eval 'ssh-agent'
      • $ ssh-add ~/.ssh/id_rsa
        • 上で入力したパスフレーズを入力する。
  • SSH Keyの設定(github)
    • githubにも公開鍵を設定する。
    • githubのアカウントがなければ作成してサインインする。
    • settings -> personal setting -> SSH and PGP keys を選択
    • 右上の[New SSH Key]をクリックする。
    • Titleに公開鍵名id_rsa.pubを入力し、keyにはid_rsa.pubファイルの中身をコピペして、[Add SSH key]をクリックして鍵を追加する。
  •  インストール
    • $ 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
  • 実行方法
    •  カメラの起動
      • USB Cameraの場合
        • $ roslaunch usb_cam usb_cam-test.launch
      • RealSense D435,D435iの場合
        • $ roslaunch realsense2_camera rs_camera.launch
    • 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
    • launchファイルを必要があれば修正する
      • $ cd ~/catkin_ws/src/darknet_ros/darknet_ros/launch
      • yolo_v3.launchの13行目yolov3.yamlを先ほどコピーしたwrs.yamlに変更する。

以上

 

 

コメント

タイトルとURLをコピーしました