代码之家  ›  专栏  ›  技术社区  ›  RobIII Lukas

用ML.Net实现C#中的图像分析

  •  -1
  • RobIII Lukas  · 技术社区  · 7 年前

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

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

    所以我希望我能 ML.Net 然后训练一个模型,用一些手工标注的图像,无论我在车道上看到我或她的车,我都用数据标记图像。我想在白天给100到几百张图像加注释,在晚上给另一组图像加注释,然后将所有这些图像输入到ML.Net进行训练,然后分析几百张图像,在那里我可以手动检查结果并纠正任何错误,然后创建一种反馈循环,再训练几百张图像。

    培训结束后,我想分析当前存储的所有图像以及每个新图像,以生成一些关于我(或我妻子)何时回家、何时离开等的数据。

    我的问题是(这可能是这个问题被关闭为“太宽泛”之类的原因):我不知道该怎么做。我见过 awesome tutorials 这一切都让它看起来像是儿童游戏,但当我尝试用C#(我选择的语言)来做这件事,并寻找 ML.Net Howto's 我似乎找不到任何有助于我正确方向的东西。

    例如: Train a machine learning model with data that's not in a text file .我是一名称职的程序员,所以创建CSV文件/数据库/任何具有 1.jpg -> rob home, wife not home 数据但是“How To”并没有解释如何将图像输入到ML.Net中,我也没有找到任何可以这样做的东西。最有可能的原因是我对ML(.Net)还不熟悉,可能是因为我太固执了,不想放弃用C#来完成这项工作,但现有的信息听起来很奇怪,令人难以理解,但也很稀少。这些信息通常会让我陷入困境,过了很长时间才发现这不是我想要的 我找不到任何暗示我走对了方向的东西。

    长话短说; tl;博士 :

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Ben    7 年前

    你可能会在这里找到有用的东西 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中的一个例子,但是它应该使用EGGU很好的翻译成C++或C语言。一旦检测到车辆,检查位置和颜色。这种方法也可能避免标记任何数据。

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