Talaan ng mga Nilalaman:

Smart IoT Vision: 8 Hakbang
Smart IoT Vision: 8 Hakbang

Video: Smart IoT Vision: 8 Hakbang

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

Ito ay isang proyekto na nakatuon sa konteksto ng matalinong lungsod. Sa bagay na ito, mayroong tatlong pangunahing problema na nalulutas namin:

1 - pag-save ng enerhiya sa pampublikong ilaw; 2 - mapabuti ang seguridad ng lungsod; 3 - pagbutihin ang daloy ng trapiko.

1 - Sa pamamagitan ng paggamit ng mga ilaw ng LED sa mga kalye, ang pagtipid ay hanggang sa 50%, at sa pagdaragdag ng Telemanagement, maaari tayong magkaroon ng 30% pang matitipid.

2 - Gamit ang paggamit ng mga smart camera, makokontrol natin ang mga ilaw upang lumabo kung saan ang mga tao ay dumadaloy at wala nang mas maliwanag na seksyon ng kalye kung saan naglalakad ang mga tao. Hindi lamang ito makatipid ng enerhiya ngunit madaragdagan ang pakiramdam na napapanood, sa gayon, takutin ang masasamang taong balak. Bukod dito, ang mga visual na alarma (kumikislap ng mga lampara halimbawa), ay maaaring magamit sakaling may kahina-hinala na pag-uugali.

3 - Panoorin ng matalinong camera ang trapiko, iproseso ng lokal ang mga kundisyon nito, at makokontrol ang mga ilaw na signal upang pinakamahusay na pamahalaan ang trapiko. Sa ganitong paraan, maiiwasan ang mga siksikan sa trapiko, hindi hihintayin ng mga kotse ang mahabang panahon ng mga pulang signal kapag walang daloy sa tawiran, at iba pa. Tungkol sa mga problemang pang-teknolohikal, nalulutas din namin kung ano ang mga karaniwang isyu sa IoT tulad ng matatag na pagkakakonekta sa sukat ng lungsod at pagsasama ng camera para sa IoT Network, sa pamamagitan ng paggamit ng pagpoproseso ng gilid upang maipadala lamang ang may-katuturang impormasyon.

Tingnan ang aming publication sa Embarcados at GitHub

Nasa YouTube din

Ang aming koponan:

Milton Felipe Souza Santos

Gustavo Retuci Pinheiro

Eduardo Caldas Cardoso

Jonathas Baker

(Impormasyon sa pakikipag-ugnay sa ibaba)

Hakbang 1: Diagram ng Block ng System

Diagram ng Bloke ng System
Diagram ng Bloke ng System

Ito ay isang pangkalahatang ideya ng solusyon sa arkitektura.

Ang system ay binubuo ng isang Camera-Gateway na gumagamit ng RFmesh sa interface ng FAN, WiFi sa LAN, at CAT-M din para sa pagkakakonekta ng WAN. Naglalaman din ito ng mga smart photocell, Smart Camera, at light signal.

Ang lahat ng mga aparato sa mga network, higit sa lahat ang matalinong camera, ay nagpapadala ng data sa pamamagitan ng 6lowpan sa matalinong gateway, kaya maaari itong kumuha ng mga desisyon tungkol sa kontrol ng ilaw ng ilaw at ilaw ng mga signal.

Ang gateway ay konektado din sa aming server sa pamamagitan ng VPN. Sa ganitong paraan, mayroon kaming access sa FAN at LAN, bot para sa pagsuri sa katayuan o kontrolin ang mga aparato.

Hakbang 2: Mga Bahagi para sa Project na Ito

Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito
Mga Bahagi para sa Project na Ito

Smart Cam

- DragonBoard410C / DragonBoard820C

- USB Camera

- OneRF NIC

Camera Gateway

- DragonBoard410C / DragonBoard820C

- USB Camera

- OneRF NIC

- Modem ng Cat-M / 3G

Smart Light Signal

Hakbang 3: Hakbang 2: Circuit Diagram at Mga Koneksyon

Hakbang 2: Diagram at Mga Koneksyon sa Circuit
Hakbang 2: Diagram at Mga Koneksyon sa Circuit
Hakbang 2: Diagram at Mga Koneksyon sa Circuit
Hakbang 2: Diagram at Mga Koneksyon sa Circuit
Hakbang 2: Circuit Diagram at Mga Koneksyon
Hakbang 2: Circuit Diagram at Mga Koneksyon
Hakbang 2: Circuit Diagram at Mga Koneksyon
Hakbang 2: Circuit Diagram at Mga Koneksyon

