Innehållsförteckning:

Smart IoT Vision: 8 steg
Smart IoT Vision: 8 steg

Video: Smart IoT Vision: 8 steg

Video: Smart IoT Vision: 8 steg
Video: Камера-ЛАМПА со слежением и определением человека. 2024, Juli
Anonim
Smart IoT Vision
Smart IoT Vision

Detta är ett projekt med fokus på smart city -sammanhanget. I den här frågan är det tre stora problem vi löser:

1 - energibesparing i offentlig belysning; 2 - förbättra stadens säkerhet; 3 - förbättra trafikflödet.

1 - Genom att använda LED -lampor på gator är besparingarna redan upp till 50%, och med tillägget av Telemanagement kan vi spara 30% mer.

2 - Med hjälp av smarta kameror kan vi styra lamporna för att dimma ner där människorna flödar är frånvarande och göra gatudelen ljusare där människor går. Det kommer inte bara att spara energi utan öka känslan av att bli övervakad, och därmed skrämma dåligt avsiktliga människor. Vidare kan visuella larm (blinkande lampor till exempel) användas vid misstänkt beteende.

3 - Den smarta kameran kommer att titta på trafiken, bearbeta lokalt dess förhållanden och styra ljussignalerna för att bäst hantera trafiken. På så sätt kunde trafikstockningar undvikas, bilar skulle inte behöva vänta länge på röda signaler när det inte finns något flöde i korsningen och så vidare. När det gäller tekniska problem löser vi också vanliga problem i IoT, till exempel robust anslutning i stadsskalan och kameraintegration för IoT Network, genom att använda kantbehandling för att överföra endast relevant information.

Se vår publikation om Embarcados och GitHub

Även på YouTube

Vårt lag:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Kontaktinformation längst ner)

Steg 1: Systemblockdiagram

Systemblock Diagram
Systemblock Diagram

Detta är en översikt över lösningsarkitekturen.

Systemet består av en Camera-Gateway som använder RFmesh på FAN-gränssnittet, WiFi på LAN och även CAT-M för WAN-anslutning. Den innehåller också smarta fotoceller, smarta kameror och ljussignaler.

Alla enheter i nätverken, främst den smarta kameran, skickar data via 6lowpan till den smarta gatewayen, så att den kan ta beslut om offentlig belysning och ljussignalstyrning.

Gatewayen är också ansluten till vår server via VPN. På detta sätt har vi tillgång till FAN och LAN, bot för att kontrollera status eller styra enheterna.

Steg 2: Komponenter för detta projekt

Komponenter för detta projekt
Komponenter för detta projekt
Komponenter för detta projekt
Komponenter för detta projekt
Komponenter för detta projekt
Komponenter för detta projekt

Smart kamera

- DragonBoard410C/DragonBoard820C

- USB -kamera

- OneRF NIC

Camera Gateway

- DragonBoard410C/DragonBoard820C

- USB -kamera

- OneRF NIC

- Cat-M/3G-modem

Smart ljussignal

Steg 3: Steg 2: Kretsschema och anslutningar

Steg 2: Kretsschema och anslutningar
Steg 2: Kretsschema och anslutningar
Steg 2: Kretsschema och anslutningar
Steg 2: Kretsschema och anslutningar
Steg 2: Kretsschema och anslutningar
Steg 2: Kretsschema och anslutningar
Steg 2: Kretsschema och anslutningar
Steg 2: Kretsschema och anslutningar

Smart kamera

- Kamera på USB -port

- OneRF NIC vid UART -port

Camera Gateway

- Kamera på USB -port

- OneRF NIC vid UART -port

- 3G/Cat-M-modem vid USB-port

(Allt anslutet med IoT Mezzanine)

Smart Stree Light

- Konventionell gatubelysning

- Reläkort (3 kanaler)

- OneRF NIC

Smart fotocell

- OneRF NIC

- Effektmätare

Steg 4: Installera Os på DragonBoards

Installera Debian på Dragonboard820C (Fastboot -metod)

Installera paketen som anges i: https://www.96boards.org/documentation/consumer/d… med ett Linux -operativsystem

På dragonboard:

gör s4 AV, AV, AV, AV

Slå på tryckning vol (-)

Om du använder en seriell bildskärm (rekommenderas starkt) får du meddelandet”fastboot: bearbetningskommandon” (seriell bildskärm på 115200) Anslut mikro-usb (J4) till datorn

På värddatorn: Ladda ner (och packa upp) från

$ sudo fastboot -enheter

452bb893 fastboot (exempel)

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

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

Installera Debian på Dragonboard410C

Steg på datorn (Linux)

1 - Ladda ner bilden

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - Packa upp filerna

