Sie sind auf Seite 1von 22

1

9pupu9UNIVERSIDAD NACIONAL

“HERMILIO VALDIZAN”

Facultad de Ingeniería Industrial y de Sistemas

E.A.P. Ingeniería de Sistemas

“Desarrollo de una Aplicación móvil de seguridad


para reconocimiento e identificación de personas y
automóviles por medio de imágenes, usando
biometría facial e inteligencia artificial.”

TESIS

INTEGRANTES:

Aguirre Raymundo, Ever

Albornoz Iribarren, Fredy

Pozo Estrada, Ángel yen

Dirigido a la Ing. Nerida Pastrana Díaz

Huánuco – Perú

2017
2

INDICE

CAPITULO I: PLANTEAMIENTO DE PROBLEMA

1.1 ANTECENDENTES Y FUNDAMENTACION DEL PROBLEMA

1.2 FORMULACION DEL PROBLEMA

1.2.1 PROBLEMA GENERAL

1.2.2 PROBLEMAS ESPECIFICOS

1.3 OBJETIVOS DEL PROYECTO

1.3.1 OBJETIVO GENERAL

1.3.2 OBJETIVOS ESPECIFICOS

1.4 JUSTIFICACION

1.5 IMPORTANCIA

1.6 ALCANCES.

1.7 LIMITACIONES

CAPITULO II: MARCO TEORICO

2.1 APLICACIONE MOVILES

2.2 SEGURIDAD

2.3 INTELIGENCIA ARTIFICIAL

2.3.1 BIOMETRIA FACIAL

2.3.2 BINARIZACION DE IMÁGENES

2.4 LENGUAJES DE PROGRAMACION

2.4.1 COMPRENSION DE LA PROGRAMACION

2.4.2 INTRODUCCION A LA PROGRAMACION EN PYTHON Y ANDROID


3

2.4.3 ENTORNO DE DESARROLLO

2.4.3.1 ADB

2.4.3.2 EMULADOR ANDROID

2.4.4 OPENCV

2.5 DESARROLLO DE LA APLICACIÓN

2.5.1 PROCESAMIENTO DE IMÁGENES MATRICIALMENTE CON OPENCV

2.5.2 DETECCION DE AUTOS Y PERSONAS CON OPENCV


4

INTRODUCCION

En la actualidad, la inseguridad es uno de los mayores problemas que aqueja al país debido

a la falta de políticas y gestiones por parte de las autoridades ocasionando daños físicos y

materiales que perjudican a la población. Por tanto existen un gran número de robos y

secuestros por subir a taxis desconocidos o interactuar con personas desconocidas.

Es por eso que mediante este proyecto se diseñara y desarrollara una aplicación móvil de

seguridad con reconocimiento facial e imágenes utilizando la inteligencia artificial para

identificar y reconocer la identidad e información de personas desconocidas y automóviles

para cualquier fin que podríamos necesitar como para hacer una denuncia, Comprobar datos

de una personas o automóvil o para alguna investigación policial.


5

CAPITULO I: PLANTEAMIENTO DEL PROBLEMA

1.1 Antecedentes y fundamentación del problema.

El problema de mayor importancia en nuestro país es la delincuencia e inseguridad

ciudadana y es en esta era de la información que la tecnología puede ayudar a solucionar este

problema, más aun esta era, donde las personas usan teléfonos móviles inteligentes y

cualquier persona lo usa. Por eso una de las mejores soluciones es el desarrollo de

aplicaciones inteligentes que puedan ayudar prevenir y verificar la identidad de personas

desconocidas o ver la situación o condiciones de los vehículos de forma instantánea y precisa

que pueda estar alcance de cualquier persona. Por lo tanto se deben tomar en cuenta estas

soluciones en la ciudad de Huánuco.

En la actualidad observamos una gran cantidad de robos y secuestros que se dan cada día

por subir a taxis desconocidos o por interactuar con personas desconocidas y también

producen daños muy elevados tanto en la economía como también crea desconfianza e

incertidumbre en la población al subirse a taxis. Esto se debe a varios factores tales como la

insuficiencia en la educación, la pobreza, la desocupación y a la ineficiencia en el control y

verificación de los vehículos por parte del estado en transportes.

Este problema se va acrecentado día a día, si no se toman decisiones que solucionen este

problema la inseguridad ciudadana aumentara y Huánuco, se volverá una ciudad insegura, y

ello repercute en bajas inversiones, disminución del flujo turístico, menos inversionistas y

