Inhaltsverzeichnis:

Intelligente IoT-Vision - Gunook
Intelligente IoT-Vision - Gunook

Video: Intelligente IoT-Vision - Gunook

Video: Intelligente IoT-Vision - Gunook
Video: Künstliche Intelligenz - Büchse der Pandora? | Prof. Dr. Thomas Villmann 2024, Juli
Anonim
Intelligente IoT-Vision
Intelligente IoT-Vision

Dies ist ein Projekt, das sich auf den Kontext der Smart City konzentriert. In dieser Angelegenheit gibt es drei Hauptprobleme, die wir lösen:

1 – Energieeinsparung bei der öffentlichen Beleuchtung; 2 – Verbesserung der Stadtsicherheit; 3 – Verkehrsfluss verbessern.

1 – Durch den Einsatz von LED-Leuchten auf Straßen betragen die Einsparungen bereits bis zu 50 %, und mit dem Zusatz von Telemanagement können wir 30 % mehr Einsparungen erzielen.

2 – Mit Hilfe von intelligenten Kameras können wir das Licht an Stellen, an denen kein Personenstrom herrscht, herunterdimmen und den Straßenabschnitt dort heller machen, wo die Leute gehen. Es spart nicht nur Energie, sondern erhöht auch das Gefühl, beobachtet zu werden, und schüchtert so Menschen mit schlechten Absichten ein. Darüber hinaus können bei verdächtigem Verhalten visuelle Alarme (z. B. Blinken der Lampen) eingesetzt werden.

3 – Die Smart-Kamera beobachtet den Verkehr, verarbeitet lokal seine Bedingungen und steuert die Lichtsignale, um den Verkehr optimal zu steuern. Auf diese Weise könnten Staus vermieden werden, Autos müssten nicht lange auf rote Signale warten, wenn es an der Kreuzung keinen Fluss gibt, und so weiter. In Bezug auf technologische Probleme lösen wir auch häufige Probleme im IoT wie robuste Konnektivität im Stadtmaßstab und Kameraintegration für das IoT-Netzwerk, indem wir Edge-Processing verwenden, um nur relevante Informationen zu übertragen.

Siehe unsere Publikation auf Embarcados und GitHub

Auch auf YouTube

Unser Team:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Bäcker

(Kontaktdaten ganz unten)

Schritt 1: Systemblockdiagramm

Systemblockdiagramm
Systemblockdiagramm

Dies ist ein Überblick über die Lösungsarchitektur.

Das System besteht aus einem Kamera-Gateway, das RFmesh auf der FAN-Schnittstelle, WiFi auf LAN und auch CAT-M für die WAN-Konnektivität verwendet. Es enthält auch intelligente Fotozellen, intelligente Kameras und Lichtsignale.

Alle Geräte in den Netzwerken, hauptsächlich die Smart Camera, senden Daten über 6lowpan an das Smart Gateway, damit es die Entscheidungen über die öffentliche Beleuchtung und Lichtsignalsteuerung treffen kann.

Das Gateway ist auch über VPN mit unserem Server verbunden. Auf diese Weise haben wir Zugriff auf FAN und LAN, Bot zur Statuskontrolle oder Steuerung der Geräte.

Schritt 2: Komponenten für dieses Projekt

Komponenten für dieses Projekt
Komponenten für dieses Projekt
Komponenten für dieses Projekt
Komponenten für dieses Projekt
Komponenten für dieses Projekt
Komponenten für dieses Projekt

Intelligente Kamera

- DragonBoard410C/DragonBoard820C

- USB-Kamera

- OneRF-NIC

Kamera-Gateway

- DragonBoard410C/DragonBoard820C

- USB-Kamera

- OneRF-NIC

- Cat-M/3G-Modem

Intelligentes Lichtsignal

Schritt 3: Schritt 2: Schaltplan und Anschlüsse

Schritt 2: Schaltplan und Anschlüsse
Schritt 2: Schaltplan und Anschlüsse
Schritt 2: Schaltplan und Anschlüsse
Schritt 2: Schaltplan und Anschlüsse
Schritt 2: Schaltplan und Anschlüsse
Schritt 2: Schaltplan und Anschlüsse
Schritt 2: Schaltplan und Anschlüsse
Schritt 2: Schaltplan und Anschlüsse