$ cd ~/Debian_SD_Card_Install_image

$ packa upp dragonboard410c_sdcard_install_debian-233.zip

3 - Sätt i microSD på din dator och kontrollera om den är monterad

$ df -h

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

4 - Avmontera microSD och bränn bilden

$ umount /dev /sdb1

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

5 - Ta bort microSD från din dator

Steg på datorn (Windows) Ladda ner - SD -kortbild - (Alternativ 1) SD -kortbild - Installera och starta från eMMC

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

Packa upp SD -kortets installationsbild

Ladda ner och installera Win32DiskImager -verktyget

sourceforge.net/projects/win32diskimager/f…

Öppna Win32DiskImager -verktyget

Sätt i SD -kortet i datorn

Hitta den extraherade.img -filen

Klicka på Skriv

Steg på Dragonboard Se till att DragonBoard ™ 410c är urkopplad från strömmen

Ställ S6-omkopplaren på DragonBoard ™ 410c på 0-1-0-0, “SD Boot switch” bör vara inställd på “ON”.

Anslut en HDMI

Anslut ett USB -tangentbord

Sätt i microSD

Anslut nätadaptern

Välj bilden som ska installeras och klicka på "Installera"

vänta på att installationen är klar

Ta bort nätadaptern

Ta bort microSD

Ställ S6-omkopplaren på 0-0-0-0

GJORT

Steg 5: Anslutningsgränssnitt

Installera Cat-m och 3G

Tillämpa följande AT -kommandon med en värdmaskin:

PÅ#SIMDET? // kontrollera SIM -närvaro#SIMDET: 2, 0 // sim inte infogad

#SIMDET: 2, 1 // sim infogad

AT+CREG? // kontrollera om det är registrerat

+CREG: 0, 1 // (inaktivera nätverksregistrering oönskad resultatkod (fabriksinställning), registrerat hemnätverk)

AT+COPS?

+COPS: 0, 0,”VIVO”, 2 // (mode = automatiskt val, format = alfanumeriskt, oper,?)

AT+CPAS // Telefonaktivitetsstatus

+CPAS: 0 // klar

AT+CSQ // kontrollera kvaliteten på tjänsten

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

AT+CGATT? // tillstånd för GPRS -bilaga

+CGATT: 1 // bifogad

AT+CGDCONT = 1,”IP”,”zap.vivo.com.br”,, 0, 0 // konfigurera sammanhang

OK

AT+CGDCONT? // kolla sammanhang

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

AT#SGACT = 1, 1 // Context Activation

#SGACT: 100.108.48.30

OK

Installera gränssnittet

Använda grafisk miljö

Anslut modemet (oneRF_Modem_v04 - HE910)

Öppna nätverksanslutningar

Klicka på + för att lägga till ny anslutning

Välj Mobilt bredband

Välj rätt enhet

Välj land

Välj leverantör

Välj planen och spara

Ta bort modemet

Anslut modemet igen

Med terminalapt-get install pppconfig

pppconfig

leverantör = vivo

dinamico

KILLE

vivo

vivo

115200

Tona

*99#

nej (manuell)

/dev/ttyUSB0

spara

cat/etc/ppp/peers/vivo

cat/etc/chatscripts/vivo

pon vivo

Om du använder Cat-M-modulen, använd bara följande kommandon innan:

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

apt-get install comgt

comgt -d /dev /ttyUSB0 comgt info -d /dev /ttyUSB0

Steg 6: Installera viktiga programvarumoduler

På utvecklingsdatorn

Observera att vissa steg är maskinvaruberoende och bör justeras för att uppfylla dina faktiska datorspecifikationer. Biblioteken kan installeras med ett enda kommando.

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-doc protobuf-compiler python python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typ python-hypotesis python-yaml

OpenCV

Detta ramverk används för att utveckla bildbaserade statistiska algoritmer på utvecklingsmaskinen. Eftersom det mesta av vår kod är skrivet i Python är den enklaste installationsmetoden att bara

pip installera opencv-python

Observera dock att dessa hjul inte kommer att använda någonting förutom din CPU och kanske inte ens använder alla dess kärnor, så du kanske vill kompilera från källan för att uppnå maximal prestanda. För att bygga paketet i Linux, till exempel, laddar du ner zip -filen från sidan OpenCV Releases och packar upp den. Från den uppackade mappen:

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

sudo gör installationen

Kommandot -j4 instruerar att använda fyra trådar. Använd så många som din CPU har!

Caffe

Så här konfigurerar du Caffe -ramverket från källor:

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

cmake..

göra allt

gör test gör runtest

Om alla tester körs framgångsrikt är du klar.

TensorFlow

