Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

¿Alguna vez te has preguntado cómo se puede crear un sistema de reconocimiento de matrículas de coche de forma casera? En este artículo te mostraremos cómo utilizar una Raspberry Pi y Node-RED para desarrollar tu propio sistema de reconocimiento de matrículas. ¡Sigue leyendo para descubrir cómo hacerlo!

En este proyecto aprenderás cómo crear un sistema de detección automática usando Raspberry Pi y Node-RED. Para este proyecto utilizamos un software llamado OpenALPR (Reconocimiento automático de lugar de licencia) que tiene una API que permite identificar matrículas y modelos de automóviles a partir de una imagen.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

descripción general

Este proyecto se divide en dos partes.

  1. Primero, identificamos un automóvil usando OpenALPR y Node-RED;
  2. Luego activamos un evento basado en el automóvil detectado (por ejemplo, abrimos el garaje cuando detecta que su automóvil ha llegado a casa).

La siguiente imagen muestra cómo funciona el proceso de detección:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

En este ejemplo utilizamos un sensor de movimiento PIR para detectar que el coche regresa a casa. Existen otros sensores que pueden ser más adecuados para detectar un coche, por ejemplo:

  • Sensor de efecto Hall: detecta cambios en el campo magnético cuando el coche está cerca;
  • Sensor ultrasónico: detecta la distancia a un objeto;
  • Detectores de infrarrojos activos: detecta la presencia de un objeto detectando el reflejo de la luz infrarroja.

Cuando el sensor detecta movimiento, la cámara Raspberry Pi toma una foto. Luego, el Pi envía una solicitud a OpenALPR con la foto del automóvil para ser identificada. Luego, la API OpenALPR devuelve los detalles del vehículo como: matrícula, modelo, color y la confiabilidad de los resultados.

Después de identificar un coche, realizamos algunas comprobaciones y, si encontramos un coche autorizado, activamos un evento (podría ser abrir el garaje, por ejemplo). La siguiente imagen contiene un diagrama de flujo que muestra el proceso.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Esto es lo que sucede: después de que OpenALPR identifique el automóvil, verificamos si la matrícula y el modelo del automóvil coinciden. Si coinciden, comprobamos si el coche está en la lista de vehículos autorizados. Si es así, desencadenamos un evento. Por ejemplo: abrir el garaje. Luego esperamos un tiempo determinado hasta que el coche entre en el garaje. Luego hay que añadir varias comprobaciones para comprobar si el coche ya ha entrado en el garaje. Si es así, puedes cerrar el garaje.

Requisitos:

  • Deberías estar familiarizado con Raspberry Pi; lee Introducción a Raspberry Pi.
  • Su Raspberry Pi debe tener instalado el sistema operativo Raspbian o Raspbian Lite; lea “Instalar, activar y conectar Raspbian Lite con SSH”.
  • Usamos el módulo Raspberry Pi Camera V2. Recomendamos leer: Instrucciones para el módulo Raspberry Pi Camera V2.
  • Debes tener Node-RED instalado en tu Pi y Node-RED debe estar listo para tomar fotografías con la cámara Pi.

Si estás interesado en la domótica y quieres aprender más sobre Node-RED, Raspberry Pi, ESP8266 y Arduino, te recomendamos descargar nuestro curso: “Construye un sistema domótico por $100”.

Piezas requeridas

Para este proyecto necesitará las siguientes piezas (haga clic en los enlaces a continuación para encontrar el mejor precio en Asesor de creadores):

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

nota: Por el momento no tenemos garaje automático, por lo que usamos un LED para simular la activación de eventos (sabemos que no es lo mismo, pero entiendes lo que queremos decir).

Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Conecte el módulo de cámara Raspberry Pi

Con el Pi apagado, conecte la cámara al puerto Pi CSI como se muestra en la siguiente imagen. Asegúrese de que la cámara esté conectada en la orientación correcta, con las letras azules de la banda hacia arriba (debe habilitar la cámara en su sistema operativo Raspbian).

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

