Facebook发布开源“Detectron”深度学习库,用于对象检测
2018年03月16日 由 nanan 发表
381253
0
在刚刚过去的一月份(2018年1月),Facebook的研究机构Facebook AI Research(FAIR)发布了开源的Detectron对象检测库。几个星期后,谷歌发布了此版本的Tensorflow图像识别API。两个库都实现了最新的深度学习算法,用于对象检测。
Detectron是在Apache 2.0许可下提供的Python库,并建立在由Facebook支持的深度学习框架“Caffe2”上。Detectron库可以在GitHub上使用,包括脚本、预先训练好的模型以及Docker映像,以方便安装。谷歌的Tensorflow图像识别API于2017年6月首次发布,是近40个不同深度学习项目中更大型Tensorflow研究库的一部分。
两个库中包含的预训练模型都已经在COCO数据集上进行了训练,这是一个大型对象检测、分割和字幕数据集,其中包括80个对象类别,超过200000的标记图像和150万个对象实例。Facebook的Detectron和谷歌的Tensorflow图像识别API主要用于研究,目前尚未投入生产。
目标检测仍然是计算机视觉领域的一个具有挑战性的分支,但在计算机视觉领域中的许多方面都有应用,从数码相机的简单人脸检测到图像检索和视频监控。自动驾驶汽车依靠实时行人检测,而自动计数人员或汽车在城市规划中很有价值。
问题的关键在于识别未知数量的物体,这些物体的大小可能会有所不同,并且会分散在图像上。提供足够的速度和高精确度的约束增加了任务的固有困难。
在机器学习方面,静止图像中的对象检测需要同时解决两个问题。确定图像的特定区域是否是对象,并找出它可能是哪个对象。目前的对象检测模型建立在卷积神经网络(CNN)上,这是一种特定的神经网络结构。CNN在原始图片上使用滑动矩形窗口进行特征提取。
对象检测算法主要有两大类。基于R-CNN的算法通过使用多种不同大小的滑动窗口来处理各种尺寸的检测对象。对象检测算法的YOLO(只看一次)类算法在图像上应用一次性网格,并使用不同的特征提取和决策架构。虽然以前的算法能够在被探测到的物体上画出一个盒子的边界,但最近的变化(Mask R-CNN和RetinaNet)是在物体的边缘上画出了一个紧密的边界。这个重要的创新被称为实例分割,并且将每个像素归类为归属或不归属于推断的对象。
调查表明,TensorFlow对象检测API更容易用于训练专有模型。它的GitHub存储库包括几个用于安装、模型训练和迁移学习的Jupyter笔记本。Google对象检测库目前也可以在线获得更多教程。