por lo tanto una disminución en la economía que afectaría a la población en general.


6

Por ello la propuesta de investigación es desarrollo de aplicaciones con ayuda de la

inteligencia artificial para hacer una aplicación móvil que use la biometría facial y

reconocimiento de imágenes para pueda ser utilizada para que las personas se sientan más

seguras y puedan tomar sus precauciones, el desarrollo de la aplicación móvil que pueda

ayudar a identificar y comprobar los datos de una persona desconocida con solo tomarla una

fotografía la cual será procesada y hará consultas a una base de datos para obtener los

registros y datos de una persona o la placa del automóvil de cual se quiere obtener

información de forma rápida y precisa.

El reconocimiento de imágenes utilizando redes neuronales artificiales en este proyecto

describe el proceso de extracción de patrones característicos de imágenes, y las imágenes,

serán almacenadas en una base de datos y Consumidos por un servicio web. Un teléfono

móvil con sistema operativo Android, Consumirá la información almacenada en el servicio

web. Posteriormente al realizar una captura de imagen con la cámara del teléfono, este

procesará la imagen y junto con los datos consumidos por el servicio web será capaz

identificar de qué imagen se trata. Para el tratamiento de las imágenes se utilizarán librerías

Open CV, tanto en el servidor como en el teléfono móvil.-PEDRO P. GARCÍA (2012/2013).

1.2 Formulación del Problema

1.2.1 Problema General

¿Cómo desarrollar una Aplicación móvil de seguridad para reconocimiento e

identificación de personas y automóviles por medio de imágenes y usando biometría facial

utilizando inteligencia artificial?


7

1.2.2 Problemas Específicos

¿Cuáles son los requerimientos para la aplicación móvil?

¿Cómo hacer Especificación, descripción detallada de la aplicación que se desea

desarrollar?

¿Cómo se Diseñara y se elaborara la arquitectura de la aplicación móvil?

¿Cómo Elaborar y desarrollar el algoritmo de la aplicación?

¿Cómo Desarrollar la programación de la aplicación móvil?

¿Cómo Probar y corregir los errores que se tenga en el desarrollo de la aplicación?

¿Cómo se realizara la documentación de la aplicación que será un manual de guía para los

usuarios?

1.3 Objetivos del Proyecto

1.3.1. Objetivos Generales

Desarrollar una Aplicación móvil de seguridad para reconocimiento e identificación de

personas y automóviles por medio de imágenes y usando biometría facial utilizando

inteligencia artificial

1.3.2. Objetivos Específicos

Análisis de requerimientos de la aplicación móvil.

Especificación, descripción detallada de la aplicación que se desea desarrollar.

Diseñar y elaborar la arquitectura de la aplicación móvil.

Elaborar y desarrollar el algoritmo de la aplicación

Desarrollo de la programación de la aplicación móvil.


8

Probar y corregir los errores que se tenga en el desarrollo de la aplicación.

Realizar la documentación de la aplicación que será un manual de guía para los usuarios.

1.4 Justificación

Debido a la seguridad de las personas y a que en todo momento y en nuestro entorno o

actividades requerimos y necesitamos conocer a personas desconocidas pero no sabemos sus

datos básicos que podrían ser importantes para poder hacer algún tipo denuncia, reclamos o

verificación de datos que podríamos necesitar.

1.5 Importancia

Tener una aplicación con estas características es muy fundamental en estos momentos en

que los teléfonos móviles son lo más utilizados y están al alcance de todos y con ello

podríamos solucionar muchos problemas de seguridad y facilitaría mucho a las personas

cotidianas.

 contratar un personal nuevo.

 tomar un taxi desconocido.

 comprar un automóvil usado.

 Comprobar datos de una persona.

 Saber en qué estado o quien es el propietario del automóvil.

1.6 Alcances

Se requiere investigar y profundizar en temas de inteligencia artificial principalmente en la

biometría facial y reconocimiento de imágenes e objetos mediante una cámara.

Existen varias teorías, tecnologías y nuevas investigaciones que cada vez se paran

mejorando y rediseñando en la inteligencia artificial para poder desarrollar esta aplicación.

Al revisar proyectos e investigaciones relacionada con reconocimiento de facial y de


9

imágenes e objetos se ha encentrado que si existen investigaciones similares que son

desarrolladas en otros lenguajes y en orientada a la robótica y por tanto no abarcan mucho en

la investigación de aplicaciones móviles que usen inteligencia artificial con biometría facial y

