Სარჩევი:

სმარტ IoT ხედვა: 8 ნაბიჯი
სმარტ IoT ხედვა: 8 ნაბიჯი

ვიდეო: სმარტ IoT ხედვა: 8 ნაბიჯი

ვიდეო: სმარტ IoT ხედვა: 8 ნაბიჯი
ვიდეო: ვიდეო 8 - პროექტის სამოქმედო გეგმის შედგენა 2024, ივლისი
Anonim
Smart IoT Vision
Smart IoT Vision

ეს არის პროექტი, რომელიც ორიენტირებულია ჭკვიანი ქალაქის კონტექსტზე. ამ საკითხში არის სამი ძირითადი პრობლემა, რომელსაც ჩვენ ვწყვეტთ:

1 - ენერგიის დაზოგვა საზოგადოებრივ განათებაში; 2 - ქალაქის უსაფრთხოების გაუმჯობესება; 3 - გააუმჯობესოს მოძრაობის ნაკადი.

1 - ქუჩებში LED ნათურების გამოყენებით, დანაზოგი უკვე 50% -მდეა, ხოლო ტელე მენეჯმენტის დამატებით, ჩვენ შეგვიძლია 30% -ით მეტი დანაზოგი გვქონდეს.

2 - ჭკვიანი კამერების გამოყენებით, ჩვენ შეგვიძლია გავაკონტროლოთ შუქის ჩაქრობა, სადაც ხალხი არ არის და ქუჩის მონაკვეთი უფრო ნათელი გახდეს იქ, სადაც ხალხი დადის. ეს არამარტო დაზოგავს ენერგიას, არამედ გაზრდის ყურების შეგრძნებას, რითაც დააშინებს ცუდი განზრახვის მქონე ადამიანებს. გარდა ამისა, ვიზუალური სიგნალიზაცია (მაგალითად, ნათურების მოციმციმე) შეიძლება გამოყენებულ იქნას საეჭვო ქცევის შემთხვევაში.

3 - ჭკვიანი კამერა თვალყურს ადევნებს ტრაფიკს, დაამუშავებს ადგილობრივად მის პირობებს და გააკონტროლებს სინათლის სიგნალებს, რათა მაქსიმალურად მართოს ტრაფიკი. ამ გზით, საცობების თავიდან აცილება შეიძლებოდა, მანქანებს დიდხანს არ მოუწევდათ ლოდინი წითელ სიგნალებზე, როდესაც გადასასვლელი არ არის და ა.შ. რაც შეეხება ტექნოლოგიურ პრობლემებს, ჩვენ ასევე ვხსნით IoT– ში გავრცელებულ საკითხებს, როგორიცაა ძლიერი კავშირი ქალაქის მასშტაბით და კამერის ინტეგრაცია IoT ქსელთან, ზღვრული დამუშავების გამოყენებით მხოლოდ შესაბამისი ინფორმაციის გადასაცემად.

იხილეთ ჩვენი პუბლიკაცია Embarcados და GitHub

ასევე იუთუბზე

Ჩვენი გუნდი:

მილტონ ფელიპე სოუზა სანტოსი

გუსტავო რეტუცი პინეირო

ედუარდო კალდას კარდოსო

ჯონათას ბეიკერი

(საკონტაქტო ინფორმაცია ბოლოში)

ნაბიჯი 1: სისტემის ბლოკირების დიაგრამა

სისტემის ბლოკირების დიაგრამა
სისტემის ბლოკირების დიაგრამა

ეს არის გადაწყვეტის არქიტექტურის მიმოხილვა.

სისტემა შედგება Camera-Gateway– სგან, რომელიც იყენებს RFmesh– ს FAN ინტერფეისზე, WiFi– ს LAN– ზე და ასევე CAT-M– ს WAN კავშირისთვის. იგი ასევე შეიცავს ჭკვიან ფოტოს უჯრედებს, სმარტ კამერებს და სინათლის სიგნალებს.

ქსელში არსებული ყველა მოწყობილობა, ძირითადად ჭკვიანი კამერა, აგზავნის მონაცემებს 6 წუთის მანძილზე ჭკვიან კარიბჭესთან, ასე რომ მას შეუძლია მიიღოს გადაწყვეტილებები საზოგადოებრივი განათებისა და სინათლის სიგნალების კონტროლთან დაკავშირებით.

