Integradora ramos,cocon,perez,cante 10_b_10a

44
UNIVERSIDAD TECNOLÓGICA DE CAMPECHE DIRECCIÓN DE INGENIERÍA EN MECATRÓNICA ISO 9001:2008 Cert. No. MQA 4000244 PROYECTO DE INTEGRADORA FABRICACION DE JUGUETES REALIZADA PARA LA EMPRESA: LABORATORIO DE ELECTRONICA Y DISPOSITIVOS TECNOLÓGICOS QUE PRESENTAN: ALEXIS RAMOS HERNÁNDEZ ALEXANDER COCON SÁNCHEZ ENRIQUE PÉREZ VAZQUEZ EDGAR PÉREZ CANTE DE LA PROFESIÓN: INGENIERÍA EN MECATRÓNICA GENERACIÓN: 2015-2017 San Antonio Cárdenas, Carmen, Campeche Diciembre de 2016

Transcript of Integradora ramos,cocon,perez,cante 10_b_10a

Page 1: Integradora ramos,cocon,perez,cante 10_b_10a

UNIVERSIDAD TECNOLÓGICA DE CAMPECHE DIRECCIÓN DE INGENIERÍA EN MECATRÓNICA

ISO 9001:2008 Cert. No. MQA 4000244

PROYECTO DE INTEGRADORA

FABRICACION DE JUGUETES

REALIZADA PARA LA EMPRESA:

LABORATORIO DE ELECTRONICA Y DISPOSITIVOS

TECNOLÓGICOS

QUE PRESENTAN:

ALEXIS RAMOS HERNÁNDEZ

ALEXANDER COCON SÁNCHEZ

ENRIQUE PÉREZ VAZQUEZ

EDGAR PÉREZ CANTE

DE LA PROFESIÓN:

INGENIERÍA EN MECATRÓNICA

GENERACIÓN:

2015-2017

San Antonio Cárdenas, Carmen, Campeche Diciembre de 2016

Page 2: Integradora ramos,cocon,perez,cante 10_b_10a

2

DATOS GENERALES DEL ALUMNO

ALUMNO:

ALEXIS RAMOS HERNÁNDEZ

MATRÍCULA:

4213010476

DIRECCIÓN Y TELÉFONO:

CALLE 77 #654C ENTRE 64ª Y 66 FRACCIONAMIENTO CIUDAD CAUCEL COL.

HERRADURA 2, MÉRIDA, YUCATAN.

TEL.: (938) 4054585 E-MAIL:[email protected]

Page 3: Integradora ramos,cocon,perez,cante 10_b_10a

3

ALUMNO:

ALEXANDER COCÓN SÁNCHEZ

MATRÍCULA:

4213010127

DIRECCIÓN:

AV. PERIFERICA NORTE #17 COL.OBRERA, CD. DEL CARMEN, CAMPECHE,

CEL. 938 126 60 53, E-MAIL. [email protected]

Page 4: Integradora ramos,cocon,perez,cante 10_b_10a

4

ALUMNO:

ENRIQUE PÉREZ VAZQUEZ

MATRÍCULA:

4213010422

DIRECCIÓN:

CALLE MIGUEL HIDALGO N° 13, COL. FRANCISCO I. MADERO, CD. DEL CARMEN,

CAMPECHE,

CEL. 938 107 10 84, E-MAIL. [email protected]

ALUMNO:

Page 5: Integradora ramos,cocon,perez,cante 10_b_10a

5

EDGAR PÉREZ CÁNTE

MATRÍCULA:

4210010592

DIRECCIÓN Y TELÉFONO:

CALLE 77 #654C ENTRE 64ª Y 66 FRACCIONAMIENTO SANTA RITA, CD. DEL CARMEN,

CAMPECHE.

TEL.: (938) 4054585 E-MAIL:[email protected]

Page 6: Integradora ramos,cocon,perez,cante 10_b_10a

6

ÍNDICE

Pág.

LISTA DE FIGURAS ................................................................................................................ 7

LISTA DE TABLAS .................................................................................................................. 7

1. INTRODUCCIÓN .................................................................................................................. 7

DATOS GENERALES DE LA EMPRESA ............................................................................. 7

PLANTEAMIENTO Y DELIMITACIÓN DEL PROBLEMA ...................................................... 8

2. JUSTIFICACIÓN, OBJETIVO Y VIABILIDAD ..................................................................... 9

JUSTIFICACIÓN ................................................................................................................... 9

OBJETIVO ........................................................................................................................... 10

VIABILIDAD DEL PROYECTO ............................................................................................ 11

3. DESARROLLO TEÓRICO ................................................................................................. 17

3.1. MARCO DE REFERENCIA .......................................................................................... 17

3.1.2 Entornos de programación .................................................................. 18

3.2. DISEÑO DE LA INVESTIGACIÓN ............................................................................... 23

Alcance ........................................................................................................... 23

Metodología .................................................................................................... 23

3.2.1. Instalación de Linux ............................................................................... 24

3.2.2. Instalación de Python .......................................................................... 30

3.3. DESARROLLO DEL PROYECTO (15-20 cuartillas) .................................................... 31

3.3.1 Aplicación de la metodología .................................................................. 32

3.3.2 Resultados ............................................................................................... 3

3.3.3. Análisis .................................................................................................... 3

4. CONCLUSIONES Y RECOMENDACIONES ....................................................................... 4

5. FUENTES DE INFORMACIÓN ............................................................................................ 5

6. ANEXOS ............................................................................................................................... 6

Page 7: Integradora ramos,cocon,perez,cante 10_b_10a

7

LISTA DE FIGURAS

LISTA DE TABLAS

Tabla 1 Descripción de puestos ................................................................................. 14

Tabla 2 costo de materia prima ................................................................................. 15

Tabla 3 Costo de equipos .......................................................................................... 16

Tabla 4 Costo anual de mano de obra directa ........................................................... 16

Tabla 5 Gasto anual por personal administrativo ....................................................... 17

Tabla 6.Diagrama de actividades .............................................................................. 24

1. INTRODUCCIÓN

DATOS GENERALES DE LA EMPRESA

El laboratorio de electrónica y dispositivos tecnológicos por sus siglas (LEDT), ubicado en Av.

Periférica Norte #23 Col. Obrera. Se clasifica en dos sectores en industrial y comercial ya que

se dedica al desarrollo de piezas en 3D como cortes en impresora CNC en otras actividades

de igual manera se dedican a la venta de componentes electrónicos (sensores,

microcontroladores) por mayoreo y menudeo.

La empresa cuenta con 5 departamentos que son: finanzas, área de almacén, taller (área de

desarrollo de los productos y dispositivos), departamento de compra y venta de materiales,