Intelligente Kamera

- Kamera am USB-Anschluss

- OneRF-NIC am UART-Port

Kamera-Gateway

- Kamera am USB-Anschluss

- OneRF-NIC am UART-Port

- 3G/Cat-M-Modem am USB-Port

(Alle durch das IoT Mezzanine verbunden)

Intelligentes Straßenlicht

- Konventionelle Straßenbeleuchtung

- Relaisplatine (3 Kanäle)

- OneRF-NIC

Intelligente Fotozelle

- OneRF-NIC

- Leistungsmesser

Schritt 4: Installieren Sie OS auf den DragonBoards

Debian auf Dragonboard820C installieren (Fastboot-Methode)

Installieren Sie unter einem Linux-Betriebssystem die Pakete, die unter https://www.96boards.org/documentation/consumer/d… aufgeführt sind.

Auf dem Drachenbrett:

mache s4 AUS, AUS, AUS, AUS

Schalten Sie das Drücken von Lautstärke ein (-)

Wenn Sie einen seriellen Monitor verwenden (sehr zu empfehlen), erhalten Sie die Meldung „fastboot: processing commands“(serial monitor at 115200) Verbinden Sie den Micro-USB (J4) mit dem PC

Auf dem Host-PC:Herunterladen (und entpacken) von

$ sudo Fastboot-Geräte

452bb893 Fastboot (Beispiel)

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

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

Debian auf Dragonboard410C installieren

Schritte auf dem Computer (Linux)

1 – Laden Sie das Bild herunter

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 – Entpacken Sie die Dateien

$ cd ~/Debian_SD_Card_Install_image

$ Dragonboard410c_sdcard_install_debian-233.zip entpacken

3 – Legen Sie die microSD in Ihren Computer ein und prüfen Sie, ob sie gemountet ist

$ df -h

/dev/sdb1 7,4G 32K 7,4G 1% /media/3533-3737

4 – Unmounten Sie die microSD und brennen Sie das Image

$ umount /dev/sdb1

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

5 – Entfernen Sie die microSD von Ihrem PC

Schritte auf dem Computer (Windows)Download – SD-Karten-Image – (Option 1) SD-Karten-Image – Installieren und booten von eMMC

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

Installationsabbild der SD-Karte entpacken

Laden Sie das Win32DiskImager-Tool herunter und installieren Sie es

sourceforge.net/projects/win32diskimager/f…

Öffnen Sie das Win32DiskImager-Tool

Legen Sie die SD-Karte in den Computer ein

Suchen Sie die extrahierte.img-Datei

Klicken Sie auf Schreiben

Schritte auf dem DragonboardStellen Sie sicher, dass das DragonBoard™ 410c vom Strom getrennt ist

Stellen Sie den S6-Schalter am DragonBoard™ 410c auf 0-1-0-0, „SD Boot switch“sollte auf „ON“gestellt werden.

Anschließen eines HDMI

Schließen Sie eine USB-Tastatur an

Legen Sie die microSD ein

Steckernetzteil

Wählen Sie das zu installierende Image aus und klicken Sie auf „Installieren“.

Warten Sie, bis die Installation abgeschlossen ist

Netzteil entfernen

Entfernen Sie die microSD

Stellen Sie den S6-Schalter auf 0-0-0-0

GETAN

Schritt 5: Konnektivitätsschnittstellen

Cat-m und 3G. installieren

Wenden Sie die folgenden AT-Befehle mit einem Hostcomputer an:

AT#SIMDET? // SIM-Präsenz prüfen#SIMDET: 2, 0 // SIM nicht eingefügt

#SIMDET: 2, 1 // Sim eingefügt

AT+CREG? //überprüfe ob es registriert ist

+CREG: 0, 1 //(Netzwerkregistrierung deaktivieren, unaufgeforderter Ergebniscode (Werkseinstellung), registriertes Heimnetzwerk)

AT+COPS?

+COPS: 0, 0,”VIVO”, 2 // (Modus = automatische Auswahl, Format = alphanumerisch, oper, ?)

AT+CPAS //Telefonaktivitätsstatus

+CPAS: 0 //bereit

AT+CSQ // Servicequalität prüfen

+CSQ: 16, 3 //(rssi, Bitfehlerrate)