კარიბჭე ასევე დაკავშირებულია ჩვენს სერვერთან VPN– ის საშუალებით. ამგვარად, ჩვენ გვაქვს წვდომა FAN და LAN, ბოტზე სტატუსის შესამოწმებლად ან მოწყობილობების გასაკონტროლებლად.

ნაბიჯი 2: ამ პროექტის კომპონენტები

ამ პროექტის კომპონენტები
ამ პროექტის კომპონენტები
ამ პროექტის კომპონენტები
ამ პროექტის კომპონენტები
ამ პროექტის კომპონენტები
ამ პროექტის კომპონენტები

ჭკვიანი კამერა

- DragonBoard410C/DragonBoard820C

- USB კამერა

- OneRF NIC

კამერის კარიბჭე

- DragonBoard410C/DragonBoard820C

- USB კამერა

- OneRF NIC

- Cat-M/3G მოდემი

ჭკვიანი სინათლის სიგნალი

ნაბიჯი 3: ნაბიჯი 2: სქემის დიაგრამა და კავშირები

ნაბიჯი 2: სქემის დიაგრამა და კავშირები
ნაბიჯი 2: სქემის დიაგრამა და კავშირები
ნაბიჯი 2: სქემის დიაგრამა და კავშირები
ნაბიჯი 2: სქემის დიაგრამა და კავშირები
ნაბიჯი 2: სქემის დიაგრამა და კავშირები
ნაბიჯი 2: სქემის დიაგრამა და კავშირები
ნაბიჯი 2: სქემის დიაგრამა და კავშირები
ნაბიჯი 2: სქემის დიაგრამა და კავშირები

ჭკვიანი კამერა

- კამერა USB პორტზე

- OneRF NIC UART პორტში

კამერის კარიბჭე

- კამერა USB პორტზე

- OneRF NIC UART პორტში

- 3G/Cat-M მოდემი USB პორტში

(ყველაფერი დაკავშირებულია IoT ანტრესოლით)

ჭკვიანი ხის შუქი

- ჩვეულებრივი ქუჩის შუქი

- სარელეო დაფა (3 არხი)

- OneRF NIC

ჭკვიანი ფოტოცელი

- OneRF NIC

- Ძალის საზომი

ნაბიჯი 4: დააინსტალირეთ OS DragonBoards– ზე

დებიანის დაყენება Dragonboard820C (Fastboot მეთოდი)

Linux OS– ის გამოყენებით დააინსტალირეთ პაკეტები ჩამოთვლილი:

დრაკონის დაფაზე:

გააკეთეთ s4 გამორთვა, გამორთვა, გამორთვა, გამორთვა

ჩართეთ vol (-) დაჭერით

თუ თქვენ იყენებთ სერიულ მონიტორს (რეკომენდირებულია), თქვენ მიიღებთ შეტყობინებას "fastboot: დამუშავების ბრძანებები" (სერიული მონიტორი 115200 ნომერზე) დააკავშირეთ მიკრო USB (J4) კომპიუტერთან

მასპინძელ კომპიუტერზე: გადმოწერეთ (და გაააქტიურეთ)

$ sudo fastboot მოწყობილობები

452bb893 fastboot (მაგალითი)

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

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

დებიანის დაყენება Dragonboard410C– ზე

ნაბიჯები კომპიუტერზე (Linux)

1 - ჩამოტვირთეთ სურათი

$ cd

$ mkdir Debian_SD_Card_Install_image

$ cd Debian_SD_Card_Install_image

$ wget

2 - გახსენით ფაილები

$ cd ~/Debian_SD_Card_Install_image

$ unzip dragonboard410c_sdcard_install_debian-233.zip

3 - ჩადეთ microSD თქვენს კომპიუტერში და შეამოწმეთ დამონტაჟებულია თუ არა

$ df -h

/dev/sdb1 7.4G 32K 7.4G 1%/მედია/3533-3737

4 - გამორთეთ microSD და ჩაწერეთ სურათი

$ umount /dev /sdb1

$ sudo dd if = db410c_sd_install_debian.img of =/dev/sdb bs = 4M oflag = სინქრონიზაციის სტატუსი = noxfer

5 - ამოიღეთ microSD კომპიუტერიდან

ნაბიჯები კომპიუტერზე (Windows) ჩამოტვირთვა - SD ბარათის სურათი - (ვარიანტი 1) SD ბარათის სურათი - დააინსტალირეთ და ჩატვირთეთ eMMC– დან

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

გახსენით SD ბარათი ინსტალაციის სურათი

