Tabla de contenido:
- Paso 1: diagrama de bloques del sistema
- Paso 2: Componentes para este proyecto
- Paso 3: Paso 2: Diagrama de circuito y conexiones
- Paso 4: Instale Os en DragonBoards
- Paso 5: Interfaces de conectividad
- Paso 6: Instalación de módulos de software esenciales
- Paso 7: demostración
- Paso 8: Gracias
Video: Visión inteligente de IoT: 8 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Este es un proyecto centrado en el contexto de la ciudad inteligente. En este asunto, hay tres problemas principales que estamos resolviendo:
1 - ahorro energético en alumbrado público; 2 - mejorar la seguridad de la ciudad; 3 - mejorar el flujo de tráfico.
1 - Al usar luces LED en las calles, los ahorros ya son de hasta un 50%, y con la incorporación de Telegestión, podemos tener un 30% más de ahorro.
2 - Con el uso de cámaras inteligentes, podemos controlar las luces para atenuar donde la gente fluye está ausente y hacer que el tramo de la calle sea más brillante donde la gente camina. No solo ahorrará energía sino que aumentará la sensación de ser observado, por lo tanto, intimidará a las personas con malas intenciones. Además, las alarmas visuales (por ejemplo, el parpadeo de las lámparas), podrían utilizarse en caso de comportamiento sospechoso.
3 - La cámara inteligente observará el tráfico, procesará localmente sus condiciones y controlará las señales de luz para gestionar mejor el tráfico. De esta forma, se podrían evitar los atascos, los automóviles no tendrían que esperar mucho tiempo a las señales rojas cuando no hay flujo en el cruce, etc. Con respecto a los problemas tecnológicos, también estamos resolviendo problemas comunes en IoT, como la conectividad robusta a escala de la ciudad y la integración de cámaras para la red IoT, mediante el uso de procesamiento de borde para transmitir solo información relevante.
Vea nuestra publicación sobre Embarcados y GitHub
También en YouTube
Nuestro equipo:
Milton Felipe Souza Santos
Gustavo Retuci Pinheiro
Eduardo Caldas Cardoso
Jonathas Baker
(Información de contacto en la parte inferior)
Paso 1: diagrama de bloques del sistema
Esta es una descripción general de la arquitectura de la solución.
El sistema está compuesto por un Camera-Gateway que usa RFmesh en la interfaz FAN, WiFi en LAN y también CAT-M para conectividad WAN. También contiene fotocélulas inteligentes, cámaras inteligentes y señales de luz.
Todos los dispositivos de las redes, principalmente la cámara inteligente, están enviando datos a través de 6lowpan a la puerta de enlace inteligente, para que pueda tomar las decisiones sobre el alumbrado público y el control de las señales luminosas.
La puerta de enlace también está conectada a nuestro servidor a través de VPN. De esta manera, tenemos acceso al FAN y LAN, bot para verificar el estado o controlar los dispositivos.
Paso 2: Componentes para este proyecto
Cámara inteligente
- DragonBoard410C / DragonBoard820C
- Cámara USB
- NIC de OneRF
Puerta de enlace de la cámara
- DragonBoard410C / DragonBoard820C
- Cámara USB
- NIC de OneRF
- Módem Cat-M / 3G
Señal de luz inteligente
Paso 3: Paso 2: Diagrama de circuito y conexiones
Cámara inteligente
- Cámara en puerto USB
- OneRF NIC en el puerto UART
Puerta de enlace de la cámara
- Cámara en puerto USB
- OneRF NIC en el puerto UART
- Módem 3G / Cat-M en puerto USB
(Todo conectado por el Mezzanine de IoT)
Luz de calle inteligente
- Farola convencional
- Tablero de relés (3 canales)
- NIC de OneRF
Fotocélula inteligente
- NIC de OneRF
- Contador de potencia
Paso 4: Instale Os en DragonBoards
Instalación de Debian en Dragonboard820C (método Fastboot)
Con un sistema operativo Linux, instale los paquetes enumerados en:
En el tablero de dragón:
hacer que s4 APAGADO, APAGADO, APAGADO, APAGADO
Encienda presionando vol (-)
Si está utilizando un monitor en serie (muy recomendado), recibirá el mensaje "fastboot: procesando comandos" (monitor en serie en 115200) Conecte el micro-usb (J4) en la PC
En la PC host: Descargue (y descomprima) desde
$ sudo dispositivos fastboot
452bb893 fastboot (ejemplo)
$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img
$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img
Instalación de Debian en Dragonboard410C
Pasos en la computadora (Linux)
1 - Descarga la imagen
$ cd ~
$ mkdir Debian_SD_Card_Install_image
$ cd Debian_SD_Card_Install_image
$ wget
2 - Descomprime los archivos
$ cd ~ / Debian_SD_Card_Install_image
$ descomprimir dragonboard410c_sdcard_install_debian-233.zip
3 - Inserte la microSD en su computadora y verifique si está montada
$ df -h
/ dev / sdb1 7.4G 32K 7.4G 1% / media / 3533-3737
4 - Desmontar la microSD y grabar la imagen
$ umount / dev / sdb1
$ sudo dd if = db410c_sd_install_debian.img of = / dev / sdb bs = 4M oflag = sync status = noxfer
5 - Retire la microSD de su PC
Pasos en la computadora (Windows) Descarga - Imagen de la tarjeta SD - (Opción 1) Imagen de la tarjeta SD - Instalar y arrancar desde eMMC
www.96boards.org/documentation/consumer/dr…
Descomprima la imagen de instalación de la tarjeta SD
Descargue e instale la herramienta Win32DiskImager
sourceforge.net/projects/win32diskimager/f…
Abra la herramienta Win32DiskImager
Inserte la tarjeta SD en la computadora
Encuentra el archivo.img extraído
Haga clic en Escribir
Pasos en el Dragonboard Asegúrese de que el DragonBoard ™ 410c esté desconectado de la alimentación
Establezca el interruptor S6 en DragonBoard ™ 410c en 0-1-0-0, el "interruptor de arranque SD" debe estar en "ON".
Conecte un HDMI
Conecta un teclado USB
Inserte la microSD
Enchufe el adaptador de corriente
Seleccione la imagen para instalar y haga clic en "Instalar"
espera a que termine la instalación
Retire el adaptador de corriente
Retire la microSD
Ponga el interruptor S6 en 0-0-0-0
¡HECHO
Paso 5: Interfaces de conectividad
Instalación de Cat-m y 3G
Aplique los siguientes comandos AT usando una máquina host:
EN # SIMDET? // comprobar la presencia de SIM # SIMDET: 2, 0 // sim no insertado
#SIMDET: 2, 1 // sim insertado
AT + CREG? // comprobar si está registrado
+ CREG: 0, 1 // (deshabilitar el código de resultado no solicitado de registro de red (predeterminado de fábrica), red doméstica registrada)
AT + COPS?
+ COPS: 0, 0,”VIVO”, 2 // (modo = elección automática, formato = alfanumérico, oper,?)
AT + CPAS // Estado de actividad del teléfono
+ CPAS: 0 // listo
AT + CSQ // comprobar la calidad del servicio
+ CSQ: 16, 3 // (rssi, tasa de error de bits)
AT + CGATT? // estado del adjunto GPRS
+ CGATT: 1 // adjunto
AT + CGDCONT = 1,”IP”,”zap.vivo.com.br”,, 0, 0 // configurar contexto
OK
AT + CGDCONT? // comprobar contexto
+ CGDCONT: 1,”IP”,”zap.vivo.com.br”,””, 0, 0
AT # SGACT = 1, 1 // Activación de contexto
#SGACT: 100.108.48.30
OK
Configurar la interfaz
Usando un entorno gráfico
Conecte el módem (oneRF_Modem_v04 - HE910)
Conexiones de red abiertas
Haga clic en + para agregar una nueva conexión
Seleccione banda ancha móvil
Seleccione el dispositivo correcto
Seleccione el pais
Seleccione el proveedor
Seleccione el plan y guarde
Retire el módem
Vuelva a conectar el módem
Usando terminalapt-get install pppconfig
pppconfig
proveedor = vivo
dinámico
CAP
vivo
vivo
115200
Tono
*99#
no (manual)
/ dev / ttyUSB0
ahorrar
cat / etc / ppp / peers / vivo
cat / etc / chatscripts / vivo
pon vivo
Si está utilizando el módulo Cat-M, simplemente use los siguientes comandos antes:
echo 1bc7 1101> / sys / bus / usb-serial / drivers / option1 / new_id
apt-get install comgt
comgt -d / dev / ttyUSB0 comgt info -d / dev / ttyUSB0
Paso 6: Instalación de módulos de software esenciales
En la computadora de desarrollo
Tenga en cuenta que algunos pasos dependen del hardware y deben ajustarse para cumplir con las especificaciones reales de su computadora. Las bibliotecas se pueden instalar con un solo comando.
sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-bin opnempi-compiler protobuf python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml
OpenCV
Este marco se utiliza para desarrollar algoritmos estadísticos basados en imágenes en la máquina de desarrollo. Dado que la mayor parte de nuestro código está escrito en Python, el método de instalación más sencillo es simplemente
pip instalar opencv-python
Sin embargo, tenga en cuenta que estas ruedas no usarán nada más que su CPU y es posible que ni siquiera usen todos sus núcleos, por lo que es posible que desee compilar desde la fuente para lograr el máximo rendimiento. Para construir el paquete en Linux, por ejemplo, descargue el archivo zip desde la página de Versiones de OpenCV y lo descomprima. Desde la carpeta descomprimida:
mkdir build && cd buildcmake.. hacer todo -j4
sudo hacer instalar
El comando -j4 indica a make que utilice cuatro subprocesos. ¡Utilice tantos como tenga su CPU!
Caffe
Para configurar el marco Caffe a partir de fuentes:
clon de git https://github.com/BVLC/caffe.git && cd caffemkdir build
cmake..
Haz todo
hacer la prueba hacer la prueba
Si todas las pruebas se ejecutan correctamente, ya está todo listo.
TensorFlow
Google no le permite compilar TensorFlow con herramientas comunes. Requiere Bazel para ello y es probable que no funcione, así que evite compilarlo y simplemente tome el módulo precompilado con:
pip instalar tensorflow
Si su computadora es un poco vieja y no tiene instrucciones AVX, obtenga el último tensorflow que no sea AVX con
pip install tensorflow == 1.5
Y tu estas listo.
SNPE: motor de procesamiento neuronal Snapdragon ™
Configurar Snappy, como nuestros amigos de Qualcomm llaman SNPE, no es difícil, pero los pasos deben seguirse de cerca. El esquema de instalación es:
clonar los repositorios de git de los marcos de redes neuronales
CaffeCaffe2
TensorFlow
ONNX
ejecute los scripts para comprobar las dependencias npe / bin / dependencies.sh
snpe / bin / check_python_depends.sh
para cada marco instalado, ejecute snpe / bin / envsetup.sh
fuente $ SNPE / bin / envsetup.sh -c $ CAFFE_GIT
fuente $ SNPE / bin / envsetup.sh -f $ CAFFE2_GIT
fuente $ SNPE / bin / envsetup.sh -t $ TENSORFLOW_GIT
fuente $ SNPE / bin / envsetup.sh -o $ ONNX_GIT
Para obtener SNPE en cada instancia de terminal que abra, agregue las cuatro líneas del paso tres al final de su archivo ~ /.bashrc.
En el tablero de destino
Pasar a arm64 desde amd64 no es una tarea fácil, ya que muchas bibliotecas aprovecharán las instrucciones x86 para mejorar su rendimiento. Afortunadamente, es posible compilar la mayoría de los recursos necesarios en el propio tablero. Las bibliotecas necesarias se pueden instalar con un solo comando.
sudo apt install build-essential git libatlas libgoogle-glog-dev libiomp-dev libleveldb-dev liblmdb-dev libopencv-dev libopenmpi-dev libsnappy-dev libprotobuf-dev libatlas libboost libgflags2 hdf5 openmpi-bin opnempi-compiler protobuf python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml
Instálelos con apt y continúe. Tenga en cuenta que este paso puede llevar algún tiempo, ya que las llamadas de apt hacen para compilar el código que no está precompilado.
OpenCV
Descargue el lanzamiento del repositorio de OpenCV, descomprímalo en algún lugar y de la carpeta descomprimida:
mkdir build && cd buildcmake..
hacer todo -j3
sudo hacer instalar
Tenga en cuenta que usamos la opción -j3. Si accede a la placa a través de ssh, tener todos los núcleos completamente cargados puede ser suficiente para interrumpir la conexión. Eso no es deseable. Al limitar el uso de subprocesos a tres, siempre tendremos al menos un subproceso libre para hacer frente a las conexiones ssh y la limpieza general del sistema.
Esto es para Dragonboard 820 e Inforce 6640 con el chip APQ8096. En el Dragonboard 410, querrá tener algo de memoria virtual libre o limitar los subprocesos de compilación a uno, ya que tiene menos RAM física disponible.
También es de destacar que enfriar el chip ayudará a aumentar el rendimiento al limitar el estrangulamiento térmico. Un disipador de calor funciona con cargas pequeñas, pero querrá un ventilador adecuado para compilar y otras cargas intensivas de la CPU.
¿Por qué no instalar OpenCV con apt o pip? Porque compilarlo en la máquina de destino hace que todas las instrucciones de procesador disponibles sean visibles para el compilador, mejorando el rendimiento de ejecución.
SNPE: motor de procesamiento neuronal Snapdragon ™
Instalamos Snappy como si estuviera en una computadora de escritorio, aunque no había un marco de red neuronal real instalado (SNPE solo necesita los repositorios de git, no los binarios reales).
Sin embargo, dado que todo lo que necesitamos son los binarios y los encabezados para el comando snpe-net-run, existe la posibilidad de que simplemente tener los siguientes archivos en una carpeta y agregar esta carpeta a la RUTA funcione:
Red neuronal binarysnpe / bin / aarch64-linux-gcc4.9 / snpe-net-run
Bibliotecas de CPU
snpe / lib / aarch64-linux-gcc4.9 / libSNPE.so
snpe / lib / aarch64-linux-gcc4.9 / libsymphony-cpu.so
/usr/lib/aarch64-linux-gnu/libatomic.so.1
Bibliotecas DSP
snpe / lib / dsp / libsnpe_dsp_skel.so
snpe / lib / aarch64-linux-gcc4.9 / libsnpe_adsp.so
Visor de resultados
snpe / models / alexnet / scripts / show_alexnet_classifications.py
El elemento en negrita, /usr/lib/aarch64-linux-gnu/libatomic.so.1, se proporciona con Linaro en esta ruta y debe copiarse en esta carpeta mínima hipotética.
Otros paquetes importantes:
sudo apt-get install net-tools sudo apt-get install gedit
sudo apt instalar nodejs
sudo apt instalar openvpn
Paso 7: demostración
¡Vea una breve demostración de Smart IoT Vision para el funcionamiento de Smart-City!
www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be
Paso 8: Gracias
Agradecemos al equipo de Qualcomm y a Embarcados por crear y apoyar el concurso.
No dude en contactarnos en:
Referencias
Guía de instalación de Dragonboard 410c para Linux y Android
github.com/96boards/documentation/wiki/Dr….
DragonBoard 410c
caffe.berkeleyvision.org/install_apt.htmlhttps://caffe.berkeleyvision.org/installation.html#… https://developer.qualcomm.com/docs/snpe/setup.ht…https://caffe.berkeleyvision.org / installation.html #… https://github.com/BVLC/caffe https://caffe.berkeleyvision.org/installation.html#… https://github.com/tensorflow/tensorflow http: / /caffe.berkeleyvision.org/installation.html#… https://www.tensorflow.org/install/ https://caffe.berkeleyvision.org/installation.html#… https://caffe.berkeleyvision.org/
Recomendado:
Luz LED de escritorio inteligente - Iluminación inteligente con Arduino - Espacio de trabajo de Neopixels: 10 pasos (con imágenes)
Luz LED de escritorio inteligente | Iluminación inteligente con Arduino | Espacio de trabajo de Neopixels: Hoy en día pasamos mucho tiempo en casa, estudiando y trabajando virtualmente, así que ¿por qué no ampliar nuestro espacio de trabajo con un sistema de iluminación personalizado e inteligente basado en Arduino y LEDs Ws2812b? Aquí te muestro cómo construir tu Smart Luz LED de escritorio que
Hackear el Hexbug Spider XL para agregar visión por computadora con un teléfono inteligente Android: 9 pasos (con imágenes)
Hackear el Hexbug Spider XL para agregar visión por computadora usando un teléfono inteligente Android: Soy un gran admirador del Hexbug & trade original; Araña. He tenido más de una docena y los pirateé a todos. Cada vez que uno de mis hijos va a un amigo y rsquo; fiesta de cumpleaños, el amigo recibe un Hexbug ™ araña como regalo. He pirateado el o
¡Laserbeak de visión nocturna! (¡O cómo hacer una linterna de juguete transformador, Throwie LED que preserva la visión nocturna!): 5 pasos
¡Visión nocturna Laserbeak! (¡O cómo hacer una linterna de juguete transformador, LED Throwie, que preserva la visión nocturna!): Instructable por un novato para el novato ¿Qué obtienes cuando combinas una linterna que preserva la visión nocturna, un lanzador LED y un transformador elegante? ¿juguete? ¡Un instructable con un nombre realmente largo! Lo llamaremos " Nightvision Laserbeak " por
Jardinería inteligente basada en IoT y agricultura inteligente con ESP32: 7 pasos
Jardinería inteligente basada en IoT y agricultura inteligente utilizando ESP32: el mundo está cambiando con el tiempo y también la agricultura. Hoy en día, la gente está integrando la electrónica en todos los campos y la agricultura no es una excepción para esto. Esta fusión de la electrónica en la agricultura está ayudando a los agricultores y a las personas que administran los jardines. En esto
Convertir su cámara en "visión nocturna militar", agregar efecto de visión nocturna o crear el modo NightVision en cualquier cámara: 3 pasos
¡Convierta su cámara en "visión nocturna militar", agregue el efecto de visión nocturna o cree el modo NightVision en cualquier cámara! * Si necesita ayuda, envíe un correo electrónico a: [email protected] Hablo inglés, francés, japonés, español y sé otros idiomas si