可以在手机里运行的Detectron2来了:Facebook官方出品,支持端到端模型训练、量化和部署

2021-03-07 18:30 1104 阅读 ID:277
量子位
量子位

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

    —完—

    @量子位 · 追踪AI技术和产品新动态

    深有感触的朋友,欢迎赞同、关注、分享三连վ'ᴗ' ի ❤

    免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
    反馈
    to-top--btn