ჩამოტვირთეთ და დააინსტალირეთ Win32DiskImager ინსტრუმენტი

sourceforge.net/projects/win32diskimager/f…

გახსენით Win32DiskImager ინსტრუმენტი

ჩადეთ SD ბარათი კომპიუტერში

იპოვეთ ამოღებული.img ფაილი

დააწკაპუნეთ დაწერეთ

ნაბიჯები Dragonboard– ზე დარწმუნდით, რომ DragonBoard ™ 410c გამორთულია დენიდან

დააყენეთ S6 გადამრთველი DragonBoard ™ 410c- ზე 0-1-0-0, "SD ჩატვირთვის გადამრთველი" უნდა იყოს "ON".

შეაერთეთ HDMI

შეაერთეთ USB კლავიატურა

ჩადეთ microSD

შეაერთეთ დენის ადაპტერი

აირჩიეთ ინსტალაციის სურათი და დააჭირეთ ღილაკს "ინსტალაცია"

დაელოდეთ ინსტალაციის დასრულებას

ამოიღეთ დენის ადაპტერი

ამოიღეთ microSD

დააყენეთ S6 გადამრთველი 0-0-0-0

ᲨᲔᲡᲠᲣᲚᲔᲑᲣᲚᲘᲐ

ნაბიჯი 5: დაკავშირების ინტერფეისი

Cat-m და 3G დაყენება

გამოიყენეთ შემდეგი AT ბრძანებები მასპინძელი აპარატის გამოყენებით:

#SIMDET– ზე? // შეამოწმეთ SIM ყოფნა#SIMDET: 2, 0 // SIM არ არის ჩასმული

#SIMDET: 2, 1 // SIM ჩასმულია

AT+CREG? // შეამოწმეთ რეგისტრირებულია თუ არა

+CREG: 0, 1 // (გამორთეთ ქსელის რეგისტრაციის არასასურველი შედეგის კოდი (ქარხნული ნაგულისხმევი), რეგისტრირებული სახლის ქსელი)

AT+COPS?

+COPS: 0, 0,”VIVO”, 2 // (რეჟიმი = ავტომატური არჩევანი, ფორმატი = ალფანუმერული, ოპერი,?)

AT+CPAS // ტელეფონის აქტივობის სტატუსი

+CPAS: 0 // მზად

AT+CSQ // შეამოწმეთ მომსახურების ხარისხი

+CSQ: 16, 3 // (rssi, ბიტის შეცდომის მაჩვენებელი)

AT+CGATT? // GPRS დანართის მდგომარეობა

+CGATT: 1 // ერთვის

AT+CGDCONT = 1, "IP", "zap.vivo.com.br",, 0, 0 // კონტექსტის კონფიგურაცია

კარგი

AT+CGDCONT? // კონტექსტის შემოწმება

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

AT#SGACT = 1, 1 // კონტექსტის გააქტიურება

#SACACT: 100.108.48.30

კარგი

დააყენეთ ინტერფეისი

გრაფიკული გარემოს გამოყენება

შეაერთეთ მოდემი (oneRF_Modem_v04 - HE910)

გახსენით ქსელის კავშირები

დააწკაპუნეთ + ახალი კავშირის დასამატებლად

აირჩიეთ მობილური ინტერნეტი

აირჩიეთ სწორი მოწყობილობა

აირჩიეთ ქვეყანა

აირჩიეთ პროვაიდერი

შეარჩიეთ გეგმა და შეინახეთ

ამოიღეთ მოდემი

შეაერთეთ მოდემი

Terminalapt-get install pppconfig გამოყენებით

pppconfig

მიმწოდებელი = vivo

დინამიკო

CHAP

vivo

vivo

115200

ტონი

*99#

არა (ხელით)

/dev/ttyUSB0

შენახვა

კატა/etc/ppp/თანატოლები/vivo

კატა/etc/chatscripts/vivo

პონ ვივო

თუ თქვენ იყენებთ Cat-M მოდულს, მანამდე გამოიყენეთ შემდეგი ბრძანებები:

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

apt-get install comgt

comgt -d /dev /ttyUSB0 comgt ინფორმაცია -d /dev /ttyUSB0

ნაბიჯი 6: ძირითადი პროგრამული მოდულების დაყენება

განვითარების კომპიუტერზე

