Tabla de contenido:

Visión inteligente de IoT: 8 pasos
Visión inteligente de IoT: 8 pasos

Video: Visión inteligente de IoT: 8 pasos

Video: Visión inteligente de IoT: 8 pasos
Video: IoT | Internet of Things | What is IoT ? | How IoT Works? | IoT Explained in 6 Minutes | Simplilearn 2024, Mes de julio
Anonim
Visión inteligente de IoT
Visión inteligente de IoT

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

Diagrama de bloques del sistema
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

Componentes para este proyecto
Componentes para este proyecto
Componentes para este proyecto
Componentes para este proyecto
Componentes para este proyecto
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

Paso 2: diagrama de circuito y conexiones
Paso 2: diagrama de circuito y conexiones
Paso 2: diagrama de circuito y conexiones
Paso 2: diagrama de circuito y conexiones
Paso 2: diagrama de circuito y conexiones
Paso 2: diagrama de circuito y conexiones
Paso 2: diagrama de circuito y conexiones
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: