Sadržaj:

CribSense: beskontaktni video nadzorni monitor za bebe: 9 koraka (sa slikama)
CribSense: beskontaktni video nadzorni monitor za bebe: 9 koraka (sa slikama)

Video: CribSense: beskontaktni video nadzorni monitor za bebe: 9 koraka (sa slikama)

Video: CribSense: beskontaktni video nadzorni monitor za bebe: 9 koraka (sa slikama)
Video: Шошана Зубов "Век следящего капитализма" {русская озвучка} 2024, Novembar
Anonim
CribSense: Beskontaktni video nadzorni monitor za bebe
CribSense: Beskontaktni video nadzorni monitor za bebe
CribSense: Beskontaktni video nadzorni monitor za bebe
CribSense: Beskontaktni video nadzorni monitor za bebe

CribSense je video, zasnovan na beskontaktnom monitoru za bebe koji možete sami napraviti, a da ne pokvarite banku

CribSense je C ++ implementacija Video Magnification-a podešena za rad na Raspberry Pi 3 modelu B. Tokom vikenda možete postaviti svoj vlastiti monitor za krevetac koji podiže alarm ako se vaše dijete prestane kretati. Kao bonus, sav softver je besplatan za upotrebu u nekomercijalne svrhe i lako se proširuje.

Potpuno spremište koje sadrži izvorne datoteke i dokumentaciju može se pronaći na

Iako mislimo da je CribSense prilično zabavan, važno je zapamtiti da ovo zapravo nije certificiran, siguran uređaj za sigurnost. Odnosno, mora biti pravilno konfigurirana i imati dobro kontrolirano okruženje kako bi radila. Na primjer, ako nije dobro kalibriran i/ili okruženje u videu nije pogodno za povećanje videa, možda ga nećete moći koristiti. Napravili smo ovo kao zabavan projekt kako bismo vidjeli koliko bismo mogli imati kompjuterski težak softver, poput uvećanja videa, pokrenut na hardveru ograničenom na računare, poput Raspberry Pi. Svaki pravi proizvod zahtijevao bi mnogo više testiranja nego što smo mi to učinili. Dakle, ako koristite ovaj projekt, uzmite ga za ono što jeste: kratko istraživanje povećanja videa na Pi -u.

Šta će vam trebati:

