Update app.py
Browse files
app.py
CHANGED
|
@@ -1,4 +1,6 @@
|
|
| 1 |
-
|
|
|
|
|
|
|
| 2 |
import os
|
| 3 |
import re
|
| 4 |
import numpy as np
|
|
@@ -16,16 +18,15 @@ from gtts import gTTS
|
|
| 16 |
from datasets import load_dataset
|
| 17 |
dataset = load_dataset("ojoel98/App2", data_files="RIPIOS.token.txt")
|
| 18 |
|
| 19 |
-
# Verificar que el dataset se cargó correctamente
|
| 20 |
-
print(dataset)
|
| 21 |
-
|
| 22 |
from huggingface_hub import get_full_repo_name
|
| 23 |
repo_path = get_full_repo_name("ojoel98/App2")
|
|
|
|
|
|
|
| 24 |
training_data_path = os.path.join(repo_path, "training data")
|
| 25 |
|
| 26 |
#Procesamiento de las imágenes
|
| 27 |
IMAGES_PATH = training_data_path
|
| 28 |
-
IMAGE_SIZE = (500,
|
| 29 |
VOCAB_SIZE = 700
|
| 30 |
SEQ_LENGTH = 400
|
| 31 |
EMBED_DIM = 512
|
|
@@ -34,6 +35,8 @@ BATCH_SIZE = 64
|
|
| 34 |
EPOCHS = 1
|
| 35 |
AUTOTUNE = tf.data.AUTOTUNE
|
| 36 |
|
|
|
|
|
|
|
| 37 |
def load_captions_data(filename):
|
| 38 |
with open(filename) as caption_file:
|
| 39 |
caption_data = caption_file.readlines()
|
|
@@ -44,6 +47,8 @@ def load_captions_data(filename):
|
|
| 44 |
for line in caption_data:
|
| 45 |
line = line.rstrip("\n")
|
| 46 |
img_name, caption = line.split("\t")
|
|
|
|
|
|
|
| 47 |
img_name = img_name.split("#")[0]
|
| 48 |
img_name = os.path.join(IMAGES_PATH, img_name.strip())
|
| 49 |
tokens = caption.strip().split()
|
|
@@ -58,7 +63,6 @@ def load_captions_data(filename):
|
|
| 58 |
if img_name in caption_mapping:
|
| 59 |
del caption_mapping[img_name]
|
| 60 |
return caption_mapping, text_data
|
| 61 |
-
|
| 62 |
def train_val_split(caption_data, train_size=0.8, shuffle=True):
|
| 63 |
all_images = list(caption_data.keys())
|
| 64 |
if shuffle:
|
|
@@ -71,21 +75,9 @@ def train_val_split(caption_data, train_size=0.8, shuffle=True):
|
|
| 71 |
img_name: caption_data[img_name] for img_name in all_images[train_size:]
|
| 72 |
}
|
| 73 |
return training_data, validation_data
|
| 74 |
-
|
| 75 |
-
# Cargar los datos de las capturas
|
| 76 |
-
captions_mapping, text_data = load_captions_data("RIPIOS.token.txt")
|
| 77 |
-
|
| 78 |
-
# Verificar que los datos se cargaron correctamente
|
| 79 |
-
print("Número de imágenes:", len(captions_mapping))
|
| 80 |
-
print("Número de capturas de texto:", len(text_data))
|
| 81 |
-
|
| 82 |
-
# Dividir los datos en entrenamiento y validación
|
| 83 |
train_data, valid_data = train_val_split(captions_mapping)
|
| 84 |
|
| 85 |
-
# Verificar que los datos se dividieron correctamente
|
| 86 |
-
print("Número de imágenes de entrenamiento:", len(train_data))
|
| 87 |
-
print("Número de imágenes de validación:", len(valid_data))
|
| 88 |
-
|
| 89 |
|
| 90 |
#Vectorización de los datos de texto
|
| 91 |
def custom_standardization(input_string):
|
|
@@ -454,4 +446,4 @@ def generate_caption(sample_img):
|
|
| 454 |
demo = gr.Interface(fn = generate_caption,inputs = gr.Image(label="Imagen"), outputs = [gr.Text(label="Descripción textual"), gr.Audio(label="Audio")], theme ='darkhuggingface', title = 'DESCRIPCIÓN DE IMÁGENES DE RIPIOS DE PERFORACIÓN',
|
| 455 |
description = 'La siguiente interfaz describirá de forma automática imágenes de ripios de perforación. El usuario deberá ingresar en el recuadro de la izquierda la imagen a ser procesada, y en los recuadros de la derecha se mostrará la descripción textual y oral de la imagen. Se recomienda ingresar imágenes sin ningún tipo de mediciones o símbolos ya que esto podría afectar en la predicción del modelo.',
|
| 456 |
article = 'Nota: En el caso de ingresar imágenes que no tengan relación a muestras de ripios de perforación, los autores de esta aplicación no se hacen responsables por los resultados de estas, el modelo de descripción de ripios de perforación está entrenado para dar un resultado.')
|
| 457 |
-
demo.launch()
|
|
|
|
| 1 |
+
|
| 2 |
+
|
| 3 |
+
#Librerías necesarias
|
| 4 |
import os
|
| 5 |
import re
|
| 6 |
import numpy as np
|
|
|
|
| 18 |
from datasets import load_dataset
|
| 19 |
dataset = load_dataset("ojoel98/App2", data_files="RIPIOS.token.txt")
|
| 20 |
|
|
|
|
|
|
|
|
|
|
| 21 |
from huggingface_hub import get_full_repo_name
|
| 22 |
repo_path = get_full_repo_name("ojoel98/App2")
|
| 23 |
+
|
| 24 |
+
import os
|
| 25 |
training_data_path = os.path.join(repo_path, "training data")
|
| 26 |
|
| 27 |
#Procesamiento de las imágenes
|
| 28 |
IMAGES_PATH = training_data_path
|
| 29 |
+
IMAGE_SIZE = (500,500)
|
| 30 |
VOCAB_SIZE = 700
|
| 31 |
SEQ_LENGTH = 400
|
| 32 |
EMBED_DIM = 512
|
|
|
|
| 35 |
EPOCHS = 1
|
| 36 |
AUTOTUNE = tf.data.AUTOTUNE
|
| 37 |
|
| 38 |
+
|
| 39 |
+
|
| 40 |
def load_captions_data(filename):
|
| 41 |
with open(filename) as caption_file:
|
| 42 |
caption_data = caption_file.readlines()
|
|
|
|
| 47 |
for line in caption_data:
|
| 48 |
line = line.rstrip("\n")
|
| 49 |
img_name, caption = line.split("\t")
|
| 50 |
+
print(img_name)
|
| 51 |
+
print(caption)
|
| 52 |
img_name = img_name.split("#")[0]
|
| 53 |
img_name = os.path.join(IMAGES_PATH, img_name.strip())
|
| 54 |
tokens = caption.strip().split()
|
|
|
|
| 63 |
if img_name in caption_mapping:
|
| 64 |
del caption_mapping[img_name]
|
| 65 |
return caption_mapping, text_data
|
|
|
|
| 66 |
def train_val_split(caption_data, train_size=0.8, shuffle=True):
|
| 67 |
all_images = list(caption_data.keys())
|
| 68 |
if shuffle:
|
|
|
|
| 75 |
img_name: caption_data[img_name] for img_name in all_images[train_size:]
|
| 76 |
}
|
| 77 |
return training_data, validation_data
|
| 78 |
+
captions_mapping, text_data = ripios[]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
train_data, valid_data = train_val_split(captions_mapping)
|
| 80 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
|
| 82 |
#Vectorización de los datos de texto
|
| 83 |
def custom_standardization(input_string):
|
|
|
|
| 446 |
demo = gr.Interface(fn = generate_caption,inputs = gr.Image(label="Imagen"), outputs = [gr.Text(label="Descripción textual"), gr.Audio(label="Audio")], theme ='darkhuggingface', title = 'DESCRIPCIÓN DE IMÁGENES DE RIPIOS DE PERFORACIÓN',
|
| 447 |
description = 'La siguiente interfaz describirá de forma automática imágenes de ripios de perforación. El usuario deberá ingresar en el recuadro de la izquierda la imagen a ser procesada, y en los recuadros de la derecha se mostrará la descripción textual y oral de la imagen. Se recomienda ingresar imágenes sin ningún tipo de mediciones o símbolos ya que esto podría afectar en la predicción del modelo.',
|
| 448 |
article = 'Nota: En el caso de ingresar imágenes que no tengan relación a muestras de ripios de perforación, los autores de esta aplicación no se hacen responsables por los resultados de estas, el modelo de descripción de ripios de perforación está entrenado para dar un resultado.')
|
| 449 |
+
demo.launch()
|