Introduction: Contador De Personas Con Raspberry Pi

About: Siguenos en: Facebook: /MCI electronics Youtube: MCI electronics Twitter: @mcielectronics Instagram: @mcielectronics_

Este proyecto implementa un Contador de Personas utilizando una Raspberry Pi, cámara y la librería OpenCv, desplegando directamente en el sistema operativo Raspbian la interfaz gráfica que muestra el análisis.

Step 1: Software

Sistema Operativo Raspbian Jeasy

OpenCV 3.0 raspicam-0.1.6 Contador: http://35.205.229.45/documents/6

  • contador.cpp
  • Makefiale
  • contador

Step 2: Materiales

Step 3: ​Instalación Sistema Operativo Raspbian Jeasy

Paso 1:

Descargar sistema operativo para la RaspberryPi 3 http://downloads.raspberrypi.org/NOOBS/images/NOOBS-2017-07-05/NOOBS_v2_4_2.zip

Paso 2:

La SD debe tener formato FAT32

Descomprime el contenido de NOOBS_v2_4_2.zip en la SD

Paso 3:

Conecta la SD en la RaspberryPi 3, energiza y sigue las instrucciones.

Step 4: Compilación E Instalación OpenCV 3

Paso 1:

Eliminar Wolfram

$ sudo apt-get purge wolfram-engine

reiniciar

$sudo reboot

Paso 2:

Instalar dependencias

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install build-essential cmake pkg-config

Instalar paquetes de I/O de imágenes que permitan cargar varios formatos de archivos de imágenes desde el disco como JPEG, PNG, TIFF, etc.

$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

Instalar paquetes de I/O de video

$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev

$ sudo apt-get install libxvidcore-dev libx264-dev

OpenCV viene con un submódulo llamado highgui que se utiliza para mostrar imágenes en nuestra pantalla y compilar GUI básicas. Para compilar el módulo highgui, necesitamos instalar la biblioteca de desarrollo

$ sudo apt-get install libgtk2.0-dev

Para optimizar operaciones dentro de OpenCV instalar las siguientes dependencias adicionales

$ sudo apt-get install libatlas-base-dev gfortran

Paso 3:

Descargar Código Fuente de OpenCV

$ cd ~

$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip

$ unzip opencv.zip

Realizaremos una instalación completa de OpenCV 3, para tener acceso a características como SIFT y SURF, por ejemplo, para lo que instalaremos opencv_contrib:

$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip

$ unzip opencv_contrib.zip

Paso 4:

Instalar virtualenv y virtualenvwrapper

$ wget https://bootstrap.pypa.io/get-pip.py

$ sudo python get-pip.py

$ sudo pip install virtualenv virtualenvwrapper

$ sudo rm -rf ~/.cache/pip

Ahora que se han instalado tanto virtualenv como virtualenvwrapper, debemos actualizar nuestro archivo ~ / .profile para incluir las siguientes líneas en la parte inferior del archivo:

# virtualenv and virtualenvwrapper

export WORKON_HOME=$HOME/.virtualenvs

source /usr/local/bin/virtualenvwrapper.sh

ejecutar el comando:

$source ~/.profile

Crear un virtual enviroment

$ mkvirtualenv cv -p python2

Activar el virtual enviroment creado

$ source ~/.profile

$ workon cv

Instalar NumPy en RaspberryPi

$ pip install numpy

Paso 5:

Compilar e Instalar OpenCV 3

$ workon cv

$ cd ~/opencv-3.1.0/

$ mkdir build

$ cd build

$ cmake -D CMAKE_BUILD_TYPE=RELEASE \

-D CMAKE_INSTALL_PREFIX=/usr/local \

-D INSTALL_PYTHON_EXAMPLES=ON \

-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \

-D BUILD_EXAMPLES=ON ..

Finalmente compilar OpenCV con un solo core

$ make

si se quiere usar mas cores para compilación (usa los 4 cores de la placa)

$ make -j4

Instalar Open CV

$ sudo make install

$ sudo ldconfig

Step 5: Instalación Y Configuración Cámara

Paso 1:

Conecta la cámara como se muestra en figura1: Conexión de la Cámara a la RaspberryPi 3

Paso 2:

Habilita el modulo de la cámara ejecutando el siguiente comando por consola en la RaspberryPi 3

$ sudo raspi-config

y selecciona las opciones que se muestran a continuación

Figura 2: Seleccionar opción 5 [5 Interfacing Options]

Figura 3: Seleccionar opción 1 [P1 Camera]

Se debe reiniciar la RasperryPi para aplicar la configuración

Paso 3:

Para probar el correcto funcionamiento ejecuta en consola

$ raspistill -o output.jpg

Esto capturara una foto con la cámara y la guardara en el directorio en que estas ejecutando el comando

Paso 4:

Para Instalar api C++ para usar la Cámara RaspberryPi con OpenCV descargar https://sourceforge.net/projects/raspicam/files/raspicam-0.1.6.zip/download descomprimir y compilar

$cd raspicamxx

$mkdir build

$cd build

antes de compilar se debe instalar CMake

$sudo apt-get install cmake

Compilar la api para el uso de la cámara con c++

$cmake ..

Finalmente compile, instale y actualice el ldconfig

$make

$sudo make install

$sudo ldconfig

La api queda disponible en /usr/local/include

Step 6: Instalación Contador

Opcion1

Descargar el archivo contador http://35.205.229.45/attachments/44/contador y dar permiso de ejecución

$ sudo chmod +x contador

ejecutar por consola

$ ./contador

Opcion2

Descargar los archivos Make y contador.cpp y dar permiso de ejecución

$ sudo chmod +x Make contador.cpp

ejecutar por consola

$ make

$ ./contador

Aparecerá una ventana "Frame" con una captura de la cámara, con el mouse se debe trazar la línea de conteo como se muestra en la Figura4, y luego presionar la barra espaciadora

Figura4: Ventana para la definición del contador

Aparecerá una ventana "keypoints" que despliega el contador, la línea de conteo y el flujo de la cámara

Figura5: Despliegue de Imagen y Contador

todos los objetos detectados que atraviesen la línea serán contados por el sistema.