También debes tener Node-RED instalado en tu Pi y node-red-contrib-camerapi instalado:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Esquema

Ensamble el circuito para probar este proyecto. Siga el siguiente diagrama esquemático:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Después de preparar su Raspberry Pi y configurar el software Node-RED, puede continuar con este proyecto.

AbiertoALPR

AbiertoALPR es una biblioteca de código abierto para el reconocimiento automático de matrículas escrita en C++ y ofrece enlaces en C#, Java, Node.js, Go y Python. Tu también tienes esos API de nube OpenALPR Se trata de un servicio web que se ejecuta en la nube y que analiza imágenes de vehículos y responde con la matrícula, modelo, color y mucho más. OpenALPR Cloud API ofrece un servicio gratuito que permite hasta 2000 detecciones gratuitas por mes.

Nota: En lugar de utilizar su API en la nube, que está limitada a solo 2000 detecciones por mes, puede instalar su software de código abierto y usar el suyo. Integración de Python Escriba scripts de Python para analizar una cantidad ilimitada de imágenes. De esta manera, no tendrá que utilizar su servicio en la nube y no estará limitado a 2000 solicitudes por mes.

Países admitidos

OpenALPR contiene datos de entrenamiento específicos para muchos tipos de matrículas. Actualmente OpenALPR admite los siguientes países:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Nota: Europa no es un país, pero suponemos que todos los países de Europa son compatibles. Si su país no aparece en la lista, aún puede lograr altas tasas de precisión utilizando datos de entrenamiento para un país con matrículas similares a la suya.

Crea una cuenta nueva

Para comenzar con la API de OpenALPR Cloud, puede crea una cuenta nueva. Después de crear su cuenta, debería tener acceso a la siguiente página:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Abre esto API de la nube para subirse a ella Llave secreta. Lo necesita para realizar solicitudes a la API.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

En mi caso la clave secreta es: sk_8081041caedd50a———

Guarde su clave secreta en un lugar seguro porque la necesitará pronto.

Probando la cámara y el servicio OpenALPR

Primero, debes identificar tu auto usando la cámara Pi y el servicio OpenALPR. Comience con el flujo de ejemplo proporcionado, que toma una foto y envía una solicitud a la API de la nube de OpeALPR para identificar su automóvil. Para importar el flujo Node-RED proporcionado, vaya a repositorio de GitHub o haga clic en la imagen a continuación para ver el archivo sin formato y copiar el código proporcionado.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

A continuación, en la ventana Node-RED, seleccione el menú en la parte superior derecha y vaya a Importar > Portapapeles.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Luego pegue el código proporcionado y haga clic ImportarLos siguientes nodos deberían aparecer en su flujo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Configurar el flujo de prueba

Después de importar el flujo, deberá realizar algunos cambios para que funcione para usted. abre eso toma una foto Nodo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Edite el nodo para que tenga la misma configuración que en la siguiente imagen:

  • Nombre del archivo: foto-automática.jpeg
  • Ruta de archivo predeterminada: NO
  • Ruta de archivo: /home/pi/Imágenes/

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Importante: A veces, el nodo anterior anula el predeterminado. Asegúrese de verificar dos veces la configuración correcta. Luego haga clic en el botón «Implementar».

Preparando su solicitud de API de nube OpenALPR

Haga doble clic en eso publicación enrollada Nodo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Luego cambia el dominio Ingrese su clave secreta y código de país en el campo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Por defecto este comando debería estar ahí:

sudo curl -X POST "https://api.openalpr.com/v2/recognize?secret_key=YOUR_SECRET_KEY&recognize_vehicle=1&country=YOUR_COUNTRY_CODE&return_image=0&topn=10" -F image=@/home/pi/Pictures/car-photo.jpeg

Agregue su clave secreta y código de país previamente recuperados:

sudo curl -X POST "https://api.openalpr.com/v2/recognize?secret_key=sk_8081041caedd50a---------&recognize_vehicle=1&country=eu&return_image=0&topn=10" -F image=@/home/pi/Pictures/car-photo.jpeg