auditorio (donde se generan juntas, exposiciones, ponencias, conferencias, capacitaciones,

etc.)

El ing. Alexis Ramos Hernández representante legal de LEDT preocupado por la tecnología en

el sureste mexicano e integrado por un grupo de trabajo conformado en cada área, buscan

implementar la mejor tecnología en el sureste ofreciendo productos de alta calidad y de primer

nivel en el menor tiempo posible satisfaciendo las necesidades de los clientes.

Page 8: Integradora ramos,cocon,perez,cante 10_b_10a

8

LEDT tiene como misión dedicar de su talento y tecnología, para crear productos y servicios

que contribuyan a resolver diferentes necesidades. Como visión buscan ser una empresa

rentable y sustentable, además de ofrecer servicios de manera nacional e internacional busca

contribuir al desarrollo de la tecnología en México.

Esta empresa cuanta con los valores de honestidad y lealtad para su desarrollo personal,

responsabilidad, disciplina, flexibilidad para aceptar los cambios,

Pasión por su trabajo, perseverancia y sobre todo divertirse al aprender.

Básicamente en LEDT se busca construir personas con aptitudes de liderazgo, preparadas

para poder enfrentar diferentes obstáculos, presentados el camino del desarrollo de la

empresa.

PLANTEAMIENTO Y DELIMITACIÓN DEL PROBLEMA

Cuando hablamos de visión, nos referimos a ese sentido donde se puede percibir el mundo

con la vista, en robótica para poder lograr esta percepción es necesario el uso de una cámara

o algún sensor laser o en su caso un GPU o alguna tarjeta de desarrollo FPGA para el

procesamiento de esta.

Lo que se buscar lograr en la siguiente propuesta de proyecto es resolver la búsqueda de

objetos que se fabricaran por una impresora 3D, y esto resulta algo complejo si se piensa

utilizar un solo sensor. Las variables que posiblemente pueden afectar este sistema puede ser

la luz del exterior, el ruido que se produce en la cámara, o que el algoritmo que se desea

implementar no sea el óptimo, por tal motivo este tipo de problemas se resuelves con

aplicaciones matemáticas en cámaras pero también produce otro problema, el procesar

muchas imágenes se consume mucha memoria, lo que se pretende resolver es hacer una

discriminación de los datos innecesarios y aprovechar los recursos del procesador o

computador para acelerar la búsqueda de los objetos que se fabricaran para poder lograr

identificar los objetos fabricados acelerando el proceso de fabricación.

Page 9: Integradora ramos,cocon,perez,cante 10_b_10a

9

2. JUSTIFICACIÓN, OBJETIVO Y VIABILIDAD

JUSTIFICACIÓN

La implementación de un sistema de visión Artificial aplicado para identificar, percibir y

clasificar diferentes objetos es un método que se utiliza mucho en las industrias manufacturas

ya se utiliza para identificar ya sea posibles errores o localizar diferentes objetos específicos

para luego clasificarlos, el proyecto conviene ya que la implementación que realizaremos está

basada en un software de código abierto el cuál logra reducir costos establecidos más adelante

y lo que busca una empresa manufacturera es reducir costos y tiempo de producción, pero

también confiar un producto de calidad.

Esta aplicación me sirve para identificar diferentes objetos en este caso juguetes de diferentes

colores con el fin de clasificarlo luego respectivamente, pero ahí no acaba su aplicación con el

paso del tiempo la tecnología ha ido avanzando por tal motivo este sistema también tiene otra

aplicación mediante el entrenamiento de una red neuronal para clasificar imágenes se busca

localizar errores en los juguetes para que con ello los productos sean producidos de acuerdo

a los estándares de calidad, la empresa tiene como objetivo crecer cada día y como mencione

anteriormente la tecnología va creciendo al paso del tiempo tal que se busca aprender y buscar

a diario un método más simple de resolver este tipo de tareas.

Ayudará al departamento de producción ubicado en el taller de la empresa ya que se busca

acelerar la producción de los juguetes de modo que cuando este sistema localice el objeto

buscara posibles errores y también el tipo de color que se diseñó el juguete.

Si resuelve un problema real ya que en las empresas manufactureras que producen juguete,

cada año se reportan miles de juguetes dañados o con errores de fábrica y esto es dinero

perdido cosa que las empresas buscan eliminar.

Ayudará a la sociedad infantil a disfrutar de un momento más agradable y tardío su juguete

logrando la satisfacción de los clientes.

Page 10: Integradora ramos,cocon,perez,cante 10_b_10a

10

En resumen el sistema propuesto, resolverá el problema presentado en este proyecto gracias

a la implementación de un método de localización de objetos mediante color y la aplicación de

una red neuronal Artificial para extraer imágenes de errores y luego clasificarlo mediante su

entrenamiento se busca acelerar la clasificación y evitar la mayor cantidad de ruido producido

mediante su aplicación. El proyecto tiene un alcance grande ya que estos métodos aún están

en desarrollo su aplicación están en investigación de modo que los únicos inconvenientes que

se pueden presentar seria que la red Neuronal sea lento al estar en entrenamiento pero una

vez clasificada las imágenes su aplicación dará buenos resultados

OBJETIVO

Objetivo general:

Desarrollar un sistema de reconocimiento de objetos, mediante la aplicación de un software,

para clasificarlos por su color y su género.

Objetivos específicos:

Page 11: Integradora ramos,cocon,perez,cante 10_b_10a

11

1. Instalar Python, OpenCV, en ubuntu, mediante la búsqueda de tutoriales presentados en

internet, para luego correr los programas de detección de color.

2. Entrenar imágenes para clasificarlos por colores, mediante la aplicación de una Red

Neuronal Artificial, para mayor precisión en la búsqueda del color del objeto.

3. Realizar pruebas de detección, mediante el algoritmo implementado, para buscar posibles

fallas de clasificación.

VIABILIDAD DEL PROYECTO

Mediante los datos recabados en este estudio de viabilidad se podrá tomar la decisión si

realmente este proyecto de un sistema de visión artificial para monitoreo y control

implementado a celdas de manufactura tales como una banda trasportadora y un brazo

robótico es rentable a la empresa LEDT, considerando para ello los estudios de factibilidad

técnico, operativo y económico. A continuación se detallan cada uno de los estudios de

viabilidad mencionados anteriormente.

Viabilidad técnica

Técnicamente es completamente factible el desarrollo del sistema, dado que se requiere una

herramienta de desarrollo que es completamente gratuita, lo que no implica la compra de

nuevos productos de desarrollo, y además disponiendo del conocimiento para desarrollar este

tipo de aplicaciones.

El sistema de iluminación cuenta con una cavidad óptima para el ajuste de una banda

transportadora, en un proceso de manufactura.

