Mundarija:
- 1 -qadam: old shartlar
- 2 -qadam: CribSense dasturini o'rnatish
- 3 -qadam: Uskunani tayyorlang: kamerangizni ulang
- 4 -qadam: Uskuna tayyor: IR LED
- 5 -qadam: Uskunani tayyorlang: shassi
- 6 -qadam: Uskunani tayyorlash: montaj
- 7 -qadam: Kalibrlash
- 8 -qadam: Namoyish
- 9 -qadam: Muammolarni bartaraf etish
Video: CribSense: kontaktsiz, videoga asoslangan chaqaloq monitor: 9 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
CribSense-bu videoga asoslangan, kontaktsiz chaqaloq monitori, siz o'zingizni bankni buzmasdan qilishingiz mumkin
CribSense-bu Raspberry Pi 3 modeli B-da ishlash uchun sozlangan Video Kattalashtirishning C ++ dasturidir. Dam olish kunlari siz o'zingizning kichkintoyingiz uchun o'rnatilgan monitorni o'rnatishingiz mumkin, bu sizning chaqalog'ingiz qimirlamay qolganda signal beradi. Bonus sifatida, barcha dasturlar notijorat maqsadlarda foydalanish uchun bepul va osongina kengaytirilishi mumkin.
Manba fayllari va hujjatlarni o'z ichiga olgan to'liq omborni https://github.com/lukehsiao/CribSense saytida topish mumkin.
CribSense juda kulgili deb o'ylasak -da, bu aslida sertifikatlangan, aql bovar qilmaydigan xavfsizlik moslamasi emasligini unutmaslik kerak. Ya'ni, u ishlashi uchun to'g'ri sozlangan va yaxshi nazorat qilinadigan muhitga ega bo'lishi kerak. Masalan, agar u yaxshi sozlanmagan bo'lsa va/yoki videodagi muhit videoni kattalashtirish uchun qulay bo'lmasa, siz undan foydalana olmasligingiz mumkin. Biz buni Raspberry Pi kabi cheklangan uskunalarda ishlaydigan videoni kattalashtirish kabi hisoblash dasturlari qanchalik yaxshi bo'lishi mumkinligini ko'rish uchun qiziqarli loyiha qildik. Har qanday haqiqiy mahsulot biz qilganimizdan ko'ra ko'proq sinovlarni talab qiladi. Shunday qilib, agar siz ushbu loyihadan foydalansangiz, uni nima ekanligini tushunib oling: Pi -da video kattalashtirishni qisqacha o'rganish.
Sizga nima kerak bo'ladi:
Raspberry Pi + Kamera + Konfiguratsiya vositalari:
- Raspberry Pi 3 modeli B
- 5V 2,5A mikro USB quvvat manbai
- Raspberry Pi NoIR kamera moduli V2
- MicroSD karta (biz 16 Gb 10 -sinfli kartadan foydalanganmiz)
- Raspberry Pi kamerasi uchun Flex kabel (12 ")
- 3,5 mm kirish bilan dinamiklar
- HDMI monitor
- USB klaviatura
- USB sichqoncha
- [ixtiyoriy] Raspberry Pi Heatsink (agar siz issiqlikdan xavotirda bo'lsangiz, ulardan birini Pi ga yopishtirishingiz mumkin)
Kam yorug'lik sharoitida ishlaydigan IQ LED sxemasi:
- [3x] 1N4001 diodlari
- 1 Ohm, 1 Vt qarshilik
- 1 Vt IQ LED
- LEDni Pi ga ulash uchun 2 ta sim
- Lehimlash temir
Shassi:
- Shassini chop etish uchun 3D printerga kiring (minimal qurilish hajmi = 9,9 "L x 7,8" V x 5,9 "H). Biroq, o'zingizni o'zingiz tayyorlang.
-
Yelim (har qanday elim turi ishlaydi, lekin prototip uchun issiq elim tavsiya etiladi).
1 -qadam: old shartlar
Bizning qadam-baqadam ko'rsatmamizni ishga tushirishdan oldin, siz Raspbian-ning so'nggi versiyasini SD-kartangizga o'rnatgan bo'lishingiz va Pi-ning ishlashiga ishonch hosil qilishingiz kerak edi. Kameraga kirishdan oldin siz kamera modulini yoqishingiz kerak bo'ladi.
2 -qadam: CribSense dasturini o'rnatish
CribSense autoconf, libtool, OpenCV va libcanberra hamda umumiy dasturiy vositalarga bog'liq.
- autoconf va libtool makefiles -ni avtomatik sozlash va CribSense uchun skriptlarni ko'p platformalarda (Linux, OSX va Raspberry Pi kabi) yaratish uchun ishlatiladi.
- OpenCV - bu tasvirni qayta ishlash uchun ishlatiladigan kuchli kompyuter ko'rish to'plami va videoni kattalashtirish va harakatni aniqlash kodining asosi. U juda yaxshi qo'llab -quvvatlanadi, ishlatish uchun qulay va yaxshi ishlashga ega.
- libkanberra - voqea tovushlarini ijro etish uchun oddiy kutubxona. CribSense signal signalini ijro etish uchun ishlatiladi.
To'liq ma'lumot olish uchun ularning shaxsiy sahifalariga tashrif buyuring.
Pi -ga terminal ochib ishga tushirish orqali ularni o'rnating:
sudo apt-get install git-build autoconf libtool libopencv-dev libcanberra-dev
Keyin bcm2835-v4l2 ni "/etc/modules-load.d/modules.conf" ga qo'shib, kamera drayverini avtomatik yuklashga o'rnatishingiz kerak. Sizning modules.conf faylingiz shunday bo'lishi kerak:
# /etc /modules: yuklash vaqtida yuklanadigan yadro modullari.
# # Fayl yadro modullarining nomlarini o'z ichiga oladi, ular yuklash vaqtida har bir satrda bitta yuklanishi kerak. "#" Bilan boshlangan satrlar e'tiborga olinmaydi. i2c-dev bcm2835-v4l2
Fayl tahrirlangandan so'ng, siz Pi -ni qayta ishga tushirishingiz kerak. Bu haydovchi CribSense tomonidan NoIR kamerasidan kadrlarni to'g'ridan -to'g'ri tortib olish uchun ishlatiladi.
Keyin, siz ishga tushirish orqali omborni klonlashingiz mumkin:
git klon
Keyin, omborga o'ting va ishga tushirish orqali dasturiy ta'minotni yarating
CD CribSense
./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug, sudo install sudo systemctl daemon-reload-ni o'rnatadi.
Tabriklaymiz, siz barcha kerakli dasturlarni o'rnatdingiz!
Konfiguratsiya
CribSense oddiy INI konfiguratsiya fayli orqali sozlanishi mumkin. "Make install" ishga tushirilgandan so'ng, konfiguratsiya fayli /etc/cribsense/config.ini manzilida joylashgan. Siz bu parametrlarni ishga tushirish orqali ko'rishingiz va o'zgartirishingiz mumkin
sudo nano /etc/cribsense/config.ini
Har bir parametr haqida qisqacha tushuntirish standart konfiguratsiyada berilgan, lekin batafsil ma'lumot https://lukehsiao.github.io/CribSense/setup/config/ saytida mavjud. Shuningdek, biz qo'llanmaning oxirida kalibrlash va konfiguratsiyani muhokama qilamiz.
CribSense -ni ishga tushirish
CribSense ishga tushganda systemd xizmatidan foydalanish uchun mo'ljallangan. Siz Raspberry Pi -ga klaviatura va sichqoncha bilan ulanganingizda, konfiguratsiya parametrlari sizning karyolangiz uchun ishlashiga ishonch hosil qilishingiz kerak. Agar siz uni ko'chirsangiz, bu parametrlarni qayta sozlashingiz kerak bo'lishi mumkin.
Parametrlarni sozlayotganda, ishga tushirish orqali buyruq satridan xohlaganingizcha cribsense -ni ishga tushirishingiz mumkin
cribsense --config /etc/cribsense/config.ini
Sizni qoniqtirgandan so'ng, ishga tushirish orqali avtomatik ishga tushirishni yoqishingiz mumkin
sudo systemctl cribsense -ni yoqadi
Yugurish orqali cribsense avtomatik ravishda ishlashini to'xtatishingiz mumkin
sudo systemctl cribsense -ni o'chirib qo'ying
Dasturiy ta'minot haqida umumiy ma'lumot
CribSense dasturi bu loyihaning yuragi va ruhidir. Biz MIT -dan videoni kattalashtirishning ajoyib demolarini ko'rdik va shunga o'xshash algoritmni Raspberry Pi -da ishlatishni xohladik. Bu Pi-da real vaqtda ishlash uchun C ++ formatidagi videoni kattalashtirish bo'yicha tbl3rd ishidan 10 barobar ko'proq tezlikni talab qildi. Kerakli optimallashtirishlar bizning dasturiy ta'minotni ishlab chiqishga yordam berdi.
Yuqori darajada, CribSense dasturiy ta'minot mashinasi orqali bir necha marta aylanadi. Birinchidan, u har 640x480 o'lchamli, kulrang o'lchamdagi video kadrni keshni yaxshiroq joylashishi uchun 3 gorizontal qismga (640x160) ajratadi. Keyin u har bir tasmani alohida ipda kattalashtiradi va kadrda ko'rinadigan harakatni kuzatadi. Bir necha soniya davomida harakatni kuzatgandan so'ng, u asosiy harakat maydonini aniqlaydi va unga ramkani kesadi. Bu algoritm ishlashi kerak bo'lgan piksellarning umumiy sonini kamaytiradi. Keyin, CribSense kesilgan oqimdagi harakat miqdorini kuzatadi va agar konfiguratsiya qilinadigan vaqt davomida hech qanday harakat sezilmasa, signal beradi. Vaqti-vaqti bilan, CribSense yangi ko'rinishda, agar bola ko'chib ketgan bo'lsa, to'liq kadrni kuzatish uchun o'z nuqtai nazarini ochadi.
Videoni kattalashtirish chaqaloqning nafas olishi kabi nozik harakatlarning signal va shovqin nisbatlarini kuchaytirish uchun ishlatiladi. Bu katta harakatlar uchun kerak emas edi, lekin juda nozik harakatlarga yordam berishi mumkin. E'tibor bering, bizning dasturimiz MIT hujjatlarida tasvirlangan algoritmga asoslanadi va ularning kodlari kabi yaxshi ishlamaydi.
Ko'p ishlov berish, moslashuvchan kesish va kompilyatorni optimallashtirish kabi optimallashtirish bizga mos ravishda 3x, 3x va 1.2x tezlikni berdi. Bu bizga Pi-da real vaqtda ishlash uchun zarur bo'lgan 10 barobar tezlikka erishishga imkon berdi.
To'liq ma'lumotni CribSense omborining dasturiy ta'minot arxitekturasi sahifasida topish mumkin.
Agar siz videoni kattalashtirishga qiziqsangiz, MITning sahifasiga tashrif buyuring.
3 -qadam: Uskunani tayyorlang: kamerangizni ulang
Birinchidan, siz kamera bilan birga kelgan 6 dyuymli kabelni 12 dyuymli kabelga almashtirishingiz kerak. Buni amalga oshirish uchun siz kamera kabelini almashtirish bo'yicha qo'llanmani bajarishingiz mumkin.
Xulosa qilib aytganda, siz kameraning orqa tomonida egiluvchan kabelni bo'shatish uchun tortish/tortish yorlig'ini ko'rasiz. Qisqa simni uzunroq kabelga almashtiring va tiqinni orqaga qaytaring.
Siz bizning rasmlarimizda 24 dyuymli kabel borligini payqaysiz. Bu juda uzun edi. Materiallar ro'yxatidagi 12 dyuymli kabel ancha oqilona uzunlikdir.
4 -qadam: Uskuna tayyor: IR LED
CribSense -ni tuzish nisbatan oson va asosan sotuvda mavjud bo'lgan qismlardan iborat. Yuqoridagi rasmda ko'rinib turibdiki, 5 ta asosiy uskuna bor, ulardan faqat 2 tasi buyurtma asosida tayyorlangan. Bu sahifada IQ -LEDli kontaktlarning zanglashiga olib borish tartibi, keyingi sahifada esa shassisni qanday qurish kerakligi muhokama qilinadi.
Bu qism uchun siz lehimli temir, simlar, diodlar, IQ LED va rezistorni olishingiz kerak. Biz 2 -rasmda ko'rsatilgan sxemani tuzamiz. Agar siz lehimlashda yangi bo'lsangiz, bu erda sizni ta'qib qiladigan yaxshi qo'llanma. Ushbu qo'llanmada teshikli lehim haqida gap ketganda, siz 3-rasmda ko'rsatilgandek, bu qismlarni bir-biriga ulash uchun bir xil asosiy texnikadan foydalanishingiz mumkin.
Kechasi etarli yorug'lik bilan ta'minlash uchun biz inson ko'ziga ko'rinmas, lekin NoIR kamerasiga ko'rinadigan IQ LEDni ishlatamiz. IQ LED Raspberry Pi bilan taqqoslaganda ko'p quvvat sarflamaydi, shuning uchun biz soddalik uchun IQ LEDni yoqamiz.
Pi ning oldingi versiyalarida, bu pinlarning maksimal chiqish quvvati 50mA edi. Raspberry Pi B+ uni 500mA ga oshirdi. Biroq, biz 5V quvvat pinlarini soddalik uchun ishlatamiz, ular 1,5A gacha etkazib bera oladi. IQ LEDning oldingi kuchlanishi bizning o'lchovlarimizga ko'ra taxminan 1,7 ~ 1,9V ni tashkil qiladi. IQ LED o'ziga zarar bermasdan 500mA chizishi mumkin bo'lsa -da, biz issiqlik va umumiy quvvat sarfini kamaytirish uchun oqimni 200mA atrofida kamaytiramiz. Eksperimental natijalar shuni ko'rsatadiki, IQ LED 200mA kirish oqimi bilan etarlicha yorqin. 5V va 1.9V oralig'idagi bo'shliqni to'ldirish uchun biz IN LEDli ketma -ket uchta 1N4001 diod va 1 Ohmli rezistordan foydalanamiz. Tel, diod va rezistor ustidagi kuchlanish pasayishi mos ravishda 0,2 V, 0,9 V (har biri uchun) va 0,2 V ni tashkil qiladi. Shunday qilib, IQ LEDidagi kuchlanish 5V - 0,2V - (3 * 0,9V) - 0,2V = 1,9V. LED orqali issiqlik o'tkazuvchanligi qarshilik bo'yicha 0,18 Vt va 0,2 Vtni tashkil etadi, bu ularning maksimal ko'rsatkichlariga mos keladi.
Ammo biz hali tugamadik! 3D bosilgan shassisga yaxshiroq joylashish uchun biz IQ LEDli optikasi shassisimizdan chiqib ketishini va PCB kartasi teshik bilan bir xilda joylashishini xohlaymiz. Pastki o'ngdagi kichik fotodiod to'siq bo'ladi. Buni tuzatish uchun biz uni ochamiz va oxirgi ikkita fotosuratda ko'rsatilgandek taxtaning qarama -qarshi tomoniga buramiz. Fotodiod kerak emas, chunki biz LED doimo yonib turishini xohlaymiz. Faqat uni qarama -qarshi tomonga o'tkazsangiz, asl LED sxemasi o'zgarishsiz qoladi.
Simlarni lehimlashda, simlarning uzunligi kamida 12 dyuym va PIN -GPIO -laridan o'tib ketadigan pinli sarlavhalarga ega ekanligiga ishonch hosil qiling.
5 -qadam: Uskunani tayyorlang: shassi
Manba fayllari:
- STL holati
- Case Makerbot
- STL qopqog'i
- Makerbot qopqog'i
Biz Pi, kamera va LEDni joylashtirish uchun oddiy 3D bosilgan shassisdan foydalanganmiz. Bizning shassisni ishlatish ixtiyoriydir, lekin yosh bolalarga ochiq elektron sxemalarga tegmaslik uchun tavsiya etiladi. Har bir to'shak boshqacha, shuning uchun bizning shassisimizda o'rnatish moslamasi mavjud emas. O'rnatishning bir nechta variantlari bo'lishi mumkin:
- Kabel aloqalari
- 3M ikkita qulf
- Velcro
- Lenta
Agar sizda MakerBot Replikatoriga (5 -avlod) kirish imkoni bo'lsa, siz shunchaki.makerbot fayllarini korpus uchun yuklab olishingiz va MakerBot Replikatoringizga yopishingiz va chop etishingiz mumkin. Kosonni chop etish uchun taxminan 6 soat va qopqog'ini chop etish uchun 3 soat vaqt ketadi. Agar siz boshqa turdagi 3D printerdan foydalanayotgan bo'lsangiz, o'qishni davom ettiring.
CribSense -ni chop etish uchun minimal 9,9 dyuym (L) x 7,8 dyuym (V) x 5,9 dyuym (H) talab qilinadi. Agar sizda bu hajmli 3D printerdan foydalanish imkoni bo'lmasa, siz onlayn 3D chop etishdan foydalanishingiz mumkin. xizmat (masalan, Shapeways yoki Sculpteo) CribSense -ni chop etish. Minimal bosib chiqarish o'lchamlari 0,015 . Agar siz 3D tipli ulangan filament ishlab chiqaruvchi printerdan foydalanayotgan bo'lsangiz, bu sizning diametri 0,015 dyuym yoki undan kichikroq bo'lishi kerakligini bildiradi. Bosim o'lchamlari pastroq bo'lgan (diametri katta) diametrli printerlar ishlashi mumkin, lekin Raspberry Pi shassiga mos kelmasligi mumkin. Biz afzal ko'rilgan bosma material sifatida PLA (polilaktik kislota) ni tavsiya qilamiz. Boshqa plastmassalar ishlashi mumkin, lekin Raspberry Pi tanlangan plastmassaning issiqlik kengayish koeffitsienti PLAnikidan katta bo'lsa, mos kelmasligi mumkin. isitish plitasi, davom etishdan oldin isitgichni o'chiring.
Chop etish uchun modelni printerning plastinkasiga yo'naltirish juda muhimdir. Ushbu modellar ehtiyotkorlik bilan ishlab chiqilgan, shuning uchun ularni qo'llab -quvvatlovchi material bilan bosib chiqarishning hojati yo'q, shuning uchun plastmassani tejaydi va bosib chiqarish sifatini yaxshilaydi. Davom etishdan oldin, korpus va qopqoq uchun 3D fayllarni yuklab oling. Ushbu modellarni chop etishda CribSense -ning bo'ynini qurilish plastinkasiga yotqizish kerak. Bu modellar ustidagi barcha burchaklarning 45 gradusdan oshmasligini ta'minlaydi, shu bilan qo'llab -quvvatlovchi materialga bo'lgan talab yo'q qilinadi. 3D -modellarni printer hajmida yo'naltirish bo'yicha ko'rsatmalarni 3D -printer bilan birga kelgan yo'riqnomaga qarang. Koson va qopqoqning tuzilish yo'nalishiga misollar yuqorida ko'rsatilgan.
CribSense bo'ynini qurilish plastinkasiga tekis qo'yishdan tashqari, siz modellar vertikal o'q atrofida aylantirilganini sezishingiz mumkin. Bu modelni 3D printeringizning hajmiga mos kelishi uchun kerak bo'lishi mumkin. Qurilish hajmining uzunligi CribSense -ga mos keladigan darajada uzun bo'lsa, bu aylanish ixtiyoriydir.
6 -qadam: Uskunani tayyorlash: montaj
Barcha jihozlar tayyor bo'lgach, montajni boshlashingiz mumkin. Bu jarayonda har qanday elim ishlatilishi mumkin, lekin biz ikkita asosiy sababga ko'ra issiq elim tavsiya qilamiz. Issiq elim tez quriydi, shuning uchun elim quriguncha uzoq kutishning hojati yo'q. Bundan tashqari, agar siz xato qilsangiz, issiq elim olib tashlanadi. Quritilgan issiq elimni olib tashlash uchun issiq elimni ishqalanadigan (izopropil) spirtga soling. Biz 90% yoki undan yuqori konsentratsiyani tavsiya qilamiz, lekin 70% konsentratsiya hali ham ishlaydi. Quritilgan issiq elimni izopropil spirti bilan namlash, elim va uning ostidagi sirt orasidagi bog'lanishni susaytiradi, bu esa elimni qobiqdan tozalashga imkon beradi. Yelimni izopropil spirti bilan namlashda, Raspberry Pi -ni elektr tarmog'idan uzib qo'yish kerak. Issiq elimni qayta ishlatishdan va Raspberry Pi -ni yuklashdan oldin hamma narsani quritib qo'yganingizga ishonch hosil qiling.
Ushbu qadamlarning barcha rasmlari tartibda va matnli qadamlarni bajaring.
- Raspberry Pi -ni shassisga joylashtiring. Ovoz portini kiritish uchun uni biroz egish kerak bo'ladi, lekin u kiritilgandan so'ng, audio raz'em uni joyida saqlaydi. O'rnatilgandan so'ng, barcha portlarga hali ham kirish mumkinligiga ishonch hosil qiling (masalan, quvvat simini ulashingiz mumkin).
- Keyin, issiq yopishtirgich yordamida Pi -ni joyiga qo'ying va kamerani Pi -ga ulang. Agar siz ulardan foydalanishni xohlasangiz, vintli teshiklar ham bor.
- Endi LED va kamerani old qopqog'iga yopishtiring (rasmda). NoIR kamerasini kamera teshigiga issiq yopishtirishdan boshlang. Kamera qulay va shassi bilan qoplanganligiga ishonch hosil qiling. Juda ko'p elim ishlatmang; aks holda, siz kamerani asosiy korpusga sig'dira olmaysiz. Pi -ni yoqing va kameraga qarang (masalan, "raspistill -v"), u yaxshi burchakli va yaxshi ko'rish maydoniga ega ekanligiga ishonch hosil qiling. Agar bunday bo'lmasa, issiq elimni olib tashlang va uni qayta joylashtiring.
- Keyin, IQ LEDini qopqoqning bo'ynidagi teshikka yopishtiring. Bo'yin beshikni yon tomonga burish uchun 45 graduslik burchak ostida joylashgan, bu esa kam yorug'lik sharoitida ko'proq soyaga olib keladi. Bu tasvirga ko'proq kontrast qo'shib, harakatni aniqlashni osonlashtiradi.
- Raqamli rasmda ko'rsatilgandek, Raspberry Pi bosh pimlariga IQ LED simlarini ulang.
- Kabellarni shassiga tortmang va siqmang. Biz kabel akkordeonini yig'ishni tugatdik, chunki bizning kameramizning moslashuvchan kabeli juda uzun edi.
- Hamma narsaga yopishtirilgan holda, ikki bo'lak uchraydigan joylarga issiq yopishtiruvchi yopishtiruvchi yopishtiriladi.
7 -qadam: Kalibrlash
Konfiguratsiya parametrlari haqida tafsilotlarni CribSense ombor hujjatlarida topish mumkin. Hammasi sozlanganidan keyin CribSense -ni qanday kalibrlash mumkinligi haqidagi misolni ko'rish uchun videoni ko'ring.
Bu erda konfiguratsiya faylining namunasi:
[io]; I/U konfiguratsiyasi
; kirish = path_to_file; Input_fps = 15 dan foydalanish uchun kirish fayli; kirish tezligi (40 ta maksimal, 15 ta kameradan foydalanish tavsiya etiladi) full_fps = 4.5; fps, unda to'liq kadrlar qayta ishlanishi mumkin plant_fps = 15; kesilgan kadrlarni qayta ishlash mumkin bo'lgan fps kamera = 0; Kenglikdan foydalanadigan kamera = 640; Kirish video balandligi kengligi = 480; Kirish video balandligi time_to_alarm = 10; Signaldan oldin harakatsiz qancha soniya kutish kerak. [kesish]; Moslashuvchan kesish sozlamalari kesish = rost; Frames_to_settle = 10 kesish kerakmi yoki yo'qmi; qayta ishlashdan oldin kutish uchun # ramka roi_update_interval = 800; ROIni qayta hisoblash orasidagi # ramkalar roi_window = 50; ROI [harakat] ni tanlashdan oldin kuzatish uchun # ramka; Harakatni aniqlash sozlamalari erode_dim = 4; erode yadrosining o'lchami dilate_dim = 60; kengaygan yadroning o'lchami diff_threshold = 8; o'zgarishning davomiyligini tan olishdan oldin kerak bo'lgan abs farqi = 1; Haqiqiy pixel_threshold = 5 belgisini qo'yishdan oldin harakatni ushlab turish uchun # ramkalar; # pixel, ular harakat show_diff = false sifatida belgilanishi uchun har xil bo'lishi kerak; 3 kadr orasidagi farqni ko'rsatish [kattalashtirish]; Videoni kattalashtirish sozlamalari kuchayadi = 25; % Amplifikatsiya kerakli past chegara = 0,5; Tarmoqli o'tkazmaning past chastotasi. yuqori chegara = 1.0; Tarmoqli o'tkazmaning yuqori chastotasi. chegara = 50; Faza chegarasi pi % ga teng. show_magnification = noto'g'ri; Har bir kattalashtirishning chiqish freymlarini ko'rsatish [disk raskadrovka] print_times = false; Tahlil vaqtlarini chop etish
Algoritmni kalibrlash - bu takroriy harakat, aniq echim yo'q. Biz sizni atrof -muhitga eng mos keladigan parametrlarning kombinatsiyasini topish uchun ularni xatolarni tuzatish xususiyatlari bilan birlashtirib, har xil qiymatlar bilan tajriba o'tkazishni taklif qilamiz. Kalibrlashni boshlashdan oldin, show_diff va show_magnification "rost" ga o'rnatilganligiga ishonch hosil qiling.
Qo'llanma sifatida, kuchaytirgich va o'zgarishlar chegarasi qiymatlari ortishi, kirish videosiga qo'llaniladigan kattalashtirish miqdorini oshiradi. Video kadrda kuzatmoqchi bo'lgan harakatni aniq ko'rmaguningizcha, siz bu qiymatlarni o'zgartirishingiz kerak. Agar siz artefaktlarni ko'rsangiz, bir xil kuchlanishni saqlab turganda, phase_thresholdni kamaytirish yordam berishi mumkin.
Harakatni aniqlash parametrlari shovqinni bartaraf etishga yordam beradi. Harakat hududlarini aniqlaganda, erode_dim va dilate_dim yordamida harakatni buzish va kengaytirish uchun ishlatiladigan OpenCV yadrolarining o'lchamlarini o'lchash uchun foydalaniladi, shunda shovqin avval yo'q qilinadi, so'ngra qolgan harakat signali sezilarli darajada kengayib, harakat hududlari aniq bo'ladi. Agar sizning to'shagingiz juda yuqori kontrastli bo'lsa, bu parametrlarni sozlash kerak bo'lishi mumkin. Umuman olganda, yuqori kontrastli sozlamalar uchun yuqori erode_dim, past kontrast uchun esa pastroq erode_dim kerak bo'ladi.
Agar siz CribSense -ni show_diff = true bilan ishlatsangiz va akkumulyator chiqindilarining ko'p qismi oq rangda ekanligini yoki videoning mutlaqo aloqasi bo'lmagan qismi harakat sifatida aniqlanganini sezsangiz (masalan, miltillovchi chiroq), erode_dim -ni faqat videoning bir qismigacha oshiring. Sizning chaqalog'ingizga mos keladigan oqning eng katta qismi. Birinchi rasmda eroziya o'lchami kadrdagi harakat miqdori uchun juda past bo'lgan misol ko'rsatilgan, keyingi rasmda esa yaxshi sozlangan ramka ko'rsatilgan.
Bu sozlangandan so'ng, pixel_threshold qiymatining "Pixel Movement" faqat piksellar harakatining eng yuqori qiymatlari haqida xabar beradigan darajada o'rnatilganligiga ishonch hosil qiling, bu hammasi emas (bu shovqinni o'chirish kerak degan ma'noni anglatadi). Ideal holda, siz terminalda harakatga mos keladigan aniq davriy naqsh mavjud bo'lgan chiqishni ko'rasiz:
[ma'lumot] Piksel harakati: 0 [ma'lumot] Harakatni taxmin qilish: 1.219812 Gts
[info] Pixel Movement: 0 [info] Motion Taxmin: 1.219812 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 1.219812 Hz [info] Pixel Movement: 0 [info] Motion Taxmin: 1.219812 Hz [info] Pixel Movement: 44 [info] Harakatni baholash: 1.219812 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 1.219812 Gts [ma'lumot] Pikselli harakat: 161 [ma'lumot] Harakatni taxmin qilish: 1.219812 Hz [ma'lumot] Pikselli harakat: 121 [ma'lumot] Harakatni baholash: 0.841416 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.841416 Gts [ma'lumot] Pikselli harakat: 86 [ma'lumot] Harakatni taxmin qilish: 0.841416 Hz [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.841416 Gts [info] Pixel Movement: 0 [info] Motion Taxmin: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Estimate: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Taxmin: 0.841416 Hz [info] Pixel Movement: 0 [ma'lumot] Harakatni baholash: 0.841416 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.841416 Hz [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.841416 Gts [ma'lumot] Pikselli harakat ent: 0 [info] Motion Taxmin: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Taxmin: 0.841416 Hz [info] Pixel Movement: 0 [info] Motion Taxmin: 0.841416 Hz [info] Pixel Movement: 0 [info] Harakatni baholash: 0.841416 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.841416 Hz [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.841416 Hz [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.841416 Hz [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni baholash: 0.841416 Gts [ma'lumot] Pikselli harakat: 97 [ma'lumot] Harakatni baholash: 0.841416 Gts [ma'lumot] Pikselli harakat: 74 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts [ma'lumot] Piksel Harakat: 0 [ma'lumot] Harakatni baholash: 0.839298 Gts [ma'lumot] Pikselli harakat: 60 [ma'lumot] Harakatni baholash: 0.839298 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni baholash: 0.839298 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts [ma'lumot] Pikselli harakat: 48 [ma'lumot] Harakat Baholash: 0.839298 Gts [ma'lumot] Pikselli harakat: 38 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts [ma'lumot] Pikselli harakat: 29 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts [ma'lumot] Pikselli harakat: 28 [ma'lumot] Harakatni baholash: 0.839298 Gts [info] Piksel harakati: 22 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni baholash: 0.839298 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.839298 Hz [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni baholash: 0.839298 Gts [ma'lumot] Pikselli harakat: 0 [ma'lumot] Harakatni taxmin qilish: 0.839298 Gts
Agar sizning chiqishingiz shunga o'xshash bo'lsa:
[info] Pixel harakati: 921 [info] Motion Taxmin: 1.352046 Hz
[info] Piksel harakati: 736 [ma'lumot] Harakatni taxmin qilish: 1.352046 Gts [ma'lumot] Pikselli harakat: 666 [ma'lumot] Harakatni taxmin qilish: 1.352046 Gts [ma'lumot] Piksel harakati: 663 [ma'lumot] Harakatni taxmin qilish: 1.352046 Gts [ma'lumot] Pikselli harakat: 1196 [ma'lumot] Harakatni baholash: 1.352046 Gts [ma'lumot] Pikselli harakat: 1235 [ma'lumot] Harakatni taxmin qilish: 1.352046 Gts [ma'lumot] Pikselli harakat: 1187 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat: 1115 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Piksel harakati: 959 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat: 744 [ma'lumot] Harakatni taxmin qilish: 1.456389 Hz [ma'lumot] Pikselli harakat: 611 [ma'lumot] Harakatni baholash: 1.456389 Gts [info] Piksel harakati: 468 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat: 371 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Piksel harakati: 307 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat.: 270 [ma'lumot] Harakatni baholash: 1.456389 Gts [ma'lumot] Pikselli harakat: 234 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat: 197 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat: 179 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat: 164 [ma'lumot] Harakatni taxmin qilish: 1.456389 Hz [ma'lumot] Pikselli harakat: 239 [ma'lumot] Harakatni taxmin qilish: 1.456389 Gts [ma'lumot] Pikselli harakat: 733 [ma'lumot] Harakatni baholash: 1.456389 Gts [ma'lumot] Pikselli harakat: 686 [ma'lumot] Harakatni taxmin qilish: 1.229389 Gts [ma'lumot] Pikselli harakat: 667 [ma'lumot] Harakatni baholash: 1.229389 Gts [ma'lumot] Pikselli harakat: 607 [info] Harakatni baholash: 1.229389 Gts [ma'lumot] Piksel harakati: 544 [ma'lumot] Harakatni taxmin qilish: 1.229389 Gts [ma'lumot] Pikselli harakat: 499 [ma'lumot] Harakatni taxmin qilish: 1.229389 Hz [ma'lumot] Pikselli harakat: 434 [ma'lumot] Harakatni taxmin qilish: 1.229389 Gts [ma'lumot] Pikselli harakat: 396 [ma'lumot] Harakatni baholash: 1.229389 Gts [ma'lumot] Pikselli harakat: 375 [ma'lumot] Harakatni taxmin qilish: 1.229389 Hz [ma'lumot] Pikselli harakat: 389 [ma'lumot] Harakatni taxminiyligi: 1.229389 Gts [ma'lumot] Pikselli harakat: 305 [ma'lumot] Harakatni baholash: 1.312346 Gts [ma'lumot] Pikselli harakat: 269 [ma'lumot] Harakatni taxmin qilish: 1.312346 Gts [ma'lumot] Pikselli harakat: 1382 [ma'lumot] Motion E rag'batlantirish: 1.312346 Gts [ma'lumot] Piksel harakati: 1086 [ma'lumot] Harakatni taxmin qilish: 1.312346 Gts [ma'lumot] Piksel harakati: 1049 [ma'lumot] Harakatni taxmin qilish: 1.312346 Gts [ma'lumot] Pikselli harakat: 811 [ma'lumot] Harakatni taxmin qilish: 1.312346 Gts [ma'lumot] Pikselli harakat: 601 [ma'lumot] Harakatni baholash: 1.312346 Gts [ma'lumot] Pikselli harakat: 456 [ma'lumot] Harakatni taxmin qilish: 1.312346 Gts
Pixel_threshold va diff_thresholdni tepaliklar ko'ringuncha sozlang, aks holda piksel harakati 0 ga teng.
8 -qadam: Namoyish
Bu erda CribSense qanday ishlashi haqida bir oz demo. Siz buni beshikning yon tomoniga yopishtirilgan deb tasavvur qilishingiz kerak bo'ladi.
Beshik ustiga CribSense -ni qo'yganingizda, siz chaqaloq va kamera orasidagi masofani optimallashtirishingiz kerak bo'ladi. Ideal holda, chaqalog'ingizning ko'kragi ramkaning 1/3 qismini to'ldiradi. Bola juda uzoq bo'lmasligi kerak, aks holda piksellar sonini kattalashtirish uchun etarli tafsilotlarni topish qiyin bo'ladi. Agar kamera juda yaqin bo'lsa, u sizning bolangizni aylansa yoki ramkadan chiqib ketsa, uni ko'ra olmasligi mumkin. Xuddi shunday, agar bola "chodirli" adyol ostida bo'lsa, adyol va bolaning ko'kragi o'rtasida aloqa cheklangan bo'lsa, harakatni aniqlash qiyin bo'lishi mumkin. Ularni yaxshilab joylashtiring!
Shuningdek, siz beshik atrofidagi yorug'lik holatini ham ko'rib chiqishni xohlaysiz. Agar sizning beshikingiz derazaning yonida bo'lsa, siz quyoshni bulutlar to'sib qo'ygani yoki derazadan tashqarida harakat qilgani uchun, siz harakatlanayotgan soyalarni yoki yorug'lik qiymatlarini o'zgartirishingiz mumkin. Doimiy yoritilgan joyda yaxshiroq.
Bir oz ko'proq ish olib borganimizda, kimdir bizning dasturiy ta'minotimizni yaxshilashi mumkin deb o'ylaymiz, shunda kalibrlash ancha yumshoq jarayon bo'ladi. Kelgusida push -xabarlar kabi qo'shimcha funktsiyalar qo'shilishi mumkin.
9 -qadam: Muammolarni bartaraf etish
CribSense -ni o'rnatishda siz bir nechta umumiy muammolarga duch kelishingiz mumkin. Masalan, dasturni tuzish/ishga tushirishda muammo yoki ovozni eshitmaslik. Esingizda bo'lsin, CribSense - bu bolalar uchun ishonchli monitor emas. Siz yaxshilanayotganingizda GitHub omboriga o'z hissamizni qo'shamiz.
Bu erda CribSense -ni yaratishda to'plangan muammolarni bartaraf etish bo'yicha ba'zi maslahatlar.
Hech qanday signal o'ynamaydi
- Sizning ma'ruzachilaringiz ishlayaptimi?
- Pi -dan boshqa tovushlarni CribSense signalidan tashqarida ijro qila olasizmi?
- Agar sizning Pi ovozni port emas, balki HDMI orqali ijro qilmoqchi bo'lsa? To'g'ri chiqishni tanlaganingizga ishonch hosil qilish uchun Raspberry Pi audio konfiguratsiyasi sahifasini tekshiring.
- CribSense dasturi harakatni aniqlaydimi? Agar CribSense fonda ishlayotgan bo'lsa, terminalda journalctl -f bilan tekshirishingiz mumkin.
- Agar CribSense juda ko'p harakatni sezsa, sizga CribSense -ni sozlash kerak bo'ladi.
IQ LED ishlamaydi
- IQ LEDga qaraganingizda, qizil rangni ko'rasizmi? LED yoniq bo'lsa, zaif qizil halqa ko'rinishi kerak.
- Ulanishlarning polaritesini tekshiring. Agar +5V va GND qaytarilsa, u ishlamaydi.
- LEDni 5V/0,5A kuchlanish/oqim chegarasi bilan quvvat manbaiga ulang. Odatda, u 5V da 0,2A iste'mol qilishi kerak. Agar bu bajarilmasa, sizning LED nosoz bo'lishi mumkin.
CribSense chaqaloq bo'lmasa ham, harakatni aniqlaydi
- CribSense -ni to'g'ri kalibrladingizmi?
-
Esingizda bo'lsin, CribSense faqat piksel qiymatidagi o'zgarishlarni qidiradi
- Ramka ichida harakatlanadigan soyalar bormi?
- Miltillovchi yoki o'zgaruvchan yorug'lik bormi?
- CribSense barqaror yuzaga o'rnatiladimi (ya'ni, odamlar yonidan o'tib ketsa, qimirlamaydigan narsa)?
- Ramkada boshqa harakat manbalari bormi (ko'zgu aks ettiradi va hokazo)?
CribSense harakat bo'lsa ham, harakatni aniqlamaydi
- CribSense -ni to'g'ri kalibrladingizmi?
- Kamera yo'lida biror narsa bormi?
- Siz Raspberry Pi -dan kameraga ulana olasizmi? Kamerani Pi -da bir necha soniya ochish uchun terminalda raspistill -v ni ishlatib tekshiring.
- Agar sudo systemctl status cribsense ga qarasangiz, CribSense aslida ishlayaptimi?
- Sizning chaqalog'ingiz bola bilan aloqa qilmasligi uchun "chodirlangan" adyol ostida qoladimi? Agar adyol va bola o'rtasida sezilarli havo bo'shliqlari bo'lsa, adyol harakatni yashirishi mumkin.
- Agar siz videoni ko'proq kuchaytirsangiz, harakatni ko'ra olasizmi?
- Agar siz past va yuqori chastotali chegaralarni sozlasangiz, harakatni ko'ra olasizmi?
- Agar bu faqat past nurda sodir bo'lsa, kalibrlash past nurda ishlashiga ishonch hosil qildingizmi?
CribSense qurilmaydi
Siz barcha bog'liqliklarni o'rnatdingizmi?
Men buyruq satridan cribsense -ni ishga tushira olmayman
- Siz ishga tushganingizda tasodifan biror narsani noto'g'ri yozdingizmi?
- Cribsense /usr /bin da mavjudmi?
- Agar siz "qaysi beshik" ni ishlatsangiz, qanday yo'l taqdim etiladi?
Tavsiya:
Chaqaloq bilan Atari Punk konsoli 8 bosqichli sekvener: 7 qadam (rasmlar bilan)
Atari Punk konsoli chaqaloq 8 bosqichli ketma-ketlik bilan: Bu oraliq konstruktsiya-bu Atari Punk konsoli va Baby 8 bosqichli ketma-ket yig'uvchi, siz Bantam Tools Desktop PCB frezalash mashinasida frezalashtirasiz. U ikkita elektron platadan iborat: biri foydalanuvchi interfeysi (UI), ikkinchisi - yordamchi dastur
SMS -xabarnoma va Thingspeak ma'lumotlarini yuklash, Arduino -ga asoslangan, uy avtomatizatsiyasi bilan GPS avtomobil kuzatuvchisi: 5 qadam (rasmlar bilan)
SMS -xabarnoma va Thingspeak ma'lumotlarini yuklash, Arduino -ga asoslangan, uy avtomatizatsiyasi bilan GPS avtomobil kuzatuvchisi: Men bu GPS -trekerni o'tgan yili yaratganman va u yaxshi ishlaganligi uchun hozir uni Instructable -da nashr etaman. U yuk mashinasining aksessuarlari vilkasiga ulangan. GPS -kuzatuvchi avtomobilning joylashuvi, tezligi, yo'nalishi va o'lchangan haroratini mobil ma'lumotlar orqali yuklaydi
Xellouin chaqaloq indikatori: 4 qadam (rasmlar bilan)
Xellouin chaqalog'ining indikatori: Xotinim bilan men Xellouin uchun nima kiyishi mumkinligini bilishga harakat qilardik. Miya hujumi bir necha kecha bo'lib o'tdi, u menga kerak emas edi, shunda men biroz shoshdim. U o'zining g'oyasi bilan qanchalik uzoq yurganini ko'rsatish edi
Arduino -ga asoslangan robotli qo'l bilan ko'rishning arzon echimi: 19 qadam (rasmlar bilan)
Arduino -ga asoslangan robotli qo'l bilan ko'rishning arzon echimi: Biz mashinani ko'rish haqida gapirganda, biz uchun bu har doim ham imkonsiz bo'lib tuyuladi. Biz hammaga ochiq bo'lishi mumkin bo'lgan ochiq manbali vizual demo tayyorlaganimizda. Bu videoda OpenMV kamerasi bilan, qizil kub qaerda bo'lishidan qat'i nazar, robot
Arduino-ga asoslangan tish cho'tkasi ma'lumotlari monitor: 4 qadam (rasmlar bilan)
Arduino-ga asoslangan tish cho'tkasi ma'lumotlari monitori: Arduino-ga asoslangan tish cho'tkasi sizga 3 o'qli tezlashuv ma'lumotlari yordamida naqshlarni kuzatish imkonini beradi