Traditional snake algorithms:
given an initial contour, traditional snake algorithms treat the coordinates
of the vertices as a set of variables and optimize an energy functional with respect to these variables.
Active contour models could optimize the contour to the object boundary. The energy functional is typically
nonconvex, the deformation process tend to find local optimal solutions.
Network Architecture:
Deep snake consists of three parts: a backbone, a fusion block and a prediction head. The backbone is comprised
of 8 “CirConvBn-ReLU” layers and uses residual skip connections for all layers. The fusion block aims to fuse
the information across all contour points at multiple scales.
Detail:
Add deep snake to an object detection model. The detector first produces objet boxes that are used to construct
diamond contours. Then deep snake deforms the diamond vertices to object extreme points, which are used to
construct octagon contours. Finally, the approach takes octagons as initial contours and performs iterative
contour deformation to obtain the object shape.
Initial contour proposal:
The octagon is formed by four extreme points, which are top, leftmost, bottom, rightmost pixels in an object,
given a detected object box, extract four points centered at top, left, bottom, right box borders and then
connect them to get a diamond contour.
Optimization:
Regressing the offsets in one pass in challenging, especially for vertices far away from the object. Use an
iterative optimization fashion. Solve the localization errors from the detector.
Multi-component objects:
use RoIAlign to extract a feature map and adds a detector branch on the feature map to produce the component boxes.