Smart Cam

- Camera sa USB port

- OneRF NIC sa UART port

Camera Gateway

- Camera sa USB port

- OneRF NIC sa UART port

- 3G / Cat-M modem sa USB port

(Lahat ng konektado ng IoT Mezzanine)

Smart Stree Light

- Maginoo na ilaw ng kalye

- Relay board (3 mga channel)

- OneRF NIC

Smart Photocell

- OneRF NIC

- Power Meter

Hakbang 4: I-install ang Os sa mga DragonBoards

Pag-install ng Debian sa Dragonboard820C (Paraan ng Fastboot)

Gamit ang isang Linux OS, i-install ang mga pakete na nakalista sa:

Sa dragonboard:

gumawa ng s4 OFF, OFF, OFF, OFF

I-on ang pagpindot sa vol (-)

Kung gumagamit ka ng isang serial monitor (lubos na inirerekomenda), makukuha mo ang mensahe na "fastboot: pagproseso ng mga utos" (serial monitor sa 115200) Ikonekta ang micro-usb (J4) sa PC

Sa host PC: Mag-download (at mag-unzip) mula sa

$ sudo mga fastboot na aparato

452bb893 fastboot (halimbawa)

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

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

Pag-install ng Debian sa Dragonboard410C

Mga hakbang sa computer (Linux)

1 - I-download ang imahe

$ cd ~

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - I-zip ang mga file

$ cd ~ / Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 - Ipasok ang microSD sa iyong computer at suriin kung naka-mount ito

$ df -h

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

4 - I-unmount ang microSD at sunugin ang imahe

$ umount / dev / sdb1

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

5 - Alisin ang microSD mula sa iyong PC

Mga hakbang sa computer (Windows) I-download - Larawan ng SD Card - (Pagpipilian 1) Larawan ng SD Card - I-install at mag-boot mula sa eMMC

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

I-unzip ang Larawan ng Pag-install ng SD Card

I-download at i-install ang tool na Win32DiskImager

sourceforge.net/projects/win32diskimager/f…

Buksan ang tool na Win32DiskImager

Ipasok ang SD card sa computer

Hanapin ang nakuha na.img file

Mag-click sa Sumulat

Mga hakbang sa DragonboardMasigurado na ang DragonBoard ™ 410c ay hindi naka-plug mula sa lakas

Itakda ang S6 switch sa DragonBoard ™ 410c sa 0-1-0-0, ang "SD Boot switch" ay dapat itakda sa "ON".

Ikonekta ang isang HDMI

Mag-plug ng isang USB keyboard

Ipasok ang microSD

Plug adapter ng kuryente

Piliin ang imaheng i-install at i-click ang "I-install"

hintaying matapos ang pag-install

Alisin ang power adapter

Alisin ang microSD

Itakda ang S6 switch sa 0-0-0-0

TAPOS NA

Hakbang 5: Mga Interface ng Pagkakonekta

Pag-install ng Cat-m at 3G

Ilapat ang mga sumusunod na utos ng AT gamit ang isang host machine:

SA # SIMDET? // check SIM presensya # SIMDET: 2, 0 // sim na hindi naipasok

#SIMDET: 2, 1 // sim na ipinasok

SA + CREG? // suriin kung ito ay nakarehistro

+ CREG: 0, 1 // (huwag paganahin ang pagpaparehistro ng network ng hindi hiniling na code ng resulta (default ng pabrika), nakarehistrong home network)

SA + COPS?

+ COPS: 0, 0,”VIVO”, 2 // (mode = awtomatikong pagpili, format = alphanumeric, oper,?)

SA + CPAS // Katayuan sa Aktibidad ng Telepono

+ CPAS: 0 // handa na

AT + CSQ // suriin ang kalidad ng serbisyo

+ CSQ: 16, 3 // (rssi, rate ng error sa bit)

SA + CGATT? // estado ng pagkakabit ng GPRS

+ CGATT: 1 // nakakabit

AT + CGDCONT = 1,”IP”,”zap.vivo.com.br”,, 0, 0 // i-configure ang konteksto

OK lang

SA + CGDCONT? // check konteksto

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

SA # SGACT = 1, 1 // Pag-activate ng Context

#SGACT: 100.108.48.30

OK lang

I-setup ang Interface

