0

我在文件夹结构中有数千个 jpeg。这些图像是我车道的 2560 x 1440 快照,每 60 秒拍摄和存储一次。

我想创建一个程序,可以通过分析图像来检测我或我的妻子在那个特定时间是否在家。我有一辆红色的车,她有一辆亮黄色的车。所以一个简单的颜色阈值可能就足够了。另一个明显的区别是我们都有自己的停车位,从不停车。此外,其他人不使用车道(如果他们这样做,我不介意误报)。一个小问题是相机在黑暗中切换到黑/白(但这可能是停车位而不是颜色可能派上用场的时候)。

所以我希望我可以使用ML.Net并用一些手工注释的图像训练一个模型,在其中我用数据标记图像,无论我在车道上看到我还是她的汽车。我正在考虑为白天标注 100 到几百张图像,为夜间标注另一组图像,并将所有这些图像提供给 ML.Net 进行训练,然后分析几百张图像,我可以在其中手动检查结果并纠正任何错误,然后创建一种反馈循环来训练数百张图像。

训练完成后,我想分析当前存储的所有图像以及每个新图像,以生成一些关于我(或我妻子)何时在家、何时外出等的数据。

我的问题是(这可能是问题被关闭为“太宽泛”之类的原因):我不知道如何做到这一点。我看过很棒的教程,它们都让它看起来像儿戏,但是当我尝试在 C#(我选择的语言)中执行此操作并寻找ML.Net Howto时,我似乎找不到任何对我有帮助的东西方向。

例如:使用不在文本文件中的数据训练机器学习模型。我是一个称职的程序员,所以创建 CSV 文件/数据库/任何有1.jpg -> rob home, wife not home数据的东西都是小菜一碟。但是“如何做”并没有解释如何将图像输入 ML.Net,我也找不到任何可以做的事情。最可能的原因是我是 ML(.Net) 的新手,并且可能我太固执而无法放弃尝试在 C# 中完成此任务,但可用的信息虽然听起来很奇怪,但也很稀缺。可用的信息通常会让我陷入一些兔子洞,但在太久之后才发现这不是我想要的,或者我找不到任何暗示我朝着正确方向前进的东西。

长话短说;tl;博士

我如何将图像输入 ML.Net,我如何告诉 ML.Net 我/她的汽车在任何给定图像(训练)的车道上,以及如何让 ML.Net告诉我它是否认为我在/ 对于给定的图像,我的妻子是否在家?或者这不可能(目前)?我不是在寻找完整的代码,而是在寻找指针、提示、链接、教程、示例或任何可以帮助我朝着正确方向前进的东西。

4

1 回答 1

0

你可能会在这里找到有用的东西Image recognition/classification using Microsoft ML.net 0.2 (Machine learning)

但是,我鼓励您将 python 作为您任务的首选武器。在这里,您只需根据标签将数据存储在不同的文件夹中,您@home,您的妻子@home,都@home,开车路上没有车,其他的,你准备好了。 https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html

它可能不会带你超过一个周末,这包括学习 python 的基础知识。

编辑:我似乎仍然不支持使用 ML.Net 训练图像分类任务:“再次注意,此示例仅使用/使用带有 ML.NET API 的预训练 TensorFlow 模型。因此,它不训练任何ML.NET 模型。目前,TensorFlow 仅支持在 ML.NET 中使用现有的 TensorFlow 训练模型进行评分/预测。”

这里有一个关于它的线程https://github.com/dotnet/docs/issues/5379

您可以尝试使用:http : //www.emgu.com/wiki/index.php/Main_Page 与 OpenCV 结合使用,此https://www.geeksforgeeks.org/opencv-python-program-vehicle-detection- video-frame/是 python 中的一个示例,但它应该使用 emgu 很好地转换为 c++ 或 c#。一旦检测到汽车,检查位置和颜色。这种方法也可能避免标记任何数据。

或者使用预先训练的模型 h5 文件并加载到 ML.Net 中,然后检查位置和平均颜色以检查它是谁的车。

于 2018-12-12T15:14:48.493 回答