Motion (Videovigilancia) en Raspberry Pi | Parámetros avanzados

Vamos a seguir con la configuración avanzada de Motion (detección de movimiento) en Raspberry Pi, así que vamos a ver varios parámetros avanzados para configurar el archivo motion.conf.

 
Motion Videovigilancia Raspberry Parametros avanzados

 

Motion (detección de movimiento) dispone de muchas opciones de configuración. Vamos a ver un resumen de las principales opciones de configuración avanzada del archivo motion.conf para conseguir un sistema de videovigilancia con Raspberry Pi y Motion Project.
 

 

Parámetros avanzados para configurar el archivo motion.conf

 

 

Podemos encontrar diferentes categorías de las opciones de configuración de Motion

 

 

 

Opciones de procesamiento del sistema

 

  • daemon: hemos de activarlo para que inicie (on/off)
  • camera_name : nombre de la camara. Podemos poner el nombre que queramos.
  • camera_dir : Directorio donde podemos colocar los archivos individuales de configuración de las diversas camaras. Se leerán todos los archivos .conf contenidos en este directorio.

 

 

Opciones de dispositivos Video4Linux

 

  • videodevice : opción para seleccionar el dispositivo de video que utilizaremos.
    • por ej: videodevice /dev/video0
  • hue: el nivel de matiz para el dispositivo de video.
  • auto_brightness : nivel de brillo automático regulado por Motion. Motion intentará regular el brillo si las imagenes son muy claras o muy oscuras.
  • Esta opción intentará regular el brillo (1 oscuro – 255 brillante) hasta el valor establecido en la opción brightness (brillo). Si la opción brightness está configurada en 0, auto_brightness intentará regular hasta el valor 128.
  • contrast : el nivel de contraste para el dispositivo de video.

 

 

Cámaras de Red

 
Motion puede conectar a cámaras de red.

Unas de las opciones más básicas de la categoría de cámaras de red es:

  • netcam_url
    • permite utilizar entre estas opciones:
  • http://
    • Se utiliza el tradicional prefijo http y abre la camara de red.
  • ftp://
    • Este prefijo utiliza ftp y recoge una imagen estática. La cámara reemplazará periódicamente la imagen recogida.
  • mjpg://
    • Cuando motion vea este prefijo, lo reemplazará por el tradicional http.
  • rstp://
    • El prefijo standard para todas las cámaras IP modernas. Para visualizar las imagenes recogidas por medio de este prefijo, es preferible utilizar una aplicación de terceros como vlc o ffplay.
  • rtmp://
    • Otro prefijo que puede ser encontrado en algunas cámaras IP modernas. Funciona como rstp:// , también se debe utilizar vlc o ffplay.
  • mjpeg://
    • Prefijo alternativo a http. Fuerza a Motion a utilizar las librerias ffmpeg y el formato mjpeg.es equivalente a utilizar :  ffplay -f mjpeg http://{mi_ip}
  • file://
    • Opción para procesar imagenes estáticas. Se requiere procesamiento externo de Motion para reemplazar la imagen.

 

 

 

Raspberry Pi Camera

 
Las cámaras oficiales Raspberry Pi camera pueden ser instaladas de dos formas:

Si Motion se instala por medio de paquetes apt (apt-get install motion), entonces será necesario instalar el módulo bcm2835-v4l12 con:

sudo modprobe bcm2835-v4l2

 
Y después activar el módulo en el archivo

sudo nano /etc/modules

 
y añadiendo en el archivo:

bcm2835-v4l2

 
/etc/modules/bcm2835-v4l2

y reiniciar la Raspberry
 
Para más info ver enlace:  Configuración básica de Motion

 

Raspberry Pi Camera Module V2 8MP
Raspberry Pi Camera Module V2 8MP

 

Opciones de procesamiento de imágenes

 

  • rotate :  Permite rotar la imagen 0, 90, 180, o 270 grados.
  • width : anchura medida en pixeles para cada frame. Los valores dependerán de cada dispositivo. Valor por defecto: 352.
  • Los valores deberán ser múltiplos de 8.
  • height : altura medida en pixeles para cada frame. Valor por defecto: 288. Los valores deberán ser múltiplos de 8.
  • framerate : Máximo número de frames a capturar por segundo por el dispositivo de video.
  • text_left : Texto deseado en la parte inferior izquierda de la pantalla.
  • text_right : Texto deseado en la parte inferior  derecha de la pantalla.

     

     

    Opciones de detección de movimiento

     

    • threshold : umbral

    Umbral de detección de píxeles cambiados. Opción importante para calibrar la detección de movimiento. Hemos de ponerlo lo más bajo posible para detectar el movimiento deseado. Pero a la vez hemos de buscar valores suficientemente altos para evitar detección de movimiento por ruido en la pantalla o por el movimiento de plantas. Por defecto el valor es 1500 pixeles.

     

    • threshold_tune : activa el ajuste automático del umbral. Si está activado, Motion estará constantemente ajustando el umbral, e ignorará los valores configurados en la opción “threshold” (umbral) . Si no funciona correctamente desactivar.
    • area_detect : Detecta movimiento en ciertas áreas predefinidas de la pantalla (1-9), y permite ejecutar secuencias de comandos en ese caso.
  • mask_file : Si NO queremos detectar movimiento en ciertas areas de la pantalla  definidas, necesitamos un archivo de máscara. Esta opción nos pide una ruta completa y nombre del archivo de mascara, de extension .pgm (en formato Binario).

