LoginSignup
4
4

More than 3 years have passed since last update.

Ubuntu,ROSでYOLOv4を使ってみた

Last updated at Posted at 2020-09-04

概要

最近YOLOv5なるもの(賛否両論あるようですが)が出てきたこともあり,多少時代遅れのYOLOv3からYOLOv4にしようと思いましたが ,ROS(Robot Operating System)環境でのセットアップ記事が見当たらなかったので備忘録としてまとめてみます.

※以下の記事によると,YOLOv5はフレームワークにpytorchが使われていて現環境と異なるので取りあえず見送ります.

YOLOの各バージョンについてのまとめ(Qiita)

実行環境

今回はUbuntu16.04とUbuntu18.04で動作を確認しました.以下詳細です.

OS Ubuntu16.04.6 LTS Ubuntu18.04.5 LTS
CPU Intel Core i7-8700 Intel Core i5-6500
GPU Geforce GTX 1080 Ti Geforce GTX 960
ROS Kinetic 1.12.14 Merodic 1.14.9
Nvidia Driver 450.51.06 440.100
CUDA(toolkit) 8.0 10.2
cuDNN 7 7

今回は上記環境が整っていることが前提として進めていきます.

準備

現在,~/catkin_ws/src/下にあるdarknet_rosパッケージを避難させる.適当にホームディレクトリなどにバックアップディレクトリ(今回はYOLOv3)を作りそこに移動させる.
※darknet_rosを初めて使う人はとばしてください

端末
# 1行ずつ実行してください

$ cd
$ mkdir YOLOv3
$ cd ~/catkin_ws/src
$ mv darknet_ros ~/YOLOv3

次に以下を参考にYOLOv4用のdarknet_rosパッケージをクローンする.
YOLO V4 for darknet_ros
<注意>
リンク先に書いてあるコマンドでクローンするとyolov4-for-darknet_rosパッケージという,darknet_rosより1つ上の階層のパッケージがインストールされてしまい,私の場合catkin_makeが通りませんでした.以下に変更すると上手く行きました.

端末
$ cd ~/catkin_ws/src
$ git clone --recursive https://github.com/Tossy0423/darknet_ros.git
$ cd ..
$ catkin_make

これでmakeが通れば完了です.

補足

このdarknet_rosは,USBカメラのドライバとしてuvc_cameraを採用してあります.私の場合usb_camをドライバとして使用しているのでテストする際にはdarknetが受け取るカメラノードの変更が必要でした.

  • catkin_ws/src/darknet_ros/darknet_ros/config/ros.yaml
 変更前 
1 subscribers:
2
3  camera_reading:
4    topic: /camera/rgb/image_row
5    queue_size: 1
 変更後 
1 subscribers:
2
3  camera_reading:
4    topic: /usb_cam/image_row
5    queue_size: 1

テスト

動作テストをしてみました.

端末
# 2つの端末で実行

# darknet_rosノード立ち上げ
$ roslaunch darknet_ros yolov4.launch

# カメラノード立ち上げ
$ roslaunch usb_cam usb_cam-test.launch

yolov4.png

いい感じに表示することができました.以上です.

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4