reconocimiento de imágenes orientadas a la seguridad.

Finamente la investigación para el desarrollo una aplicación móvil es para que cualquier

persona pueda identificar y obtener datos precisos y reales de cualquier persona o automóvil

con tan solo tomarle una foto y procesarla automáticamente y comparar con una base de datos

de Estado (SUNAT, INPE o Ministerio de Transportes).

1.7 Limitaciones

Se utilizara una base de datos del estado (RENIEC, INPE y Ministerio de transporte) para

poder hacer las comparaciones y las consultas para poder obtener los datos que se necesita.

Poca y el idioma de la documentación que existe de Opencv u otra tecnología que se puede

utilizar para el reconocimiento facial y de objetos.

El costo para poder adquirir cursos y libros sobre biometría facial y programación

orientada a reconocimiento facial y de imágenes tales como Python, Android y otros.

El tiempo que toma en aprender e investigar en tecnologías de reconocimiento facial como

Opencv y con los lenguajes de programación como Python y Android porque son muy

complejas para su aprendizaje.


10

CAPITULO II: Antecedentes y Marco teórico:

Antecedentes:

García (2012), en su trabajo de investigación investigación para lograr el master de

informática de la facultad de Informática de la UNIVERSIDAD COMPLUTENSE DE

MADRID titulado el reconocimiento de imágenes utilizando redes neuronales artificiales

tiene como objetivo el proceso de extracción de patrones característicos de imágenes,

mediante la ayuda de Redes Neuronales Artificiales. Utilizo La información de la Red

Neuronal junto con datos adicionales de las imágenes, serán almacenados en una base de

datos y consumidos por un servicio web. Un teléfono móvil con sistema operativo Android

consumirá la información almacenada en el servicio web. Concluyo en la idea del estudio en

proponer otro tipo de características representativas de imágenes distintas y se probó con la

imagen de una zapatilla para poder investigar mejor el procesamiento de imágenes más

complejas y este estudio demostró que la clasificación de este tipo de imágenes es más

complicada y necesita de una mayor investigación, sin embargo permitió comprobar que la

infraestructura diseñada era la adecuada para el estudio de cualquier tipo de imagen.

Pérez (2009) en su trabajo de investigación fue para lograr investigar y dar conocer sobre

este tema de la Investigación de la localización y reconocimiento de rostros en Imágenes

monoculares de frente con variación en escala echo. En este trabajo se presenta una nueva
11

técnica de localización y reconocimiento de rostros en imágenes monoculares de frente con

variación en escala. Se describe la construcción del sistema de adquisición de imágenes para

generar una base de datos de fotografías que permitan ser comparadas contra imágenes con

cambio de escala. Además, se presenta como crear la base de datos de imágenes de prueba, así

como los resultados en la localización de ojos, la extracción de la región elíptica de la cara, la

normalización, el suavizado con variación total y la aplicación de la técnica de análisis de

componentes principales para la generación del espacio de eigenfaces y obtención del rostro

promedio. Se concluyó que el cálculo automático de los datos ayudo a disminuir

considerablemente los tiempos, además de que siempre es sistemático el programa y elimina

ciertos errores acumulados en la obtención manual de los datos. Además es necesario tomar

En cuenta que la experimentación introduce errores y no es posible tener datos exactos

(siempre realizamos pequeñas aproximaciones), las cuales afectan nuestros resultados.

Actualmente se han desarrollado aplicaciones como Google Goggles1 basadas en el

Reconocimiento de imágenes utilizando el contenido de las mismas, para ello se centran en un

Subconjunto de las imágenes que Google ha catalogado previamente ya que el análisis y

Comparación de imágenes digitales requiere de un coste computacional muy alto. Realizar

Esta labor para todas las imágenes indexadas por un buscador sería una tarea casi imposible, a

día de hoy.

2.1 Aplicaciones Móviles

2.1.1Aplicaciones Android.
12

Android es un sitema operativo de código abierto para dispositivos móviles, se programa

principalmente en Java, y su núcleo está basado en Linux.

El desarrollo para dispositivos móviles y embebidos requiere que el programador tenga

especial cuidado en determinados aspectos. El sistema operativo no puede encargarse de

controlar todo porque limitaría demasiado al programador, así que determinados aspectos

como ahorrar CPU y memoria son responsabilidad del programador en la mayoría de los

casos

2.1.2 Características de una aplicación móvil.

Framework de aplicaciones: permite el reemplazo y la reutilización de los componentes.

