谷歌又为目标检测API进行了升级,最新的能力包括哪些方面?

电子说

1.2w人已加入

描述

自从去年TensorFlow Object Detection API发布以来,谷歌团队不断扩充其性能,除了通过神经架构搜索和实例分割来提高模型的学习能力,还用如Open Images 等不断出现的新数据集来训练模型。它在世界范围内被用于各种各样的任务中,从城市街头中的异常行为检测,到茂密丛林里的植物识别都有着它的身影。

近日,为了不断扩充和壮大这一API的能力,谷歌又为目标检测API进行了升级,最新的能力包括以下几个方面:

支持通过谷歌云TPUs来对模型训练进行加速;

通过加速推理和基于TF-Lite格式的模型导出来提升移动端的部署能力;

加入了很多新的架构,包括:

RetinaNet;

MobileNet版本的RetinaNet;

新型的SSD架构PoolingPyramidNetwork,缩小了三倍的大小。

同时还给出了每一个模型在coco数据集上的预训练权重供用户使用。

数据集

通过云TPUs加速训练

用户常常需要在大量的时间去调节一个模型的超参数,如果可以大幅节省训练时间将十分有意义。所以这次推出的基于SSD架构的模型都针对TPUs进行了优化设计,利用强大的云服务你可以很快的训练出符合要求的网络。举个例子,希望将基于ResNet-50的RetinaNet在coco数据集上训练到35%mAP,通过TPUs云服务只需要不到3个半小时就够了。

通过量化和TF-Lite加速推理

为了更好的支持移动和嵌入式设备中低延时的需求,其中的模型提供了对于Tensorflow-lite的原生支持,这使得设备端的机器学习模型可以以更小的容量和更低的延时实现良好的表现。除此之外,新API还加入了模型量化以及对于检测的原生操作。其中模型量化基于Jacob的论文和Krishnamoorthi的白皮书实现。

数据集

为了在有限大小下保证性能,工程师们不仅量化了权重,同时对激活也进行了量化,实现了速度(大小)和精度的平衡。下图展现了优化后的模型在Pixel2的CPU上所测量得到的延时、模型大小和mAP值。可以发现,模型得到了大幅压缩,速度几乎提升了一倍(>15fps),而精度只有略微下降。

数据集

如果你想上手试试的话,Tensorflow团队提供了一个详细的教程。

https://medium.com/tensorflow/training-and-serving-a-realtime-mobile-object-detector-in-30-minutes-with-cloud-tpus-b78971cf1193

通过训练你甚至可以做出一个检测家里小猫小狗的app安装在自己手机上和朋友们分享。你可以通过colab来完成训练,或者也可以用为开发者提供的docker来完成开发。

通过手把手的教程你就可以做出一个很有趣的app,最终训练完成就会看到你的好伙伴被检测出来啦:

下面是在训练过程中的主要步骤:

环境搭建(安转相应的库和依赖文件,可以使用dockerfile完成一键安装)

云配置(配置TPUs、存储服务,基于gcloud和gsutil)

安装Tensorflow + Object Detection

配置数据库(转换为TFRecoard来加速数据IO)并上传存储

使用checkpoint来进行迁移学习加速训练

在云端训练量化模型

导出模型、在移动端上部署并运行。

TensorFlow团队希望通过更高效的API将高水平的视觉模型带给更多希望解决检测问题的人使用,并为用户提供从模型训练到移动端部署的顺滑体验。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分