Utilizando un software libre nos permite tener un control total del diseño del sistema de

reconocimiento, ya que los códigos y librerías tienden hacer configurados para tareas

en específicas y para tareas que se puedan complicar por algún problema no

controlado.

Un sensor Kinect, puede ser un dispositivo no muy ocasional, sin embargo su estructura

permite realizar tareas óptimas en ambientes controlados y no controlados, su cámara

RGB y su Sensor infrarrojo son capaces realizar tareas en la oscuridad.

Viabilidad operativa

Page 12: Integradora ramos,cocon,perez,cante 10_b_10a

12

Para el buen funcionamiento de la empresa LEDT es necesario especificar claramente las

actividades de cada uno de los miembros, para ello se realizó un organigrama funcional de

Puestos. Este contiene el análisis de todos los puestos existentes en la empresa. Para realizar

dicho análisis se recogió metódicamente los datos necesarios con integridad y exactitud, para

después plasmarlos por escrito.

El análisis de puestos es indispensable para conocer con toda precisión lo que cada trabajador

hace y conocer las aptitudes que requiere para hacerlo bien.

Se conocerá a través de este organigrama los elementos que integran cada puesto, los detalles

de cada una de las operaciones y los requisitos necesarios para que las actividades se realicen

bien. Además el organigrama funcional representa la posibilidad de saber con todo detalle las

obligaciones y características de cada puesto, facilitando a la empresa la contratación de

personar además de evitar la duplicidad de actividades.

Por otro lado los trabajadores realizarán mejor y con mayor facilidad sus labores, con lo anterior

podemos decir que será de gran utilidad tanto para la empresa como para los trabajadores.

Organigrama Funcional

Page 13: Integradora ramos,cocon,perez,cante 10_b_10a

13

Descripción de puestos

ÁREA PUESTO

Director general

Departamento

Operativo

Jefe de Departamento

operativo

Departamento

Administrativo

Jefe de Departamento

Administrativo

Departamento

Operativo Ingeniero Mecatrónica

Departamento

Administrativo

Jefe de Oficina de

Recursos Humanos

Departamento

Administrativo

Jefe de Oficina de

Recursos Materiales

Departamento

Administrativo

Jefe de Oficina de

Finanzas

Direccion general

Departamento operativo

Ingeniero mecatrónica

ArmadorIngeniero en

SistemasSupervisior de

obra

Departamento operativo

Oficina de recursos humanos

Jefe de Sección de Capacitación y Adiestramiento

Oficina de recursos

materiales

Oficina de finanzas

Page 14: Integradora ramos,cocon,perez,cante 10_b_10a

14

Departamento

Operativo Ingeniero en sistemas

Departamento

Administrativo

Jefe de Sección de

Capacitación y

Adiestramiento

Departamento

operativo Supervisor de obra

Departamento

Operativo Armador

Tabla 1 Descripción de puestos

Viabilidad económica

El principal valor agregado que entregará el sistema de visión artificial es que permitirá dar

mayor satisfacción al cliente en el proceso de manufactura ya que este sistema implica en

gasto de un capital razonable en cuanto la construcción y administración del mismo y raíz de

esto se prevén una mejora continua de la vida útil de la empresa.

Los recursos necesarios para el desarrollo de este proyecto se detallan a continuación; existen

algunos recursos que son actualmente adquiridos de forma gratuita tal es el caso del software

que se utiliza para la programación del sistema, por lo tanto nos es necesario adquirirlos.

El software utilizado corresponde a Python, que se encuentra disponible para la descarga

gratuita en el link https://www.python.org/downloads/ y que permite desarrollar aplicaciones

para estudiantes y además permite su distribución sin ningún costo de licencias ya que es un

software libre.

Viabilidad Técnica

Materia prima El costo total de materia prima, se calculó con base a datos técnicos que proporcionan algunas distribuidoras de tal material en la ciudad del Carmen

Page 15: Integradora ramos,cocon,perez,cante 10_b_10a

15

MATERIAL CANTIDAD UNIDAD

PRECIO

POR

UNIDAD

TOTAL

Aluminio 2 Pliego por

𝒎𝟐 $250 $500

Bases de

aluminio 4 pieza $80 $320

Ángulos de

aluminio 1

Vigas por

metro $120 $120

Remaches 3 Paquetes $20 $60

Pijas y

tornillos 2 Paquetes $35 $70

Pintura 3 Pieza $80 $240

Cables de

red UTP 1

Rollo por

metro $200 $200

Reflector de

luz 1 Pieza $200 $200

TOTAL $1,710

Tabla 2 costo de materia prima

Equipos. En la siguiente tabla se presentan los costos totales de los equipos que se requerirán para la

construcción del sistema.

EQUIPOS MARCA CANTIDAD PRECIO

Cortadora Deker 1 $2,800

Pulidora Craftsman 1 $1,300

Remachadora manual Surtex 1 $273

Taladro Bork 1 $700

Computadora Dell 1 $2,100

Page 16: Integradora ramos,cocon,perez,cante 10_b_10a

16

Cámara de Kinect Microsoft

xbox 1 $300

TOTAL $ 7,473

Tabla 3 Costo de equipos

Total de inversión en el proyecto : MX$9,183.00

Viabilidad Operativa

Mano de obra directa

Por concepto de mano de obra directa, se requiere una inversión total de $1,236,000. Este personal

será el que se encontrara específicamente en el área de producción, en la siguiente tabla se

detallan estos costos.

PUESTO CANTIDAD IMPORTE

MENSUAL

SUBTOTAL

ANUAL

Ingeniero mecatrónica 3 $40,000 $480,000

Ingeniero en Sistemas 1 $28,000 $336,000

Supervisor de Obra 1 $20,000 $240,000

Armador 2 $15,000 $180,000

TOTAL $1,236,000

Tabla 4 Costo anual de mano de obra directa

Gastos de administración De acuerdo con el organigrama general de la empresa (presentado en estudio de viabilidad

operativa), los gastos por personal administrativo ascienden a $ 1,644,000 anualmente. A

continuación, se detallan estos en la tabla 4.

PUESTO CANTIDAD IMPORTE MENSUAL SUBTOTAL ANUAL

Gerente 1 $30,000 $360,000

Jefe de Departamento

operativo

1 $27,000 $324,000

Jefe de Oficina de

Recursos Humanos

1 $22,000 $264,000

Page 17: Integradora ramos,cocon,perez,cante 10_b_10a

17

Jefe de Oficina de

Recursos Materiales

1 $20,000 $240,000

Jefe de Oficina de

Finanzas

1 $20,000 $240,000

Jefe de sección de

capacitación y

adiestramiento

1 $18,000 $216,000