Navegador integrado: basado en el motor open Source Webkit.

SQlite: base de datos para almacenamiento estructurado que se integra directamente con las

aplicaciones.

Multimedia: Soporte para medios con formatos comunes de audio, video e imágenes planas

(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).

Máquina virtual Dalvik: Base de llamadas de instancias muy similar a Java.

Telefonía GSM: dependiente del terminal.

Bluetooth, EDGE, 3g y Wifi: dependiente del terminal.

Cámara, GPS, brújula y acelerómetro: Dependiente del terminal

Pantalla Táctil.
13

2.1.3 Herramientas de desarrollo

A tan solo unos minutos de que el Google I/O 20178 dé comienzo, Google ha actualizado

una de las herramientas más útiles que ofrece en Android: el administrador de dispositivos. La

app, que llevaba 2 años sin actualizarse, ha cambiado por completo su diseño, y su nombre,

pues a partir de ahora será conocida como “Encontrar mi dispositivo”.

2.1.4 Android Studio:

Es lo menos que se debe tener instalado para comenzar el desarrollo de una aplicación para

Android. Android Studio es el entorno de desarrollo para Android de Google, se trata

del sustituto de Eclipse como entorno de desarrollo oficial y viene con todas las bibliotecas

y herramientas para crear la aplicación de forma correcta de principio a fin.

Disponible para todas las plataformas (Linux, Windows, Mac OS …) en su descarga

incluirá un sistema Android emulado para poder probar el proyecto en desarrollo y ver el

resultado en cualquier momento.

2.2 Seguridad con Inteligencia Artificial

2.2.1 Aplicaciones de seguridad con inteligencia artificial


14

Las soluciones de seguridad, confiarán más y más en máquinas que aprenden, piedra angular

de la inteligencia artificial. Esto creará nuevas realidades informáticas para predecir las

intrusiones antes de que ocurran. Las industrias que tomarán más ventaja de la inteligencia

artificial aplicada a la seguridad informática son las dedicadas a detección de malware,

análisis de seguridad Big Data, empresas de protección End Point y soluciones de seguridad

para Internet de las Cosas (IoT).

La inteligencia artificial será determinante para el concepto de seguridad informática dentro

de los siguientes 30 años. Actualmente, la forma en que la tecnología evoluciona es muy

rápida. Lo que nos tomaba 30 años en desarrollar y llevar a los mercados puede ser

desarrollado en un tercio de ese tiempo o menos. En 10 años veremos aplicaciones que

predicen el comportamiento con altas tasas de precisión en casi todos los aspectos de nuestra

vida en relación con la informática (predicción IoT), sobre todo en la seguridad. Las

infraestructuras de red que estén equipadas con este tipo de tecnología serán capaces de

anticipar intrusiones y tomar de manera automatizada acción correctiva inmediata para

defender y mitigar cualquier daño posible causado. Todo esto sin intervención humana.

2.3 Inteligencia artificial

2.3.1 Biometría facial


15

La Real Academia Española define la biometría como el “estudio mensurativo o estadístico

de los fenómenos o procesos biológicos”. Sin embargo, aunque este término nos pueda

parecer demasiado vago o impreciso, también se conoce este campo como la utilización de

métodos automáticos para el reconocimiento único de humanos, en función de determinados

rasgos físicos o conductuales. (Vázquez lopez,2014,Centro de investigaciones en óptica, tesis

Sistema de Reconocimiento Facial Mediante Técnicas de Visión Tridimensional,Pag.7).

Hace tiempo os hablamos en el blog de un área específica de esta disciplina, conocida

como biometría vocal, en la que la voz es la herramienta clave para verificar e identificar de

manera única a un individuo. De manera específica, se usan rasgos físicos determinados que

sirven para diferenciar unas voces de otras. De esta manera podremos alcanzar dos objetivos

fundamentales de la biometría:

 Verificación biométrica: consiste en usar una determinada tecnología para asegurar

que el individuo que debemos reconocer es quien dice ser.

 Identificación biométrica: en este caso no queremos confirmar que un usuario es quien

asegura ser, sino que tratamos de aplicar la tecnología para conocer la identidad de un

individuo.

En los últimos años se han dado grandes pasos en los sistemas de reconocimiento, ya sea

utilizando rasgos de nuestra cara (lo que conoceremos como biometría facial), o a través de

los clásicos análisis de la voz y de nuestras huellas dactilares.


16

2.3.2 Binarización de imágenes