Raspberry Pi + Camera + Konfiguracijski alati:

  • Raspberry Pi 3 Model B
  • 5V 2.5A Micro USB napajanje
  • Raspberry Pi NoIR modul kamere V2
  • MicroSD kartica (koristili smo karticu od 16 GB klase 10)
  • Savitljivi kabel za Raspberry Pi kameru (12 ")
  • Zvučnici sa ulazom od 3,5 mm
  • HDMI monitor
  • USB tastatura
  • USB miš
  • [opcionalno] Raspberry Pi hladnjak (ako ste zabrinuti zbog topline, možete staviti jedan od ovih na Pi)

IC LED krug za rad pri slabom osvjetljenju:

  • [3x] 1N4001 Diode
  • 1 Ohm, 1W otpornik
  • 1W IR LED
  • 2 žice za spajanje LED diode na Pi
  • Lemilica

Šasija:

  • Pristup 3D štampaču (minimalna zapremina izrade = 9,9 "D x 7,8" Š x 5,9 "V) za štampanje naše šasije. Međutim, slobodno napravite svoj.
  • Ljepilo (bilo koja vrsta ljepila će funkcionirati, ali se za izradu prototipa preporučuje vruće ljepilo).

Korak 1: Preduvjeti

Prije nego započnete naš korak-po-korak vodič, trebali ste već instalirati najnoviju verziju Raspbiana na svoju SD karticu i uvjeriti se da je vaš Pi funkcionalan. Također ćete morati omogućiti modul kamere da biste mogli pristupiti kameri.

Korak 2: Instaliranje CribSense softvera

CribSense zavisi od autoconf, libtool, OpenCV i libcanberra, kao i uobičajenih softverskih alata.

  • autoconf i libtool koriste se za automatsko konfiguriranje make -datoteka i izradu skripti za CribSense na mnogim platformama (poput Linuxa, OSX -a i Raspberry Pi -a).
  • OpenCV je moćan paket računarskog vida koji se koristi za obradu slike i osnova je koda za povećanje videa i detekciju pokreta. Ima odličnu podršku, jednostavan je za upotrebu i dobre performanse.
  • libcanberra je jednostavna biblioteka za reprodukciju zvukova događaja. Koristi se za reprodukciju zvuka alarma za CribSense.

Posjetite njihove pojedinačne stranice kako biste saznali sve detalje.

Instalirajte ih otvaranjem terminala na svom Pi -u i pokretanjem:

sudo apt-get install git build-essential autoconf libtool libopencv-dev libcanberra-dev

Zatim morate postaviti upravljački program kamere za automatsko učitavanje dodavanjem bcm2835-v4l2 u `/etc/modules-load.d/modules.conf`. Vaši moduli.conf bi trebali izgledati ovako:

# /etc /modules: moduli jezgre za učitavanje pri pokretanju.

# # Datoteka sadrži nazive kernel modula koje bi trebalo učitati # u vrijeme pokretanja, po jedno po retku. Redovi koji počinju s "#" zanemaruju se. i2c-dev bcm2835-v4l2

Nakon što je datoteka uređena, morate ponovo pokrenuti svoj Pi. Ovaj upravljački program koristi CribSense za izvlačenje okvira iz NoIR kamere.

Zatim možete klonirati spremište pokretanjem:

git clone

Zatim se pomaknite u spremište i izradite softver pokretanjem

cd CribSense

./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug make sudo make install install sudo systemctl daemon-reload

Čestitamo, instalirali ste sav potreban softver!

Konfiguracija

CribSense se može prilagoditi pomoću jednostavne INI konfiguracijske datoteke. Nakon pokretanja `make install`, konfiguracijska datoteka se nalazi na /etc/cribsense/config.ini. Ove parametre možete pregledati i urediti pokretanjem

sudo nano /etc/cribsense/config.ini

Kratko objašnjenje svakog parametra dato je u zadanoj konfiguraciji, ali više detalja je dostupno na https://lukehsiao.github.io/CribSense/setup/config/. Također ćemo razgovarati o kalibraciji i konfiguraciji na kraju ovog vodiča.

Pokretanje CribSense -a

CribSense je dizajniran za pokretanje pri pokretanju pomoću usluge systemd. Dok ste na svoj Raspberry Pi povezani tipkovnicom i mišem, morate se pobrinuti da konfiguracijski parametri rade za vaš krevetić. Možda ćete morati ponovo podesiti ove parametre ako ih premjestite.

Dok podešavate parametre, možete pokrenuti cribsense po želji iz komandne linije tako što ćete pokrenuti

cribsense --config /etc/cribsense/config.ini

Nakon što ste zadovoljni, možete omogućiti automatsko pokretanje pokretanjem

sudo systemctl enable cribsense

Možete zaustaviti automatsko pokretanje cribsense pokretanjem

sudo systemctl disable cribsense

Pregled softvera

Srce i duša ovog projekta je softver CribSense. Vidjeli smo neke od sjajnih demonstracija video povećanja s MIT -a i htjeli smo isprobati sličan algoritam na Raspberry Pi -u. To je zahtijevalo više od 10x ubrzanja od rada tbl3rd-a na njegovoj C ++ implementaciji uvećanja videa kako bi se mogao izvoditi u stvarnom vremenu na Pi-u. Potrebne optimizacije vodile su naš dizajn softvera.

Na visokom nivou, CribSense opetovano prolazi kroz mašinu za stanje softvera. Prvo, on dijeli svaki video okvir veličine 640x480 u sivim tonovima na 3 vodoravna dijela (640x160) radi bolje lokacije predmemorije. Zatim uvećava svaki pojas u zasebnoj niti i prati kretanje koje se vidi u kadru. Nakon nekoliko sekundi praćenja kretanja, određuje primarno područje kretanja i izrezuje okvir na njega. Time se smanjuje ukupan broj piksela koje algoritam treba obraditi. Zatim, CribSense nadzire količinu kretanja u izrezanom toku i oglašava alarm ako se ne primijeti nikakvo kretanje kroz konfigurirano vrijeme. Povremeno će CribSense ponovo otvarati pogled kako bi nadgledao cijeli kadar u slučaju da se dijete pomaknulo i ponovo obrezalo novo primarno područje kretanja.

Uvećanje videa koristi se za pojačavanje omjera signala i šuma suptilnih pokreta poput disanja odojčadi. Ne bi bilo potrebno za veće pokrete, ali može pomoći za vrlo suptilne pokrete. Imajte na umu da je naša implementacija labavo zasnovana na algoritmu opisanom u radovima MIT -a i ne radi tako dobro kao njihov vlasnički kod.

Optimizacije kao što su multitreading, adaptivno obrezivanje i optimizacija kompajlera dali su nam približno 3x, 3x i 1,2x ubrzanje, respektivno. To nam je omogućilo da postignemo 10x ubrzanje potrebno za pokretanje u stvarnom vremenu na Pi-u.

Potpuni detalji mogu se pronaći na stranici Arhitektura softvera u spremištu CribSense.

Ako ste zainteresirani za uvećanje videa, posjetite stranicu MIT -a.

Korak 3: Priprema hardvera: Povežite kameru

Priprema hardvera: Povežite kameru
Priprema hardvera: Povežite kameru

Prvo morate zamijeniti 6 "kabel koji ste dobili uz kameru s 12" kabelom. Da biste to učinili, jednostavno slijedite ovaj vodič o tome kako zamijeniti kabel kamere.

Ukratko, vidjet ćete gurnuti/povući jezičak na stražnjoj strani fotoaparata koji možete izvući kako biste oslobodili fleksibilni kabel. Zamijenite kratki kabel s dužim i gurnite jezičak natrag.

Primijetit ćete da na našim slikama imamo kabel od 24 inča. Bio je predug. Kabel od 12 inča na popisu materijala mnogo je razumnije duljine.

Korak 4: Priprema hardvera: IR LED

Priprema hardvera: IR LED
Priprema hardvera: IR LED
Priprema hardvera: IR LED
Priprema hardvera: IR LED
Priprema hardvera: IR LED
Priprema hardvera: IR LED

CribSense je relativno jednostavan za konstrukciju i uglavnom se sastoji od komercijalno dostupnih dijelova. Kao što se vidi na gornjoj slici, postoji 5 glavnih hardverskih komponenti, od kojih su samo 2 prilagođene. Ova stranica će proći kroz konstrukciju IC LED sklopa, a sljedeća stranica će objasniti kako konstruisati šasiju.

Za ovaj dio trebate nabaviti lemilicu, žice, diode, IC LED i otpornik. Konstruirat ćemo kolo prikazano na drugoj slici. Ako ste tek počeli sa lemljenjem, evo lijepog vodiča koji će vas sustići. Iako se u ovom vodiču raspravlja o lemljenju kroz rupe, možete koristiti iste osnovne tehnike za povezivanje ovih komponenti zajedno kao što je prikazano na trećoj slici.

Kako bismo osigurali adekvatno osvjetljenje noću, koristimo IC LED, koja nije vidljiva ljudskom oku, ali je vidljiva NoIR kameri. IR LED ne troši mnogo energije u odnosu na Raspberry Pi, pa ostavljamo IC LED uključen radi jednostavnosti.

U ranijim verzijama Pi -a, maksimalni strujni izlaz ovih pinova bio je 50mA. Raspberry Pi B+ povećao je ovo na 500mA. Međutim, radi jednostavnosti koristimo samo 5V priključke za napajanje koji mogu napajati do 1.5A. Prema našim mjerenjima, napredni napon IR LED je oko 1,7 ~ 1,9 V. Iako IR LED može povući 500mA bez oštećenja, mi smanjujemo struju na oko 200mA kako bismo smanjili toplinu i ukupnu potrošnju energije. Eksperimentalni rezultati također pokazuju da je IR LED dovoljno jaka sa 200mA ulazne struje. Da bismo premostili jaz između 5V i 1.9V, koristimo tri 1N4001 diode i 1 Ohm otpornik u nizu s IC LED. Pad napona na žici, diodama i otporniku je oko 0,2V, 0,9V (za svaku) i 0,2V, respektivno. Dakle, napon preko IC LED diode je 5V - 0.2V - (3 * 0.9V) - 0.2V = 1.9V. Rasipanje topline preko LED diode iznosi 0,18 W i 0,2 W preko otpornika, sve u granicama svojih maksimalnih vrijednosti.

Ali još nismo završili! Kako bismo se bolje uklopili u 3D štampano kućište, želimo da IR LED objektiv viri iz našeg kućišta i da PCB ploča bude u ravnini s rupom. Mala fotodioda u donjem desnom kutu će vam stati na put. Da bismo to riješili, odlepimo ga i okrenemo na suprotnu stranu ploče kao što je prikazano na posljednje dvije fotografije. Fotodioda nije potrebna jer želimo da LED uvijek svijetli. Jednostavnim prebacivanjem na suprotnu stranu originalni LED krug ostaje nepromijenjen.

Prilikom lemljenja na žice, vodite računa da žice budu dugačke najmanje 12 inča i da imaju pin zaglavlja koja mogu kliziti preko Pi -ovih GPIO -ova.

Korak 5: Priprema hardvera: Šasija

Priprema vašeg hardvera: Šasija
Priprema vašeg hardvera: Šasija
Priprema vašeg hardvera: Šasija
Priprema vašeg hardvera: Šasija
Priprema vašeg hardvera: Šasija
Priprema vašeg hardvera: Šasija

Izvorne datoteke:

  • Case STL
  • Case Makerbot
  • Cover STL
  • Cover Makerbot

Koristili smo jednostavno 3D štampano kućište za smještaj Pi, kamere i LED diode. Korištenje naše šasije nije obavezno, iako se preporučuje kako bi se spriječilo da mala djeca dodiruju izložena elektronička kola. Svaki krevetić je drugačiji, pa naša šasija ne uključuje montažni držač. Nekoliko mogućnosti montaže može uključivati:

  • Kabelske vezice
  • 3M dvostruka brava
  • Velcro
  • Tape

Ako imate pristup MakerBot Replikatoru (5. generacija), možete jednostavno preuzeti.makerbot datoteke za kućište i omot na svoj MakerBot Replikator i ispisati. Za štampanje kućišta potrebno je oko 6 sati, a za štampanje naslovnice 3 sata. Ako koristite drugu vrstu 3D štampača, nastavite čitati.

Za štampanje CribSense -a potreban je minimalni volumen izrade od 9,9 "(D) x 7,8" (Š) x 5,9 "(V). Ako nemate pristup 3D štampaču sa ovom zapreminom izrade, možete koristiti 3D štampanje na mreži usluga (kao što su Shapeways ili Sculpteo) za ispis CribSense -a. Minimalna rezolucija ispisa je 0,015 ". Ako koristite 3D pisač od taljenih vlakana, to znači da promjer vaše mlaznice mora biti 0,015 "ili manji. Pisači s nižom rezolucijom ispisa (veći promjeri mlaznica) mogu raditi, ali Raspberry Pi možda neće stati u kućište. Preporučujemo PLA (polilaktična kiselina) kao preferirani materijal za štampanje. Druga plastika može raditi, ali Raspberry Pi možda neće odgovarati u slučaju ako je koeficijent toplinskog širenja odabrane plastike veći od koeficijenta PLA. Ako vaš 3D štampač ima zagrejanu građevinsku ploču, isključite grejač pre nego što nastavite.

Orijentacija modela na ploči za izradu štampača ključna je za uspješno štampanje. Ovi su modeli pažljivo dizajnirani pa ih nije potrebno ispisivati s pomoćnim materijalom, čime se štedi plastika i poboljšava kvaliteta ispisa. Prije nego što nastavite, preuzmite 3D datoteke za kućište i omot. Prilikom ispisa ovih modela vrat CribSense -a mora ležati ravno na ploči za izradu. Time se osigurava da svi kutovi prevjesa na modelima ne prelaze 45 stupnjeva, čime se eliminira zahtjev za potpornim materijalom. Za upute o orijentaciji 3D modela u volumenu vašeg štampača, pogledajte priručnik sa uputstvima koji ste dobili uz 3D štampač. Primjeri za orijentaciju konstrukcije kućišta i poklopca prikazani su gore.

Osim što vrat CribSense -a stavljate ravno uz ploču za izradu, možete primijetiti da se modeli rotiraju oko okomite osi. To može biti potrebno za uklapanje modela u volumen izrade vašeg 3D štampača. Ova rotacija je opcionalna ako je dužina vašeg volumena izrade dovoljno duga da primi CribSense.

Korak 6: Priprema hardvera: Montaža

Priprema vašeg hardvera: Montaža
Priprema vašeg hardvera: Montaža
Priprema vašeg hardvera: Montaža
Priprema vašeg hardvera: Montaža
Priprema vašeg hardvera: Montaža
Priprema vašeg hardvera: Montaža
Priprema vašeg hardvera: Montaža
Priprema vašeg hardvera: Montaža

Nakon što ste pripremili sav hardver, možete započeti montažu. U ovom procesu može se koristiti bilo koje ljepilo, ali preporučujemo vruće ljepilo iz dva glavna razloga. Vruće ljepilo se brzo suši, pa ne morate dugo čekati da se ljepilo osuši. Osim toga, vruće ljepilo se može ukloniti ako pogriješite. Da biste uklonili osušeno vruće ljepilo, namočite vruće ljepilo u trljajući (izopropil) alkohol. Preporučujemo koncentraciju od 90% ili veću, ali 70% koncentracija će i dalje uspjeti. Natapanje osušenog vrućeg ljepila u izopropil alkoholu oslabit će vezu između ljepila i podloge, omogućujući vam da čisto odlijepite ljepilo. Prilikom natapanja ljepila u izopropilni alkohol, Raspberry Pi treba isključiti i isključiti iz utičnice. Ostavite da se sve osuši prije ponovnog nanošenja vrućeg ljepila i dizanja Raspberry Pi.

Sve slike za ove korake su poredane i slijede zajedno s tekstualnim koracima.

  1. Umetnite Raspberry Pi u kućište. Morat ćete ga malo saviti da biste utaknuli audio priključak, ali nakon što je umetnut, audio priključak će ga zadržati na mjestu. Nakon što je postavljen, provjerite mogu li se pristupiti svim priključcima (npr. Možete priključiti kabel za napajanje).
  2. Zatim pomoću vrućeg ljepila zalijepite Pi na mjesto i pričvrstite kameru na Pi. Postoje i rupe za vijke ako ih više volite koristiti.
  3. Sada zalijepite LED i kameru na prednji poklopac (na slici). Počnite vrućim lijepljenjem NoIR kamere na otvor za kameru. Uvjerite se da je kamera dobro postavljena i poravnata s kućištem. Nemojte koristiti previše ljepila; u suprotnom nećete moći postaviti kameru u glavno kućište. Uključite Pi i pogledajte kameru (na primjer, `raspistill -v`) kako biste bili sigurni da je dobro nagnuta i da ima dobro vidno polje. Ako nije, uklonite vruće ljepilo i ponovno ga postavite.
  4. Zatim zalijepite IC LED diodu na rupu na vratu poklopca. Vrat je pod kutom od 45 stupnjeva bočno osvijetljen krevetić, što rezultira većim sjenama u situacijama slabog osvjetljenja. Ovo dodaje veći kontrast slici, olakšavajući otkrivanje pokreta.
  5. Priključite IR LED žice na pinove zaglavlja Raspberry Pi -a kao što je prikazano na shematskoj slici.
  6. Spajajte kabele u šasiju na način da ih ne naborate i ne napnete. Na kraju smo složili kabelsku harmoniku jer je naš kabel za savijanje kamere bio predug.
  7. Sa sve zataknutim, vrućim ljepilom oko rubova gdje se dva dijela spajaju, zatvarajući ih na mjestu.

Korak 7: Kalibracija

Image
Image
Kalibracija
Kalibracija

Detalji o konfiguracijskim parametrima mogu se pronaći u dokumentaciji spremišta CribSense. Pogledajte i video kako biste vidjeli primjer kako možete kalibrirati CribSense nakon što sve postavite.

Evo primjera konfiguracijske datoteke:

[io]; I/O konfiguracija

; input = path_to_file; Ulazna datoteka za korištenje input_fps = 15; fps ulaza (40 max, 15 preporučeno ako koristite kameru) full_fps = 4,5; fps pri kojima se mogu obraditi puni kadrovi crop_fps = 15; fps pri kojima se mogu obraditi isečeni kadrovi camera = 0; Širina kamere = 640; Širina visine video ulaza = 480; Visina ulaznog video zapisa time_to_alarm = 10; Koliko sekundi čekati bez pokreta prije alarma. [obrezivanje]; Adaptive Cropping Settings crop = true; Da li ćete obrezati frame_to_settle = 10 ili ne; # okvira za čekanje nakon resetiranja prije obrade roi_update_interval = 800; # okvira između ponovnog izračuna ROI -a roi_window = 50; # okvira za praćenje prije odabira ROI [kretanje]; Postavke otkrivanja pokreta erode_dim = 4; dimenzija erodirajućeg jezgra dilate_dim = 60; dimenzija proširenog jezgra diff_threshold = 8; aps razlika potrebna prije prepoznavanja trajanja promjene = 1; # okvira za održavanje kretanja prije označavanja true pixel_threshold = 5; # piksela koji se moraju razlikovati za označavanje kao motion show_diff = false; prikaz razlike između 3 kadra [uvećanje]; Postavke video uvećanja amplify = 25; % Pojačanja željena niska granica = 0,5; Niska frekvencija propusnog opsega. visoka granica = 1,0; Visoka frekvencija propusnog opsega. prag = 50; Fazni prag kao % pi. show_magnification = false; Prikaži izlazne okvire svakog uvećanja [ispravljanje grešaka] print_times = false; Odštampajte vremena analize

Kalibracija algoritma je iterativni napor, bez tačnog rješenja. Predlažemo vam da eksperimentirate s različitim vrijednostima, kombinirajući ih sa značajkama otklanjanja pogrešaka, kako biste pronašli kombinaciju parametara koji najviše odgovaraju vašem okruženju. Prije nego započnete kalibraciju, provjerite jesu li show_diff i show_magnification postavljeni na true.

Kao smjernica, povećanje vrijednosti pojačanja i faznog praga povećava količinu uvećanja primijenjenu na ulazni video zapis. Ove biste vrijednosti trebali mijenjati dok jasno ne vidite kretanje koje želite pratiti u okviru video zapisa. Ako vidite artefakte, smanjenje faznog praga uz zadržavanje istog pojačanja može pomoći.

Parametri detekcije pokreta pomažu u kompenzaciji buke. Prilikom otkrivanja područja kretanja, erode_dim i dilate_dim koriste se za dimenzioniranje dimenzija OpenCV zrna koja se koriste za nagrizanje i širenje kretanja tako da se šum prvo erodira, a zatim se preostali signal kretanja značajno proširi kako bi se područja kretanja učinila očiglednima. Ove će se parametre možda također morati prilagoditi ako je vaš krevetić u postavkama vrlo visokog kontrasta. Općenito, za postavke visokog kontrasta trebat će vam veći erode_dim, a za nizak kontrast manji erode_dim.

Ako pokrenete CribSense s show_diff = true i primijetite da je previše izlaza akumulatora bijelo ili se neki potpuno nepovezani dio videozapisa otkrije kao pokret (npr. Trepereća lampa), povećavajte erode_dim sve do samo dijela videozapisa Vašoj bebi odgovara najveći dio bijele boje. Prva slika prikazuje primjer gdje je dimenzija erozije premala za količinu kretanja u okviru, dok sljedeća prikazuje dobro kalibrirani okvir.

Nakon što je ovo kalibrirano, provjerite je li pixel_threshold postavljen na vrijednost tako da "Pixel Movement" izvještava samo o najvećim vrijednostima kretanja piksela, a ne o svim (što znači da morate isključiti šum). U idealnom slučaju, ovakav izlaz ćete vidjeti na svom terminalu, gdje postoji jasan periodični uzorak koji odgovara kretanju:

[info] Pokret piksela: 0 [info] Procjena kretanja: 1.219812 Hz

[info] Pokret piksela: 0 [info] Procjena kretanja: 1.219812 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 1.219812 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 1.219812 Hz [info] Pokret piksela: 44 [info] Procjena kretanja: 1.219812 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 1.219812 Hz [info] Pokret piksela: 161 [info] Procjena pokreta: 1.219812 Hz [info] Pokret piksela: 121 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 0,841416 Hz [info] Pokret piksela: 86 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 0,841416 Hz [info] Pixel Movem ulaz: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Kretanje piksela: 0 [info] Procjena kretanja: 0,841416 Hz [info] Kretanje piksela: 97 [info] Procjena kretanja: 0,841416 Hz [info] Kretanje piksela: 74 [info] Procjena kretanja: 0,839298 Hz [info] Pixel Pokret: 0 [info] Procjena pokreta: 0,839298 Hz [info] Pokret piksela: 60 [info] Procjena pokreta: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena pokreta: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 48 [info] Pokret Procjena: 0,839298 Hz [info] Pokret piksela: 38 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 29 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 28 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 22 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,839298 Hz [info] Pokret piksela: 0 [info] Procjena kretanja: 0,839298 Hz

Ako vaš ispis više izgleda ovako:

[info] Pokret piksela: 921 [info] Procjena kretanja: 1,352046 Hz

[info] Pokret piksela: 736 [info] Procjena kretanja: 1.352046 Hz [info] Kretanje piksela: 666 [info] Procjena kretanja: 1.352046 Hz [info] Pokret piksela: 663 [info] Procjena kretanja: 1.352046 Hz [info] Pokret piksela: 1196 [info] Procjena kretanja: 1.352046 Hz [info] Pokret piksela: 1235 [info] Procjena pokreta: 1.352046 Hz [info] Pokret piksela: 1187 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 1115 [info] Procjena pokreta: 1.456389 Hz [info] Pokret piksela: 959 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 744 [info] Procjena pokreta: 1.456389 Hz [info] Pokret piksela: 611 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 468 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 371 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 307 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 270 [info] Procjena pokreta: 1.456389 Hz [info] Pokret piksela: 234 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 197 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 179 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 164 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 239 [info] Procjena kretanja: 1.456389 Hz [info] Pokret piksela: 733 [info] Procjena kretanja: 1.456389 Hz [info] Kretanje piksela: 686 [info] Procjena kretanja: 1.229389 Hz [info] Pokret piksela: 667 [info] Procjena kretanja: 1.229389 Hz [info] Kretanje piksela: 607 [info] Procjena kretanja: 1.229389 Hz [info] Pokret piksela: 544 [info] Procjena kretanja: 1.229389 Hz [info] Pokret piksela: 499 [info] Procjena kretanja: 1.229389 Hz [info] Pokret piksela: 434 [info] Procjena kretanja: 1.229389 Hz [info] Pokret piksela: 396 [info] Procjena kretanja: 1.229389 Hz [info] Pokret piksela: 375 [info] Procjena kretanja: 1.229389 Hz [info] Pokret piksela: 389 [info] Procjena pokreta: 1.229389 Hz [info] Pokret piksela: 305 [info] Procjena kretanja: 1.312346 Hz [info] Pokret piksela: 269 [info] Procjena kretanja: 1.312346 Hz [info] Pokret piksela: 1382 [info] Pokret E stimate: 1.312346 Hz [info] Pokret piksela: 1086 [info] Procjena kretanja: 1.312346 Hz [info] Pokret piksela: 1049 [info] Procjena kretanja: 1.312346 Hz [info] Pokret piksela: 811 [info] Procjena kretanja: 1.312346 Hz [info] Pokret piksela: 601 [info] Procjena kretanja: 1.312346 Hz [info] Pokret piksela: 456 [info] Procjena pokreta: 1.312346 Hz

Podesite pixel_threshold i diff_threshold dok se ne vide samo vrhovi, a kretanje piksela je 0 u suprotnom.

Korak 8: Demonstracija

Image
Image

Evo male demonstracije kako CribSense radi. Morat ćete zamisliti da je ovo pričvršćeno sa strane krevetića.

Kada postavite CribSense preko vašeg krevetića, morat ćete optimizirati udaljenost između djeteta i kamere. U idealnom slučaju, grudi vašeg djeteta ispuniće manje od 1/3 okvira. Dijete ne smije biti predaleko, inače će se video zapis niske rezolucije boriti da pronađe dovoljno detalja za uvećanje. Ako je kamera preblizu, kamera možda neće moći vidjeti vaše dijete ako se otkotrlja ili se pomakne iz kadra. Slično, ako je dijete ispod "šatorastog" pokrivača, gdje postoji ograničen kontakt između pokrivača i djetetovih prsa, može biti teško otkriti kretanje. Dobro ih ugurajte!

Također ćete htjeti razmotriti stanje osvjetljenja oko vašeg krevetića. Ako je vaš krevetić odmah do prozora, možda ćete dobiti pokretne sjene ili promijeniti svjetlosnu vrijednost jer sunce zaklanjaju oblaci ili se kretanje događa izvan prozora. Negdje sa stalnim osvjetljenjem je najbolje.

Uz još malo rada, mislimo da bi netko mogao poboljšati naš softver tako da je kalibracija mnogo glatkiji proces. U budućnosti bi se mogle dodati i dodatne funkcije poput push obavijesti.

Korak 9: Rješavanje problema

Prilikom postavljanja CribSense -a možete naići na nekoliko uobičajenih problema. Na primjer, imate problema pri izgradnji/pokretanju programa ili ne čujete zvuk. Upamtite, CribSense nije savršeno pouzdan monitor za bebe. Pozdravljali bismo doprinose na našem GitHub spremištu dok unosite poboljšanja!

Evo nekoliko savjeta za rješavanje problema koje smo prikupili pri izradi CribSense -a.

Ne aktivira se alarm

  • Rade li vam zvučnici?
  • Možete li reproducirati druge zvukove iz Pi izvan alarma CribSense?
  • Ako vaš Pi pokušava reproducirati zvuk putem HDMI -a, a ne preko audio priključka? Provjerite stranicu Raspberry Pi Audio Configuration kako biste bili sigurni da ste odabrali ispravan izlaz.
  • Otkriva li softver CribSense kretanje? Ako CribSense radi u pozadini, možete provjeriti pomoću journalctl -f u terminalu.
  • Ako CribSense osjeća puno kretanja, možda ćete morati kalibrirati CribSense.

IR LED ne radi

  • Možete li vidjeti slabu crvenu boju kada pogledate IC LED? Slab crveni prsten trebao bi biti vidljiv kada je LED uključena.
  • Provjerite polaritet priključaka. Ako su +5V i GND obrnuti, neće raditi.
  • Spojite LED na napajanje s ograničenjem napona/struje od 5V/0.5A. Obično bi trebao trošiti 0,2A na 5V. Ako se to ne dogodi, vaša LED dioda možda ne radi.

CribSense otkriva kretanje iako nema novorođenčeta

  • Jeste li pravilno kalibrirali CribSense?
  • Upamtite, CribSense samo traži promjene u vrijednostima piksela
    • Postoje li sjene u okviru?
    • Postoji li treperenje ili promjena osvjetljenja?
    • Je li CribSense montiran na stabilnu površinu (tj. Nešto što se neće tresti ako ljudi prolaze pored njega)?
    • Postoje li neki drugi izvori kretanja u okviru (ogledala koja hvataju refleksije itd.)?

CribSense NE detektira kretanje iako postoji

  • Jeste li pravilno kalibrirali CribSense?
  • Ima li šta na putu kamere?
  • Možete li se uopće povezati s kamerom s Raspberry Pi -a? Provjerite pokretanjem raspistill -v u terminalu da otvorite kameru na Pi -u nekoliko sekundi.
  • Ako pogledate sudo systemctl status cribsense, radi li CribSense zaista?
  • Je li vaše dijete ispod deke koja je "podignuta" tako da ne ostvaruje kontakt s djetetom? Ako između pokrivača i djeteta postoje značajni zračni zazori, pokrivač može prikriti kretanje.
  • Možete li vidjeti kretanje ako pojačate video?
  • Možete li vidjeti kretanje ako podesite granične vrijednosti niske i visoke frekvencije?
  • Ako se to događa samo pri slabom osvjetljenju, jeste li bili sigurni da kalibracija radi pri slabom osvjetljenju?

CribSense se ne gradi

Jeste li instalirali sve ovisnosti?

Ne mogu pokrenuti cribsense iz naredbenog retka

  • Jeste li slučajno pogriješili pri pokretanju./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug tokom izrade softvera?
  • Je li cribsense prisutan u /usr /bin?
  • Koja je staza omogućena ako pokrenete "which cribsense"?

Preporučuje se: