Small object detection has long been a difficult and hot topic in computer vision. Driven by deep learning, small object detection has achieved a major breakthrough and has been successfully applied in national defense security, intelligent transportation, industrial automation, and other fields. In order to further promote the development of small target detection, this paper makes a comprehensive summary of small target detection algorithms, and makes a reasonable classification, analysis and comparison of existing algorithms. Firstly, this paper defines the small object and summarizes the challenges of small object detection. Then, this paper focuses on the algorithms to improve the performance of small object detection from the aspects of data augmentation, multi-scale learning, context learning, generative adversarial learning, anchor-free mechanism, and analyzes the advantages and disadvantages, and relevance of these algorithms. Finally, this paper looks forward to the future development directions of small object detection.