LINUX.ORG.RU

Простой классификатор изображений (TensorFlow) - Python

 , ,


1

1

Добрый день!

Собрал нейронную сеть подобно описанию в этой статье :https://tproger.ru/translations/image-classifier-tensorflow/

Все бы хорошо но скрипт на питоне обрабатывает только одно изображение !!!

# -*- coding: utf-8 -*-
import tensorflow as tf
import sys
from numpy import argsort
 
image_path = sys.argv[1]
 
# считывает файл image_data
image_data = tf.gfile.FastGFile(image_path, 'rb').read()
 
# загружает выбранный файл и удаляет символ разрыва строки
label_lines = [line.rstrip() for line in tf.gfile.GFile("/tf_files/retrained_labels.txt")]
 
# отделяет граф от файла
with tf.gfile.FastGFile("/tf_files/retrained_graph.pb", 'rb') as f:
    graph_def = tf.GraphDef()
    graph_def.ParseFromString(f.read())
    _ = tf.import_graph_def(graph_def, name='')
 
# загружает image_data как входные данные и отображает первые предположения 
with tf.Session() as sess:
    softmax_tensor = sess.graph.get_tensor_by_name('final_result:0')
    predictions = sess.run(softmax_tensor, {'DecodeJpeg/contents:0': image_data})
 
# сортирует категории после первых предположений в порядке роста уверенности
top_k = predictions[0].argsort()[-len(predictions[0]):][::-1]
 
for node_id in top_k:
    human_string = label_lines[node_id]
    score = predictions[0][node_id]
    print('%s (score = %.5f)' % (human_string, score))

Задача в том чтобы обработать сразу все файлы(изображения) в папке - а не по одному как в примере в статье.

Смею предположить что затык в конечном коде на питоне, но не как не могу сообразить как заставить эту штуку обработать сразу все файлы в папке и записать отчет о проверке в файл.

Или возможно как то через терминальную команду

Заранее спасибо за помощь !

Все мы умеем гуглить, поэтому любителей-скорострелов быстро кинуть ссылку на целое собрание сочинений по программированию и сделать вид, что отметился прошу не тратить свое время.



Последнее исправление: frostikkk (всего исправлений: 2)

но не как не могу сообразить как заставить эту штуку обработать сразу все файлы в папке и записать отчет о проверке в файл.

Это называется «цикл» и есть в любом учебнике по любому языку программирования

Или возможно как то через терминальную команду

В bash они тоже есть

router ★★★★★
()
Ответ на: комментарий от router

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

Был бы рад примерам на моем коде.

frostikkk
() автор топика
Ответ на: комментарий от frostikkk

Тогда бери язык программирования который знаешь, или учи питон. Пригодится.

anonymous
()
Ответ на: комментарий от router

я не уверен, что это так заработает т к скрипту необходимо передать параметр при запуске. Этот параметр - строка адреса до конечного изображения, иначе не запустится.

Таким образом если я просто заверну весь код в цикл - он все равно будет проверять одно и то же изображение, а не все содержимое папки.

frostikkk
() автор топика
Ответ на: комментарий от cnupm

хороший совет - но насколько я знаю эта утилита просто запоминает ввод с командной строки и выполняет его несколько раз. а в папке много изображений и у каждого уникальное имя - как в этом случае модифицировать поочередно ввод в терминале и подставлять каждый раз новое имя изображения ?

frostikkk
() автор топика
Ответ на: комментарий от frostikkk

Строка запуска имеет такой вид :

«python /test/script.py /test/foto/foto-v1/23487d4o8gu.jpg»

имена - это абсолютно рандомные сочетания букв и цифр

frostikkk
() автор топика
Ответ на: комментарий от pawnhearts

А есть что-то лучше? И ТС её вполне достаточно.

ei-grad ★★★★★
()

Даже если мы поможем тебе в этом конкретном случае, ты же опять прибежишь через 5 минут. Учи питон.

fluorite ★★★★★
()

Воспользуйся своим умением. Модуль называется os.

dn2010 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.