网站首页 > 博客文章 正文
导读:深度学习做图像识别有很多不同的途径。谷歌最近发布了一个使用Tensorflow的物体识别API,让计算机视觉在各方面都更进了一步。小编带大家一起去了解如何使用TF物体识别API。本头条号专注于人工智能与深度学习领域,持续为大家带来好玩又好学的知识与视界,喜欢或者支持小编的朋友可以订阅、转发与评论,让知识也可以走在共享的时代上!
前景摘要
Google 发布 TensorFlow 物体检测 API,帮助开发人员和研究人员识别图片中的物体。Google 专注于提高 API 的易用性和性能,新的模型于 6 月 16 号发布,在基准测试中表现出良好的性能,并已经开始应用于研究工作当中。
物体检测 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构建视频物体识别系统
猜你喜欢
- 2024-10-02 用python调用chatgpt接口合成视频
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)