Table des matières:

Vision IoT intelligente : 8 étapes
Vision IoT intelligente : 8 étapes

Vidéo: Vision IoT intelligente : 8 étapes

Vidéo: Vision IoT intelligente : 8 étapes
Vidéo: IoT | Internet of Things | What is IoT ? | How IoT Works? | IoT Explained in 6 Minutes | Simplilearn 2024, Novembre
Anonim
Vision intelligente de l'IoT
Vision intelligente de l'IoT

Il s'agit d'un projet axé sur le contexte de la ville intelligente. Dans cette affaire, il y a trois problèmes majeurs que nous résolvons:

1 – économie d'énergie dans l'éclairage public; 2 – améliorer la sécurité de la ville; 3 – améliorer la fluidité du trafic.

1 – En utilisant des éclairages LED dans les rues, les économies sont déjà jusqu'à 50%, et avec l'ajout de la Télégestion, nous pouvons avoir 30% d'économies supplémentaires.

2 - Grâce à l'utilisation de caméras intelligentes, nous pouvons contrôler les lumières pour diminuer la luminosité là où le flux de personnes est absent et rendre la section de la rue plus lumineuse où les gens marchent. Cela permettra non seulement d'économiser de l'énergie, mais augmentera le sentiment d'être observé, intimidant ainsi les personnes mal intentionnées. De plus, des alarmes visuelles (clignotement des lampes par exemple), pourraient être utilisées en cas de comportement suspect.

3 – La caméra intelligente surveillera le trafic, traitera localement ses conditions, et contrôlera les signaux lumineux afin de gérer au mieux le trafic. De cette façon, les embouteillages pourraient être évités, les voitures n'auraient pas à attendre longtemps des signaux rouges lorsqu'il n'y a pas de circulation dans le passage à niveau, etc. En ce qui concerne les problèmes technologiques, nous résolvons également les problèmes courants de l'IoT, tels qu'une connectivité robuste à l'échelle de la ville et l'intégration de caméras pour le réseau IoT, en utilisant le traitement de pointe pour transmettre uniquement les informations pertinentes.

Voir notre publication sur Embarcados et GitHub

Aussi sur YouTube

Notre équipe:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Boulanger

(Coordonnées en bas)

Étape 1: Schéma fonctionnel du système

Schéma fonctionnel du système
Schéma fonctionnel du système

Ceci est un aperçu de l'architecture de la solution.

Le système est composé d'une passerelle de caméra qui utilise RFmesh sur l'interface FAN, WiFi sur LAN, et également CAT-M pour la connectivité WAN. Il contient également des cellules photoélectriques intelligentes, des caméras intelligentes et des signaux lumineux.

Tous les appareils des réseaux, principalement la caméra intelligente, envoient des données via 6lowpan à la passerelle intelligente, afin qu'elle puisse prendre les décisions concernant l'éclairage public et le contrôle des signaux lumineux.

La passerelle est également connectée à notre serveur via VPN. De cette manière, nous avons accès au FAN et au LAN, bot pour vérifier l'état ou contrôler les appareils.

Étape 2: Composants pour ce projet

Composants pour ce projet
Composants pour ce projet
Composants pour ce projet
Composants pour ce projet
Composants pour ce projet
Composants pour ce projet

Caméra intelligente

-DragonBoard410C/DragonBoard820C

- Caméra USB

- Carte réseau OneRF

Passerelle de caméra

-DragonBoard410C/DragonBoard820C

- Caméra USB

- Carte réseau OneRF

- Modem Cat-M/3G

Signal lumineux intelligent

Étape 3: Étape 2: Schéma de circuit et connexions

Étape 2: Schéma de circuit et connexions
Étape 2: Schéma de circuit et connexions
Étape 2: Schéma de circuit et connexions
Étape 2: Schéma de circuit et connexions
Étape 2: Schéma de circuit et connexions
Étape 2: Schéma de circuit et connexions
Étape 2: Schéma de circuit et connexions
Étape 2: Schéma de circuit et connexions

Caméra intelligente

- Caméra sur port USB