Una vez obtenida la imagen en escala de grises y después de filtrarla se procedió a hace

binarización. La binarización es un proceso que transforma una imagen que está en escala de

grises a una imagen en dos colores: blanco y negro. Esto es útil para el reconocimiento de las

hojas porque éstas se distinguen principalmente por la forma de intensidad de los píxeles que

los componen. De esta forma, al convertir las imágenes enblanco y negro se pierde muy poca

información relevante y se simplifica la representación de cada píxel, pasando de 256 posibles

valores binarizar una imagen es escoger un valor umbral valor de cada píxel.

2.4 Lenguajes de programación.

2.4.1 Comprensión de la programación

Durante el resto de este libro, intentaremos convertirte en una persona habil en el ´ arte de

programar. Al final seras un ´ programador — tal vez no un programador profesional, pero al

menos tendras la capacidad de echar un vistazo a un problema ´ de analisis de

datos/información y desarrollar un programa para resolverlo. ´ En cierto sentido, necesitas dos

habilidades para ser un programador: En primer lugar, debes dominar el lenguaje de

programacion (Python) - de- ´ bes conocer su vocabulario y su gramatica. Debes ser capaz de

escribir las ´ palabras en este nuevo lenguaje correctamente y saber como construir “fra- ´ ses”

bien formadas en este lenguaje. En segundo lugar, debes “contar una historia”. Al escribir una
17

historia, combinas palabras y frases para transmitir un concepto al lector. Son necesarios

habilidad y arte para construir la historia, y esa habilidad se mejora precisamente escribiendo

y obteniendo cierta respuesta. En programacion, nuestro ´ programa es la “historia” y el

problema que se esta tratando de resolver es ´ el “concepto”. Una vez que aprendas un

lenguaje de programacion como Python, encontrar ´ as´ mucho mas sencillo aprender un

segundo lenguaje como JavaScript o C++. Cada ´ nuevo lenguaje de programacion tendr ´ a

un vocabulario y gram ´ atica muy diferen- ´ tes, pero la forma de resolver problemas va a ser

la misma en todos ellos. Aprenderas el “vocabulario” y “frases” de Python muy r ´

apidamente. Te costar ´ a un ´ poco mas ser capaz de escribir un programa coherente para

resolver un pro ´ blema nuevo. Se ensena a programar de forma muy similar a como se ense ˜

na a escri- ˜ bir. Se comienza leyendo y explicando programas, despues se escriben programas

´ sencillos, y poco a poco se va incrementando su complejidad. En algun momento ´

“encuentras tu musa” y comienzas a descubrir los patrones por ti mismo, siendo capaz de

tomar un problema y escribir un programa para resolverlo. Y una vez se ha alcanzado ese

punto, la programacion se convierte en un proceso muy agradable ´ y creativo.

2. 4.2 Introducción a la programación en Python para Android.

Nos llega este interesante proyecto de la mano de Kivy, un framework basado en OpenGL

escrito en python que nos permite hacer aplicaciones desktop, IOS, Windows y tambien

Android.
18

Hace poco vimos cómo compilar con el SDK de Android desde otro lenguaje que no sea

Java, por ejemplo desde Scala.

Ahora con Kivy, que es a la vez un framework y un toolkit como PythonQT o como el GTK+

toolkit de Gnome, podemos crear botones, animaciones, elementos visuales desde Python.

Mathieu Virbel, leader programmer de Kivy nos publica hace pocos días este script en

Python que permite compilar desde python con el toolchain de Android y de esta

forma obtener un APK para Android.

2.4.3 Entorno de desarrollo

Entornos para un desarrollo como:

2.4.3.1 ADB :

Herramienta que viene junto con el SDK de android y que nos permite acceder y, por lo

tanto controlar un dispositivo android desde una PC.

2.4.3.2 Emulador Android

Con este emulador se cargan y crean los AVD (Android Virtual Device), en los que se

Especifica el hardware y la versión del sistema operativo.

2.4.4 OpenCV

OpenCV se inició a Intel en 1999 por Gary Bradsky y la primera versión salió en

2000.Vadim Pisarevsky unido a Gary Bradsky para administrar el software del


19

equipo OpenCV rusa de Intel. Es una librería de computación visual creada por Intel, esta

librería esta disponible para múltiples plataformas como: Windows, Linux, Mac, Android,

además cuenta con soporte para diferentes lenguajes como: Python, Java, C/C++, .Net, entre

otros, en esta serie de tutoriales aprenderás a manejar los conceptos básicos de la

