一文带你掌握谷歌的目标检测与识别API附实际测试效果_模子_物体
物体检测 API 包含了高度依赖 Inception 的卷积神经网络和简化模型,这些模型可以运行在大略的机器上。比如,MobileNets 单次检测器经由优化,能够以实时的办法运行在智好手机上。
早前,Google 发布了轻量级的 MobileNets 打算机视觉模型家族,这些模型可以用于实行各种任务,如物体检测、面部识别和地标识别。
准备好了吗?这些代码在谷歌的打算机视觉运用中非常有用,谷歌希望本次开源能够将这份便利带给所有人。谷歌同时也欢迎更多贡献者参与进来。现在,你可以***代码,利用 Jupyter notebook 考试测验在图片中识别物体,也可以开始在 Cloud ML 引擎中演习你自己的识别器了。
代码:tensorflow/models
Jupyter notebook:tensorflow/models
Cloud ML:https://cloud.google.com/blog/big-data/2017/06/training-an-object-detector-using-cloud-machine-learning-engine
https://github.com/priya-dwivedi/Deep-Learning/blob/master/Object_Detection_Tensorflow_API.ipynb
其检测结果如下:
物体检测
API概述采取Google前沿的TensorFlow开源框架实现物体分类检测;目前已达到60多个物体分类检测之多,个中包括人形、动物、车辆检测识别等,乃至可识别各种标志检测。总结了一下,大概有:
COCO数据集的一些物体种类
这个API供应了5种不同的模型。
个中包含一个可演习性检测模型的凑集,包括:
带有 MobileNets 的 SSD(Single Shot Multibox Detector)
带有 Inception V2 的 SSD
带有 Resnet 101 的 R-FCN(Region-Based Fully Convolutional Networks)
带有 Resnet 101 的 Faster RCNN
带有 Inception Resnet v2 的 Faster RCNN
上述每一个模型的冻结权重(在 COCO 数据集上演习)可被用于开箱即用推理。
一个 Jupyter notebook 可通过我们的模型之一实行开箱即用的推理
借助谷歌云实现便捷确当地演习脚本以及分布式演习和评估管道
想要理解更多跟模型有关的知识
https://github.com/tensorflow/models/blob/477ed41e7e4e8a8443bc633846eb01e2182dc68a/object_detection/g3doc/detection_model_zoo.md
实际速率测试利用最轻量级的模型(ssd_mobilenet)。紧张步骤如下:
1. ***一个打包模型(.pb-protobuf)并把它载入缓存
2. 利用内置的赞助代码来载入标签,种别,可视化工具等等。
3. 建立一个新的会话,在图片上运行模型。
总体来说步骤非常大略。而且这个API文档还供应了一些能运行这些紧张步骤的Jupyter文档——
https://github.com/tensorflow/models/blob/master/object_detection/object_detection_tutorial.ipynb
这个模型在实例图像上表现得相称出色(如下图):
人与鹞子
***上测试接下来我打算在***上考试测验这个API。我利用了Python moviepy库,紧张步骤如下:
首先,利用VideoFileClip函数从***中提取图像;
然后利用fl_image函数在***中提取图像,并在上面运用物体识别API。fl_image是一个很有用的函数,可以提取图像并把它更换为修正后的图像。通过这个函数就可以实现在每个***上提取图像并运用物体识别;
末了,把所有处理过的图像片段合并成一个新***。
对付3-4秒的片段,这个程序须要花费大概1分钟的韶光来运行。但鉴于我们利用的是一个载入缓存的模型,而且没有利用GPU,我们实现的效果还是很惊艳的!
很难相信只用这么一点代码,就可以以很高的准确率检测并且在很多常见物体上画出边界框。
当然,我们还是能看到有一些表现有待提升。比如下面的例子。这个***里的鸟完备没有被检测出来。
原版***与检测识别后***比拟
连续探索
几个进一步探索这个API的想法:
考试测验一些准确率更高但本钱也更高的模型,看看他们有什么不同;
探求加速这个API的方法,这样它就可以被用于车载装置上进行实时物体检测;
谷歌也供应了一些技能来运用这些模型进行通报学习。例如,载入打包模型后添加一个带有不同图像类别的输出层。
参考文献Google Tensorflow Object Detection Github
COCO dataset
知乎:何之源对付“谷歌开放的TensorFlow Object Detection API 效果如何?”的回答
机器之心:如何利用TensorFlow API构建***物体识别系统
本文系作者个人观点,不代表本站立场,转载请注明出处!