AT+CGATT? //Status des GPRS-Anhangs

+CGATT: 1 //angehängt

AT+CGDCONT=1,”IP”,”zap.vivo.com.br”,, 0, 0 // Kontext konfigurieren

OK

AT+CGDCONT? // Kontext prüfen

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

AT#SGACT=1, 1 //Kontextaktivierung

#SGACT: 100.108.48.30

OK

Einrichten der Schnittstelle

Verwenden der grafischen Umgebung

Modem anschließen (oneRF_Modem_v04 – HE910)

Netzwerkverbindungen öffnen

Klicken Sie auf +, um eine neue Verbindung hinzuzufügen

Wählen Sie Mobiles Breitband

Wählen Sie das richtige Gerät aus

Wählen Sie das Land

Wählen Sie den Anbieter aus

Wählen Sie den Plan und speichern Sie

Entfernen Sie das Modem

Verbinden Sie das Modem erneut

Verwenden von terminalapt-get install pppconfig

pppconfig

Anbieter = vivo

dinamico

KERL

vivo

vivo

115200

Ton

*99#

nein (manuell)

/dev/ttyUSB0

speichern

Katze /etc/ppp/peers/vivo

Katze /etc/chatscripts/vivo

pon vivo

Wenn Sie das Cat-M-Modul verwenden, verwenden Sie zuvor einfach die folgenden Befehle:

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

apt-get install comgt

comgt -d /dev/ttyUSB0 comgt-Info -d /dev/ttyUSB0

Schritt 6: Installieren wesentlicher Softwaremodule

Auf dem Entwicklungscomputer

Beachten Sie, dass einige Schritte hardwareabhängig sind und an Ihre tatsächlichen Computerspezifikationen angepasst werden sollten. Die Bibliotheken können mit einem einzigen Befehl installiert werden.

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-doceropnempith-on python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typisierung python-hypotesis python-yaml

OpenCV

Dieses Framework wird verwendet, um bildbasierte statistische Algorithmen auf der Entwicklungsmaschine zu entwickeln. Da der größte Teil unseres Codes in Python geschrieben ist, ist die einfachste Installationsmethode einfach

pip install opencv-python

Beachten Sie jedoch, dass diese Räder außer Ihrer CPU nichts verwenden und möglicherweise nicht einmal alle ihre Kerne verwenden. Daher möchten Sie möglicherweise aus dem Quellcode kompilieren, um die maximale Leistung zu erzielen. Um das Paket beispielsweise unter Linux zu erstellen, laden Sie die ZIP-Datei von der OpenCV-Release-Seite herunter und entpacken sie. Aus dem entpackten Ordner:

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

sudo machen installieren

Der Befehl -j4 weist make an, vier Threads zu verwenden. Verwenden Sie so viele, wie Ihre CPU hat!

Kaffee

So richten Sie das Caffe-Framework aus Quellen ein:

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

cmake..

mache alles

mach test mach lauftest

Wenn alle Tests erfolgreich ausgeführt werden, sind Sie bereit.

TensorFlow

Google lässt Sie TensorFlow nicht mit gewöhnlichen Tools kompilieren. Es erfordert Bazel dafür und die Chancen stehen gut, dass es nicht funktioniert, also vermeiden Sie es, es zu kompilieren und greifen Sie einfach auf das vorkompilierte Modul mit:

pip installieren tensorflow

Wenn Ihr Computer etwas alt ist und keine AVX-Anweisungen hat, holen Sie sich den letzten Nicht-AVX-Tensorflow mit

pip installieren tensorflow==1.5

Und du bist fertig.

SNPE – Snapdragon™ Neural Processing Engine

Snappy einzurichten, wie unsere Qualcomm-Freunde SNPE nennen, ist nicht schwer, aber die Schritte sollten genau befolgt werden. Die Installationsskizze lautet:

Klonen Sie die Git-Repositorys der neuronalen Netzwerk-Frameworks

CaffeCaffe2

TensorFlow

ONNX

Führen Sie die Skripte aus, um nach Abhängigkeiten zu suchen snpe/bin/dependencies.sh

snpe/bin/check_python_depends.sh

für jedes installierte Framework snpe/bin/envsetup.sh. ausführen

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

