Construyendo una cámara trampa usando Raspberry Pi, Python, OpenCV y TensorFlow





Creo firmemente en aprender a través de la práctica, creando algo nuevo. Y para crear algo, necesita hacer que su trabajo sea agradable.



Comenzaré mi historia sobre mi nuevo proyecto revelando las razones por las que decidí intentar crear una cámara trampa basada en la Raspberry Pi.



Vivo en Londres y mi jardín es frecuentado por la fauna local. Esto sucede tan a menudo que yo, un jardinero ávido, poco a poco comencé a enojarme. Macetas rotas, plantas excavadas en la tierra, frutas y verduras comidas ...



Vi en mi jardín zorras pequeñas (son simplemente hermosas), zorros grandes, gatos (no míos), pájaros. Y una vez incluso me visitó un gavilán.



Gavilán



¿Quién más se arrastrará por mi jardín al amparo de la noche?





Ver al animal en esta imagen no es fácil,



¿qué otras razones necesito para crear una cámara trampa basada en Raspberry Pi, Python, TensorFlow y lo que sea? Y mi cámara debería ser muy buena.



Alguien puede decir que no es necesario que usted mismo haga una cámara de este tipo, que puede comprar una ya preparada que se adaptará perfectamente a la tarea de observar animales salvajes.



Es una buena idea, pero no será ni la mitad de interesante.



Módulos de cámara para Raspberry Pi



Comencé investigando qué tipos de cámaras se pueden conectar a una computadora de placa única Raspberry Pi.



Las más populares de estas cámaras son las que se conectan directamente a la Raspberry Pi mediante el conector MIPI. La ventaja de este tipo de cámara es que los datos se transfieren muy rápidamente entre la cámara y la placa. También hay una API fácil de usar para trabajar con la cámara. 



Probé esta API y descubrí que tiene muchas funciones útiles que te permiten grabar videos y tomar fotografías mientras grabas. Esto me permite detectar movimiento y grabar videos simultáneamente usando herramientas simples y directas.



Hay tres tipos de módulos de cámara para Raspberry Pi... A continuación se muestra una versión abreviada de la tabla con las características de dichos módulos.

Módulo de cámara v1 Módulo de cámara v2 Cámara Hq
Precio neto $ 25 $ 25 $ 50
El tamaño Aproximadamente 25 × 24 × 9 mm 38 x 38 x 18,4 mm (sin óptica)
El peso 3 g 3 g
Resolución de imagen 5 M 8 M 12,3 M
Modos de video 1080p30, 720p60 y 640x480p60 / 90 1080p30, 720p60 y 640x480p60 / 90 1080p30, 720p60 y 640x480p60 / 90
Integración Linux Controlador V4L2 Controlador V4L2 Controlador V4L2
C-API OpenMAX IL y otros OpenMAX IL y otros
Sensor OmniVision OV5647 Sony IMX219 Sony IMX477
Resolución del sensor 2592 × 1944 píxeles 3280 × 2464 píxeles 4056 x 3040 píxeles
Tamaño del área de trabajo del sensor 3,76 x 2,74 mm 3,68 x 2,76 mm (4,6 mm en diagonal) 6.287 x 4.712 mm (7,9 mm en diagonal)


Esta tabla enumera los módulos de cámara oficiales, pero puede encontrar cámaras de terceros que funcionarán con Raspberry Pi. Los módulos de la cámara se utilizan para procesar datos del sensor GPU Raspberry Pi.



Dado que cuando se usa el módulo de la cámara, la propia Raspberry Pi se dedica al procesamiento de imágenes, resulta que la elección de los sensores de la cámara es muy limitada. Cada sensor tiene su propia API, por lo que admitir diferentes tipos de sensores no es una tarea fácil.



Grabación de video en condiciones de poca luz



Voy a crear una cámara trampa para observar animales salvajes. Por tanto, sus capacidades deberían ser suficientes tanto para el trabajo diurno como nocturno. Es decir, debe tener un sensor capaz de grabar video en condiciones de poca luz. Es muy deseable que reproduzca el color real de los objetos fotografiados. En condiciones de poca luz, los módulos de cámara v1 y v2 no funcionan muy bien. Para que puedan quitar algo en tales condiciones, debe usar iluminación IR y quitarles el filtro IR. El procedimiento para preparar la cámara para disparar en condiciones de poca luz depende del modelo de cámara específico. Pero aquí hay otro problema, que es que las imágenes resultantes tienen un tinte rosado. Al usar tales cámaras, necesita un mecanismoque activa el filtro IR cuando se dispara durante el día y lo elimina cuando se dispara de noche.





Imagen de una cámara Raspberry Pi tomada durante el día en condiciones de poca luz, pero



hay una nueva cámara para la Raspberry Pi, que en la tabla está designada como Cámara HQ. Sin embargo, no estoy muy seguro de sus capacidades "nocturnas". Se basa en el sensor Sony IMX477, que en condiciones de poca luz se puede esperar que obtenga una mejor imagen que la que pueden producir las generaciones anteriores de cámaras. Si este sensor puede producir la imagen en color correcta en la oscuridad, todavía lo voy a averiguar. Pero mi investigación preliminar de las cámaras con respecto a sus especificaciones sugiere que es poco probable que sea capaz de eso.



Sony Starvis es un gran sensor de cámara



Sony tiene una familia especial de sensores de cámara que se utilizan principalmente para videovigilancia. Este es Sony Starvis. Estos sensores son dispositivos muy avanzados capaces de ofrecer imágenes en color de alta calidad en condiciones de poca luz con tan solo 0,001 lux. Lux (lx) es una unidad para medir la iluminación.



