使用 TensorFlow 进行图像识别 [关闭]
Posted
技术标签:
【中文标题】使用 TensorFlow 进行图像识别 [关闭]【英文标题】:Image recognition using TensorFlow [closed] 【发布时间】:2016-04-14 04:38:49 【问题描述】:我是 TensorFlow 新手,正在寻求图像识别方面的帮助。是否有一个示例展示了如何使用 TensorFlow 训练您自己的数字图像以进行图像识别,例如 TensorFlow image recognition tutorial 中使用的 image-net 模型
我查看了 CIFAR-10 模型训练,但它似乎没有提供训练您自己的图像的示例。
【问题讨论】:
您可以使用 mnisten github.com/nyanp/mnisten 将图像转换为 idx 格式,然后使用 tensor flow mnist 教程,使用 ***.com/questions/33784214/… 中的答案修改代码 @alfredo1389,我无法构建 mnisten 脚本。它产生这个错误In file included from src/main.cpp:11: /usr/local/include/opencv/cv.hpp:50:10: error: 'cv.h' file not found with <angled> include; use "quotes" instead #include <cv.h> ^ src/main.cpp:12:10: fatal error: 'opencv2/highgui.hpp' file not found #include <opencv2/highgui.hpp> ^ 2 errors generated. make: *** [mnisten] Error 1
【参考方案1】:
我建议使用 Google 训练有素的 Inception 模型进行图像识别。 请参考 tensorflow 网站上的示例“How to Retrain Inception's Final Layer for New Categories”。它位于https://www.tensorflow.org/versions/r0.9/how_tos/image_retraining/index.html。
使用经过训练的模型很容易,并且可以达到合理的准确度。您只需使用您自己的数据集来提供模型。谷歌初始的最后一个分类层会被修改,我们只训练最后一层。对于数千张不同类别的图像,只需几个小时即可完成训练。 请注意:为了使用该示例,您必须从源代码构建 tensorflow。
我正在使用迁移学习功能并取得了非常好的结果。为了说明迁移学习的好处,我将“在训练的 GoogleNet 上迁移学习”与“从头开始构建和训练 5 层卷积网络”进行比较。分类任务是在 5000 张图片上完成的,分为 5 个类别。
看这个简单的例子:https://www.youtube.com/watch?v=QfNvhPx5Px8(在 5 分钟内构建一个 TensorFlow 图像分类器)
【讨论】:
是否有相同的文档,而不仅仅是 youtube 视频? image-retrain 上的 tensorflow 文档是有限的。【参考方案2】:此 repo 为您自己的图像提供最终层图像再训练。
将您的图像添加到 training_“数据集文件夹”
添加越来越多的图片(每个班级至少需要 30 张图片。)
首先执行 bash 脚本下载 Imagenet 文件。
接下来,运行 python 脚本来重新训练输出验证准确性等的图像,
https://github.com/shivakrishna9/tensorflow-retrain
【讨论】:
以上是关于使用 TensorFlow 进行图像识别 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
利用深度学习框架Tensorflow做图像识别(基于阿里云PAI)