Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. ALGORITMOS PRINCIPAL:
● CNN (convolutional neural network): un subconjunto
del aprendizaje automático . Es uno de los varios
tipos de redes neuronales artificiales que se utilizan
1
1
para diferentes aplicaciones y tipos de datos. Una utiliza para describir cuán nítida (como antónimo de
CNN es un tipo de arquitectura de red para granular) es una imagen de fotografía.
algoritmos de aprendizaje profundo y se usa
específicamente para el reconocimiento de imágenes
y tareas que involucran el procesamiento de datos de ● Compresión sin pérdida y compresión con pérdida:
píxeles . Existen otros tipos de redes neuronales en el cuando queremos reducir el tamaño de un archivo
aprendizaje profundo, pero para identificar y (que puede ser una imagen), pero no queremos
reconocer objetos, las CNN son la arquitectura de red comprometer la calidad, este tipo de compresión se
preferida. Esto los hace muy adecuados para tareas de denomina compresión sin pérdida. El archivo
visión artificial ( CV ) y para aplicaciones en las que comprimido se puede guardar, pero cuando lo
el reconocimiento de objetos es vital, como los requerimos, durante el proceso de descompresión, se
vehículos autónomos y el reconocimiento facial . restaura toda la información y obtenemos la imagen
real (Figura 2-6). Este primer tipo de compresión da
prioridad a la información contenida en el archivo,
2. TERMINOLOGIA: especialmente cuando se comprime texto, donde no
● Machine learning: El aprendizaje de máquina (MA) podemos permitirnos perder ni un solo dato.
es un campo de investigación dedicado a comprender ○
y crear métodos que "aprendan", es decir, métodos 3. HERRAMIENTAS Y LIBRERÍAS
que aprovechan los datos para mejorar el rendimiento
en algún conjunto de tareas.Se considera parte de la
inteligencia artificial. Los algoritmos de aprendizaje ● OpenCv: es una biblioteca libre de visión artificial
automático construyen un modelo basado en datos de originalmente desarrollada por Intel. OpenCV
muestra, conocidos como datos de entrenamiento, significa Open Computer Vision. Su funciones
para hacer predicciones o tomar decisiones sin estar principales es detección de movimiento,
programados explícitamente para hacerlo. reconocimiento de objetos, reconstrucción 3D a partir
de imágenes, son sólo algunos ejemplos de
aplicaciones de OpenCV.
● Red neuronal: Las redes neuronales artificiales
(ANN), generalmente llamadas simplemente redes
neuronales (NN) o redes neuronales, son sistemas ● Tensorflow: es una biblioteca de código abierto para
informáticos inspirados en las redes neuronales aprendizaje automático a través de un rango de
biológicas que constituyen los cerebros de los tareas, y desarrollado por Google para satisfacer sus
animales. Una ANN se basa en una colección de necesidades de sistemas capaces de construir y
unidades o nodos conectados llamados neuronas entrenar redes neuronales para detectar y descifrar
artificiales patrones y correlaciones, análogos al aprendizaje y
razonamiento usados por los humanos.
2
conduce a una función de activación, que actúa como un
● Matplotlib: Es una biblioteca para la generación de cerebro y toma una decisión.
gráficos en dos dimensiones, a partir de datos
contenidos en listas o arrays en el lenguaje de Ahora que sabemos estos conceptos podemos definir el
programación Python. Proporciona una API, pylab, modelo sobre el cual basaremos nuestro proyecto se decidió
diseñada para recordar a la de MATLAB. que se utilizara CNN Las CNN se utilizan para problemas de
procesamiento y clasificación de imágenes. Con las CNN, hay
● pillow: Pillow es una biblioteca adicional gratuita y algunas capas adicionales, aparte de las neuronas normales.
de código abierto para el lenguaje de programación capas de red sabemos que una red neuronal ANN cada uno de
Python que agrega soporte para abrir, manipular y los nodos está conectado a todos y cada uno de los nodos de la
guardar muchos formatos de archivo de imagen capa siguiente. Esto puede convertirse requiere mucho tiempo
diferentes. y también conduce al problema del sobreajuste*. Las CNN
son utilizadas para corregir este problema. Con las CNN, no
● kaggle: es una comunidad en línea de científicos de tenemos una conexión con cada y cada nodo. Con las CNN,
datos y profesionales del aprendizaje automático. aplicamos filtrado selectivo. El trabajo de las CNN comienza
Kaggle permite a los usuarios encontrar y publicar con la convolución capa, donde aplicamos un filtro (también
conjuntos de datos, explorar y crear modelos en un conocido como kernel) a la entrada imagen. Este núcleo
entorno de ciencia de datos basado en la web; trabajar avanza a grandes zancadas sobre la imagen, bloque por
con otros científicos de datos e ingenieros de bloque, donde cada bloque es una colección de celdas de
aprendizaje automático y participar en concursos para píxeles. Durante este proceso, realizamos multiplicación de
resolver desafíos de ciencia de datos. matrices, lo que da como resultado una imagen de menor
resolución. En la capa de submuestreo (también llamada capa
● LabelImg: Librería de python utilizada para etiquetar de submuestreo) encontramos el valor de píxel promedio
imágenes de prueba, la misma genera archivos .xml (llamado agrupación promedio) o el píxel máximo valor
para cáda imágen por medio de cajas estipuladas por (llamado agrupación máxima) y obtener una imagen de
el usuario. resolución aún más baja.Por último, la salida se conecta a la
capa completamente conectada, donde cada salida máxima de
agrupación está conectada a cada nodo en el totalmente
conectado capa. Después de esto, se sigue una arquitectura de
V. METODOLOGÍA DE LA INVESTIGACIÓN red neuronal.
3
Luego remodelamos con la funcionalidad de numpy porque
actualmente los datos están en un formato de matriz sin
estructura adecuada. Usando remodelar, damos los datos
estructura. Hacemos esto diciéndole a Python que convierta la
matriz de tal manera que tenga todos los valores de píxel en
solo una columna Actualmente, el tipo de datos de x_train y
x_test es Int (entero). Queremos convertirlo en Flotante, para
que podamos aplicar el preprocesamiento sobre él fácilmente.
Ahora tenemos que hacer la normalización. Dividimos cada
uno y cada píxel con el valor de intensidad de píxel más alto
de todo el conjunto, por lo que los datos dan como resultado
un rango inferior de cero a uno. Esto ayuda a entrenar el
modelo de manera eficiente.
También se coloca los códigos qr sobrepuestos en zonas de
x_train /= 255 x_test /= 255 pruebas como estas fotos de la ciudad de scotland, estas
imágenes serían nuestros sujetos de pruebas a realizar para el
Ahora que nos hemos ocupado de los independientes modelo. donde el programa detectará todos los códigos QR en
variables, tenemos que cuidar de las variables, qué son las la imagen. más a futuro se aplicará en una cámara para
etiquetas numéricas reales. Al hacer esto, convertimos los aplicarse en la vida real con diferentes códigos QR impresos y
valores, que están actualmente en formato entero, a valores colocados en ciertos lugares donde la cámara tenga alcance.
categóricos. Por último, devolvemos todos los datos
procesados a nuestro código original. Mientras la métricas de evaluación que se aplica al proyecto,
se conoce como average precision, utilizada para modelos de
return (x_train,x_test,y_train,y_test,input_shape) clasificación. como métrica ya que nos funciona para
determinar el porcentaje de precisión para que la cámara sea
el datasets que se empleados como datos de entrenamiento son capaz de detectar los códigos qr, es una métrica hecha para
sacados de la página web conocido como kaggle conocido determinar la cantidad de predicciones que nuestro modelo
code QR, ese Dataset es para el entrenamiento y prueba, ese acertó. Esto sirve para diferenciar e igualar nuestras
dataset solo tiene la imagen de los QR, son más 10000 predicciones con la realidad.
archivos, podemos utilizarlos para generar imágenes con
varios de estos, dar etiquetas a las nuevas imágenes con
cuántos códigos existen en X imágen y con ello podemos
testear la veracidad de el modelo, ya que tendríamos un dato
que nos exponga si el modelo está correcto o no?, pero por
ahora solo limitaremos a una cierta cantidad como 1000
archivos posibles, para no afectar el rendimiento e impedir
una sobrecarga del modelo aplicado.
donde ‘‘TP’’ representa el true positive de los preliclectos
correctos del modelo, también está “FP” false positive
significa el número de predilectos correctos pero presenta un
error. pero también existen la versión contraria pero en base
con el negativo como false negative ‘’ FN’’ y true negative
‘’TN’’. Tras aplicar la sumatoria de los cuatro valores luego
divididos por los otros dos valores se calcula el puntaje de
predicción aplicada en el modelo.
4
proceso de obtención de imágenes.
A. ENTRENAMIENTO
Primero que nada debemos crear nuestros directorios para
trabajar con los mismos, con la ayuda de los siguientes
comandos todo esto se hará automáticamente dentro de la
carpeta de nuestro proyecto
5
debemos dar una pausa y enfocarnos en que éste corra sin
problemas:
una vez tenemos ese OK, sabemos que estamos listos para
continuar, va a ser necesario instalar algunas dependencias que
por algún motivo no se hayan instalado, esto varía por usuario
por lo que aquí estás por tu cuenta, los problemas encontrados
son simples “no se ha encontrado esta librería” por lo que
como solución general sería instalar XXXX librería en nuestro
ambiente virtual del proyecto.
6
inventarios, actividades administrativas, registros de piezas,
etc