YOLOv8のROS用パッケージ sensor_msgs/Image型の画像データをSubscribeすることでYOLOv8による物体検出の推論を行います.
- yolov8 gihub: https://github.com/ultralytics/ultralytics
- yolov8Docs:https://docs.ultralytics.com/
(上に戻る)
ここで,本レポジトリのセットアップ方法について説明してください.
System | Version |
---|---|
Ubuntu | 20.04 (Focal Fossa) |
ROS | Noetic Ninjemys |
Python | 3.7~ |
Pytorch | 1.7~ |
- ROSの
src
フォルダに移動します.$ cd ~/catkin_ws/src/
- 本レポジトリをcloneします.
$ git clone https://github.com/TeamSOBITS/yolov8_ros.git
- レポジトリの中へ移動します.
$ cd yolov8_ros
- 依存パッケージをインストールします.
$ bash install.sh
- パッケージをコンパイルします.
$ cd ~/catkin_ws/ $ catkin_make
(上に戻る)
YOLOv8
- ROSの画像のみで推論
roslaunch yolov8_ros yolov8.launch
Note
launch内のweights,image_topic_nameをweightファイルや使用するカメラのTopic名に書き換える
- ROSの画像にTF(3次元情報)もつけて出力
roslaunch yolov8_ros yolov8_with_tf.launch
Note
画像のみでの推論と同様にlaunch内のweights,image_topic_nameをweightファイルや使用するカメラのTopic名に書き換える. また,3次元化するための点群名point_cloud_nameをカメラのTopic名に書き換える. base_frame_nameはもしカメラ単体で使う場合は存在するフレーム名にする.
- ROSの画像のみで推論する場合
/yolov8/detect_list (sobits_msgs/StringArray): 検出物体一覧
/yolov8/detect_poses (sobits_msgs/ObjectPoseArray): 検出物体の画像におけるピクセル座標
/yolov8/objects_rect (sobits_msgs/BoundingBoxes): 検出物体のBoundingBox情報
/yolov8/detect_result (sensor_msgs/Image): 結果画像
- ROSの画像にTF(3次元情報)もつけて出力する場合
/yolov8_bbox_to_tf/object_poses (sobits_msgs/ObjectPoseArray): 物体の3次元座標
/yolov8_bbox_to_tf/object_cloud (sensor_msgs/PointCloud2): 物体にかかる点群
- ROSの画像のみで推論する場合
/yolov8/run_ctr (sobits_msgs/RunCtrl): 推論のON/OFFを切り替える(True/False)
- ROSの画像にTF(3次元情報)もつけて出力する場合
/yolov8_bbox_to_tf/run_ctr (sobits_msgs/RunCtrl): 3次元化(TF化)のON/OFFを切り替える(True/False)
detect_ros.py: YOLOv8実行用プログラム
pub_usb_cam.py: PC内蔵カメラ映像をPublishするプログラム
publish_image.py: Enterキーを押下ごとに画像をPublishするプログラム
train_yolov8.py: yolov8を用いて学習します データセットを作って、5行目のdata引数にデータセットのパスを渡してください epoch=500, batch=4, imagesize=640で学習します
sobits_msgsは,SOBITSの独自のメッセージ型です.
検出結果やClass名も合わせたBoundingBoxなどがあります.
sobits_msgsの詳細について,TeamSOBTIS/sobits_msgs をご覧ください.
(上に戻る)
(上に戻る)