做目标检测、语义分割,你一定听说过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/
— 完 —
“