TOTAL $ 1,644,000

Tabla 5 Gasto anual por personal administrativo

Demostrado en los puntos anteriores, tanto los estudios de factibilidad técnica, económica y

operativa resultan ser favorables para el proyecto lo que determina su viabilidad. El proyecto

resulta ser una buena herramienta para la empresa, además a un costo no mayor que puede

ser recuperado a mediano plazo.

3. DESARROLLO TEÓRICO

3.1. MARCO DE REFERENCIA

En un sistema de visión artificial se incluyen diversas técnicas, tales como el

procesamiento de imágenes (captura, transformación, codificación de imágenes) o como

el reconocimiento de formas (teoría estadística de decisiones, enfoques sintácticos y

neuronales aplicados a la clasificación de patrones). En este tipo de sistemas, además se

incluyen técnicas de modelado geométrico y procesos de conocimiento. Por lo tanto, en

este apartado se trata de describir las etapas a considerar en el sistema de visión a

implementar.

La captura de la imagen es el conjunto de operaciones que se efectúan para transformar

la iluminación de una escena en una señal digital. Las imágenes no siempre se presenta

en un formato adecuado para su análisis, por lo que el siguiente proceso es el

preprocesamiento de una imagen, en el cual se utilizan técnicas encaminadas a realizar la

mejora de la imagen, como son el nivel de gris, contraste, eliminación del ruido, el realce

de algunas características de interés, etc. Una vez que esta imagen está en condiciones

Page 18: Integradora ramos,cocon,perez,cante 10_b_10a

18

de ser procesada, se tienen que hallar los objetos dentro de la imagen de forma

independiente, y esto se hace a través de la segmentación, que es un proceso que divide

la escena en objetos. Cada uno de los objetos puede ser clasificado, por lo que la siguiente

tarea es la clasificación o extracción de características para el reconocimiento. El

reconocimiento es la identificación de cada objeto en la escena mediante una etiqueta.

3.1.2 Entornos de programación

Linux

La plataforma linux es uno de los términos empleados para referirse a la combinación

del núcleo o kernel libre similar a Unix denominado Linux con el sistema GNU. Su desarrollo

es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser

utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL

(Licencia Pública General de GNU, en inglés: General Public License) y otra serie de licencias

libres.

Figura 1. Logo de Ubuntu Fuente: Elaboración propia, 2015.

Python

Lenguaje de programación multiparadigma, ya que soporta orientación a objetos,

programación imperativa y, en menor medida, programación funcional. Es un lenguaje

interpretado, usa tipiado dinámico y es multiplataforma. Es administrado por la Python Software

Foundation. Posee una licencia de código abierto, denominada Python Software Foundation

License.

Page 19: Integradora ramos,cocon,perez,cante 10_b_10a

19

Figura 2. Logo de Python Fuente: Elaboración propia, 2015

NumPy

NumPy es una extensión de Python, que le agrega mayor soporte para vectores y matrices,

constituyendo una biblioteca de funciones matemáticas de alto nivel para operar con esos

vectores o matrices. El ancestro de NumPy, Numeric, fue creado originalmente por Jim

Hugunin con algunas contribuciones de otros desarrolladores. En 2005, Travis Oliphant creó

NumPy incorporando características de Numarray en NumPy con algunas modificaciones.

NumPy es open source(código abierto).

Matplotlib

Una vez incorporado NumPy se debe utilizar matplotlib que es una biblioteca para la

generación de gráficos a partir de datos contenidos en listas o arrays en el lenguaje de

programación Python y su extensión matemática NumPy. Proporciona una API, pylab,

diseñada para recordar a la de MATLAB.

PySerial

Es una librería de python que permite comunicarse a través de comunicaciones por serial (RS-

232). Esto puede ser muy útil para mandar o recibir datos de periféricos que sean comunes o

que tú mismo hayas hecho de una manera increíblemente sencilla y sin tener que complicarse

para nada con este tipo de programación.

Page 20: Integradora ramos,cocon,perez,cante 10_b_10a

20

Libfreenect

Es la librería para poder manipular el sensor Kinect en Python tal que su aplicación es

indispensable en este proyecto.

En visión artificial, los procesos de segmentación son de vital importancia cuando se trata de

detectar objetos en entornos no estructurados. En concreto, la segmentación haciendo uso de

información de color adquiere cierta importancia en ámbitos muy diversos, desde el tratamiento

de secuencias de videos para la detección de objetos o individuos en escenas móviles hasta

la detección para el seguimiento, también conocido como tracking.

El "reconocimiento de color" es la capacidad de un sensor o algoritmo de distinguir colores a

partir de la extracción de información de la luz

La manera básica de detectar el color consiste en captar la luz incidente en un sensor. Este,

mediante un conjunto de celdas de fotones que forman una matriz de puntos, uno por cada

pixel, es capaz de medir la cantidad de luz llegada a cada uno de estos, produciendo una

corriente eléctrica que varía en función de la intensidad de luz recibida. Una vez se ha medido

la cantidad de luz se procede a la detección de colores.

La extracción de ondas espectrales, da como resultado la captación de lo que conocemos

como colores. Por lo general la identificación de los diferentes colores se utiliza un código

conocido como RGB (Red, Green, Blue).

El reconocimiento de colores está basado en un lenguaje de programación sencillo el cual

utiliza una librería especial para el control de cámaras. Estamos hablando del lenguaje de

programación Python y de la librería especial Opencv.

Modelo HSV

El modelo HSV (hue, saturación, value; tinte, saturación, valor) está orientado al usuario y se

basa en el atractivo intuitivo del modelo de los artistas. HSV es un sistema de color que varía

el grado de propiedades del color para crear nuevos colores. (utiliza la mezcla de colores

Page 21: Integradora ramos,cocon,perez,cante 10_b_10a

21

). Hue (matiz) especifica el "color", rojo, naranja, azul, etc. La saturación (conocida también

como cromo o pureza), se refiere a la cantidad de blanco en un hue. Un color completamente

saturado no contiene blanco y aparece puro, un rojo 50% saturado resulta un rosa.

El valor (conocido también como brillo) es el grado de luminosidad de un color (que tanta luz

emite). Un matiz con alta intensidad es brilloso, uno con poca intensidad es oscuro.

Figura 3 Cono de colores del espacio HSV.

Cámara Microsoft Kinect

Especificaciones técnicas

El sistema de percepción de profundidad consta de tres partes básicas: el proyector láser de

infrarrojos, el sensor CMOS y el microchip que procesa la información. Fue creado y

desarrollado por PrimeSense, una compañía Israelí experta en innovación. Contrariamente a

lo que podríamos suponer en un principio, no se trata de un sensor basado en tiempo de vuelo,