გაითვალისწინეთ, რომ ზოგიერთი ნაბიჯი აპარატურაზეა დამოკიდებული და უნდა იყოს მორგებული თქვენი კომპიუტერის ფაქტობრივი მახასიათებლების დასაკმაყოფილებლად. ბიბლიოთეკები შეიძლება დამონტაჟდეს ერთი ბრძანებით.

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

OpenCV

ეს ჩარჩო გამოიყენება განვითარების აპარატზე გამოსახულებაზე დაფუძნებული სტატისტიკური ალგორითმების შესაქმნელად. ვინაიდან ჩვენი კოდის უმეტესობა დაწერილია პითონში, ინსტალაციის უმარტივესი მეთოდია უბრალოდ

pip დააინსტალირეთ opencv-python

ამასთან, გაითვალისწინეთ, რომ ეს ბორბლები არ გამოიყენებს არაფერს თქვენი CPU– ს გარდა და შეიძლება არც კი გამოიყენოს მისი ყველა ბირთვი, ასე რომ თქვენ მოგინდებათ შეადგინოთ წყაროდან მაქსიმალური შესრულების მისაღწევად. მაგალითად, Linux– ში პაკეტის შესაქმნელად, თქვენ გადმოტვირთავთ zip ფაილს OpenCV გამოშვების გვერდიდან და გახსნით მას. გახსნილი საქაღალდიდან:

mkdir build && cd buildcmake.. გააკეთე ყველაფერი -j4

sudo make install

-J4 ბრძანება ავალებს ოთხი ძაფის გამოყენებას. გამოიყენეთ იმდენი, რამდენსაც აქვს თქვენი CPU!

კოფე

Caffe ჩარჩოს დასაყენებლად წყაროებიდან:

git კლონი https://github.com/BVLC/caffe.git && cd caffemkdir build

სმეკა..

გააკეთე ყველაფერი

გააკეთე ტესტი გააკეთე runtest

თუ ყველა ტესტი წარმატებით მუშაობს, მაშინ ყველაფერი მზად არის.

TensorFlow

Google არ გაძლევთ უფლებას შეადგინოთ TensorFlow ჩვეულებრივი ინსტრუმენტებით. ის მოითხოვს ბაზელს და დიდი შანსია, რომ ის არ იმუშაოს, ასე რომ მოერიდეთ მის შედგენას და უბრალოდ აითვისეთ წინასწარ შედგენილი მოდული:

pip დააინსტალირეთ tensorflow

თუ თქვენი კომპიუტერი ცოტა ძველია და არ აქვს AVX ინსტრუქცია, მიიღეთ ბოლო არა AVX ტენზორფი

pip install tensorflow == 1.5

და თქვენ დაასრულეთ.

SNPE - Snapdragon ™ ნერვული დამუშავების ძრავა

Snappy– ის დაყენება, როგორც ჩვენი Qualcomm მეგობრები უწოდებენ SNPE– ს, არ არის რთული, მაგრამ ნაბიჯები მჭიდროდ უნდა იქნას დაცული. ინსტალაციის მონახაზი არის:

კლონირება ნერვული ქსელის ჩარჩოების git საცავებში

კოფეკაფე 2

TensorFlow

ONNX

გაუშვით სკრიპტი, რომ შეამოწმოთ დამოკიდებულება/ბინ/დამოკიდებულებები. sh

snpe/bin/check_python_depends.sh

თითოეული დაყენებული ჩარჩოსთვის გაუშვით snpe/bin/envsetup.sh

წყარო $ SNPE/bin/envsetup.sh -c $ CAFFE_GIT

წყარო $ SNPE/bin/envsetup.sh -f $ CAFFE2_GIT

წყარო $ SNPE/bin/envsetup.sh -t $ TENSORFLOW_GIT

წყარო $ SNPE/bin/envsetup.sh -o $ ONNX_GIT

SNPE- ის წყაროს მისაღებად ყველა გახსნილ ტერმინალში, მიამაგრეთ ნაბიჯი სამი ოთხი სტრიქონი თქვენი ~/.bashrc ფაილის ბოლოს.

სამიზნე დაფაზე

Am64– დან arm64– ზე გადასვლა არ არის ადვილი ამოცანა, რადგან ბევრი ბიბლიოთეკა ისარგებლებს x86 ინსტრუქციით მათი მუშაობის გასაუმჯობესებლად. საბედნიეროდ, შესაძლებელია დაფაზე შევადგინოთ საჭირო რესურსების უმეტესობა. საჭირო ბიბლიოთეკები შეიძლება დაინსტალირდეს ერთი ბრძანებით.

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