La configuración de las opciones de máscara es algo compleja. Para más info ver enlace.

  • lightswitch : Opción interesante para que Motion no detecte los cambios rápidos en la intensidad de la luz como si hubiera habido movimiento. Hemos de introducir el porcentaje (0-100) de las áreas que activarán lightswitch.

 

 

Opciones de ejecución de scripts

 

  • on_event_start : Permite definir un programa o script de python (hemos de introducir la ruta completa) que se ejecutará al iniciar un evento. Un evento comienza después de que se haya detectado movimiento, y pasen los segundos configurados en la opción “gap”.
  • on_event_end : Permite definir un programa o script de python (hemos de introducir la ruta completa) que se ejecutará al finalizar un evento. Un evento finaliza cuando expira el “event_gap”.
  • on_picture_save : Permite definir un programa o script de python (hemos de introducir la ruta completa) que se ejecutará al guardarse una imagen.
  • on_movie_start : Permite definir un programa o script de python (hemos de introducir la ruta completa) que se ejecutará al empezar a crearse un video.
  • on_movie_end : Permite definir un programa o script de python (hemos de introducir la ruta completa) que se ejecutará al terminar la grabación de un video.
  • on_camera_lost : Permite definir un programa o script de python (hemos de introducir la ruta completa) que se ejecutará cuando se pierda la señal de una camara.
  • on_motion_detected : Permite definir un programa o script de python (hemos de introducir la ruta completa) que se ejecutará al detectar movimiento.
     

     

    Opciones de salida – Info General

     

    • pre_capture : Define el número de imagenes (guardadas en buffer) que se mostrarán previas al momento en que se detecte movimiento. Valores: 0-5. Se recomienda que sea un número bajo, ya que sino las peliculas no serán fluidas.
    • post_capture : Define el número de cuadros que se mostrarán después de que se detecte movimiento. Valores: 0-5.
    • target_dir: directorio donde se guardarán las imagenes o videos tomados.

     

    Módulo de Cámara para Raspberry Pi 5MP vision nocturna
    Módulo de Cámara para Raspberry Pi 5MP vision nocturna

     

    Opciones de imagenes

     

    • output_pictures : Permite especificar si se activa el guardado de imagenes o no. Valores válidos: on (activado), first (se guarda solamente la primera imagen de cada evento de detección de movimiento), best (requiere más procesamiento de CPU. Motion elige la imagen con más pixeles cambiados durante un evento), off (apagado).
    • quality : especifica el porcentaje de compresión (y de calidad) de las imagenes.
    • picture_type : permite especificar el tipo de archivo de imagen que queremos guardar. Se recomienda el formato .jpg.
    • picture_filename : Permite especificar el nombre del archivo de imagen guardado. Por defecto: %v-%Y%m%d%H%M%S-%q
    • snapshot_interval : permite especificar la cantidad de segundos entre cada instantánea tomada.

     

     

    Opciones de peliculas (videos)

     
     

    • max_movie_time : Tiempo máximo (en segundos) de grabación de videos. Por defecto es 0 (infinito).

     

    • ffmpeg_output_movies : Permite especificar si utilizar las librerias ffmpeg para codificar videos. (Por defecto “off”)

     

    Opciones relacionadas de FFMPEG (salida de Video)

    # Use ffmpeg to encode movies in realtime (default: off)
    ffmpeg_output_movies on

    Para obtener grabaciones de video en formato .avi :

    ffmpeg_video_codec mpeg4

     

    RASPBERRY PI PI NOIR V2.1
    RASPBERRY PI PI NOIR V2.1

     

    Opciones de Streaming y Control Web

     

    • stream_port : puerto elegido para la transmisión en streaming de la camara. El puerto ha de ser único para cada cámara.

     

    • stream_quality : Calidad de los marcos del streaming transferidos a través de la conexión de la webcam. Ha de mantenerse un valor bajo para restringir el ancho de banda utilizado.

     

    • stream_motion : Cuando se configura en “on” , se utiliza 1 imagen por segundo si no se detecta movimiento. Y se utilizará el valor configurado el “stream_maxrate” cuando se detecte movimiento.

     

    • stream_maxrate : Cantidad de cuadros por segundo del streaming. Valores: 1-100. El valor 100 sería practicamente ilimitado. Afecta al ancho de banda, así que hemos de tenerlo en cuenta.

     

     

    Acabamos de ver un resumen de los parámetros más importantes y útiles del sistema Motion de detección de movimiento con Raspberry Pi.
    Ahora solo tenemos que testear las opciones hasta que encontremos la mejor y más óptima configuración para nuestra Raspberry.