sino que su funcionamiento se basa en la proyección de un patrón de puntos pseudo-aleatorio

y su lectura y triangulación mediante el sensor CMOS. A continuación se describe más a detalle

en cuanto al funcionamiento del sistema.

Proyector láser.

Posee las siguientes propiedades

Se trata de un láser no modulado, no produce pulsos en su salida sino que se mantiene

a nivel constante.

La longitud de onda es de 830nm.

Page 22: Integradora ramos,cocon,perez,cante 10_b_10a

22

Consta de un sistema de difracción que subdivide el rayo en múltiples instancias,

proyectando un patrón de puntos pseudo-aleatorio.

La potencia medida a la salida de la Kinect es de 60mW. No es dañina para los ojos, si

bien es probable que la difracción inducida haya introducido pérdidas.

Posee un estabilizador de temperatura que se encarga de mantener el láser a

temperatura constante para no alterar la longitud de onda de salida

El campo de visión en horizontal de la cámara es de 57 grados y el rango máximo de

distancia desde la cámara para la captación de profundidad es de 0,8 metros a 4 metros,

considerándose un rango óptimo de 1,2 metros a 3,5 metros.

Figura 4 Campo de visión horizontal y rango de proximidad de la Kinect

Además, la Kinect está equipada con un ventilador que se activa cuando la temperatura

alcanzada es mayor de 70oC (recordar que el valor máximo del rango de operación de los

sensores ronda esa temperatura) y que se alimenta por la toma USB.

Page 23: Integradora ramos,cocon,perez,cante 10_b_10a

23

3.2. DISEÑO DE LA INVESTIGACIÓN

Alcance

La visión artificial ha alcanzado una gran importancia en el campo científico-técnico debido a

sus enormes posibilidades de aplicación. Existen sistemas de visión artificial en todos los

ámbitos navegación autónoma de vehículos, análisis de imágenes médicas, monitorización del

tráfico, etc. En esta sección nos centraremos en los sistemas de visión destinados a la

inspección en líneas de fabricación, ya que los sistemas de visión artificial se destinan a

realizar inspecciones visuales que requieren alta velocidad, gran aumento, funcionamiento las

24 horas del día o la repetibilidad de las medidas. Este uno de los campos dentro de la visión

artificial que más han crecido y que presenta mayores aplicaciones a nivel industrial.

Metodología

Una vez comprendido algunos términos esenciales en el desarrollo del proyecto a

continuación se explicara cómo se llevara paso a paso la realización de éste..

Nombre de la empresa: LEDT

(Laboratorio de Electrónica y

Dispositivos Tecnológicos)

Cronograma de actividades

Inicio: 7/09/16

Termino: 5/12/16

Aprobó: No.

trabajador

Proyecto: Desarrollar un sistema de reconocimiento de objetos, mediante la

aplicación de un software, para clasificarlos por su color y su género.

No. Actividad Tiempo estimado de la ejecución del proyecto

Meses/semanas

Septiembre

Octubre Noviembre Diciembre

3 4 1 2 3 4 1 2 3 4 1 2 3 4

1. Instalar sistema operativo Ubuntu 12.04.

2. Instalar Python con sus librerías y dependencias como OpenCV.

3. Instalar driver y software en Ubuntu.

4. Realizar un análisis de las imágenes capturadas

5. Desarrollar un algoritmo de entrenamiento de la red

6. Programar el algoritmo en Python.

Page 24: Integradora ramos,cocon,perez,cante 10_b_10a

24

Tabla 6.Diagrama de actividades Fuente: Elaboración propia, 2015

3.2.1. Instalación de Linux

Primero que nada se tuvo como requisito el contar con un computador, comúnmente la

mayoría de las personas tienen instalado en su computadora Windows existen muchas

versiones de este sistema operativo, la versión más reciente que está siendo

descargada por muchos usuarios es la actualización a Windows10 pero la mayoría se

estancó en Windows 8.1.

Existen otros sistemas operativos muy conocidos que son de código abierto, es decir,

que los programas que se usan en este sistema operativo, no requiere de algún serial

para poder ser instalado o utilizado eso conlleva a que muchos usuarios se interesen

en estos tipos de sistemas operativos, uno de ellos es el caso de Ubuntu, que pertenece

a la plataforma Linux

Se utilizó este sistema operativo ya que la mayoría de los desarrolladores en la robótica

se basan en programas que son más amigables de procesar en él, la ventaja de la

instalación de Ubuntu, es que permite compartir la computadora con otro sistema

operativo sin dañar los archivos, el computador al finalizar su instalación, contaba con

dos sistemas operativos.

Lo que primero que se hizo fue descargar la imagen ISO de Ubuntu. La versión que se

descargo fue la 12.04 no es la versión más reciente, pero es una versión que se tiene

más estudiada también se puedo trabajar sobre Ubuntu 14.04 pero existen ciertos

problemas con la compatibilidad en los repositos utilizados allí.

Una vez que se descargó la imagen ISO se grabó en un usb (pendrive) aunque también

se pudo haber grabado en un CD/DVD. Luego se configuro la computadora, se creó

una partición de 50000MB, de memoria en el disco duro libres para la instalación de

Ubuntu.

7. Realizar pruebas después de los entrenamientos de la Red Neuronal

8. Prever resultados

Page 25: Integradora ramos,cocon,perez,cante 10_b_10a

25

Para generar la partición, se buscó “Mi PC”, en el escritorio luego seguidamente en

administrar y luego se abrió la ventana de administración de discos. Básicamente nos

apareció la ventana que es respetada por la figura 8.

Figura 5. Ventana de administración de equipo Fuente: Elaboración propia, 2015.

Luego se redujo la memoria 50000MB para instalar Ubuntu, seguidamente se prosiguió

a su instalación pero antes de eso se configuro el computador desde la BIOS para el

arranque fuera desde el usb, tal que una vez configurada la computadora se reinició

con el pendrive puesto. Luego de unos instantes, apareció GRUB 2, el gestor de

arranque de Ubuntu. Se hizo clic en el ícono Install Ubuntu 12.10.

Page 26: Integradora ramos,cocon,perez,cante 10_b_10a

26

Figura 6. Instalación de ubuntu Fuente: Elaboración propia, 2015.

Después de proceder con la instalación apareció una ventana de seleccionar idioma,

allí se eligió idioma, luego se dio clic en el botón Instalar Ubuntu.

Figura 7 . Ventana de preparación de la instalación de ubuntu Fuente: Elaboración propia, 2015.

Luego se confirmó que contara con los requisitos mínimos de instalación haciendo clic

en Continuar. Cabe destacar que el único requisito indispensable era contar con el

espacio en disco necesario. Tener una conexión a Internet era una recomendación pero