Nota: La UE no es un país, pero si vives en un país europeo, utiliza el código de país de la UE.

Copie y pegue el comando exacto en el dominio campo del nodo cURL POST y presione el botón Insertar en su software Node-RED para que todos los cambios surtan efecto:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Probando el flujo

Después de implementar el flujo, probamos el proceso de identificación automática. Mueve tu auto a un lugar donde puedas tomar una foto con tu Raspberry Pi:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Apunte la cámara al automóvil y toque el cuadrado al lado del nodo de marca de tiempo para activar el flujo.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Esto debería tomar una foto con su cámara Pi, guárdela como /home/pi/Images/autofoto.jpeg y realice una solicitud a la API de la nube para identificar la matrícula y el modelo de su automóvil. La respuesta JSON debe estar en Depurar Ventana.

entender la respuesta

Abre esto depurar ventana, y debería ver un objeto con todos los detalles sobre la respuesta JSON. La matriz de resultados debe contener al menos un resultado (acuerdo[1]), de lo contrario, podría estar analizando una foto sin un automóvil o no podría identificar el automóvil (asegúrese de que la cámara Pi apunte al automóvil al tomar la foto).

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Haga clic en la flecha al lado de eso Resultados: matriz[1] para expandir el objeto. Debería ver un objeto de matrícula con la matrícula de su automóvil. Guarde la matrícula en el formato recuperado de la API. En mi caso es “61CP–”. Lo necesitarás más adelante para identificar tu coche:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

ampliar eso vehículo Objeto > Marca modelo > 0: Objeto y debería ver el nombre de su automóvil y cómo la API identificó el modelo de automóvil. En nuestro caso, identificó el coche como un Toyota Yaris con un 77,2% de certeza. Deberíamos guardar la cadena exacta «toyota_yaris» recuperada de la API, ya que la necesitaremos para el siguiente flujo. Guarde el modelo de su automóvil en el formato recuperado de la API.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Consejos para solucionar problemas

Si su respuesta arroja resultados no válidos, asegúrese de verificar la siguiente información:

  • El toma una foto El nodo guarda la foto en la ruta de archivo correcta: /inicio/pi/imagenes/
  • Asegúrese de que la cámara tome buenas fotos (acceda a la carpeta Imágenes de Raspberry Pi a continuación /home/pi/Images/autofoto.jpeg para ver si la foto tomada se ve bien)
  • Comprueba que el coche y la matrícula sean visibles en la foto. De lo contrario, es posible que la API no pueda identificar correctamente el automóvil.
  • Asegúrese de haber ingresado el comando correcto en el campo con su propia clave API y código de país. publicación enrollada dominio

Proceso del sistema de reconocimiento de matrículas

En esta parte agregamos detección de vehículos y activación de eventos a nuestro flujo. Cuando se detecta movimiento, la cámara Pi toma una foto con la cámara Pi y envía una solicitud a OpenALPR. Luego se activa un evento en función de la respuesta (en este caso configuramos una salida para encender un LED).

Para importar el flujo Node-RED implementado, vaya a repositorio de GitHub o haga clic en la imagen a continuación para ver el archivo sin formato y copiar el código proporcionado.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

A continuación, en la ventana Node-RED, seleccione el menú en la parte superior derecha y vaya a Importar > Portapapeles.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Luego pegue el código proporcionado y haga clic Importar. Los siguientes nodos deberían cargarse en su flujo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Configurar el flujo

Después de importar el flujo, deberá realizar algunos cambios para que funcione para usted. abre eso toma una foto Nodo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Edite el nodo para que tenga la misma configuración que en la siguiente imagen:

  • Nombre del archivo: foto-automática.jpeg
  • Ruta de archivo predeterminada: NO
  • Ruta de archivo: /home/pi/Imágenes/

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Preparando su solicitud de API de nube OpenALPR

Haga doble clic en eso publicación enrollada Nodo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Luego cambia el dominio Ingrese su clave secreta y código de país en el campo:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Por defecto este comando debería estar ahí:

sudo curl -X POST "https://api.openalpr.com/v2/recognize?secret_key=YOUR_SECRET_KEY&recognize_vehicle=1&country=YOUR_COUNTRY_CODE&return_image=0&topn=10" -F image=@/home/pi/Pictures/car-photo.jpeg

Agregue su clave secreta y código de país previamente recuperados:

sudo curl -X POST "https://api.openalpr.com/v2/recognize?secret_key=sk_8081041caedd50a---------&recognize_vehicle=1&country=eu&return_image=0&topn=10" -F image=@/home/pi/Pic

Agregue los detalles de su vehículo al flujo

Abrir el nodo de función Identificar coche para agregar la matrícula y el modelo de su automóvil.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Necesitas reemplazar eso placa Y Modelo de auto Variables con su propia matrícula y nombre de modelo (exactamente en el mismo formato que se recuperó anteriormente). En nuestro caso obtenemos:

var carPlate = "61CP--";
var carModel = "toyota_yaris";

La siguiente imagen muestra dónde debe agregar su matrícula y modelo en el nodo de función:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Nota: Si desea agregar otra matrícula, debe editar la función «Identificar automóvil». Declarar otro AutoPlate2 Y CocheModelo2:

var carPlate2 = " ";
var carModel2= " ";

Luego agregue lo siguiente después de la declaración else if:

else if(msg.payload.results[0].plate==carPlate2 && msg.payload.results[0].vehicle.make_model[0].name==carModel2){
  msg.payload=1;
  global.set("garageOpen","1");
}

Esto debería permitirle verificar dos autos (puede agregar más).

Una vez que haya ingresado los datos de su vehículo, presione Terminado y haz clic en eso Insertar Botón:

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

demostración

Ahora, cuando llega el coche, el sensor PIR detecta movimiento, la cámara Pi toma una foto y el coche se identifica mediante la API OpenALPR.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Su Node-RED debería reconocer su matrícula y modelo de automóvil. Luego se activa un evento: GPIO 17 se enciende durante unos segundos y luego se apaga nuevamente. Simula el comando de apertura/cierre de la puerta del garaje.

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

Envolver

En este proyecto le mostramos cómo identificar matrículas utilizando OpenALPR. También le mostraremos cómo activar un evento basado en un número de placa específico. Esto le permite abrir automáticamente su garaje cuando llegue con su coche. Puede personalizar este proyecto para que funcione para usted y utilizarlo en su propio sistema de automatización del hogar.

En el ejemplo que se muestra, utilizamos un sensor de movimiento PIR para detectar el automóvil entrante. Hay otros sensores que podrían ser más adecuados para este caso, como sensores ultrasónicos, sensores de infrarrojos activos o sensores de efecto Hall.

Cuando activamos el evento esperamos 10 segundos a que se cierre el garaje. Debes agregar varios procesos de verificación (que no incluimos en el flujo) para verificar si el auto entró al garaje o no.

Esperamos que este proyecto te haya resultado interesante. Si te gusta este proyecto, también te puede gustar:

  • Libro “20 proyectos fáciles de Raspberry Pi”
  • Comenzando con el panel Node-RED en Raspberry Pi
  • Construya un sistema de automatización del hogar con Node-RED, RPi y ESP8266

Gracias por leer.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded

Sistema de reconocimiento de matrículas de coche con Raspberry Pi y Node-RED

En este proyecto aprenderás a construir un sistema de reconocimiento de coches utilizando una Raspberry Pi y Node-RED. Para este proyecto utilizaremos un software llamado OpenALPR (Reconocimiento Automático de Matrículas) que tiene una API que puedes utilizar para identificar matrículas de coches y modelos de coche basados en una imagen.

Visión general

Este proyecto se divide en dos partes:

  1. Identificar un coche usando OpenALPR y Node-RED.
  2. Desencadenar un evento basado en el coche detectado (por ejemplo, abrir el garaje cuando detecta que tu coche llegó a casa).

En este ejemplo, utilizamos un sensor de movimiento PIR para detectar que el coche llega a casa. Hay otros sensores que pueden ser más adecuados para detectar un coche, por ejemplo:

  • Sensor de efecto Hall: detecta cambios en el campo magnético cuando el coche está cerca.
  • Sensor ultrasónico: detecta la distancia a un objeto.
  • Sensores infrarrojos activos: detecta la presencia de un objeto mediante la reflexión de luz infrarroja.

Después de identificar un coche, realizaremos algunas verificaciones y, si encontramos un coche autorizado, desencadenaremos un evento (que puede ser abrir el garaje, por ejemplo).

Requisitos previos

Debes estar familiarizado con la Raspberry Pi y tener el sistema operativo Raspbian o Raspbian Lite instalado en tu Raspberry Pi. También necesitarás la Cámara Raspberry Pi V2 Module y Node-RED instalado en tu Pi y configurado para tomar fotos con la Cámara Pi.

Si te gusta la automatización del hogar y quieres aprender más sobre Node-RED, Raspberry Pi, ESP8266 y Arduino, te recomendamos descargar nuestro curso: Construye un Sistema de Automatización del Hogar por $100.

Partes requeridas

Para este proyecto necesitarás las siguientes partes:

Nota: en este momento, no tenemos un garaje automático, así que usaremos un LED para simular el desencadenamiento del evento (sabemos que no es lo mismo, pero te haces una idea).

Conectar el Módulo de Cámara Raspberry Pi

Con la Pi apagada, conecta la cámara al puerto CSI de la Pi como se muestra en la siguiente figura. Asegúrate de que la cámara esté conectada en la orientación correcta con las letras azules de la cinta mirando hacia arriba (necesitas habilitar la cámara en tu sistema operativo Raspbian).

OpenALPR

OpenALPR es una biblioteca de Reconocimiento Automático de Matrículas de código abierto escrita en C++ con enlaces en C#, Java, Node.js, Go y Python. También tienen la API de Cloud OpenALPR que es un servicio web que analiza imágenes de vehículos y responde con la matrícula, modelo, color y mucho más. La API de OpenALPR Cloud tiene un servicio gratuito que permite hasta 2000 reconocimientos gratuitos al mes.

Para comenzar con OpenALPR Cloud API, puedes crear una cuenta gratuita. Después de completar la creación de tu cuenta, deberías tener acceso a la siguiente página:

Abre la pestaña de Cloud API para acceder a tu clave secreta. La necesitas para hacer solicitudes a la API.

En mi caso, la clave secreta es: sk_8081041caedd50a———-

Guarda tu clave secreta en un lugar seguro, porque la necesitarás en un momento.

Conclusion

En este proyecto te hemos mostrado cómo identificar matrículas de coches utilizando OpenALPR. También te mostramos cómo puedes desencadenar un evento basado en una matrícula de coche específica. De esta forma, puedes abrir automáticamente tu garaje cuando llegues con tu coche. Puedes modificar este proyecto para que funcione para ti y utilizarlo en tu propio sistema de automatización del hogar.

En el ejemplo que hemos mostrado, utilizamos un sensor de movimiento PIR para detectar la llegada del coche. Hay otros sensores que pueden ser mejores para este caso, como: sensor ultrasónico, sensor infrarrojo activo o sensor de efecto Hall, por ejemplo.

Cuando desencadenamos el evento, esperamos 10 segundos hasta «cerrar el garaje». Necesitas añadir varios procesos de verificación (que no incluimos en el flujo) para comprobar si el coche ha entrado en el garaje o no.

Esperamos que hayas encontrado este proyecto interesante. Si te ha gustado este proyecto, también te pueden interesar:

  • Libro de 20 Proyectos Fáciles de Raspberry Pi
  • Cómo Empezar con el Panel de Control de Node-RED en Raspberry Pi
  • Construir un Sistema de Automatización del Hogar con Node-RED, RPi y ESP8266

Gracias por leer.

Deja un comentario