From Pieces to a Detector

Introduction

Project introduction

From Pieces to a Detector

You have written IoU between boxes, decoding offsets into boxes, labelling anchors for training, class-aware NMS, and average precision. That is every piece of a detector's back half.

In the notebook these pieces come solved, and they wrap a real network. It is a small single-stage detector, trained ahead of time on 64 by 64 scenes of squares, disks, and triangles. You will look at its raw outputs, wire the pieces into a detector, and score it on 200 scenes.

What you will see

With the back half you wire together, the detector scores close to perfect at IoU 0.5. Then a teammate's decoder, run on exactly the same network outputs, scores almost nothing, though its boxes look close. You will find out why from two tables of numbers and then repair the teammate's boxes to prove it.

Finally you will run NMS on crowded scenes at several thresholds and see real objects disappear when the threshold is too low, and duplicates pile up when it is too high.

From raw outputs to a score

64 × 64 scene
1Raw decoded boxesevery confident anchor13 boxes
2After NMSone box per object4 boxes
3Scored3 hits, 1 false alarm4 boxes
Networkoffsets and scores
Decodeanchors to boxes
NMSdrop duplicates
Evaluateprecision, recall, AP

How the notebook is organized

01

Run the network

Anchors, raw outputs, training targets, and the whole back half wired together on one scene.

02

Score and debug

mAP on 200 scenes, then a bug hunt using only the numbers and a repair that proves it.

03

Tune for crowds

Choose an NMS threshold for scenes full of overlapping objects.

Run, score, and debug a detector

Run the whole back half in the browser, about 50 minutes.

Open the notebook project