no un requisito excluyente ya que mientras su instalación se descargó paquetes del

Page 27: Integradora ramos,cocon,perez,cante 10_b_10a

27

sistema operativo. También se conectó a una toma de corriente. Se seleccionó la

tercera opción, ya que se dividió la partición que se había hecho en el disco duro.

Figura 8 .ventana de asignación de espacio en el disco Fuente: Elaboración propia, 2015.

En el espacio libre se le añadieron 3 particiones básicas en donde la primera se le

asignó 15000MB de memoria. Se seleccionó la ubicación de la nueva partición:

principio, utilizar como: ext4 es el sistema que usa Ubuntu 12.04 por defecto Y el punto

de montaje: / (la raíz); se le dio aceptar. La segunda partición se creó con espacio libre

en donde se asignó 4GB de memoria, en tipo de nueva partición seleccionamos

primaria; en ubicación de la nueva partición utilizamos final y en utilizar como, buscamos

área de intercambio luego se seleccionó aceptar.

En la tercera partición se asignó lo que queda en la memoria libre, en ubicación de la

nueva partición seleccionamos principio; en utilizar como buscamos, sistema de ficheros

ext4; en el puerto de montaje se eligió, /home se seleccionó aceptar.

Page 28: Integradora ramos,cocon,perez,cante 10_b_10a

28

Figura 9 . Ventana de asignación de memoria Fuente: Elaboración propia, 2015.

Seguidamente de la distribución de la memoria apareció la ventana de selección de

zona horaria (Figura 13) se eligió la zona de central de américa, pulsamos instalar ahora,

luego se eligió la zona horaria

Figura 10. Selección de la zona horaria Fuente: Elaboración propia, 2015.

Page 29: Integradora ramos,cocon,perez,cante 10_b_10a

29

Después apareció la ventana de la distribución del teclado (figura 14) se teclearon

algunas palabras, para comprobar que todas las teclas estén en buena condición y se

localizó el Español (latinoamericano).

Figura 11. Ventana de selección del tipo de teclado Fuente: Elaboración propia, 2015.

Después de configurar el teclado, se creó el perfil del usuario en donde se introdujo el nombre

del usuario, una contraseña y el nombre del computador también se eligio que al iniciar el

computador solicitará la contraseña.

Figura 12. Ventana de creación de perfil Fuente: Elaboración propia, 2015.

Luego al finalizar la instalación se extrajo el usb y se reinició el computador en donde

ya tenía instalado dos sistemas operativos. Después se observaron tutoriales de cómo

Page 30: Integradora ramos,cocon,perez,cante 10_b_10a

30

utilizar Ubuntu bajo algunos comandos, funciones y como se trabaja bajo este nuevo

sistema operativo.

Una vez familiarizado con este sistema operativo se procedió a instalar la plataforma

Python, es un software de código abierto que se utiliza comúnmente para proyectos de

visión artificial, para la representación gráficas en 2D o 3D, programación de vídeo

juegos, entre otras cosas.

Este software se vuelve más atractivo cuando se aprende a programar en él y allí mismo

se da cuenta uno lo fácil que es trabajar sobre esta plataforma, para poder instalarlo en

Ubuntu se necesita ciertas condiciones y otro software extra para poder ejecutar los

programas. Python es recomendable trabajarlo en Ubuntu porque es más fácil adaptarlo

a tus necesidades de programación ya que las librerías de Python, que se instalan son

fáciles de importar, a diferencia del sistema operativo Windows, las librerías de Python

son más difíciles de importar y te pueden surgir muchos errores al programar.

3.2.2. Instalación de Python

Figura 13. Ventana buscador ubuntu Fuente: Elaboración propia, 2015.

Se escribió en el buscador de Ubuntu la palabra software center y este nos llevó a una

ventana donde se descargan las aplicaciones en el buscador de esta ventana

escribimos Python 3 trabajamos sobre esta versión, porque ya tiene instalado ciertas

librerías que se utilizaron para el desarrollo del algoritmo para identificar objetos.

Page 31: Integradora ramos,cocon,perez,cante 10_b_10a

31

Figura 14. Instalación de Python Fuente: Elaboración propia, 2015.

También se descargó otro software editor para ejecutar y modificar cualquier programa

de Python, el nombre es “SPE(stani’s Python editor, figura 18 )”.este software es

utilizado para la edición del programa de reconocimiento de objetos.

Figura 15. Instalación de SPE Fuente: Elaboración propia, 2015.

Luego se instalaron las librerías NumPy, Matplotlib, PySerial, esto desde la termina; una

vez que tuvo instalados todos los programas y las librerías se procedió a realizar el

análisis de los diferentes modelos matemáticos implementados en filtro de Kalman.

3.3. DESARROLLO DEL PROYECTO (15-20 cuartillas)

Page 32: Integradora ramos,cocon,perez,cante 10_b_10a

32

Las aplicaciones de redes neuronales en la actualidad para resolver problemas reales en las

industrias han sido de gran utilidad ya que las empresas le están apostando a este sistema de

inteligencia artificial a continuación se presentara la explicación de una aplicación de este

método para detectar y clasificar diferentes objetos

3.3.1 Aplicación de la metodología

Hay dos aplicaciones en OpenCV para entrenar el clasificador en cascada:.

Opencv_haartraining y opencv_traincascade opencv_traincascade es una versión más

reciente, escrito en C ++ de conformidad con OpenCV API 2.x. Sin embargo, la principal

diferencia entre estas dos aplicaciones es que soporta tanto opencv_traincascade Haar

[Viola2001] y LBP [Liao2007] (patrones binarios locales) características. Las características de

LBP son enteras en contraste con las características de Haar, así que la formación y la

detección con LBP son varias veces más rápidas que las características de Haar. En cuanto a

la calidad de la detección LBP y Haar, depende de la formación: la calidad del conjunto de

datos de formación en primer lugar y los parámetros de formación también. Es posible entrenar

a un clasificador basado en LBP que proporcionará casi la misma calidad que el basado en

Haar.

opencv_traincascade y almacenar opencv_haartraining el clasificador entrenado en diferentes

formatos de archivo. Nota, la interfaz de detección en cascada más reciente (véase la clase

CascadeClassifier en el módulo objdetect) soporta ambos formatos. Opencv_traincascade

puede guardar (exportar) una cascada entrenado en el formato anterior. Pero

opencv_traincascade y opencv_haartraining no pueden cargar (importar) un clasificador en

otro formato para la formación continua después de la interrupción.

Tenga en cuenta que la aplicación opencv_traincascade puede utilizar TBB para multi-

threading. Para usarlo en modo multicore OpenCV debe ser construido con TBB.

También hay algunas utilidades auxiliares relacionadas con el entrenamiento.