- Carte réseau OneRF au port UART

Passerelle de caméra

- Caméra sur port USB

- Carte réseau OneRF au port UART

- Modem 3G/Cat-M sur port USB

(Tous connectés par la mezzanine IoT)

Lumière de rue intelligente

- Lampadaire conventionnel

- Carte relais (3 canaux)

- Carte réseau OneRF

Cellule photoélectrique intelligente

- Carte réseau OneRF

- Wattmètre

Étape 4: Installer Os sur les DragonBoards

Installation de Debian sur Dragonboard820C (méthode Fastboot)

À l'aide d'un système d'exploitation Linux, installez les packages répertoriés dans:

Sur le dragonboard:

faire s4 OFF, OFF, OFF, OFF

Allumez en appuyant sur vol (-)

Si vous utilisez un moniteur série (fortement recommandé), vous obtiendrez le message « fastboot: traitement des commandes » (moniteur série à 115200) Connectez le micro-usb (J4) sur le PC

Sur le PC hôte: téléchargez (et décompressez) à partir de

$ appareils de démarrage rapide sudo

452bb893 fastboot (exemple)

$ sudo fastboot flash boot boot-linaro-buster-dragonboard-820c-BUILD.img

$ sudo fastboot flash rootfs linaro-buster-alip-dragonboard-820c-BUILD.img

Installer Debian sur Dragonboard410C

Étapes sur l'ordinateur (Linux)

1 – Télécharger l'image

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 – Décompressez les fichiers

$ cd ~/Debian_SD_Card_Install_image

$ décompressez dragonboard410c_sdcard_install_debian-233.zip

3 – Insérez la microSD sur votre ordinateur et vérifiez si elle est montée

$ df -h

/dev/sdb1 7.4G 32K 7.4G 1% /media/3533-3737

4 – Démontez la microSD et gravez l'image

$ umount /dev/sdb1

$ sudo dd if=db410c_sd_install_debian.img of=/dev/sdb bs=4M oflag=sync status=noxfer

5 – Retirez la microSD de votre PC

Étapes sur l'ordinateur (Windows)Télécharger - Image de la carte SD - (Option 1) Image de la carte SD - Installer et démarrer à partir d'eMMC

www.96boards.org/documentation/consumer/dr…

Décompressez l'image d'installation de la carte SD

Téléchargez et installez l'outil Win32DiskImager

sourceforge.net/projects/win32diskimager/f…

Ouvrir l'outil Win32DiskImager

Insérez la carte SD dans l'ordinateur

Trouvez le fichier.img extrait

Cliquez sur Écrire

Étapes sur la DragonboardAssurez-vous que la DragonBoard™ 410c est débranchée de l'alimentation

Réglez le commutateur S6 de la DragonBoard™ 410c sur 0-1-0-0, le « commutateur de démarrage SD » doit être réglé sur « ON ».

Connectez un HDMI

Branchez un clavier USB

Insérez la microSD

Branchez l'adaptateur secteur

Sélectionnez l'image à installer et cliquez sur "Installer"

attendre la fin de l'installation

Retirer l'adaptateur secteur

Retirez la microSD

Réglez le commutateur S6 sur 0-0-0-0

TERMINÉ

Étape 5: Interfaces de connectivité

Installation de Cat-m et 3G

Appliquez les commandes AT suivantes à l'aide d'une machine hôte:

AU#SIMDET ? // vérifier la présence SIM#SIMDET: 2, 0 // sim non inséré

#SIMDET: 2, 1 // sim inséré

AT+CREG ? //vérifie s'il est enregistré

+CREG: 0, 1 //(désactiver l'enregistrement du réseau code de résultat non sollicité (par défaut), réseau domestique enregistré)

AT+COPS ?

+COPS: 0, 0,”VIVO”, 2 // (mode = choix automatique, format = alphanumérique, oper, ?)

AT+CPAS //Statut d'activité du téléphone

+CPAS: 0 //prêt

AT+CSQ // contrôle qualité de service

+CSQ: 16, 3 //(rssi, taux d'erreur sur les bits)