Google låter dig inte kompilera TensorFlow med vanliga verktyg. Det kräver Bazel för det och chansen är stor att det inte fungerar, så undvik att kompilera det och ta bara den förkompilerade modulen med:

pip installera tensorflöde

Om din dator är lite gammal och inte har AVX-instruktioner, skaffa det sista icke-AVX tensorflödet med

pip installera tensorflow == 1.5

Och du är klar.

SNPE - Snapdragon ™ Neural Processing Engine

Att ställa upp Snappy, som våra Qualcomm -vänner kallar SNPE, är inte svårt men stegen bör följas noggrant. Installationsplanen är:

klona de neurala nätverksramarnas git -arkiv

CaffeCaffe2

TensorFlow

ONNX

kör skripten för att leta efter dependenciessnpe/bin/dependencies.sh

snpe/bin/check_python_depends.sh

för varje installerat ramverk kör snpe/bin/envsetup.sh

källa $ SNPE/bin/envsetup.sh -c $ CAFFE_GIT

källa $ SNPE/bin/envsetup.sh -f $ CAFFE2_GIT

källa $ SNPE/bin/envsetup.sh -t $ TENSORFLOW_GIT

källa $ SNPE/bin/envsetup.sh -o $ ONNX_GIT

För att källa till SNPE i varje terminalinstans du öppnar, lägg till steg tre fyra rader i slutet av din ~/.bashrc -fil.

På målbrädan

Att flytta till arm64 från amd64 är ingen enkel uppgift, eftersom många bibliotek kommer att dra nytta av x86 -instruktioner för att öka deras prestanda. Lyckligtvis är det möjligt att sammanställa de flesta nödvändiga resurserna på själva styrelsen. De bibliotek som behövs kan installeras med ett enda kommando.

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-doc protobuf-compiler python python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typ python-hypotesis python-yaml

Installera dem med apt och gå vidare. Observera att detta steg kan ta lite tid, eftersom lämpliga samtal gör för att bygga koden som inte är förkompilerad.

OpenCV

Ladda ner versionen från OpenCV -förvaret, packa upp den någonstans och från den uppackade mappen:

mkdir build && cd buildcmake..

gör alla -j3

sudo gör installationen

Observera att vi använde alternativet -j3. Om du kommer åt kortet via ssh kan det vara tillräckligt att ha alla kärnor fullt laddade för att tappa anslutningen. Det är inte önskvärt. Genom att begränsa trådanvändningen till tre kommer vi alltid att ha minst en ledig tråd för att hantera ssh -anslutningar och allmän systemhushållning.

Detta är för Dragonboard 820 och Inforce 6640 med APQ8096 -chipet. På Dragonboard 410 vill du ha lite ledigt virtuellt minne eller begränsa kompileringstrådarna till en, eftersom det har mindre fysiskt RAM -minne tillgängligt.

Det bör också noteras att kylning av chipet kommer att bidra till att öka prestanda genom att begränsa termisk strypning. En kylfläns gör susen vid små laster men du kommer att vilja ha en ordentlig fläkt för kompilering och andra CPU-intensiva laster.

Varför inte installera OpenCV med apt eller pip? Eftersom kompilering av den i målmaskinen gör varje tillgänglig processorinstruktion synlig för kompilatorn, vilket förbättrar körningsprestanda.

SNPE - Snapdragon ™ Neural Processing Engine

Vi installerade Snappy precis som på en stationär dator, även om det inte fanns något egentligt neuralt nätverksramverk (SNPE behöver bara git repos, inte de faktiska binärfilerna).

Eftersom allt vi behöver är binärfiler och rubriker för kommandot snpe-net-run, finns det en möjlighet att bara ha följande filer i en mapp och lägga till den här mappen till PATH fungerar:

Neuralt nätverk binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

CPU -bibliotek

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 -bibliotek

snpe/lib/dsp/libsnpe_dsp_skel.so

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

Resultatvisare

snpe/models/alexnet/scripts/show_alexnet_classifications.py

Den fetstil, /usr/lib/aarch64-linux-gnu/libatomic.so.1, tillhandahålls med Linaro på denna sökväg och måste kopieras till denna hypotetiska minimalmapp.

Andra viktiga paket:

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

sudo apt installera nodejs

sudo apt installera openvpn

Steg 7: Demonstration

Se en kort demonstration av Smart IoT Vision för Smart-City-arbete !!

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

Steg 8: Tack

Vi tackar Qualcomm -teamet och Embarcados för att de skapade och stöttade tävlingen.

Kontakta oss gärna på:

Referenser

Dragonboard 410c installationsguide för Linux och 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/ https://caffe.berkeleyvision.org/installation.html#…

Rekommenderad: