One year after the release of R-CNN, the same authors proposed Fast R-CNN [1]}, an evolution of their first object detection framework. Indeed, despite achieving high object detection quality, RCNN has notable drawbacks, the main of which concerns the training of the svm classifiers and bounding box regression: this process is expensive in both disk space and time since cnn features are extracted independently from each region proposal in each image, without sharing computation, and thus posing great challenges for large-scale detection. On the other hand, Fast R-CNN exploits the backbone just once per image using a network layer known as RoIPool (Region of Interest Pooling) and sharing that computation across all the proposals. In particular, the ROI pooling operation produces fixed-size feature maps from a list of non-uniform inputs defining and localizing the region proposals. From every region of interest from this input list, the RoIPoll layer takes a section of the input feature map that corresponds to it and scales it to some pre-defined size. The scaling is done by dividing the region proposal into equal-sized sections and finding the largest value in them. The result is that from a list of rectangles with different sizes, it gets a list of corresponding fixed-length feature vectors from the feature map. Furthermore, other improvements done in Fast R-CNN concerns the training procedure. In particular, the authors of Fast R-CNN proposed an end-to-end training procedure (when ignoring the process of region proposal generation) that can update all the network layers using a multi-task loss, unlike the multistage training pipeline exploited in R-CNN, which is slow and hard to optimize because each individual stage must be trained separately. To this end, each feature vector is fed into a sequence of fully connected layers that finally branch into two sibling output layers. One is a softmax layer that replaces the svms and is responsible for the classification task. The other is instead in charge of regressing the bounding box coordinates localizing the objects. We show in fig:fastrcnnarchitecture the architecture of this detection pipeline.
<FIGURE>