Table des matières:
- Étape 1: Schéma fonctionnel du système
- Étape 2: Composants pour ce projet
- Étape 3: Étape 2: Schéma de circuit et connexions
- Étape 4: Installer Os sur les DragonBoards
- Étape 5: Interfaces de connectivité
- Étape 6: Installation des modules logiciels essentiels
- Étape 7: Démonstration
- Étape 8: Merci
Vidéo: Vision IoT intelligente : 8 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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
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
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
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é:
Bec laser à vision nocturne ! (OU Comment faire une lampe de poche LED Throwie, Transformer Toy Mashup préservant la vision nocturne !): 5 étapes
Bec laser à vision nocturne ! (OU comment faire une lampe de poche à vision nocturne, à LED, à transformateur et à mashup !): Un instructable par un noob pour le noob. jouet? Un instructable avec un nom vraiment long ! Nous l'appellerons "Nightvision Laserbeak" pour
Capteur de vision Micro:bit MU - Installé sur une voiture intelligente : 5 étapes
Micro: bit MU Vision Sensor - Installed on Smart Car : il s'agit d'un guide sur la façon d'installer le capteur de vision MU sur la Smart Car que nous construisons dans cette instructable. Alors que ce guide vous montre comment installer un capteur de vision MU, vous pouvez également le suivre pour installer tous les autres types de capteurs. J'avais un support de caméra à 2 axes
Utilisation de la matrice de points de l'horloge intelligente IoT Wemos ESP8266 - Matrice ESP : 12 étapes (avec images)
Matrice de points d'horloge intelligente IoT Utilisez Wemos ESP8266 - Matrice ESP: Créez votre propre horloge intelligente IoT qui peut: Afficher une horloge avec une belle icône d'animation Afficher Rappel-1 à Rappel-5 Afficher le calendrier Afficher les heures de prière musulmanes Afficher les informations météorologiques Afficher les informations Afficher les informations Afficher les conseils Taux Bitcoin Affichage
Poubelle intelligente basée sur l'IoT : 8 étapes
Poubelle intelligente basée sur l'IoT : dans ce didacticiel, nous allons créer un système de surveillance de la poubelle intelligente basé sur l'IoT Nous allons surveiller si la poubelle est pleine ou non et si elle est pleine, informer le propriétaire via une notification push sur son téléphone. Configuration logicielle requise : Blynk
Transformer votre appareil photo en "vision nocturne militaire", ajouter un effet de vision nocturne ou créer un mode vision nocturne sur n'importe quel appareil photo !!! : 3 étapes
Transformer votre appareil photo en mode "vision nocturne militaire", ajouter un effet de vision nocturne ou créer un mode vision nocturne sur n'importe quel appareil photo !!! * Si vous avez besoin d'aide, veuillez envoyer un e-mail à : [email protected] Je parle anglais, français, japonais, espagnol et je connais d'autres langues si vous