Paggamit ng grapikong kapaligiran

Ikonekta ang modem (oneRF_Modem_v04 - HE910)

Buksan ang Mga Koneksyon sa Network

Mag-click sa + upang magdagdag ng bagong koneksyon

Piliin ang Mobile Broadband

Piliin ang tamang aparato

Piliin ang Bansa

Piliin ang provider

Piliin ang plano at I-save

Alisin ang Modem

Ikonekta muli ang Modem

Paggamit ng terminalapt-get install pppconfig

pppconfig

tagabigay = vivo

dinamico

KAPIT

vivo

vivo

115200

Tono

*99#

hindi (manu-manong)

/ dev / ttyUSB0

magtipid

pusa / etc / ppp / peer / vivo

cat / etc / chatscripts / vivo

pon vivo

Kung gumagamit ka ng module na Cat-M, gamitin lamang ang mga sumusunod na utos bago:

echo 1bc7 1101> / sys / bus / usb-serial / driver / options1 / new_id

apt-get install comgt

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

Hakbang 6: Pag-install ng Mahalagang Mga Modyul ng Software

Sa pagpapaunlad ng computer

Tandaan na ang ilang mga hakbang ay nakasalalay sa hardware at dapat ayusin upang matugunan ang iyong tunay na mga pagtutukoy ng computer. Ang mga aklatan ay maaaring mai-install na may isang solong utos.

sudo apt install install-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 pyth python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml

OpenCV

Ang balangkas na ito ay ginagamit upang bumuo ng mga batay sa imahe na mga statistiko algorithm sa development machine. Dahil ang karamihan sa aming code ay nakasulat sa Python, ang pinakamadaling paraan ng pag-install ay ang makatarungan

pip install opencv-python

Gayunpaman, tandaan na ang mga gulong na ito ay hindi gagamit ng anuman bukod sa iyong CPU at maaaring hindi man lang gamitin ang lahat ng mga core nito, kaya baka gusto mong mag-ipon mula sa mapagkukunan upang makamit ang maximum na pagganap. Upang maitayo ang pakete sa Linux, halimbawa, donwload mo ang form ng zip file na pahina ng Mga Paglabas ng OpenCV at i-unzip ito. Mula sa unzipped folder:

mkdir build && cd buildcmake.. gumawa ng lahat -j4

sudo gumawa ng pag-install

Inuutos ng utos na -j4 na gumawa ng apat na mga thread. Gumamit ng maraming bilang iyong CPU!

Caffe

Upang mai-setup ang balangkas ng Caffe mula sa mga mapagkukunan:

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

cmake..

gawin mo lahat

gumawa ng test make runtest

Kung matagumpay na tumatakbo ang lahat ng mga pagsubok pagkatapos ay handa ka na.

TensorFlow

Hindi ka pinapayagan ng Google na magtala ng TensorFlow ng mga ordinaryong tool. Kinakailangan nito ang Bazel para dito at malamang na hindi ito gagana, kaya iwasan ang pag-compile nito at kunin lamang ang pre-compiled module na may:

pip install ng tensorflow

Kung ang iyong computer ay medyo luma at walang mga tagubilin sa AVX, kunin ang huling di-AVX na tenorflow

pip install ng tensorflow == 1.5

At tapos ka na.

SNPE - Engine ng Pagproseso ng Neural sa Snapdragon ™

Ang pagse-set up ng Snappy, bilang tawag sa aming mga kaibigan sa Qualcomm na SNPE, ay hindi mahirap ngunit ang mga hakbang ay dapat sundin nang malapit. Ang balangkas ng pag-install ay:

i-clone ang mga neural network frameworks 'git repositories

CaffeCaffe2

TensorFlow

ONNX

patakbuhin ang mga script upang suriin para sa dependenciessnpe / bin / dependencies.sh

snpe / bin / check_python_depends.sh

para sa bawat naka-install na balangkas patakbuhin ang snpe / bin / envsetup.sh

mapagkukunan ng $ SNPE / bin / envsetup.sh -c $ CAFFE_GIT

mapagkukunan ng $ SNPE / bin / envsetup.sh -f $ CAFFE2_GIT

mapagkukunan ng $ SNPE / bin / envsetup.sh -t $ TENSORFLOW_GIT

mapagkukunan ng $ SNPE / bin / envsetup.sh -o $ ONNX_GIT

Upang mapagkukunan ang SNPE sa bawat terminal na pagbubukas mo, idugtong ang apat na linya ng hakbang sa dulo ng iyong ~ /.bashrc file.

Sa target board

Ang paglipat sa arm64 mula sa amd64 ay hindi isang hirap na gawain, dahil maraming mga aklatan ang sasamantalahin ng mga tagubilin sa x86 upang mapalakas ang kanilang pagganap. Sa kabutihang palad, posible na ipagsama ang karamihan sa mga kinakailangang mapagkukunan sa mismong board. Ang mga kinakailangang aklatan ay maaaring mai-install na may isang solong utos.

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 pyth python-pip python-numpy python-scipy python-matplotlib python-future python-protobuf python-typing python-hypotesis python-yaml

I-install ang mga ito nang may apt at magpatuloy. Tandaan na ang hakbang na ito ay maaaring magtagal, tulad ng mga apt na tawag upang mabuo ang code na hindi pa paunang naipon.

OpenCV

I-download ang paglabas mula sa OpenCV repository, i-unzip ito sa kung saan at mula sa unzipped folder:

mkdir build && cd buildcmake..

gumawa ng lahat -j3

sudo gumawa ng pag-install

Tandaan na ginamit namin ang pagpipilian na -j3. Kung na-access mo ang board sa pamamagitan ng ssh, ang pagkakaroon ng lahat ng mga core na puno ng load ay maaaring sapat upang i-drop ang koneksyon. Hindi kanais-nais iyan. Sa pamamagitan ng paglilimita sa paggamit ng thread sa tatlo, palagi kaming magkakaroon ng hindi bababa sa isang libreng thread upang makayanan ang mga koneksyon sa ssh at pangkalahatang pag-aayos ng system.

Ito ay para sa Dragonboard 820 at Inforce 6640 na may APQ8096 chip. Sa Dragonboard 410 gugustuhin mong magkaroon ng ilang libreng virtual memory o limitahan ang pag-ipon ng mga thread sa isa, dahil mayroon itong mas kaunting pisikal na RAM na magagamit.

Tandaan din na ang paglamig ng maliit na tilad ay makakatulong na madagdagan ang pagganap sa pamamagitan ng paglilimita sa thermal throttling. Ginagawa ng isang heatsink ang bilis ng kamay sa maliliit na naglo-load ngunit gugustuhin mo ang isang tamang tagahanga para sa pag-iipon at iba pang mga CPU-intensive load.

Bakit hindi mai-install ang OpenCV gamit ang apt o pip? Sapagkat ang pag-iipon nito sa target na makina ay ginagawang nakikita ng tagabuo ng bawat magagamit na tagubilin sa processor, pinapabuti ang pagganap ng pagpapatupad.

SNPE - Snapdragon ™ Neural Processing Engine

In-install namin ang Snappy tulad ng sa isang desktop computer, kahit na walang aktwal na balangkas ng neural network na naka-install (kailangan lang ng SNPE ang mga git repos, hindi ang mga aktwal na binary).

Gayunpaman, dahil ang kailangan lang namin ay ang mga binary at header para sa snpe-net-run na utos, may posibilidad na magkaroon lamang ng mga sumusunod na file sa isang folder at idagdag ang folder na ito sa mga PATH na gumagana:

Ang neural network binarysnpe / bin / aarch64-linux-gcc4.9 / snpe-net-run

Mga silid aklatan ng 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

Mga aklatan ng DSP

snpe / lib / dsp / libsnpe_dsp_skel.so

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

Mga manonood ng mga resulta

snpe / models / alexnet / script / show_alexnet_classifications.py

Ang naka-bold na item, /usr/lib/aarch64-linux-gnu/libatomic.so.1, ay ibinigay kasama si Linaro sa landas na ito at dapat makopya sa mapangisipang minimal na folder na ito.

Iba pang mga imprtant package:

sudo apt-get install net-toolsudo apt-get install gedit

sudo apt install nodejs

sudo apt i-install ang openvpn

Hakbang 7: Pagpapakita

Makita ang isang maikling pagpapakita ng Smart IoT Vision para sa pagtatrabaho ng Smart-City !!

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

Hakbang 8: Salamat

Nagpapasalamat kami sa koponan ng Qualcomm at Embarcados sa paglikha at pagsuporta sa paligsahan.

Huwag mag-atubiling makipag-ugnay sa amin sa:

Mga Sanggunian

Gabay sa Pag-install ng Dragonboard 410c para sa Linux at 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#…

Inirerekumendang: