如何在 Sci-Kit Learn / Tensorflow 中检测对象大小?

Posted

技术标签:

【中文标题】如何在 Sci-Kit Learn / Tensorflow 中检测对象大小?【英文标题】:How do I detect an object size in Sci-Kit Learn / Tensorflow? 【发布时间】:2017-10-16 00:32:24 【问题描述】:

我正在构建一个需要识别图像中对象大小的应用。我需要能够读取黄瓜的图片,然后告诉黄瓜有多少像素长。我过去建立了一个图像分类器,但不知道如何检索分类图像并找到尺寸。

我对机器学习和 sci-kit 学习有基本的了解。任何建议或指南都会非常有帮助和感激!

编辑:这听起来可能很愚蠢,但我可以将任何东西放入神经网络以获得自动结果吗?例如,我是否可以在具有目标长度的黄瓜图像上训练神经网络,并期望神经网络知道我想从图像中检索像素长度?

【问题讨论】:

您指的是图像分割。图像分割和图像分类是机器学习“任务”的例子。 感谢您的澄清!我已经更新了我的问题 >例如,我是否可以在具有目标长度的黄瓜图像上训练神经网络,并期望神经网络知道我想从图像中检索像素长度?是的你可以。这称为回归。最好的方法是首先构建一个分类 DNN。然后剥离全连接层并将其替换为回归层,其中目标是像素数。但是,您将需要大量的训练数据 非常感谢您的回复!因此,在构建分类 DNN 时,我是否只训练黄瓜和其他随机物品的图像以及 0 或 1 来判断它是否真的是黄瓜?当我实际使用该应用程序时,我不打算使用除黄瓜以外的任何图片,所以我不确定我是否完全需要一个对象分类器。 【参考方案1】:

根据您的用例,使用OpenCV. It has bindings for python, C, C++ and java. 可能会更好。如果你的黄瓜总是在相同的背景上,这就是我会采取的 100% 的路线,因为 OpenCV 有完全可以做这种事情的方法。

如果由于某种原因您必须在生产中使用 TF,那么您仍然应该使用 OpenCV 来准备数据以训练神经网络。准备一堆黄瓜的示例图像,使用 OpenCV 剪下黄瓜并将其放入大约 500,000 个示例图像中(缩放和旋转随机数量,可能带有一点剪切或模糊或两者兼有),并将其用作您的数据集输入 TF。 您应该能够输入真/假值(黄瓜与否)以及尺寸。据我所知,它应该同时学习它们。

确保您包含大量空场景的图像,然后包含相同场景的图像以及其中的目标对象。理想情况下,您会希望使用与您的应用程序运行相同的环境。

很抱歉发布答案而不是评论。声望还不够。

附:如果您使用颜色而不是形状来检测对象,则要容易得多

干杯, 安德鲁

【讨论】:

感谢您的洞察力!我将研究 OpenCV。不幸的是,背景每次都会不同,我必须识别形状而不仅仅是颜色。 OpenCV 中的 Haar 级联可能就足够了。这里有教程pythonprogramming.net/loading-images-python-opencv-tutorial

以上是关于如何在 Sci-Kit Learn / Tensorflow 中检测对象大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何将个人 PNG 数据集放入 Sci-Kit Learn 进行图像识别?

如何使用 TRAINS python 自动魔法实验管理器手动注册 sci-kit 模型?

在 Sci-kit Learn 中将参数解析为 SVM 的自定义核函数

Sci-kit Learn Confusion Matrix:发现样本数量不一致的输入变量

使用 Sci-kit Learn SVM 时预测始终相同

如何用sci-kit learn识别误分类文本文件的ID/名称/标题