Um SNPE in jeder geöffneten Terminalinstanz zu beziehen, fügen Sie die vier Zeilen von Schritt drei an das Ende Ihrer ~/.bashrc-Datei an.

Auf der Zieltafel

Der Wechsel von amd64 auf arm64 ist keine leichte Aufgabe, da viele Bibliotheken x86-Anweisungen nutzen, um ihre Leistung zu steigern. Glücklicherweise ist es möglich, die meisten notwendigen Ressourcen auf dem Board selbst zusammenzustellen. Die benötigten Bibliotheken können mit einem einzigen Befehl installiert werden.

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-doceropnempith-on python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typisierung python-hypotesis python-yaml

Installieren Sie sie mit apt und fahren Sie fort. Beachten Sie, dass dieser Schritt einige Zeit in Anspruch nehmen kann, da apt-Aufrufe ausführen, um den nicht vorkompilierten Code zu erstellen.

OpenCV

Laden Sie die Version aus dem OpenCV-Repository herunter, entpacken Sie sie irgendwo und aus dem entpackten Ordner:

mkdir build && cd buildcmake..

mache alles -j3

sudo machen installieren

Beachten Sie, dass wir die Option -j3 verwendet haben. Wenn Sie über ssh auf das Board zugreifen, kann es ausreichen, wenn alle Kerne voll geladen sind, um die Verbindung zu trennen. Das ist nicht wünschenswert. Indem wir die Thread-Nutzung auf drei beschränken, haben wir immer mindestens einen freien Thread, um SSH-Verbindungen und die allgemeine Systemverwaltung zu bewältigen.

Dies ist für das Dragonboard 820 und Inforce 6640 mit dem APQ8096-Chip. Auf dem Dragonboard 410 möchten Sie möglicherweise freien virtuellen Speicher haben oder die Kompilierungs-Threads auf einen beschränken, da weniger physischer RAM zur Verfügung steht.

Es ist auch zu beachten, dass die Kühlung des Chips zur Leistungssteigerung beiträgt, indem die thermische Drosselung begrenzt wird. Ein Kühlkörper reicht bei kleinen Lasten aus, aber Sie benötigen einen richtigen Lüfter zum Kompilieren und für andere CPU-intensive Lasten.

Warum nicht OpenCV mit apt oder pip installieren? Denn durch die Kompilierung auf dem Zielcomputer wird jede verfügbare Prozessoranweisung für den Compiler sichtbar, wodurch die Ausführungsleistung verbessert wird.

SNPE – Snapdragon™ Neural Processing Engine

Wir haben Snappy wie auf einem Desktop-Computer installiert, obwohl kein eigentliches neuronales Netzwerk-Framework installiert war (SNPE benötigt nur die Git-Repos, nicht die eigentlichen Binärdateien).

Da wir jedoch nur die Binärdateien und Header für den Befehl snpe-net-run benötigen, besteht die Möglichkeit, dass nur die folgenden Dateien in einem Ordner vorhanden sind und dieser Ordner zum PATH hinzugefügt wird:

Neuronales Netzwerk binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

CPU-Bibliotheken

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

DSP-Bibliotheken

snpe/lib/dsp/libsnpe_dsp_skel.so

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

Ergebnisanzeige

snpe/models/alexnet/scripts/show_alexnet_classifications.py

Das fettgedruckte Element /usr/lib/aarch64-linux-gnu/libatomic.so.1 wird mit Linaro auf diesem Pfad bereitgestellt und muss in diesen hypothetischen Minimalordner kopiert werden.

Andere wichtige Pakete:

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

sudo apt install nodejs

sudo apt install openvpn

Schritt 7: Demonstration

Sehen Sie sich eine kurze Demonstration der Smart IoT Vision für Smart-City-Arbeiten an!!

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

Schritt 8: Danke

Wir danken dem Qualcomm-Team und Embarcados für die Erstellung und Unterstützung des Wettbewerbs.

Kontaktieren Sie uns gerne unter:

Verweise

Dragonboard 410c Installationsanleitung für Linux und 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 https:// /caffe.berkeleyvision.org/installation.html#… https://www.tensorflow.org/install/ https://caffe.berkeleyvision.org/installation.html#… https://caffe.berkeleyvision.org/

Empfohlen: