Small object detection is a particular case of object detection where various techniques are employed to detect small objects in digital images and videos. "Small objects" are objects having a small pixel footprint in the input image. In areas such as aerial imagery, state-of-the-art object detection techniques under performed because of small objects.
Small object detection has applications in various fields such as Video surveillance (Traffic video Surveillance,[1][2] Small object retrieval,[3][4] Anomaly detection,[5] Maritime surveillance, Drone surveying, Traffic flow analysis,[6] and Object tracking.
Various methods[16] are available to detect small objects, which fall under three categories:
There are various ways to detect small objects with existing techniques. Some of them are mentioned below,
The machine learning model's output depends on "How well it is trained."[17] So, the data set must include small objects to detect such objects. Also, modern-day detectors, such as YOLO, rely on anchors. Latest versions of YOLO (starting from YOLOv5[18]) uses an auto-anchor algorithm to find good anchors based on the nature of object sizes in the data set. Therefore, it is mandatory to have smaller objects in the data set.
Deep learning models have billions of neurons that settle down to some weights after training. Therefore, it requires a good amount of quantitative and qualitative data for better training.[19] Data augmentation is useful technique to generate more diverse data[17] from an existing data set.
These help to get more features from objects and eventually learn the best from them. For example, a bike object in the 1280 X 1280 resolution image has more features than the 640 X 640 resolution.
Selecting anchor size plays a vital role in small object detection.[20] Instead of hand picking it, use algorithms that identify it based on the data set. YOLOv5 uses a K-means algorithm to define anchor size.
State-of-the-art object detectors allow only the fixed size of image and change the input image size according to it. This change may deform the small objects in the image. The tiling approach[21] helps when an image has a high resolution than the model's fixed input size; instead of scaling it down, the image is broken down into tiles and then used in training. The same approach is used during inference as well.
Use a feature pyramid network[22] to learn features at a multi-scale: e.g., Twin Feature Pyramid Networks (TFPN),[23] Extended Feature Pyramid Network (EFPN).[24] FPN helps to sustain features of small objects against convolution layers.
Instead of modifying existing methods, some add-on techniques are there, which can be directly placed on top of existing approaches to detect smaller objects. One such technique is Slicing Aided Hyper Inference(SAHI).[25] The image is sliced into different-sized multiple overlapping patches. Hyper-parameters define their dimensions. Then patches are resized, while maintaining the aspect ratio during fine-tuning. These patches are then provided for training the model.
Various deep learning techniques are available that focus on such object detection problems: e.g., Feature-Fused SSD,[26] YOLO-Z.[27] Such methods work on "How to sustain features of small objects while they pass through convolution networks."
{{cite journal}}
|journal=