TALK.md: SSD Coverage, Q&A, and Citations

Press / Blog Coverage

  • ECCV 2016: SSD was published at the European Conference on Computer Vision 2016 (Amsterdam), in LNCS vol. 9905. The authors released the reference implementation as a branch of Caffe (weiliu89/caffe, branch ssd), including models for VOC, COCO and ILSVRC.
  • Google Research blog, “Supercharge your Computer Vision models with the TensorFlow Object Detection API” (June 2017): announced the TF Object Detection API. SSD with MobileNet was one of the launch models, presented as the option for real-time and mobile use.
  • “Speed/accuracy trade-offs for modern convolutional object detectors” (Huang et al., CVPR 2017): Google’s large comparison of Faster R-CNN, R-FCN and SSD across backbones. It found SSD very competitive at the fast end of the speed/accuracy curve but weaker on small objects than Faster R-CNN.
  • torchvision: ships ssd300_vgg16 and ssdlite320_mobilenet_v3_large. The PyTorch blog post “Everything You Need To Know About Torchvision’s SSD Implementation” walks through how the paper’s details were reproduced.
  • MobileNetV2 paper (Sandler et al., CVPR 2018): introduced SSDLite, which replaces the regular convolutions in SSD’s prediction layers with depthwise-separable ones for mobile detection.

Interview Q&A (Verifiable, Based on Paper Content)

Q: What is the main difference between SSD and YOLO (v1)? A: YOLO predicts boxes from a single 7×7 grid using fully connected layers on the top feature map. SSD predicts with small convolutional filters on multiple feature maps of different resolutions, each with default boxes of several aspect ratios. That lets it handle objects of many sizes and shapes. SSD300 reached 74.3% mAP on VOC2007 test, compared with YOLO’s 63.4%, while still running in real time.

Q: How does SSD differ from Faster R-CNN if both use anchors? A: Faster R-CNN uses anchors in a Region Proposal Network, then resamples features for each proposal (RoI pooling) and classifies them in a second stage. SSD has no proposal or resampling stage. The same convolutional predictor directly outputs class scores and box offsets for every default box. Removing that stage is where most of the speed-up comes from: 59 FPS for SSD300 against 7 FPS for Faster R-CNN.

Q: Why is hard negative mining needed? A: After matching, most of the ~8.7k default boxes in SSD300 are background, so a plain softmax loss would be dominated by easy negatives. SSD sorts negatives by confidence loss and keeps only the hardest ones, so that negatives:positives is at most 3:1. The paper reports that this gives faster optimization and more stable training.

Q: Which design choices mattered most in the paper’s ablation? A: Data augmentation (random IoU-constrained crops) gave the largest gain, +8.8% mAP. Using more default box shapes (adding aspect ratios 1/3 and 3) and predicting from multiple output layers also helped clearly. Dilated (atrous) convolution in the converted fc6 layer made the network about 20% faster with similar accuracy.

Q: Why is SSD weak on small objects, and how did the authors address it? A: Small objects only show up on the high-resolution early layer (conv4_3), which has less semantic information. The authors’ fix was a “zoom-out” augmentation: they place the image on a larger canvas to create more small training examples, which gave about a 2–3% mAP improvement. Later work (DSSD, FPN-style pyramids) addressed it by bringing deeper semantic features back into the high-resolution maps.

Common Misconceptions

  • “SSD has no anchors; that’s what makes it single-shot.” SSD is heavily anchor-based, with 8,732 default boxes in SSD300. “Single shot” means there is no separate proposal and resampling stage, not that there are no anchors.
  • “SSD’s speed comes from a lighter backbone.” The original SSD uses the same VGG-16 as Faster R-CNN. The speed-up comes from removing the proposal stage and the per-RoI computation. Lighter backbones (MobileNet-SSD) came later.
  • “Each feature map sees only its own object sizes.” Default box scales are assigned per map, but receptive fields are much larger. Matching by IoU > 0.5 also means an object can be positive for boxes on more than one map. Specialization comes from the scale assignment and is learned, not hard-wired.
  • “SSD is a feature pyramid network.” SSD predicts from a pyramid of backbone features but has no top-down path. FPN (2017) added top-down connections to give high-resolution maps strong semantics.

Real Citations

  • Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C.-Y., & Berg, A. C. (2016). SSD: Single Shot MultiBox Detector. ECCV 2016. arXiv:1512.02325.
  • Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You Only Look Once: Unified, Real-Time Object Detection. CVPR 2016. arXiv:1506.02640.
  • Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks. NeurIPS 2015. arXiv:1506.01497.
  • Erhan, D., Szegedy, C., Toshev, A., & Anguelov, D. (2014). Scalable Object Detection using Deep Neural Networks (MultiBox). CVPR 2014. arXiv:1312.2249.
  • Fu, C.-Y., Liu, W., Ranga, A., Tyagi, A., & Berg, A. C. (2017). DSSD: Deconvolutional Single Shot Detector. arXiv:1701.06659.
  • Lin, T.-Y., Dollár, P., Girshick, R., He, K., Hariharan, B., & Belongie, S. (2017). Feature Pyramid Networks for Object Detection. CVPR 2017. arXiv:1612.03144.
  • Lin, T.-Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal Loss for Dense Object Detection (RetinaNet). ICCV 2017. arXiv:1708.02002.
  • Huang, J., et al. (2017). Speed/accuracy trade-offs for modern convolutional object detectors. CVPR 2017. arXiv:1611.10012.
  • Sandler, M., Howard, A., Zhu, M., Zhmoginov, A., & Chen, L.-C. (2018). MobileNetV2: Inverted Residuals and Linear Bottlenecks (introduces SSDLite). CVPR 2018. arXiv:1801.04381.