pytorch实现ssd边缘检测SSD: Single Shot MultiBox Object Detector

Song • 305 次浏览 • 0 个回复 • 2018年11月26日

pytorch中实现SSD: Single Shot MultiBox Object Detector论文实现边缘检测

一、安装

  • 通过在官网上选择您的环境并运行相应的命令来安装PyTorch。
  • 克隆此库。
    • 注意:我们目前仅支持Python 3+
  • 然后按照以下说明下载数据集。
  • 我们现在支持Visdom在训练期间进行实时损失可视化!
    • 要在浏览器中使用Visdom:
      # First install Python server and client
      pip install visdom
      # Start the server (probably in a screen or tmux)
      python -m visdom.server

然后(在训练期间)导航到http://localhost:8097/(有关训练详情,请参阅下面的“训练”部分)。

  • 注意:对于训练,我们目前支持VOCCOCO,并且旨在尽快添加ImageNet支持。

二、数据集

为了简化操作,我们提供了bash脚本来为您处理数据集下载和设置。我们还提供了继承的简单数据集加载器torch.utils.data.Dataset,使它们与torchvision.datasets API完全兼容。

1、COCO

Microsoft COCO:上下文中的常见对象

下载COCO 2014

# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/COCO2014.sh

VOC数据集 PASCAL VOC:视觉对象类

下载VOC2007 trainval&test

# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2007.sh # <directory>

下载VOC2012 trainval

# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2012.sh # <directory>

三、训练SSD

  • 首先下载PyTorchfc-reduced VGG-16基本网络权重:https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth
  • 默认情况下,假设您已在ssd.pytorch/weightsdir中下载了该文件:
    mkdir weights
    cd weights
    wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth

    要使用训练脚本训练SSD,只需将train.py标记的参数指定为标记或手动更改它们。

    python train.py

注意: 训练强烈建议使用NVIDIA GPU以提高速度。 有关Visdom使用/安装的说明,请参阅安装部分。 您可以通过将路径指定为训练参数之一来从检查点进行训练(同样,请参阅train.py选项)

四、评估

使用训练的网络进行评估:

python eval.py

您可在eval.py通过标记它们或手动更改它们来指定文件中列出的参数。

pytorch实现ssd边缘检测

五、性能

VOC2007测试 mAP

Original Converted weiliu89 weights From scratch w/o data aug From scratch w/ data aug
77.2 % 77.26 % 58.12% 77.43 %

FPS

GTX 1060: ~45.45 FPS

六、演示

使用预先训练的SSD网络进行检测

下载预先训练好的网络

我们的目标是从原始论文中重现此表

SSD会在多个数据集上生成结果

1、试试演示demo

  • 确保安装了jupyter notebook
  • 安装jupyter notebook的两种选择:

    • a、如果你使用conda(推荐)安装了PyTorch,那么你应该已经安装好了。(只需导航到ssd.pytorch克隆的仓库并运行): jupyter notebook

    • b、如果使用pip:
    # make sure pip is upgraded
    pip3 install --upgrade pip
    # install jupyter notebook
    pip install jupyter
    # Run this inside ssd.pytorch
    jupyter notebook
  • 在http://localhost:8888(默认)导航到demo/demo.ipynb即可!

2、尝试网络摄像头演示

  • 适用于CPU(可能需要调整cv2.waitkey以获得最佳fps)或NVIDIA GPU
  • 该演示目前需要opencv2+ w/ python绑定和板载网络摄像头
    • 您可以更改默认网络摄像头demo/live.py
  • CPU上安装imutils包以实现多线程:
    pip install imutils

    运行python -m demo.live打开网络摄像头并开始检测!

项目地址:amdegroot/ssd.pytorch


原创文章,转载请注明 :pytorch实现ssd边缘检测SSD: Single Shot MultiBox Object Detector - pytorch中文网
原文出处: https://ptorch.com/news/219.html
问题交流群 :168117787
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
Pytorch是什么?关于Pytorch! pytorch文档Autograd机制——Variable上的In-place操作一段翻译有误及更新