programación de aplicaciones enfocadas en el análisis y procesamiento de imágenes por

computador.

La biblioteca OpenCV puede ser usado bajo licencia BSD para proyectos escolares o

comerciales, las aplicaciones de esta librería incluyen, la robótica, análisis y procesamiento de

imágenes o vídeos, seguimiento y detección de objetos, detección y reconocimiento de

rostros, reconocimiento de placas de vehículos, análisis de formas, reconstrucción 3D,

realidad aumentada, y mucho más. Opencv(2013).opencv-tutoriales de python. Recuperado por:

https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_intro/py_intro.html#intro)

2.4.5 OpenCV en Python

Debido a su simplicidad y legibilidad del código, Python es muy adecuado para

trabajar con Opencv. En comparación con otros lenguajes como C / C ++, Python es

más lento. Sin embargo, otra característica importante de Python es que se puede

ampliar fácilmente con C / C ++. Esta característica nos ayuda a escribir los códigos

de computación intensiva en C / C ++ y Python crear un contenedor de modo que

podemos utilizar estas envolturas como módulos de Python. Esto nos da dos
20

ventajas: en primer lugar, nuestro código es tan rápido como código original C / C ++

(ya que es el actual código C ++ trabajan en segundo plano) y en segundo lugar, es

muy fácil de código en Python. Así es como funciona OpenCV en Python, es una

envoltura alrededor de Python original de C ++ aplicación.

Opencv(2013).opencv-tutoriales de python. Recuperado por: https://opencv-python-

tutroals.readthedocs.io/en/latest/py_tutorials/py_setup/py_intro/py_intro.html#intro)

2.4.6 Opencv en Android

Yas que debido que la mayoría de las nuevas aplicaiones que tengan que ver reconimiento de

imagens se están desarrollnado en móviles por eso se tiene que desarrolar estas apliacionnes

en plataforma móvil que es en Android. OpenCV proporciona un conjunto de muestras para los

desarrolladores de Android. Estas muestras muestran cómo OpenCV se puede utilizar tanto de

Java y nivel nativo de Android. Hay 2 grupos de muestras: muestras para Java y C ++ OpenCV

API, y un grupo de aplicaciones de ejemplo. El primer grupo se denomina como "# Tutorial" y

considera aspectos importantes para un principiante: usando OpenCV en Java y C ++,

trabajando con la cámara, mezclando Java y C ++ llama a OpenCV en una sola aplicación.

2.5 Desarrollo de la aplicación

2.5.1 procesamiento de imágenes matricialmente con Opencv.

Un filtro de imagen es un procedimiento que se aplica a una imagen para resaltar o mejorar

algunas características de la misma, para lograr esto se modifica la matriz que compone la
21

imagen aplicándole un determinado procedimiento, en este tutorial estudiaremos el

procedimiento llamado convolución de matrices.

OpenCV cuenta con gran variedad de función que aplican los distintos filtros más

comunes, estos filtros ya los hemos visto en cursos previos, en esta ocasión utilizaremos la

función cv::filter2D (...) que nos permitirá implementar nuestro propio filtro.

Lo primero debemos saber es que para crear un filtro requerimos una matriz de

convolución o kernel, esta será una matriz cuadrada cuyos tamaños normalmente son: 3x3,

5x5, 7x7, etc., dependiendo del filtro que deseemos aplicar, esta matriz será usada para

calcular el valor de cada pixel de la imagen resultante, a la matriz de convolución se le asigna

un punto de anclaje que normalmente se ubica en el centro, este es un ejemplo de una matriz

de convolución o kernel.

2.5.2 Detección de Autos y personas con OpenCV

Para construir este ejemplo usaremos el conjunto de imágenes obtenidos de Datasets for

Computer Vision Research donde encontraremos varios bases de datos de imágenes que

podemos utilizar para entrenar OpenCV, seleccionaremos las imágenes para detectar

autos UIUC Image Database for Car Detection

Lo primero que haremos será abrir CMD y ejecutar con el comando:


22

cd-C:\opencv\build\x86\vc11\bin

Nos movemos a la carpeta que contiene las aplicaciones opencv_createsamples.exe y

opencv_traincascade.exe.

Usaremos el siguiente comando para crear el archivo binario cars.vec correspondiente a las

imágenes positivas, usaremos la aplicación opencv_createsamples.exe también requerimos la

carpeta con las imágenes positivas, la llamaremos pos, además del archivo de texto cars.info

que nos indica donde localizarlas.