编者按:发展至今,计算机视觉已经产生了不少令人惊叹的应用,但一提到它,人们首先想到的总是人脸检测、物品识别……除去已经发展得很成熟的人脸识别技术,我们难道只能用检测室内物品来练习技巧吗?作为一个极具工程价值的领域,也许大家应当扩张技术应用的广度,把它和现实场景结合起来,真正做一些更接地气的尝试。
本文旨在构建一个自定义Mask R-CNN模型,它可以检测汽车车身的损坏区域(如下图所示)。这背后的应用理念是,购买二手车时,消费者首先会关注车身刮擦情况,有了这个模型,他们足不出户就能大致了解车子情况,避免被坑。而对于日常生活中的小事故,如果用户只需上传图片就能完成车辆破损鉴定,保险公司的索赔效率也会大幅提高。
什么是Mask R-CNN?
Mask R-CNN是一个实例分割模型,它能确定图片中各个目标的位置和类别,给出像素级预测。所谓“实例分割”,指的是对场景内的每种兴趣对象进行分割,无论它们是否属于同一类别——比如模型可以从街景视频中识别车辆、人员等单个目标。下图是在COCO数据集上训练好的Mask R-CNN,如图所示,大到每一辆车,小到单根香蕉,它都能用窗口标出目标物品在画面中的像素位置。
不同于Faster R-CNN这样的经典对象检测模型,Mask R-CNN的一个特点是可以给窗口内表示对象轮廓的像素着色。可能有人会觉得这是个鸡肋功能,但它对自动驾驶汽车和机器人控制