# SSD: Single Shot MultiBox Object Detector, in PyTorch
A [PyTorch](http://pytorch.org/) implementation of [Single Shot MultiBox Detector](http://arxiv.org/abs/1512.02325) from the 2016 paper by Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang, and Alexander C. Berg. The official and original Caffe code can be found [here](https://github.com/weiliu89/caffe/tree/ssd).
<img align="right" src= "https://github.com/amdegroot/ssd.pytorch/blob/master/doc/ssd.png" height = 400/>
### Table of Contents
- <a href='#installation'>Installation</a>
- <a href='#datasets'>Datasets</a>
- <a href='#training-ssd'>Train</a>
- <a href='#evaluation'>Evaluate</a>
- <a href='#performance'>Performance</a>
- <a href='#demos'>Demos</a>
- <a href='#todo'>Future Work</a>
- <a href='#references'>Reference</a>
## Installation
- Install [PyTorch](http://pytorch.org/) by selecting your environment on the website and running the appropriate command.
- Clone this repository.
* Note: We currently only support Python 3+.
- Then download the dataset by following the [instructions](#datasets) below.
- We now support [Visdom](https://github.com/facebookresearch/visdom) for real-time loss visualization during training!
* To use Visdom in the browser:
```Shell
# First install Python server and client
pip install visdom
# Start the server (probably in a screen or tmux)
python -m visdom.server
```
* Then (during training) navigate to http://localhost:8097/ (see the Train section below for training details).
- Note: For training, we currently support [VOC](http://host.robots.ox.ac.uk/pascal/VOC/) and [COCO](http://mscoco.org/), and aim to add [ImageNet](http://www.image-net.org/) support soon.
## Datasets
To make things easy, we provide bash scripts to handle the dataset downloads and setup for you. We also provide simple dataset loaders that inherit `torch.utils.data.Dataset`, making them fully compatible with the `torchvision.datasets` [API](http://pytorch.org/docs/torchvision/datasets.html).
### COCO
Microsoft COCO: Common Objects in Context
##### Download COCO 2014
```Shell
# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/COCO2014.sh
```
### VOC Dataset
PASCAL VOC: Visual Object Classes
##### Download VOC2007 trainval & test
```Shell
# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2007.sh # <directory>
```
##### Download VOC2012 trainval
```Shell
# specify a directory for dataset to be downloaded into, else default is ~/data/
sh data/scripts/VOC2012.sh # <directory>
```
## Training SSD
- First download the fc-reduced [VGG-16](https://arxiv.org/abs/1409.1556) PyTorch base network weights at: https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth
- By default, we assume you have downloaded the file in the `ssd.pytorch/weights` dir:
```Shell
mkdir weights
cd weights
wget https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth
```
- To train SSD using the train script simply specify the parameters listed in `train.py` as a flag or manually change them.
```Shell
python train.py
```
- Note:
* For training, an NVIDIA GPU is strongly recommended for speed.
* For instructions on Visdom usage/installation, see the <a href='#installation'>Installation</a> section.
* You can pick-up training from a checkpoint by specifying the path as one of the training parameters (again, see `train.py` for options)
## Evaluation
To evaluate a trained network:
```Shell
python eval.py
```
You can specify the parameters listed in the `eval.py` file by flagging them or manually changing them.
<img align="left" src= "https://github.com/amdegroot/ssd.pytorch/blob/master/doc/detection_examples.png">
## Performance
#### VOC2007 Test
##### 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
## Demos
### Use a pre-trained SSD network for detection
#### Download a pre-trained network
- We are trying to provide PyTorch `state_dicts` (dict of weight tensors) of the latest SSD model definitions trained on different datasets.
- Currently, we provide the following PyTorch models:
* SSD300 trained on VOC0712 (newest PyTorch weights)
- https://s3.amazonaws.com/amdegroot-models/ssd300_mAP_77.43_v2.pth
* SSD300 trained on VOC0712 (original Caffe weights)
- https://s3.amazonaws.com/amdegroot-models/ssd_300_VOC0712.pth
- Our goal is to reproduce this table from the [original paper](http://arxiv.org/abs/1512.02325)
<p align="left">
<img src="http://www.cs.unc.edu/~wliu/papers/ssd_results.png" alt="SSD results on multiple datasets" width="800px"></p>
### Try the demo notebook
- Make sure you have [jupyter notebook](http://jupyter.readthedocs.io/en/latest/install.html) installed.
- Two alternatives for installing jupyter notebook:
1. If you installed PyTorch with [conda](https://www.continuum.io/downloads) (recommended), then you should already have it. (Just navigate to the ssd.pytorch cloned repo and run):
`jupyter notebook`
2. If using [pip](https://pypi.python.org/pypi/pip):
```Shell
# make sure pip is upgraded
pip3 install --upgrade pip
# install jupyter notebook
pip install jupyter
# Run this inside ssd.pytorch
jupyter notebook
```
- Now navigate to `demo/demo.ipynb` at http://localhost:8888 (by default) and have at it!
### Try the webcam demo
- Works on CPU (may have to tweak `cv2.waitkey` for optimal fps) or on an NVIDIA GPU
- This demo currently requires opencv2+ w/ python bindings and an onboard webcam
* You can change the default webcam in `demo/live.py`
- Install the [imutils](https://github.com/jrosebr1/imutils) package to leverage multi-threading on CPU:
* `pip install imutils`
- Running `python -m demo.live` opens the webcam and begins detecting!
## TODO
We have accumulated the following to-do list, which we hope to complete in the near future
- Still to come:
* [x] Support for the MS COCO dataset
* [ ] Support for SSD512 training and testing
* [ ] Support for training on custom datasets
## Authors
* [**Max deGroot**](https://github.com/amdegroot)
* [**Ellis Brown**](http://github.com/ellisbrown)
***Note:*** Unfortunately, this is just a hobby of ours and not a full-time job, so we'll do our best to keep things up to date, but no guarantees. That being said, thanks to everyone for your continued help and feedback as it is really appreciated. We will try to address everything as soon as possible.
## References
- Wei Liu, et al. "SSD: Single Shot MultiBox Detector." [ECCV2016]((http://arxiv.org/abs/1512.02325)).
- [Original Implementation (CAFFE)](https://github.com/weiliu89/caffe/tree/ssd)
- A huge thank you to [Alex Koltun](https://github.com/alexkoltun) and his team at [Webyclip](http://www.webyclip.com) for their help in finishing the data augmentation portion.
- A list of other great SSD ports that were sources of inspiration (especially the Chainer repo):
* [Chainer](https://github.com/Hakuyume/chainer-ssd), [Keras](https://github.com/rykov8/ssd_keras), [MXNet](https://github.com/zhreshold/mxnet-ssd), [Tensorflow](https://github.com/balancap/SSD-Tensorflow)
没有合适的资源?快使用搜索试试~ 我知道了~
ssd pytorch版 手把手源码(包括模型、代码、和数据)
共1278个文件
jpg:614个
xml:611个
py:21个
2星 需积分: 46 93 下载量 168 浏览量
2020-04-30
09:10:57
上传
评论 11
收藏 468.5MB RAR 举报
温馨提示
物体检测模型SSD的源码,包括数据、代码、训练模型。环境:Python3.8; pytorch1.5。
资源推荐
资源详情
资源评论
收起资源包目录
ssd pytorch版 手把手源码(包括模型、代码、和数据) (1278个子文件)
.gitattributes 110B
.gitignore 1KB
demo.ipynb 1.26MB
aircraft_303.jpg 553KB
aircraft_953.jpg 495KB
aircraft_706.jpg 469KB
aircraft_783.jpg 467KB
oiltank_31.jpg 426KB
aircraft_149.jpg 425KB
oiltank_170.jpg 421KB
oiltank_172.jpg 418KB
oiltank_223.jpg 413KB
aircraft_693.jpg 411KB
aircraft_181.jpg 411KB
oiltank_46.jpg 410KB
aircraft_1005.jpg 406KB
oiltank_244.jpg 406KB
oiltank_96.jpg 401KB
aircraft_728.jpg 400KB
oiltank_366.jpg 397KB
aircraft_752.jpg 393KB
aircraft_608.jpg 387KB
oiltank_342.jpg 385KB
oiltank_21.jpg 384KB
aircraft_343.jpg 381KB
aircraft_820.jpg 381KB
oiltank_184.jpg 380KB
aircraft_332.jpg 378KB
oiltank_322.jpg 376KB
oiltank_67.jpg 376KB
aircraft_114.jpg 375KB
aircraft_539.jpg 373KB
aircraft_977.jpg 373KB
aircraft_667.jpg 373KB
aircraft_764.jpg 373KB
aircraft_1033.jpg 372KB
oiltank_196.jpg 371KB
aircraft_810.jpg 370KB
oiltank_353.jpg 369KB
oiltank_405.jpg 369KB
oiltank_29.jpg 369KB
aircraft_726.jpg 368KB
aircraft_152.jpg 368KB
aircraft_190.jpg 367KB
aircraft_345.jpg 366KB
aircraft_682.jpg 366KB
aircraft_965.jpg 364KB
aircraft_948.jpg 364KB
aircraft_723.jpg 364KB
oiltank_206.jpg 362KB
aircraft_613.jpg 362KB
oiltank_111.jpg 360KB
oiltank_73.jpg 359KB
aircraft_735.jpg 358KB
oiltank_198.jpg 357KB
oiltank_3.jpg 357KB
aircraft_934.jpg 356KB
aircraft_868.jpg 355KB
aircraft_828.jpg 354KB
oiltank_186.jpg 354KB
oiltank_398.jpg 353KB
aircraft_536.jpg 353KB
oiltank_64.jpg 350KB
aircraft_1078.jpg 349KB
aircraft_1124.jpg 349KB
oiltank_202.jpg 348KB
aircraft_897.jpg 348KB
aircraft_738.jpg 347KB
aircraft_431.jpg 347KB
aircraft_632.jpg 345KB
aircraft_786.jpg 345KB
aircraft_824.jpg 344KB
oiltank_49.jpg 343KB
aircraft_617.jpg 343KB
aircraft_581.jpg 342KB
aircraft_401.jpg 342KB
aircraft_185.jpg 342KB
aircraft_654.jpg 342KB
aircraft_1136.jpg 341KB
aircraft_628.jpg 341KB
aircraft_464.jpg 341KB
oiltank_364.jpg 341KB
aircraft_219.jpg 340KB
aircraft_742.jpg 340KB
aircraft_818.jpg 340KB
oiltank_448.jpg 339KB
aircraft_916.jpg 339KB
aircraft_471.jpg 339KB
aircraft_780.jpg 339KB
aircraft_1032.jpg 339KB
oiltank_382.jpg 339KB
oiltank_216.jpg 338KB
aircraft_223.jpg 337KB
aircraft_923.jpg 337KB
aircraft_944.jpg 337KB
oiltank_204.jpg 336KB
aircraft_322.jpg 335KB
aircraft_344.jpg 335KB
aircraft_1012.jpg 335KB
oiltank_58.jpg 335KB
共 1278 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
- chencheng8511262020-06-26我的环境是anaconda,python3.7,pytorch1.5,能训练,但是在运行eval.py时报错,无法运行,RuntimeError: Legacy autograd function with non-static forward method is deprecated. 什么原因呢?AI浩2020-08-12pytorch的版本太高了 用1.2的
AI浩
- 粉丝: 14w+
- 资源: 216
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BLOCK_TYPE_HEARTBEAT_D70A3465D4EE4E9_046141_dump_1st.dmp
- 项目方法测试调用接口工具
- studyupdate
- 基于西瓜数据集的决策树实现.zip
- 60套HTML网站源码-响应式-涵盖(简历&作品展示&商业&科技&培训&商城&课设等)-适配移动设备-解压即用.zip
- 贪心算法要点和难点实例代码解析
- 65套HTML网站源码-响应式-涵盖(简历&作品展示&商业&科技&培训&商城&课设等)-适配移动设备-解压即用.zip
- 多因素决策树的Python实现.zip
- 使用Python在莺尾花数据集上实现了决策树算法,文件里有数据集.zip
- python实现决策树.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功