დააინსტალირეთ ისინი apt და გააგრძელეთ. გაითვალისწინეთ, რომ ამ ნაბიჯს შეიძლება გარკვეული დრო დასჭირდეს, რადგან შესაბამისი ზარები ქმნიან კოდს, რომელიც არ არის წინასწარ შედგენილი.

OpenCV

ჩამოტვირთეთ გამოშვება OpenCV საცავიდან, გახსენით იგი სადმე და გახსნილი საქაღალდიდან:

mkdir build && cd buildcmake..

გააკეთე ყველა -j3

sudo make install

გაითვალისწინეთ, რომ ჩვენ გამოვიყენეთ -j3 ვარიანტი. თუ თქვენ შედიხართ დაფაზე ssh– ის საშუალებით, ყველა ბირთვის სრულად დატვირთვა შეიძლება საკმარისი იყოს კავშირის გასაწყვეტად. ეს არ არის სასურველი. ძაფის გამოყენების სამზე შეზღუდვით, ჩვენ ყოველთვის გვექნება მინიმუმ ერთი უფასო ძაფი, რომ გავუმკლავდეთ ssh კავშირებს და ზოგადი სისტემის მოვლა -პატრონობას.

ეს არის Dragonboard 820 და Inforce 6640 APQ8096 ჩიპებით. Dragonboard 410– ზე მოგინდებათ თავისუფალი ვირტუალური მეხსიერება ან შეზღუდეთ კომპილირებული ძაფები ერთზე, ვინაიდან მას აქვს ნაკლები ფიზიკური ოპერატიული მეხსიერება.

ასევე აღსანიშნავია, რომ ჩიპის გაგრილება ხელს შეუწყობს შესრულების გაზრდას თერმული დათრგუნვის შეზღუდვით. გამაცხელებელი აკეთებს ხრიკს მცირე დატვირთვისას, მაგრამ თქვენ მოგიწევთ სათანადო ვენტილატორი შედგენისათვის და სხვა CPU ინტენსიური დატვირთვებისათვის.

რატომ არ დააინსტალირეთ OpenCV apt ან pip? რადგანაც მისი სამიზნე მანქანაში შედგენა ხდის პროცესორის ყველა არსებულ ინსტრუქციას შემდგენლისათვის, რაც აუმჯობესებს შესრულების მუშაობას.

SNPE - Snapdragon ™ ნერვული დამუშავების ძრავა

ჩვენ დავაყენეთ Snappy ისევე, როგორც ეს იყო დესკტოპის კომპიუტერზე, მიუხედავად იმისა, რომ არ იყო დაინსტალირებული ნერვული ქსელის ჩარჩო (SNPE– ს სჭირდება მხოლოდ git repos და არა რეალური ორობითი).

თუმცა, ვინაიდან ჩვენ გვჭირდება ორობითი და სათაურები snpe-net-run ბრძანებისთვის, არსებობს შესაძლებლობა, რომ საქაღალდეში იყოს მხოლოდ შემდეგი ფაილები და ამ საქაღალდის დამატება PATH– ში:

ნერვული ქსელი binarysnpe/bin/aarch64-linux-gcc4.9/snpe-net-run

პროცესორის ბიბლიოთეკები

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 ბიბლიოთეკები

snpe/lib/dsp/libsnpe_dsp_skel.so

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

შედეგების დამთვალიერებელი

snpe/models/alexnet/scripts/show_alexnet_classifications.py

თამამი პუნქტი, /usr/lib/aarch64-linux-gnu/libatomic.so.1, მოცემულია ლინაროსთან ამ გზაზე და უნდა იყოს კოპირებული ამ ჰიპოთეტურ მინიმალურ საქაღალდეში.

სხვა მნიშვნელოვანი პაკეტები:

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

sudo apt დააინსტალირეთ nodejs

sudo apt დააინსტალირეთ openvpn

ნაბიჯი 7: დემონსტრაცია

იხილეთ Smart IoT Vision– ის მოკლე დემონსტრაცია Smart City– ის მუშაობისთვის !!

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

ნაბიჯი 8: გმადლობთ

ჩვენ მადლობას ვუხდით Qualcomm გუნდს და Embarcados კონკურსის შექმნისა და მხარდაჭერისთვის.

მოგერიდებათ დაგვიკავშირდეთ:

ცნობები

Dragonboard 410c ინსტალაციის სახელმძღვანელო Linux და 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/

გირჩევთ: