Skip to content

单例(One Shot)目标检测

Ren Jin edited this page Dec 13, 2021 · 8 revisions

Prometheus单例(One-Shot)目标检测

现代检测器依赖大量标注数据训练,目前已有人脸、行人、车辆等类别的大型数据集,但对于一些新类别、新样本,难以构建大型数据。单例检测可不需要对新类别、新样本进行额外训练,仅需要一张查询样本(query patch),就可以进行新类别的目标检测。

单例检测

具体结果见视频:

https://www.bilibili.com/video/BV1v3411k76f?share_source=copy_web

后面将分别介绍2种运行模式,1:独立运行,2:依托Prometheus运行(稍后发布)

1 独立运行

1.1 下载代码、安装依赖

# 注意:首先确认是否安装好了cuda和pytorch
git clone https://gitee.com/jario-jin/One-Shot-Object-Detection.git
cd One-Shot-Object-Detection
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
cd lib
sudo python3 setup.py build develop
cd ..

1.2 下载预训练模型

bash prepare_models.sh

1.2 定制自己的单例图像,运行单例检测

  • 将需要检测的单例图像替换 One-Shot-Object-Detection/images/query.jpg
  • (可选)修改test_custom.py,447行cam_id = 0,(根据自己的摄像头id填写)
  • 运行:
python3 test_custom.py

image-20211106165633290

2 配合Prometheus运行

在命令行中执行如下代码:

cd <path-to-Prometheus>
bash compile_detection.sh
# 需保证编译不报错
bash Scripts/install_detection_one_shot.sh
# 等待下载、编译完成
cd Modules/object_detection_oneshot/
python3 test_custom_ros.py
# 稍等2秒,Ctrl+Alt+T打开一个新的命令行界面
source <path-to-Prometheus>/devel/setup.bash
roslaunch prometheus_detection oneshot_det.launch
# 检测结果参考话题 prometheus_msgs.msg 中的 DetectionInfo, MultiDetectionInfo
Clone this wiki locally