AT+CGATT ? //état de la connexion GPRS

+CGATT: 1 //ci-joint

AT+CGDCONT=1,”IP”,”zap.vivo.com.br”,, 0, 0 // configurer le contexte

d'accord

AT+CGDCONT ? // vérifier le contexte

+CGDCONT: 1,”IP”,”zap.vivo.com.br”,””, 0, 0

AT#SGACT=1, 1 //Activation contextuelle

#SGACT: 100.108.4.30

d'accord

Configurer l'interface

Utilisation de l'environnement graphique

Connectez le modem (oneRF_Modem_v04 – HE910)

Ouvrir les connexions réseau

Cliquez sur + pour ajouter une nouvelle connexion

Sélectionnez le haut débit mobile

Sélectionnez le bon appareil

Sélectionnez le pays

Sélectionnez le fournisseur

Sélectionnez le forfait et économisez

Retirer le modem

Reconnecter le modem

Utilisation de terminalapt-get install pppconfig

pppconfig

fournisseur = vivo

dinamique

TYPE

vive

vive

115200

Ton

*99#

non (manuel)

/dev/ttyUSB0

enregistrer

chat /etc/ppp/peers/vivo

chat /etc/chatscripts/vivo

pon vivo

Si vous utilisez le module Cat-M, utilisez simplement les commandes suivantes avant:

echo 1bc7 1101 > /sys/bus/usb-serial/drivers/option1/new_id

apt-get install comgt

comgt -d /dev/ttyUSB0 informations de comgt -d /dev/ttyUSB0

Étape 6: Installation des modules logiciels essentiels

Sur l'ordinateur de développement

Notez que certaines étapes dépendent du matériel et doivent être ajustées pour répondre aux spécifications réelles de votre ordinateur. Les bibliothèques peuvent être installées avec une seule commande.

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 empithon-comp-bin opdoc pro python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typage python-hypotesis python-yaml

OpenCV

Ce framework est utilisé pour développer des algorithmes statistiques basés sur l'image sur la machine de développement. Étant donné que la plupart de notre code est écrit en Python, la méthode d'installation la plus simple consiste simplement à

pip installer opencv-python

Notez, cependant, que ces roues n'utiliseront rien d'autre que votre processeur et peuvent même ne pas utiliser tous ses cœurs, vous pouvez donc vouloir compiler à partir de la source pour obtenir des performances maximales. Pour construire le package sous Linux, par exemple, vous téléchargez le fichier zip depuis la page OpenCV Releases et décompressez-le. Depuis le dossier décompressé:

mkdir build && cd buildcmake.. make all -j4

sudo faire installer

La commande -j4 demande à make d'utiliser quatre threads. Utilisez-en autant que votre CPU en a !

Café

Pour configurer le framework Caffe à partir des sources:

git clone https://github.com/BVLC/caffe.git && cd caffemkdir build

cmake..

fait tout

faire un test faire un test

Si tous les tests s'exécutent avec succès, vous êtes prêt.

TensorFlow

Google ne vous permet pas de compiler TensorFlow avec des outils ordinaires. Il nécessite Bazel pour cela et il y a de fortes chances que cela ne fonctionne pas, alors évitez de le compiler et récupérez simplement le module pré-compilé avec:

pip installer tensorflow

Si votre ordinateur est un peu vieux et n'a pas d'instructions AVX, obtenez le dernier tensorflow non-AVX avec

pip install tensorflow==1.5

Et tu as fini.

SNPE – Moteur de traitement neuronal Snapdragon™

La configuration de Snappy, comme nos amis Qualcomm appellent SNPE, n'est pas difficile, mais les étapes doivent être suivies de près. Le schéma d'installation est:

cloner les référentiels git des frameworks de réseaux neuronaux

CaffeCaffe2

TensorFlow

ONNX

exécutez les scripts pour vérifier les dépendancessnpe/bin/dependencies.sh

snpe/bin/check_python_depends.sh

pour chaque framework installé, exécutez snpe/bin/envsetup.sh

