2016-10-28 3 views
2

В качестве части моей диссертации для получения степени бакалавра, я должен использовать распознавание изображений на видеопотоке.Распознавание изображений, начало работы

Я определил openCV и Tensorflow - в частности, подготовленную модель для начала - в качестве двух вариантов, однако я не знаю, как это сделать. В принципе, мне нужно передать строку, такую ​​как «ключи», и если один из 5 лучших результатов - «ключи», получите логический ответ.

Просто, чтобы упомянуть, я сделал курс python онлайн, так как оба используют python. Кроме того, у меня довольно солидный опыт работы с Java, мы используем его последние два года в нашей унификации.

Отметьте, что мне нужно не необходимо создать совершенно новую систему распознавания изображений, мне нужно использовать ее, чтобы рассказать мне, что видит моя камера.

Кроме того, в то время как это видео, я думаю, что будет сложнее обрабатывать фактический видеопоток. Я думал о том, чтобы выбрать 1 из 30 кадров (при условии 30fps видео-канал) и запустить распознавание изображений.

Заранее благодарен!

+0

Каковы ограничения на объекты, которые просматривает камера системы распознавания изображений с точки зрения размера, расстояния, яркости, движения и т. Д.? – JohnH

+0

@JohnH Я не совсем понимаю, что вы просите, но у меня есть чувство, которое я должен. Вы спрашиваете, каковы будут условия просмотра или что требуется системе распознавания изображений? Редактировать: В первом случае это будет в помещении и хорошо освещено. Камера будет перемещаться, пока не будет найден данный объект. – MrUber

+0

Ваша область видимости кажется довольно широкой с точки зрения того, какие объекты можно просмотреть и идентифицировать. Ваша рабочая нагрузка может быть более разумной, если вы хотите ограничить тип объектов, которые вы пытаетесь идентифицировать. Как только это будет определено, тогда будет легче дать ответы на эту цель. – JohnH

ответ

2

Ваш проект должен быть достаточно прост, если вы читаете this tutorial и, в частности, раздел «Использование с API Python». Лучшие результаты, полученные N classify_image.py преобразуются в читаемый текст человека 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)) 

Наконец, вы можете проверить, если «ключи» является одним из лучших 5 строк, imagenet производства и передать обратно логическое значение, как

return "keys" in top_k_strings 

Кроме того, если вы заинтересованы в полном списке человеческого считываемого категорий, вы можете найти их here

относительно видео, вы, вероятно, правы, что вы должны будете субсемплировать видеоряд, чтобы не отставать с частотой кадров. Некоторые эксперименты и тесты времени помогут вам почувствовать необходимую скорость подвыборки.

Удачи вам!

+0

Большое спасибо за разъяснение! Я посмотрю! Что касается «полного списка понятных человеку категорий», это те вещи, которые обучают модели для обнаружения? Потому что, достаточно интересно, «ключей» нет: P – MrUber

+0

Хммм. Забавно. Если вы действительно хотите сделать ключевой детектор, вы можете использовать [this] (https://www.tensorflow.org/versions/r0.11/how_tos/image_retraining/index.html) простой способ адаптировать начальную сеть. Но, надеюсь, «ключи» были всего лишь неудачным примером. – RobR

+0

Да, я думал о том, чтобы сделать «особенностью» системы в любом случае, добавить функциональность «find _my_ keys» вместо «find _any_ keys», – MrUber

Смежные вопросы