Facebook 开源用于目标检测的深度学习库 Detectron

  • Alexis Perrier
  • 郝毅

2018 年 3 月 25 日

话题:开源GoogleFacebookAITensorFlow

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

一月份,在谷歌更新了TensorFlow 图像识别 API之后,Facebook 的研究部门FAIR(Facebook AI Research) 宣布开源目标检测库 Detectron。这两个库都提供了最新的深度学习目标检测算法。

Detectron 是基于 Facebook 的深度学习框架Caffe2开发的,使用了开源协议Apache 2.0 ,可以直接作为 Python 的库使用。Detectron 的包可以在 GitHub 上下载,包括脚本、预训练模型以及 Docker 镜像。谷歌的 TensorFlow 图像识别 API 最早于 2017 年 6 月发布,是 TensorFlow 研究项目的一部分,TensorFlow 包含了约 40 个不同的深度学习项目。

这两个库的预训练模型都已在COCO 数据集上训练好,COCO 数据集是一个大型图像数据库,包括了目标检测、分割以及图像文本描述信息。该数据集有 80 个类,超过 20 万张标注图像以及 150 万个实例对象。Facebook 的 Detectron 和谷歌的 Tensorflow 图像识别 API 主要用于研究,暂未用于生产。

目标检测仍然是计算机视觉领域具有挑战性的一个方面,在许多计算机视觉领域的任务上都有应用。从简单的人脸检测到图像检索与视频监控。自动驾驶需要依赖于实时行人检测技术,而城市的车辆与人口数量的自动统计在城市规划中也很有价值。

目标检测面临的主要问题是自然场景下的未知目标的数量、大小和其在图像上的分布都是随机的。并且在提升精度的同时要求算法具有速度优势,这也增加了任务本身的难度。

机器学习中,静止图像中的目标检测需要同时解决两个问题。即确定图像的某个特定区域是一个目标物体并判断其种类。目前的目标检测模型建立在卷积神经网络(CNN) 的基础上,卷积神经网络是一类结构特殊的神经网络。CNN 使用矩形滑动窗口对整个原始图像进行特征提取。

目标检测算法主要有两大类。基于 R-CNN 的方法使用多尺度滑动窗口处理不同尺寸的目标,而 YOLO(You Only Look Once) 算法使用不同的特征提取和决策方法对图像进行一次推理。早期的工作能够在目标物体的周围标记一个矩形边界 (object localization),而最近的一些研究成果 (例如,Mask R-CNNRetinaNet) 能够在物体边缘标记出更精确的边界。这一重大的进展被称为实例分割 (instance segmentation),对于图像中的每个像素点,都会确定其对于某一特定类的归属关系。

评论表明 Tensorflow 目标检测 API 更容易训练,它的 GitHub 仓库包括一些可以用于安装、训练模型和迁移学习的 Jupyter Notebooks,在谷歌的目标检测库中也可以获取更多的在线教程

查看英文原文:Facebook Open-Sources Detectron, Deep-Learning Library for Object Detection


感谢无明对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

开源GoogleFacebookAITensorFlow