# Benchmarking Deep Learning Models for Instance Segmentation
## 4 Review Method
### Speed-Focused Models
The mask result was graphically modified, not the actual inference result (YouTube Video Instance Segmentation 2019 version-7a72130f21 [28]). Detection towers use the feature maps of an FPN to perform classification. Next, attention maps and bboxes are generated by adding a single convolution layer to each tower. The bottom module selectively receives the backbone or FPN features to generate score maps called bases. [PERSON] et al. [7] experimentally found that the AP of FPN features is higher than that of backbone features. For each instance predicted in the detector module, the blender module divides the bases with bboxes and linearly combines the attention maps to output the final mask. **SOLOv2**[6] was proposed as a model for improving the head part and NMS of segmenting objects by locations (SOLO [30]). SOLO introduced the concept of assigning categories to pixels inside instances according to the location and size of instances called _instance categories_. Before SOLO, a top-down method that first detects objects and then  
Figure 12: Difference between FlowNet5 [29] and FeatFlowNet [9] (YouTube Video Instance Segmentation 2019 version-7a72130f21 [28]). Figure 13: BlendMask architecture The mask result was graphically modified, not the actual inference result (COCO-val2017-000000561223 [10]). segments them and a bottom-up method that first predicts the class of the embedding vectors and then groups the same instances together were used. The authors who presented SOLO [30] argued that these two approaches have shortcomings, because they heavily depend on the detector performance or embedding learning and grouping processing. Therefore, the SOLO model was designed with the objective of directly segmenting the instance mask. SOLO is simply composed of a category branch and mask branch, and when the center of the object to be predicted enters a specific grid cell, the cell predicts the category and instance mask of the object (Figure 14). The mask branch uses a _CoordConv_ operator with two additional channels with information on the x-y coordinates in pixels to increase spatial variance. In addition, instead of using the existing vanilla head, the decoupled head, which predicts the x-axis and y-axis separately, is used to further improve performance. Finally, when the segmentation result corresponding to each grid cell is output, the final mask is created by removing the duplicate mask via NMS. SOLOv2 [6] divides SOLO's mask branch into a kernel branch that performs kernel learning and a feature branch that performs feature learning (Figure 15). In the kernel branch, the mask kernel is dynamically generated for the input. In the feature branch, the FPN feature maps are all upsampled to 1/4 of the input size. Then, all the features are added element-wise and 1 \(\times\) 1 convolution is performed to create unified mask features. Next, the outputs of the kernel and feature branches are convoluted to obtain an instance mask. Finally, a matrix NMS, which is an improved version of the standard NMS, is used to generate the final mask. Figure 14: SOLO architecture. The mask result was graphically modified, not the actual inference result (COCO-val2017-000000079565 [10]).