Para que quede más claro, daré algunos ejemplos. La oscuridad casi completa es de 0,0001 lux. A saber: no hay luz solar, no hay luz de la luna y las estrellas, el cielo está nublado, no hay fuentes artificiales de iluminación. No conozco ningún sensor de cámara capaz de filmar en completa oscuridad.



Pero si el cielo está despejado, las estrellas dan una iluminación de 0,002 lux. Aunque todavía está muy oscuro en tales condiciones, el sensor Sony Starvis es capaz de disparar con la mitad de la luz. Para mí, es simplemente asombroso.



Aquí hay una página de Wikipedia donde se pueden encontrar más ejemplos.



Con suerte, pude hacerles entender la idea de que Sony Starvis es el sensor perfecto para una cámara trampa.



La principal desventaja de este sensor es que no hay cámaras para la Raspberry Pi en la que se utiliza. Pero si me encontrara con una cámara USB o una cámara IP con un sensor de este tipo, pensaría en algo y lo conectaría a la Raspberry Pi.



De hecho, encontré una cámara así.



No quería invertir demasiado en este proyecto, así que compré una cámara IP adecuada de Sony Starvis en Aliexpress. Esta compra me costó, si no recuerdo mal, 20 libras.



Comparar una cámara para Raspberry Pi y esta cámara es como comparar el día y la noche. Y no estoy exagerando en absoluto. Mira por ti mismo.





Cámara con sensor Sony Starvis IMX307, disparando en una habitación oscura





Cámara Raspberry Pi v2: la misma habitación, pero con un punto de vista diferente



Para la cámara trampa y para la cámara CCTV, es muy importante poder realizar grabaciones de alta calidad en condiciones de poca luz.



Algunos podrían argumentar que grabar videos en color en condiciones de poca luz no es tan importante como para poder arreglárselas con una simple cámara de infrarrojos. Pero no puedo usar la iluminación por infrarrojos porque voy a colocar la cámara en el interior y apuntar al jardín a través de la ventana. Y si dirige la fuente de infrarrojos al cristal, el cristal se comportará como un espejo y la cámara se quedará ciega.



Si hablamos de cámaras para Raspberry Pi, entonces son adecuadas para algunos proyectos simples o para aprender algo nuevo. Pero si emprende un proyecto al menos medio serio, solo necesita usar cámaras de mejor calidad.



El uso de una cámara USB (o incluso una cámara IP) abre posibilidades completamente nuevas. Además, si también tienes una cámara normal para la Raspberry Pi, puedes usarla para algunos experimentos de inteligencia artificial.



Instalación y configuración de una cámara para Raspberry Pi



Cuidemos de conectar el módulo de cámara v2 a la placa. De hecho, es muy simple.





Módulo de cámara v2



La cámara tiene un cable azul y blanco. Debe estar conectado al conector CSI de la placa. El lado azul de la cinta debe estar hacia la parte posterior del tablero.



Usé un cuerpo de cámara impreso en 3D. Encontré los archivos correspondientes en Thingiverse. Pero un caso adecuado, bastante económico, se puede encontrar, por ejemplo, en Amazon.





Carcasa de la cámara



Ahora es el momento de encender la cámara.



Después de encender la Raspberry Pi, debe abrir una ventana de terminal.





Terminal



Entonces necesitas ejecutar el siguiente comando:



$ sudo apt update


Y luego - esto:



$ sudo apt full upgrade


Esto es para asegurar que la placa esté usando la última versión de Raspbian y los parches y actualizaciones más recientes.



Después de eso, debe ejecutar el siguiente comando en la terminal:



sudo raspi-config




Trabajando con raspi-config



Aquí estamos interesados ​​en la secciónInterfacing Options>P1 Camera. Luego, debe seleccionar un comandoFinishy reiniciar la Raspberry Pi.



Tomar fotografías con raspistill



La cámara debería estar lista para usarse. Vamos a comprobarlo con raspistill. Abra el terminal nuevamente e ingrese el siguiente comando allí:



raspistill -v -o test.jpg


Esta es una foto maravillosa que tomó mi cámara.





Instantánea de la cámara para Raspberry Pi



Grabación de video con raspivid



Las fotos son buenas, pero la grabación de video es mucho mejor. Aquí vendrá en nuestra ayuda raspivid:



raspivid -o vid.h264


Este comando le permite grabar un video durante 5 segundos.



Si necesita grabar un video más largo, este comando deberá pasar un parámetro que -tindique la duración del video en milisegundos. Por ejemplo, el siguiente comando le permite grabar un video de 30 segundos de duración:



raspivid -o vid.h264 -t 30000


Configurar la transmisión



Ahora viene la parte divertida. Para ver lo que "ve" la cámara, puede utilizar el siguiente comando:



raspivid -o - -t 0 -n | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/}' :demux=h264


Crea una secuencia RTSP a la que puede conectarse desde la red local.



Salir



Ahora que descubrí las cámaras para Raspberry Pi, puedo desarrollar más el proyecto, es decir, instalar TensorFlow, Open CV y ​​Python en Raspberry Pi 4 y comenzar a escribir código. Planeo hablar de esto en mis próximos materiales. Para los interesados, mi canal de YouTube, donde pueden encontrar videos relacionados con este proyecto.



¿Ha trabajado con cámaras para Raspberry Pi?










All Articles