鱼羊 发自 凹非寺
量子位 报道 | 公众号 QbitAI

做目标检测、语义分割,你一定听说过Detectron2。

作为一个基于PyTorch实现的模块化目标检测库,Detectron2当年刚一开源,就被推上了GitHub趋势榜第一。

而现在,移动端开发人员们的福利来了。

Facebook官方正式推出Detectron2的移动版:Detectron2Go(D2Go)。

打开网易新闻 查看更多图片

什么是D2Go

先来看官方介绍:

  • PyTorch和Detectron2支持的深度学习工具包
  • 最先进的高效移动设备骨干网络
  • 支持端到端模型训练、量化和部署
  • 能轻松导出TorchScript格式

通过D2Go,开发者可以创建已经针对移动设备进行过优化的FBNet模型,在移动端高效地执行目标检测语义分割以及关键点估计等任务。

△D2Go人体关键点估计

那么D2Go具体有哪些优势呢?

实际上,移动端的目标检测任务主要关注的有两点:延迟准确性

而如果模型能够在边缘设备上独立运行,不用将数据传至云端进行处理,就能大大的减少延迟。

另外,这也进一步保障了终端用户的数据、隐私安全。

Facebook表示,在实验测试中,使用D2Go开发的移动端模型,与基于服务器的模型相比,延迟更低,且准确性损失不大。

如何使用

首先是安装的部分,需要安装的有:

PyTorch Nightly

conda install pytorch torchvision cudatoolkit=10.2 -c pytorch-nightly

Detectron2

python -m pip install 'git+https://github.com/facebookresearch/detectron2.git'

mobile_cv

python -m pip install 'git+https://github.com/facebookresearch/mobile-vision.git'

D2go

git clone https://github.com/facebookresearch/d2go
cd d2go & python -m pip install .

在D2go的GitHub仓库中,还提供了预训练模型的推理Demo。

从model_zoo中选择一个模型,运行demo.py,就可以进行试玩。

faster_rcnn_fbnetv3a模型为例:

cd demo/
python demo.py —config-file faster_rcnn_fabnetv3a_C4.yaml —input input1.jpg —output output1.jpg

在训练和评估方面,D2Go本身基于detectron2工具包实现,因此在训练之前,需要按照detectron2的说明设置内置数据集。

而具体如何用预训练模型进行推理训练一个D2go模型将模型导出到int8,Facebook也提供了详细的入门示例。

打开网易新闻 查看更多图片

开源地址:
https://github.com/facebookresearch/d2go

Facebook博客:
https://ai.facebook.com/blog/d2go-brings-detectron2-to-mobile/