• opencv_createsamples se utiliza para preparar un conjunto de datos de entrenamiento

de muestras positivas y de prueba. opencv_createsamples produce conjunto de datos de

muestras positivas en un formato que es compatible con las aplicaciones y

opencv_haartraining opencv_traincascade. La salida es un archivo con extensión * .vec, es un

Page 33: Integradora ramos,cocon,perez,cante 10_b_10a

33

formato binario que contiene imágenes.

• opencv_performance se puede utilizar para evaluar la calidad de los clasificadores, pero

para entrenados por opencv_haartraining solamente. Requiere una colección de imágenes

marcadas, ejecuta el clasificador e informa del rendimiento, es decir, el número de objetos

encontrados, el número de objetos perdidos, el número de falsas alarmas y otra información.

Desde opencv_haartraining es una aplicación obsoleta, sólo se opencv_traincascade se

describirá más se necesita. Opencv_createsamples utilidad para preparar un conjunto de datos

de entrenamiento para opencv_traincascade, por lo que se describirá también.

Page 34: Integradora ramos,cocon,perez,cante 10_b_10a

34

opencv_createsamples utilidad

Una utilidad opencv_createsamples proporciona funcionalidad para generar el conjunto de

datos, la escritura y la visualización. El término conjunto de datos se usa aquí tanto para

conjunto de entrenamiento y de prueba.

Formación de preparación de datos

Para el entrenamiento necesitamos un conjunto de muestras. Hay dos tipos de muestras:

negativa y positiva. Las muestras negativas corresponden a imágenes sin objeto. Las muestras

positivas corresponden a imágenes con objetos detectados. Conjunto de muestras negativas

se debe preparar de forma manual, mientras que un conjunto de muestras positivas se crea

usando la utilidad opencv_createsamples.

Page 35: Integradora ramos,cocon,perez,cante 10_b_10a

35

Las muestras negativas

Las muestras negativas se toman de imágenes arbitrarias. Estas imágenes no deben contener

objetos detectados. Las muestras negativas se enumeran en un archivo especial. Es un

archivo de texto en el que cada línea contiene un nombre de archivo de imagen (relativo al

directorio del archivo de descripción) de imagen de muestra negativa. Este archivo debe

crearse manualmente. Tenga en cuenta que las muestras negativas y las imágenes de muestra

también se denominan muestras de fondo o imágenes de muestras de fondo y se utilizan

indistintamente en este documento. Las imágenes descritas pueden ser de diferentes tamaños.

Pero cada imagen debe ser (pero no necesariamente) más grande que un tamaño de ventana

de entrenamiento, ya que estas imágenes se utilizan para submuestra la imagen negativa al

tamaño del entrenamiento.

Un ejemplo de archivo de descripción:

Estructura del directorio:

img1.jpg

img2.jpg

Archivo bg.txt:

Img / img1.jpg

Img / img2.jpg

figura 16 imágenes obtenidas

Page 36: Integradora ramos,cocon,perez,cante 10_b_10a

36

En la figura 16 se observa como las imágenes adquiridas representan las fotos positivas donde

se encuentran los objetos

Las muestras positivas

A partir de una sola imagen con objeto o de una colección de imágenes previamente marcadas.

Tenga en cuenta que necesita un gran conjunto de datos de muestras positivas antes de

entregarlo a la utilidad mencionada, ya que sólo aplica la transformación de perspectiva. Por

ejemplo, puede necesitar sólo una muestra positiva para un objeto absolutamente rígido como

un logotipo de OpenCV, pero definitivamente necesita cientos e incluso miles de muestras

positivas para caras. En el caso de las caras que usted debe considerar toda la raza y grupos

de edad, las emociones y estilos de la barba tal vez.

Por lo tanto, una sola imagen de objeto puede contener un logotipo de la empresa. A

continuación, se crea un gran conjunto de muestras positivas a partir de la imagen de objeto

dada girando al azar, cambiando la intensidad del objeto, así como colocando el objeto en un

fondo arbitrario. La cantidad y variedad de aleatoriedad pueden ser controlados por los

argumentos de línea de comandos de utilidad opencv_createsamples.

La creación de conjunto de entrenamiento a partir de una sola imagen y una colección

de fondos con un solo archivo vec como una salida

El siguiente procedimiento se utiliza para crear una instancia de ejemplo de objeto: La imagen

de origen se gira de forma aleatoria alrededor de los tres ejes. El ángulo elegido se limita mi -

max? Ángulo. Entonces píxeles que tienen la intensidad de [bg_color-bg_color_threshold;

bg_color + bg_color_threshold] gama se interpretan como transparente. El ruido blanco se

añade a las intensidades del primer plano. Si no se especifica la clave -inv entonces

intensidades de los píxeles de primer plano están invertidas. Si se especifica -randinv clave

entonces algoritmo selecciona al azar si la inversión se debe aplicar a esta muestra. Por último,

la imagen obtenida se coloca sobre un fondo arbitraria desde el archivo de descripción del

fondo, cambiar de tamaño al tamaño deseado especificado por -wy -H y almacenado a la vec-

archivo, especificado por la opción de línea de comandos -vec.

La creación de conjunto de entrenamiento como una colección de imágenes PNG

Page 37: Integradora ramos,cocon,perez,cante 10_b_10a

37

Para obtener este tipo de comportamiento del -img, -bg, -info y las teclas -pngoutput deben ser

especificados. El nombre de archivo especificado con -info clave debe incluir al menos un nivel

de jerarquía de directorios, ese directorio se usará como el directorio de nivel superior para el

conjunto de entrenamiento. Por ejemplo, con los llamados opencv_createsamples como

siguiente:

Opencv_createsamples -img /home/user/logo.png -bg /home/user/bg.txt -info

/home/user/annotations.lst -pngoutput -maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1

La salida tendrá la siguiente estructura:

/ Inicio / usuario /

anotaciones /

0001_0107_0099_0195_0139.txt

0002_0107_0115_0195_0139.txt

...

neg

<Archivos de fondo aquí>

pos /

0001_0107_0099_0195_0139.png

0002_0107_0115_0195_0139.png

...

Con los archivos .txt en el directorio que contiene información sobre las anotaciones del cuadro

delimitador objeto en la muestra en el siguiente formato:

Nombre de archivo de imagen: "/home/user/pos/0002_0107_0115_0195_0139.png"

Page 38: Integradora ramos,cocon,perez,cante 10_b_10a

38

Cuadro de encuadernación para el objeto 1 "PASperson" (Xmin, Ymin) - (Xmax, Ymax): (107,

115) - (302, 254)

Y annotations.lst archivo que contiene la lista de todas las anotaciones del archivo:

/home/user/annotations/0001_0109_0209_0195_0139.txt

/home/user/annotations/0002_0241_0245_0139_0100.txt

Creación de prueba establecida como una colección de imágenes JPG

Esta variante de uso opencv_createsamples es muy similar a la anterior, pero genera la salida

en un formato diferente; Para obtener este tipo de comportamiento del -img, -bg y las teclas -

INFO deben ser especificados. Por ejemplo, con los llamados opencv_createsamples como

siguiente:

Opencv_createsamples -img /home/user/logo.png -bg /home/user/bg.txt -info annotations.lst

-maxxangle 0.1 -maxyangle 0.1 -maxzangle 0.1

Estructura del directorio:

info.dat

img1.jpg

img2.jpg

Archivo info.dat:

Img1.jpg 1 140 100 45 45

Img2.jpg 2 100 200 50 50 50 30 25 25

Page 39: Integradora ramos,cocon,perez,cante 10_b_10a

1

La conversión de la colección marcada en marcha de las muestras en un formato

vec

También se pueden obtener muestras positivas de una colección de imágenes

previamente marcadas. Esta colección se describe mediante un archivo de texto

similar al archivo de descripción de fondo. Cada línea de este archivo corresponde a

una imagen. El primer elemento de la línea es el nombre de archivo. Es seguido por el

número de instancias de objeto. Los números siguientes son las coordenadas de los

objetos que delimitan rectángulos (x, y, anchura, altura).

Un ejemplo de archivo de descripción:

Estructura del directorio:

img

img1.jpg

img2.jpg

info.dat

Archivo info.dat:

Img / img1.jpg 1 140 100 45 45

Img / img2.jpg 2 100 200 50 50 50 30 25 25

Image img1.jpg contiene instancia de objeto único con las siguientes coordenadas del

rectángulo delimitador: (140, 100, 45, 45). Image img2.jpg contiene dos instancias de

objeto.

Con el fin de crear las muestras positivas de dicha recolección, -info argumento debe

especificarse en lugar de -img:

Page 40: Integradora ramos,cocon,perez,cante 10_b_10a

2

• -info <collection_file_name>

Archivo descriptivo de la colección de imágenes marcadas.

El esquema de creación de muestras en este caso es el siguiente. Las instancias de

objeto se toman de imágenes. A continuación, se cambian el tamaño de las muestras

de destino y se almacenan en la salida vec-archivo. No se aplica ninguna distorsión,

por lo que los argumentos que sólo afectan son -w, -h, -show y -num.

Después de adquirir las imágenes viene la etapa de entrenamiento donde se expone

a la red neuronal eliminado la mayor cantidad de errores y reduciendo el tiempo de

detección del objeto al terminar el entrenamiento se adquiere un archivo cascade.xml

este es el que nos interesa procesar porque contiene el resultado de las ganancias de

la red Neuronal.

figura 17 programa de detección

Page 41: Integradora ramos,cocon,perez,cante 10_b_10a

3

3.3.2 Resultados

figura 18 detectando un celular

los resultados fueron factibles para ambientes controlados e incontrolados tal que se

observa los resultados en la (figura 18), debemos tener en cuenta los otros puntos

como el tiempo de entrenamiento.

3.3.3. Análisis

figura 19 datos de entrenamiento

Page 42: Integradora ramos,cocon,perez,cante 10_b_10a

4

Se observa en la figura 19 los datos obtenidos en la red neuronal y después de varios

entrenamientos se describen en la siguiente tabla la cantidad de error obtenido

después de cada entrenamiento.

Img

positivas

Img

negativas

Tiempo

entrenado

Error

750 1500 2 horas

50 min

5.63663e-3

1500 3000 4 horas

17 min

1.6453453e-

6

1000 1500 50 min 1.74663e-3

4. CONCLUSIONES Y RECOMENDACIONES

Se desarrolló un sistema de reconocimiento de objetos, mediante la aplicación de un

software, para clasificarlos por su color y su género, bajo la plataforma Linux,

trabajamos con el software python para la realización del reconocimiento de objetos

con ayuda de la paquetería OpenCV, que nos permite utilizar su entrenamiento de

imágenes por medio de redes neuronales, creando así un archivo para el

reconocimiento del objeto especifico, se usaron para el entrenamiento

aproximadamente 3000 imágenes negativas y 1500 imágenes positivas, las negativas

son fotografías de lo que no queremos reconocer, en este caso otros objetos, los

ambientes, e inclusive de personas y las positivas es del objeto que quiero reconocer,

captándolo de todos los ángulos posibles, de esta manera evitamos un problema muy

común en el reconocimiento de imágenes, la luz que nos varia los colores de nuestros

objetos de manera drástica, por ello este entrenamiento también debe llevar fotografías

con los diferentes cambios de luz que se puedan presentar, esto causa que el

entrenamiento al tener más fotografías se pueda volver muy lento y tardar incluso días,

por ello se diseñó una caja con un ambiente controlado y una luminosidad constante

con luz LED, regulándolo con PWM y un driver L293d. de esta manera mantenemos

un ambiente controlado con una luz exacta en cada hora del día, permitiendo no tener

Page 43: Integradora ramos,cocon,perez,cante 10_b_10a

5

tantas fotografías y que el sistema sea rápido con la misma calidad de reconocimiento.

En la presentación se utilizó un cubo de 2 centímetros, a una distancia aproximada de

50 cm, esto fue un reto porque es una pieza muy pequeña pero bajo el entrenamiento

utilizado, se logró captar el objeto de manera eficaz, presentando así un sistema

completo de reconocimiento de imagen con un ambiente controlado.

5. FUENTES DE INFORMACIÓN

Bradski, G. (2015). Learning OpenCV: Computer Vision with the OpenCV Library. O

Reilly.

Bressert, E. (2013). SciPy and NumPy: An Overview for Developers. O Reilly.

Howse, J. (2014). OpenCV Computer Vision with Python. O Reilly.

Kurt Demaagd, A. O. (2014). Practical Computer Vision with SimpleCV : The Simple

Way to Make Technology. O Reilly.

Laganière, R. (2012). OpenCV 2 Computer Vision Application Programming Cookbook.

O Reilly.

Lélis, D. (2014). Mastering OpenCV with Practical Computer Vision Projects. O Reilly.

Ponce, D. A. (2013). Computer Vision: A Modern Approach (2nd Edition).

Solem, J. E. (2013). Programming Computer Vision with Python: Tools and algorithms

for analyzing. O Reilly.

Stockman, L. G. (2011). Computer Vision.

Szeliski, R. (2014). Computer Vision: Algorithms and Applications. O Reilly.

Page 44: Integradora ramos,cocon,perez,cante 10_b_10a

6

6. ANEXOS