reconocimiento objetos modelo imagenes imagen entrenar clasificador python tensorflow conv-neural-network tensorflow-datasets

python - objetos - TensorFlow: entrenamiento en mi propia imagen



tensorflow reconocimiento de imagen (1)

Soy nuevo en TensorFlow. Estoy buscando ayuda para el reconocimiento de imágenes donde puedo entrenar mi propio conjunto de datos de imágenes .

¿Hay algún ejemplo para entrenar el nuevo conjunto de datos?


Si está interesado en cómo ingresar sus propios datos en TensorFlow, puede consultar este tutorial .
También escribí una guía con las mejores prácticas para CS230 en Stanford here .

Nueva respuesta (con tf.data ) y con etiquetas

Con la introducción de tf.data en r1.4 , podemos crear un lote de imágenes sin marcadores de posición y sin colas. Los pasos son los siguientes:

  1. Crea una lista que contenga los nombres de archivo de las imágenes y una lista correspondiente de etiquetas
  2. Crea un tf.data.Dataset lea estos nombres de archivo y etiquetas
  3. Preprocesar los datos
  4. Cree un iterador a partir del tf.data.Dataset que producirá el siguiente lote

El código es:

# step 1 filenames = tf.constant([''im_01.jpg'', ''im_02.jpg'', ''im_03.jpg'', ''im_04.jpg'']) labels = tf.constant([0, 1, 0, 1]) # step 2: create a dataset returning slices of `filenames` dataset = tf.data.Dataset.from_tensor_slices((filenames, labels)) # step 3: parse every image in the dataset using `map` def _parse_function(filename, label): image_string = tf.read_file(filename) image_decoded = tf.image.decode_jpeg(image_string, channels=3) image = tf.cast(image_decoded, tf.float32) return image, label dataset = dataset.map(_parse_function) dataset = dataset.batch(2) # step 4: create iterator and final input tensor iterator = dataset.make_one_shot_iterator() images, labels = iterator.get_next()

Ahora podemos ejecutar directamente sess.run([images, labels]) sin alimentar ningún dato a través de marcadores de posición.

Respuesta anterior (con colas TensorFlow)

Para resumir, tienes varios pasos:

  1. Crea una lista de nombres de archivos (por ejemplo: las rutas a tus imágenes)
  2. Crear una cola de nombre de archivo TensorFlow
  3. Lea y decodifique cada imagen, redimensionelas a un tamaño fijo (necesario para el procesamiento por lotes)
  4. Imprime un lote de estas imágenes

El código más simple sería:

# step 1 filenames = [''im_01.jpg'', ''im_02.jpg'', ''im_03.jpg'', ''im_04.jpg''] # step 2 filename_queue = tf.train.string_input_producer(filenames) # step 3: read, decode and resize images reader = tf.WholeFileReader() filename, content = reader.read(filename_queue) image = tf.image.decode_jpeg(content, channels=3) image = tf.cast(image, tf.float32) resized_image = tf.image.resize_images(image, [224, 224]) # step 4: Batching image_batch = tf.train.batch([resized_image], batch_size=8)