[Object Detection] <<Performance Comparison of Deep Learning Techniques for Recognizing Birds in Aerial Images>>
2018-8-29, jingwenlai
当前Object Detection的挑战主要是小物体检测不够精准。
数据集: Little Birds in Aerial Imagery(LBAI), 包含10px ~ 40px的小物体
采用方法: - (Object Detection) YOLOv2, SSH, Tiny Face
- (Semantic Segmentation) U-Net, Mask R-CNN
结论: SSH对于简单样本效果最好,Tiny Face对于困难样本表现最好。
U-Net效果略优于Mask R-CNN
此文的综述值得一看,基本把two-stages & one-stage的演进讲完了。最新的state-of-the-art工作是
RetinaNet & YOLOv3, 此外,针对小物体的识别,Tiny Face & SSH目前是较好的方法。
本文主要贡献是对LBAI数据,使用不同经典方法对其检测,并比较各种不同经典算法的性能。
1. SSD: 采用官方的代码,结果对小物体检测效果不好,未计入比较。
2. SSH: 基于SSD的变种,通过Conv时改变stride增加感受野,增加上下文信息的方式来改进准确率,在人脸检测中达到经典效果并且速度较快。本文同样采用官方的caffe代码并且给出训练参数。
3. YOLO v2: 采用darknet源码,并给出训练参数。(便于复现结果)
4. Tiny Face: 上下文信息对检测小物体非常重要。其用于人脸检测获得了经典结果,并且,对于小人脸mAP达到82%,远高于此前29~64%mAP的结果。但因其pyramid的管线(用于增大感受野及上下文信息)导致速度较慢。文中同样给出使用官方源码及其训练参数。
5. U-Net: (Instance Segmentation): U-Net也是经典的结构。文中采用U-Net框架,但做了些更改,在每层conv块之后不裁剪感受野,而是通过zero-padding的方式填充,防止因LBAI小而丢失过多的像素标记信息。因LBAI数据量过多,若逐像素标记,工作量巨大,这里一个小技巧是,直接将标记框作为ground truth(这个是因为目标任务是类Object Detection任务)。同样,给出了具体的训练参数。
6. Mask R-CNN (Instance Segmentation):
LBAI包含230GB数据,源图分辨率极大(5760x3840),不能直接输入CNNs, 采用裁切的方式。(这个与我们现在处理的一个项目类似)。原始数据只有每幅图的鸟的个数,没有bounding box, 文中自行标注,使用的标注工具为Sloth, 并进行预处理。Sloth仅标注点,然后用图像处理的方式将标注后鸟的轮廓找出来,并添加boudning box. 此外,还包括对难易样本的分类, 多样性等。
# 结果
使用评估方法采用precision, recall, F1 score (TODO: 这里的公式可以保存)
几种不同方法的比较, 各有优势, SSH在简单样本中准确率高,Tiny Face在困难样本中召回率高。
Ref:
1. SSH: ICCV2017, Single Stage Headless Face Detector.
2. Tiny Face: CVPR2017, Finding Tiny Faces.