【问题标题】:Image recognition, how to start out图像识别,如何开始
【发布时间】:2017-03-11 17:04:35
【问题描述】:

作为我的理学学士学位论文的一部分,我必须在视频源上使用图像识别。

我已将 openCV 和 Tensorflow(特别是 Inception 训练模型)确定为两个选项,但我不知道如何从那里继续。基本上我需要传递一个字符串,例如“keys”,如果前 5 个结果之一是“keys”,则返回一个布尔值。

顺便提一下,我在网上做了一个 Python 课程,因为两者都使用 Python。此外,我在 Java 方面也有相当扎实的经验,过去两年我们在大学里一直在使用它。

请注意,我确实不需要创建一个全新的图像识别系统,我需要使用一个来告诉我我的相机看到了什么。

此外,虽然它是视频,但我认为处理实际的视频源会更加困难。我的想法是从 30 帧中挑出 1 帧(假设视频输入为 30fps)并在其上运行图像识别。

提前致谢!

【问题讨论】:

  • 图像识别系统的摄像头正在查看的物体在大小、距离、亮度、运动等方面有哪些限制?
  • @JohnH 我不太明白你在问什么,但我觉得我应该这样做。您是在问观看环境是什么,或者图像识别系统需要什么?编辑:在第一种情况下,它将在室内,并且光线充足。相机将四处移动,直到找到给定的对象。
  • 就可以查看和识别的对象而言,您的范围似乎相当广泛。如果您要限制您尝试识别的对象的类型,您的工作量可能会更合理。一旦确定了这一点,就可以更容易地为该目标提供答案。
  • @JohnH 为什么在这种情况下范围很重要?至于限制对象,“家用物品”会是一个很好的限制吗? :D 你是说必须为各种对象训练模型吗?我的印象是 Inception 是一个训练有素的模型。

标签: python opencv tensorflow image-recognition


【解决方案1】:

如果您通读this tutorial,特别是“使用 Python API”部分,您的项目应该相当简单。 classify_image.py 产生的前 N ​​个结果在此代码块中转换为人类可读的文本 here

top_k = predictions.argsort()[-FLAGS.num_top_predictions:][::-1]
for node_id in top_k:
    human_string = node_lookup.id_to_string(node_id)
    score = predictions[node_id]
    print('%s (score = %.5f)' % (human_string, score))

对于您的示例,您希望将 FLAGS.num_top_predictions 设置为 5,并且您希望累积前 5 个 human_string 值,如下所示:

top_k_strings = []
top_k = predictions.argsort()[-FLAGS.num_top_predictions:][::-1]
for node_id in top_k:
    human_string = node_lookup.id_to_string(node_id)
    top_k_strings.append(human_string)
    score = predictions[node_id]
    print('%s (score = %.5f)' % (human_string, score))

最后,您可以检查“keys”是否是 imagenet 生成的前 5 个字符串之一,并返回一个布尔值作为

return "keys" in top_k_strings

此外,如果您对人类可读类别的完整列表感兴趣,您可以找到它们here

关于视频,您可能是对的,您必须对视频序列进行二次采样以跟上帧速率。一些实验和时序测试会让您了解所需的二次采样率。

祝你好运!

【讨论】:

  • 非常感谢您的澄清!我会仔细看看的!至于“人类可读类别的完整列表”,这些是模型训练要检测的东西吗?因为,有趣的是,“钥匙”不存在:P
  • 嗯。那很好笑。如果你真的想做一个key检测器,你可以使用this简单的方法来适配inception网络。但希望“钥匙”只是一个不幸的例子。
  • 是的,我一直在考虑让它成为系统的“功能”,以添加“查找 my 键”而不是“查找 any”的功能 键”
猜你喜欢
  • 2018-12-21
  • 2021-05-03
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2019-08-02
相关资源
最近更新 更多