GithubHelp home page GithubHelp logo

qiuxiaoming / ssd-knowledge-distillation Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ssisyphustao/object-detection-knowledge-distillation

0.0 0.0 0.0 214 KB

A PyTorch Implementation of Knowledge Distillation on SSD

Python 97.73% Shell 2.27%

ssd-knowledge-distillation's Introduction

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.

ssd-knowledge-distillation's People

Contributors

ssisyphustao avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.