作为我的理学学士学位论文的一部分,我必须在视频源上利用图像识别。
我已经将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/