source $SNPE/bin/envsetup.sh -c $CAFFE_GIT

source $SNPE/bin/envsetup.sh -f $CAFFE2_GIT

source $SNPE/bin/envsetup.sh -t $TENSORFLOW_GIT

source $SNPE/bin/envsetup.sh -o $ONNX_GIT

Pour sourcer SNPE dans chaque instance de terminal que vous ouvrez, ajoutez les quatre lignes de l'étape trois à la fin de votre fichier ~/.bashrc.

Sur le plateau cible

Le passage à arm64 à partir d'amd64 n'est pas une tâche sans effort, car de nombreuses bibliothèques tireront parti des instructions x86 pour améliorer leurs performances. Heureusement, il est possible de compiler la plupart des ressources nécessaires sur le tableau lui-même. Les bibliothèques nécessaires peuvent être installées avec une seule commande.

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 empithon-comp-bin opdoc pro python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typage python-hypotesis python-yaml

Installez-les avec apt et continuez. Notez que cette étape peut prendre un certain temps, car les appels apt sont effectués pour créer le code qui n'est pas pré-compilé.

OpenCV

Téléchargez la version depuis le référentiel OpenCV, décompressez-la quelque part et à partir du dossier décompressé:

mkdir build && cd buildcmake..

faire tout -j3

sudo faire installer

Notez que nous avons utilisé l'option -j3. Si vous accédez à la carte via ssh, le fait que tous les cœurs soient complètement chargés peut suffire à interrompre la connexion. Ce n'est pas souhaitable. En limitant l'utilisation des threads à trois, nous aurons toujours au moins un thread libre pour gérer les connexions ssh et la maintenance générale du système.

C'est pour les Dragonboard 820 et Inforce 6640 avec la puce APQ8096. Sur le Dragonboard 410, vous voudrez avoir de la mémoire virtuelle libre ou limiter les threads de compilation à un, car il a moins de RAM physique disponible.

Il est également à noter que le refroidissement de la puce contribuera à augmenter les performances en limitant la limitation thermique. Un dissipateur thermique fait l'affaire à de petites charges, mais vous aurez besoin d'un ventilateur approprié pour la compilation et d'autres charges gourmandes en CPU.

Pourquoi ne pas installer OpenCV avec apt ou pip ? Parce que sa compilation dans la machine cible rend chaque instruction de processeur disponible visible au compilateur, améliorant ainsi les performances d'exécution.

SNPE – Moteur de traitement neuronal Snapdragon™

Nous avons installé Snappy comme sur un ordinateur de bureau, même s'il n'y avait pas de véritable infrastructure de réseau neuronal installée (SNPE n'a besoin que des dépôts git, pas des binaires réels).

Cependant, étant donné que tout ce dont nous avons besoin sont les fichiers binaires et les en-têtes de la commande snpe-net-run, il est possible que le simple fait d'avoir les fichiers suivants sur un dossier et d'ajouter ce dossier au PATH fonctionne:

Réseau de neurones binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

bibliothèques 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

Bibliothèques DSP

snpe/lib/dsp/libsnpe_dsp_skel.so

snpe/lib/aarch64-linux-gcc4.9/libsnpe_adsp.so

Visionneuse de résultats

snpe/models/alexnet/scripts/show_alexnet_classifications.py

L'élément en gras, /usr/lib/aarch64-linux-gnu/libatomic.so.1, est fourni avec Linaro sur ce chemin et doit être copié dans ce dossier minimal hypothétique.

Autres packages importants:

sudo apt-get install net-toolssudo apt-get install gedit

sudo apt installer nodejs

sudo apt installer openvpn

Étape 7: Démonstration

Voir une brève démonstration du fonctionnement de Smart IoT Vision for Smart-City !!

www.youtube.com/watch?v=qlk0APDGqcE&feature=youtu.be

Étape 8: Merci

Nous remercions l'équipe Qualcomm et Embarcados pour la création et le soutien du concours.

N'hésitez pas à nous contacter sur:

Les références

Guide d'installation de Dragonboard 410c pour Linux et 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/

Conseillé: