Creación de demos técnica y documentación asociada, para la detección/clasificación de materiales, utilizando un sensor radar a 60GHz
TFG realizado en la Universidad de Burgos del desarrollo de una aplicación para el uso de un Radar de 60 GHz de la marca Acconeer.
En el presente proyecto se ha documentado, implementado y demostrado el uso de un radar de 60 GHz fabricado por Acconeer, para el reconocimiento de diferentes materiales u objetos. Mediante el uso de métodos de aprendizaje, se obtendrán diferentes características de tres tipos de materiales, que permitirán clasificarlos de forma automática.
Este proyecto se centra en el desarrollo de una aplicación de escritorio para el uso de un radar capaz de comparar tres tipos de materiales (cartón, cristal y plástico). Para ello, se han comparado varios modelos clasificadores entrenados a partir de una serie de lecturas, obtenidas de un total de 30 objetos mediante un radar de 60 GHz.
La aplicación generada para el proyecto ha sido llamada RadarWave, debe su nombre a las ondas generadas por los radares. Mediante esta aplicación podemos realizar distintas lecturas de objetos para identificar el material que los componen. Se puede realizar nuevas lecturas desde el radar, guardar las lecturas y clasificar lecturas guardadas anteriormente en nuestro equipo.
RadarWave
Espacio o cubículo empleado para la lectura de objetos. Las dimensiones del cubículo son de 30 x 22 x 25 cm (ancho, largo y alto), con un orificio en la parte superior, en el medio, del tamaño del sensor. El sensor fue colocado en la posición del orificio y sujetado con cinta adhesiva. Esta caja de madera se utiliza poniendo la abertura en la parte lateral, mirando al operario que hace uso del radar.
Prototipo empleado para realizar las lecturas de los distinto materiales
Los creadores de Acconner han elaborado un vídeo (EVK 2) con las instrucciones del montaje del sensor. En él se detallan los diferentes componentes y el montaje de hardware a la Raspberry Pi 4.
Hardware
- Radar A111 de Acconeer
- Raspberry Pi 4
- Placa XR112
- Cable flexible para XR112
Componentes en conexión
Modelo | Tasa de acierto (%) |
---|---|
Random Forest | 86.33 |
k-NN | 87.67 |
SVM | 84.67 |
auto-sklearn | 88 |
TabPFN | 90 |
Se ha decidido optar por k-NN para generar el modelo que utilizará la interfaz desarrollada. Esta decisión se debe a la falta de compatibilidad de auto-sklearn y TabPFN (basado en auto-sklearn) con el sistema operativo Windows. El desarrollo creado se utilizar tanto en Windows como en Linux.
Matriz de confusión obtenida con el clasificador k-NN para 1 vecino:
Matriz de confusión
Evolución del clasificador en el rango de 1 a 26 vecinos:
Matriz de confusión
Para la instalación en Windows consultar el documento de anexos, apartado E - Documentación de instalación.
El sistema operativo que utilizamos es Ubuntu, una distribución Linux, por lo que Python está integrado por defecto y no hace falta su instalación. Se recomienda tener actualizado Python a la última versión.
Antes de instalar las librerías necesarias instalamos pip, es un sistema de gestión de paquetes que nos ayuda a instalar las librerías, y setuptools, facilita el empaquetado de proyectos de Python.
$ sudo apt install python3-pip
$ pip3 install setuptools-rust
Una vez terminada la instalación procedemos a descargar y descomprimir el fichero RadarWave_v1.0.zip.
A continuación se debe instalar las librerías que usa la interfaz desarrollada. Indicar que para ejecutar el siguiente comando nos debemos situar en la dirección o PATH donde se encuentra el archivo requirements.txt, lo encontramos dentro del fichero que acabamos de descomprimir.
El comando sería el siguiente:
$ pip3 install -r requirements.txt
Si existiera algún problema al instalar la librería de Tkinter (tk) se deben lanzar los siguientes comandos:
$ sudo apt-get install python3-tk
$ sudo apt-get install python3-pil python3-pil.imagetk
Finalmente se debe instalar la librería de Acconeer, para ello descargamos del repositorio la carpeta acconer-python-exploration. Una vez descargada abrimos el terminal dentro de la carpeta y ejecutamos la siguiente orden.
$ python3 setup.py install
Si queremos ejecutar RadarWave en Ubuntu deber ser lanzando el siguiente comando en la misma ruta del archivo RadarWave.py.
$ python3 RadarWave.py
El uso de la aplicación es muy sencillo, tenemos cuatro botones en la parte superior, de izquierda a derecha son:
- Abrir archivo de lectura
- Iniciar lectura por radar
- Clasificar la lectura
- Guardar datos de lectura.
Interfaz
Si pulsamos en el botón 1 se abre el explorador de archivos para seleccionar una lectura a clasificar.
Abrimos el fichero y ya tenemos los datos dentro de la aplicación, para clasificarlos pulsamos en el botón 3. Si lo que queremos el guardarlos pulsamos en el botón 4.
Para realizar una lectura por radar necesitamos iniciar la Raspberry junto con el radar 20 segundos antes de lanzar la lectura, una vez realizada la lectura pulsamos en el botón 2. Tras esto se iluminan los botones 3 y 4. Para clasificar el material leído pulsamos en el botón 3. Si lo que queremos es guardar la lectura pulsamos en el botón 4.
- Martín Encabo Contreras
- José Francisco Díez Pastor
- Pedro Latorre Carmona
Primera versión: Enero 2023 (v1.0)