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

我已经将openCV和Tensorflow-特别是受Inception训练的模型确定为两个选项,但是我不知道该如何进行。基本上,我需要传递一个字符串,例如“keys”,如果前5个结果之一是“keys”,则返回一个 bool(boolean) 值。

只是说,我都在线上了python类(class),因为两者都使用python。我在Java方面也有丰富的经验,过去两年来我们一直在使用它。

请注意,我要做而不是,需要创建一个全新的图像识别系统,我需要使用一个告诉我相机所看到的内容。

另外,虽然是视频,但我认为处理实际的视频供稿会更加困难。我想到的是从30帧中选出1帧(假设有30fps的视频供稿),然后对其进行图像识别。

提前致谢!

最佳答案

如果您阅读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个字符串之一,然后将 bool(boolean) 值传回
return "keys" in top_k_strings

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

对于视频,您可能是正确的,您必须对视频序列进行二次采样才能跟上帧速率。一些实验和时序测试将使您对所需的子采样率有所了解。

祝好运!

关于python - 图像识别,如何开始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40311268/

10-13 07:13