He pensado que muchas personas estarían interesadas en una guía que fuera fácil de seguir sobre cómo usar una oCam y el ODROID-XU4 para seguir objetos usando OpenCV. Esta guía te guiará por los diferentes pasos para crear y ejecutar una aplicación de seguimiento de objetos. La capacidad de rastrear un objeto específico sobre múltiples fotogramas es una tecnología clave en aplicaciones tales como la vigilancia automática o la robótica. El siguiente código de ejemplo rastreará un objeto utilizando las propiedades del color de la imagen.
Configuración
Para empezar, necesitarás los siguientes elementos, todos disponibles en la tienda Hardkernel:
- ODROID-XU4
- Módulo de memoria, ya sea eMMC o tarjeta micro SD, con Ubuntu instalado.
- oCam
Además, necesitaras instalar los siguientes paquetes de software, los cuales de pueden instalar utilizando la aplicación Synaptic Package Manager:
- gcc
- wget
- OpenCV
Para preparar tu sistema, abre una ventana de terminal e introduce los siguientes comandos:
$ sudo apt-get update && apt-get dist-upgrade $ sudo reboot
El primer comando actualizará la lista de paquetes e instalará la actualización más reciente de la distribución, si está disponible. El segundo comando reiniciará el ODROID. Tras actualizar la lista de paquetes y la distribución, instala OpenCV introduciendo el siguiente comando:
$ sudo apt-get install libopencv-devDesde el 2 de marzo de 2016, la última versión de OpenCV es la 2.4.9.
Compilación
Nuestro ejemplo está basado en el algoritmo Camshift (Continuous Adaptive Mean Shift), que es un tipo de algoritmo Meanshift y que se utiliza para rastrear objetos. Puedes encontrar más información sobre estos algoritmos en http://bit.ly/1pPduzS. Nuestro ejemplo está basado en el algoritmo Camshift (Continuous Adaptive Mean Shift), que es un tipo de algoritmo Meanshift y que se utiliza para rastrear objetos. Puedes encontrar más información sobre estos algoritmos en http://bit.ly/1pPduzS. En nuestro código, usaremos la función cvCamShift () de la librería OpenCV para habilitar el algoritmo camshift. El siguiente texto proporciona más información sobre la función cvCamShift ():
RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria) Parameters: probImage – Back projection of the object histogram. See calcBackProject(). window – Initial search window. criteria – Stop criteria for the underlying meanShift(). Returns: Result rectanglePara descargar el archivo fuente camshiftdemo, usa el siguiente comando o descarga el archivo desde tu navegador web visitando http://bit.ly/21ykrRF:
$ wget https://raw.githubusercontent.com/\ Itseez/opencv/2.4/samples/\ cpp/camshiftdemo.cppAhora estamos listos para compilar camshiftdemo.cpp usando el siguiente comando:
$ g++ camshiftdemo.cpp -o demo \ -O2 -lopencv_core -lopencv_imgproc \ -lopencv_highgui -lopencv_videoAquí tienes los significados de las opciones del compilador:
- o demo crea un archivo binario ejecutable llamado "demo" - O2 especifica un nivel de optimización de 2. Para obtener más información sobre la configuración de la optimización de g++, consulta http://bit.ly/1OOnopO. - l vincula una librería externa, usamos esto para vincular cuatro librerías: openvc_core, open_cv_imgproc, opencv_highgui, and opencv_video.
Ejecutando la aplicación
Una vez que la oCam esté conectada al ODROID-XU4, estamos listos para poner en marcha la demo del seguimiento de objetos usando el siguiente comando:
$ ./demoLa ventana de la Demo de CamShift tiene tres secciones: un panel de barra de control, un panel con la imagen de la cámara y un panel histograma. Usando los 2 controles deslizantes superiores, Vmax y Vmin, puede controlar el rango de valores del color. El control deslizante inferior, Smin, controla el nivel de saturación. Estos controles deslizantes ayudan a limitar el área de la imagen dentro de la cual vas a rastrear un objeto específico. Consulta información detallada sobre el tono, la saturación y el modelo de la gama de colores en http://bit.ly/1L6R7zM. Puede iniciar el seguimiento de objetos cliqueando y arrastrando la parte de la imagen de la cámara que deseas rastrear con el ratón. La Figura 4 muestra la aplicación ejecutándose mientras se ve un área seleccionada de una botella de zumo.
La ventana del histograma muestra los componentes de color dentro del área de la imagen seleccionada sobre el objeto que se está rastreando. Puede activar y desactivar la ventana del histograma presionando la tecla "h". También puedes cambiar el modo de vista normal para volver a la vista de proyección presionando la tecla "b". Las Figuras 6 y 7 muestran los diferentes modos de vista. Puedes encontrar más detalles sobre la proyección inversa en la página de OpenCV en http://bit.ly/1Rqc1MH.
Para borrar la selección, presione la tecla "c". Puede empezar a seguir un nuevo objeto seleccionando otra área del mismo modo que antes. Echa un vistazo al video disponible en http://bit.ly/21zZllS. Muestra una vista en vivo de la demo de seguimiento de objetos tratada en esta guía usando oCam y ODROID-XU4.
Be the first to comment