Skip to content

Object detection using SSD (Single Shot MultiBox Detector). Nodelet implementation version

License

Notifications You must be signed in to change notification settings

TeamSOBITS/ssd_nodelet

Repository files navigation

JP | EN

Contributors Forks Stargazers Issues

SSD Nodelet

目次
  1. 概要
  2. セットアップ
  3. 実行・操作方法
  4. マイルストーン
  5. 変更履歴
  6. 参考文献

概要

  • SSD(Single Shot MultiBox Detector)による物体検出

  • Nodelet実装による高速化

  • 50Hzでカメラ画像を入力した場合

    SSD Node

    average rate: 12.962
        min: 0.050s max: 0.088s std dev: 0.00711s window: 77
    

    SSD Nodelet

    average rate: 49.889
        min: 0.015s max: 0.027s std dev: 0.00243s window: 49
    

(上に戻る)

セットアップ

ここで,本レポジトリのセットアップ方法について説明します.

(上に戻る)

環境条件

正常動作のため,以下の必要な環境を整えてください.

System Version
Ubuntu 20.04 (Focal Fossa)
ROS Noetic Ninjemys
Python 3.8

Note

UbuntuROSのインストール方法に関しては,SOBITS Manualに参照してください.

(上に戻る)

インストール方法

  1. ROSのsrcフォルダに移動します.
    $ roscd
    # もしくは,"cd ~/catkin_ws/"へ移動.
    $ cd src/
  2. 本レポジトリをcloneします.
    $ git clone https://github.com/TeamSOBITS/ssd_nodelet
  3. レポジトリの中へ移動します.
    $ cd ssd_nodelet/
  4. 依存パッケージをインストールします.
    $ bash install.sh
  5. パッケージをコンパイルします.
    $ roscd
    # もしくは,"cd ~/catkin_ws/"へ移動.
    $ catkin_make

(上に戻る)

実行・操作方法

Camera

$ roslaunch ssd_nodelet camera_720p_16_9.launch
# 他に
# camera_1080p_16_9.launch  camera_480p_16_9.launch   camera_720p_16_9.launch
# camera_1080p_3_2.launch   camera_480p_3_2.launch    camera_720p_3_2.launch

※以下のようなエラーが発生した場合

[ERROR] [1663911409.917317256]: Permission denied opening /dev/bus/usb/001/002

次のコードを実行してください

sudo chmod o+w /dev/bus/usb/001/002

Object Detect

$ roslaunch ssd_nodelet face_detect.launch  <- face detect mode
$ roslaunch ssd_nodelet object_detect.launch  <- object detect mode

Object Pose Detect

$ roslaunch ssd_nodelet face_detect_pose.launch  <- face detect mode
$ roslaunch ssd_nodelet object_detect_pose.launch  <- object detect mode

Publications:

トピック名 意味
/ssd_object_detect/detect_result sensor_msgs/Image 出力画像(検出結果)
/ssd_object_detect/object_name sobits_msgs/StringArray 検出物体の名前のリスト
/ssd_object_detect/object_rect sobits_msgs/BoundingBoxes 検出物体のバウンディングボックス情報

Only Object Pose

トピック名 意味
/ssd_object_detect/object_pose sobits_msgs/ObjectPoseArray 検出物体の位置

Subscriptions:

トピック名 意味
/camera/rgb/image_raw sensor_msgs/Image 入力画像
/ssd_object_detect/detect_ctrl std_msgs/Bool 検出のオンオフ

Only Object Pose

トピック名 意味
/camera/depth/points sensor_msgs/PointCloud2 入力点群

Parameters:

パラメータ名 意味
/ssd_object_detect/ssd_nodelet/ssd_img_show_flag bool 検出画像の描画をするか
/ssd_object_detect/ssd_nodelet/ssd_execute_default bool 起動時に検出を開始するか
/ssd_object_detect/ssd_nodelet/ssd_pub_result_image bool /detect_resultをパブリッシュをするかどうか
/ssd_object_detect/ssd_nodelet/ssd_image_topic_name string 入力画像のトピック名
/ssd_object_detect/ssd_nodelet/ssd_in_scale_factor double Caffeで扱うBlob形式の変換時のスケールパラメータ
/ssd_object_detect/ssd_nodelet/ssd_confidence_threshold double 検出結果リストに追加される結果の信頼度の閾値
/ssd_object_detect/ssd_nodelet/ssd_prototxt_name double string
/ssd_object_detect/ssd_nodelet/ssd_caffemodel_name string caffeモデルファイルパス
/ssd_object_detect/ssd_nodelet/ssd_class_names_file string 検出する物体名リストファイルパス
/ssd_object_detect/ssd_nodelet/object_specified_enabled bool 特定の物体のみ検出を行うか
/ssd_object_detect/ssd_nodelet/specified_object_name string 検出する特定の物体名(物体ラベルにない名前は却下されます)

Only Object Pose

パラメータ名 意味
/ssd_object_detect/ssd_nodelet/use_tf bool tfによる座標登録するか
/ssd_object_detect/ssd_nodelet/target_frame string 基準座標フレーム名
/ssd_object_detect/ssd_nodelet/ssd_cloud_topic_name string 入力点群のトピック名

(上に戻る)

マイルストーン

  • ドキュメンテーションの充実

現時点のバッグや新規機能の依頼を確認するためにIssueページ をご覧ください.

(上に戻る)

変更履歴

  • 1.0: OSS (2023-11-14)
    • READMEの充実

参考文献

(上に戻る)

About

Object detection using SSD (Single Shot MultiBox Detector). Nodelet implementation version

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published