All Projects → SsisyphusTao → Ssd Knowledge Distillation

SsisyphusTao / Ssd Knowledge Distillation

A PyTorch Implementation of Knowledge Distillation on SSD

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ssd Knowledge Distillation

Mmdetection
OpenMMLab Detection Toolbox and Benchmark
Stars: ✭ 17,646 (+34500%)
Mutual labels:  object-detection, ssd
Ssd Pytorch
SSD目标检测算法(Single Shot MultiBox Detector)(简单,明了,易用,全中文注释,单机多卡训练,视频检测)( If you train the model on a single computer and mutil GPU, this program will be your best choice , easier to use and easier to understand )
Stars: ✭ 276 (+441.18%)
Mutual labels:  object-detection, ssd
Ssd Variants
PyTorch implementation of several SSD based object detection algorithms.
Stars: ✭ 233 (+356.86%)
Mutual labels:  object-detection, ssd
Vip
Video Platform for Action Recognition and Object Detection in Pytorch
Stars: ✭ 175 (+243.14%)
Mutual labels:  object-detection, ssd
Ssd.pytorch
A PyTorch Implementation of Single Shot MultiBox Detector
Stars: ✭ 4,499 (+8721.57%)
Mutual labels:  object-detection, ssd
Traffic Sign Detection
Traffic Sign Detection. Code for the paper entitled "Evaluation of deep neural networks for traffic sign detection systems".
Stars: ✭ 200 (+292.16%)
Mutual labels:  object-detection, ssd
Object Detection Api Tensorflow
Object Detection API Tensorflow
Stars: ✭ 267 (+423.53%)
Mutual labels:  object-detection, ssd
Ssd Pytorch
SSD: Single Shot MultiBox Detector pytorch implementation focusing on simplicity
Stars: ✭ 107 (+109.8%)
Mutual labels:  object-detection, ssd
Ssd Tensorflow
Single Shot MultiBox Detector in TensorFlow
Stars: ✭ 4,066 (+7872.55%)
Mutual labels:  object-detection, ssd
Rectlabel Support
RectLabel - An image annotation tool to label images for bounding box object detection and segmentation.
Stars: ✭ 338 (+562.75%)
Mutual labels:  object-detection, ssd
A Pytorch Tutorial To Object Detection
SSD: Single Shot MultiBox Detector | a PyTorch Tutorial to Object Detection
Stars: ✭ 2,398 (+4601.96%)
Mutual labels:  object-detection, ssd
Tensorflow Face Detection
A mobilenet SSD based face detector, powered by tensorflow object detection api, trained by WIDERFACE dataset.
Stars: ✭ 711 (+1294.12%)
Mutual labels:  object-detection, ssd
Ssd keras
简明 SSD 目标检测模型 keras version(交通标志识别 训练部分见 dev 分支)
Stars: ✭ 152 (+198.04%)
Mutual labels:  object-detection, ssd
Paddledetection
Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Stars: ✭ 5,799 (+11270.59%)
Mutual labels:  object-detection, ssd
Ssd keras
A Keras port of Single Shot MultiBox Detector
Stars: ✭ 1,763 (+3356.86%)
Mutual labels:  object-detection, ssd
Mmdetection To Tensorrt
convert mmdetection model to tensorrt, support fp16, int8, batch input, dynamic shape etc.
Stars: ✭ 262 (+413.73%)
Mutual labels:  object-detection, ssd
Ssd
High quality, fast, modular reference implementation of SSD in PyTorch
Stars: ✭ 1,060 (+1978.43%)
Mutual labels:  object-detection, ssd
Tf Object Detection
Simpler app for tensorflow object detection API
Stars: ✭ 91 (+78.43%)
Mutual labels:  object-detection, ssd
Fastmot
High-performance multiple object tracking based on YOLO, Deep SORT, and optical flow
Stars: ✭ 284 (+456.86%)
Mutual labels:  object-detection, ssd
Ssd tensorflow traffic sign detection
Implementation of Single Shot MultiBox Detector in TensorFlow, to detect and classify traffic signs
Stars: ✭ 459 (+800%)
Mutual labels:  object-detection, ssd

Knowledge Distillation on SSD

This is an implementation of Chen, G. et al. (2017) ‘Learning efficient object detection models with knowledge distillation’ with SSD structure.

Overall Structure

structure

Introduction

For saving time, I combined codes from two existing repositories, amdegroot/ssd.pytorch and qfgaohao/pytorch-ssd. Pre-trained models also can be downloaded from thier repositories.

Training sets: VOC2007 trainval & VOC2012 trainval
Testing sets: VOC2007 test
(you can use scripts data/VOC2007.sh and data/VOC2012.sh to get them easily)

Backbone mAP URL
Teacher net VGG16 77.43% https://s3.amazonaws.com/amdegroot-models/ssd300_mAP_77.43_v2.pth
Student net MobilenetV2(SSD lite) 68.6% https://storage.googleapis.com/models-hao/mb2-ssd-lite-mp-0_686.pth

Requirements

  • Python 3.6+
  • PyTorch 1.3+
  • CUDA 10.1+

Usages

This repository is just a sample, so you can easily understand how to use it by a quick look of files train.py and eval.py.
Basically, if you only want to reproduce the result, you need to change nothing, first download the two models above and put them into models/. Then, start training with

python train.py

to fine tune a vgg-ssd model. Next, use this fine-tuned model to teacher mobilenetv2-ssdlite by

python train.py --teacher_model=$PATH_OF_VGGSSD

Similarly, evaluate vgg model or mobilenetv2 model by

python eval.py vgg|mbv2 --trained_model=$PATH_OF_MODEL

Result

Classes Baseline BestEver OneExample
AP for aeroplane 0.6988 0.7220 0.6982
AP for bicycle 0.7788 0.7858 0.8123
AP for bird 0.6376 0.6641 0.6610
AP for boat 0.5545 0.5638 0.5770
AP for bottle 0.3573 0.3708 0.3628
AP for bus 0.8001 0.8112 0.7993
AP for car 0.7410 0.7529 0.7452
AP for cat 0.8240 0.8375 0.8393
AP for chair 0.5369 0.5493 0.5382
AP for cow 0.6193 0.6364 0.6444
AP for diningtable 0.7301 0.7238 0.7019
AP for dog 0.7848 0.8006 0.7919
AP for horse 0.8236 0.8431 0.8277
AP for motorbike 0.8144 0.8294 0.8331
AP for person 0.7162 0.7211 0.7170
AP for pottedplant 0.4197 0.4489 0.4215
AP for sheep 0.6265 0.6518 0.6457
AP for sofa 0.7864 0.7865 0.7759
AP for train 0.8313 0.8330 0.8296
AP for tvmonitor 0.6538 0.6654 0.6675
Mean AP 0.6868 0.6999 0.6945

The BestEver is the best model I have got but I deleted it becasue of trusting I could get a better one soon...But, apparently, it is still the best one...

Here I provide one less better example including teacher and student to prove this work.

TODO

  1. Provide more details(https://zhuanlan.zhihu.com/p/260370225).
  2. Amend the illogical part.
  3. If possible, improve the method to get better result.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].