Kazalo:

CribSense: brezkontaktni video nadzorni monitor na videu: 9 korakov (s slikami)
CribSense: brezkontaktni video nadzorni monitor na videu: 9 korakov (s slikami)

Video: CribSense: brezkontaktni video nadzorni monitor na videu: 9 korakov (s slikami)

Video: CribSense: brezkontaktni video nadzorni monitor na videu: 9 korakov (s slikami)
Video: Система непрерывного мониторинга глюкозы в крови FreeStyle Libre 2024, November
Anonim
CribSense: brezkontaktni video nadzorni monitor na videu
CribSense: brezkontaktni video nadzorni monitor na videu
CribSense: brezkontaktni video nadzorni monitor na videu
CribSense: brezkontaktni video nadzorni monitor na videu

CribSense je videonadzor, brezkontaktni monitor za dojenčke, ki ga lahko naredite sami, ne da bi pri tem zlomili banko

CribSense je izvedba C ++ za povečavo videa, nastavljeno za delovanje na modelu Raspberry Pi 3 B. Čez vikend lahko nastavite svoj otroški monitor, ki sproži alarm, če se vaš dojenček neha premikati. Kot bonus je vso programsko opremo brezplačno uporabljati v nekomercialne namene in jo je mogoče enostavno razširiti.

Celotno skladišče z izvornimi datotekami in dokumentacijo najdete na

Čeprav se nam zdi CribSense zelo zabaven, se je treba spomniti, da to dejansko ni certificirana, varna varnostna naprava. To pomeni, da mora biti za delovanje pravilno konfiguriran in imeti dobro nadzorovano okolje. Če na primer ni dobro umerjen in/ali okolje v videoposnetku ni ugodno za povečavo videa, ga morda ne boste mogli uporabiti. To smo naredili kot zabaven projekt, da bi videli, kako dobro bi lahko imeli računalniško težko programsko opremo, kot je povečava videa, na strojno opremo z omejenim številom računalnikov, kot je Raspberry Pi. Vsak pravi izdelek bi zahteval veliko več testiranja kot mi. Če torej uporabljate ta projekt, si vzemite to, kar je: kratek raziskovanje povečave videa na Pi.

Kaj boste potrebovali:

Raspberry Pi + Camera + orodja za konfiguracijo:

  • Raspberry Pi 3 Model B
  • 5V 2.5A napajalnik Micro USB
  • Modul kamere Raspberry Pi NoIR V2
  • Kartica MicroSD (uporabili smo kartico razreda 16 GB 16)
  • Prilagodljiv kabel za kamero Raspberry Pi (12 ")
  • Zvočniki z vhodom 3,5 mm
  • HDMI monitor
  • USB tipkovnica
  • USB miška
  • [neobvezno] Raspberry Pi hladilnik (če vas skrbi vročina, lahko enega od teh nalepite na svoj Pi)

IR LED vezje za delovanje pri šibki svetlobi:

  • [3x] 1N4001 diode
  • 1 ohm, 1W upor
  • 1W IR LED
  • 2 žici za priključitev LED na Pi
  • Spajkalnik

Podvozje:

  • Dostop do 3D -tiskalnika (najmanjša prostornina izdelave = 9,9 "D x 7,8" Š x 5,9 "V) za tiskanje našega ohišja. Vendar pa ga lahko ustvarite sami.
  • Lepilo (vse vrste lepila bodo delovale, vendar je za izdelavo prototipov priporočljivo vroče lepilo).

1. korak: Predpogoji

Preden začnete z našim vodnikom po korakih, bi morali na svojo kartico SD že namestiti najnovejšo različico Raspbiana in zagotoviti, da je vaš Pi funkcionalen. Preden dostopate do kamere, boste morali omogočiti tudi modul kamere.

2. korak: Namestitev programske opreme CribSense

CribSense je odvisen od autoconf, libtool, OpenCV in libcanberra ter običajnih programskih orodij.

  • autoconf in libtool se uporabljata za samodejno konfiguriranje make -datotek in izdelavo skriptov za CribSense na številnih platformah (kot so Linux, OSX in Raspberry Pi).
  • OpenCV je zmogljiv paket računalniškega vida, ki se uporablja za obdelavo slik in je osnova za povečavo videa in kodo za zaznavanje gibanja. Ima odlično podporo, enostaven za uporabo in dobre zmogljivosti.
  • libcanberra je preprosta knjižnica za predvajanje zvokov dogodkov. Uporablja se za predvajanje zvoka alarma za CribSense.

Za podrobnosti obiščite njihove posamezne strani.

Namestite jih tako, da odprete terminal na svojem Pi in zaženete:

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

Nato morate nastaviti gonilnik kamere za samodejno nalaganje, tako da dodate bcm2835-v4l2 v `/etc/modules-load.d/modules.conf . Vaši moduli.conf bi morali izgledati tako:

# /etc /modules: moduli jedra za nalaganje ob zagonu.

# # Datoteka vsebuje imena modulov jedra, ki jih je treba naložiti # ob zagonu, enega na vrstico. Črte, ki se začnejo z "#", se ne upoštevajo. i2c-dev bcm2835-v4l2

Ko je datoteka urejena, morate znova zagnati Pi. Ta gonilnik uporablja CribSense za neposredno vlečenje okvirjev iz kamere NoIR.

Nato lahko klonirate skladišče tako, da zaženete:

git clone

Nato se premaknite v skladišče in z zagonom sestavite programsko opremo

cd CribSense

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

Čestitamo, namestili ste vso potrebno programsko opremo!

Konfiguracija

CribSense je mogoče prilagoditi s preprosto konfiguracijsko datoteko INI. Po zagonu `make install` se konfiguracijska datoteka nahaja na /etc/cribsense/config.ini. Te parametre si lahko ogledate in uredite tako, da zaženete

sudo nano /etc/cribsense/config.ini

Kratka razlaga vsakega parametra je podana v privzeti konfiguraciji, več podrobnosti pa je na voljo na https://lukehsiao.github.io/CribSense/setup/config/. O kalibraciji in konfiguraciji bomo razpravljali tudi na koncu tega priročnika.

Zaženite CribSense

CribSense je bil zasnovan za zagon z uporabo storitve systemd. Medtem ko ste s tipkovnico in miško povezani z Raspberry Pi, se prepričajte, da konfiguracijski parametri delujejo za vašo posteljico. Te parametre boste morda morali znova nastaviti, če jih premaknete.

Med nastavljanjem parametrov lahko po želji iz ukazne vrstice zaženete cribsense tako, da zaženete

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

Ko ste zadovoljni, lahko z zagonom omogočite samodejni zagon

sudo systemctl omogoči cribsense

Samodejno izvajanje programa cribsense lahko ustavite tako, da zaženete

sudo systemctl onemogoči cribsense

Pregled programske opreme

Srce in duša tega projekta je programska oprema CribSense. Videli smo nekaj odličnih predstavitev povečanja videa z MIT -a in želeli smo poskusiti zagnati podoben algoritem na Raspberry Pi. To je zahtevalo več kot 10-kratno pospešitev pri delu tbl3rd-a pri izvajanju povečave videa v C ++, da bi se lahko v realnem času izvajal na Pi. Zahtevane optimizacije so vodile našo zasnovo programske opreme.

Na visoki ravni CribSense večkrat kroži skozi stroj za stanje programske opreme. Najprej razdeli vsak video okvir 640x480 v sivinah na 3 vodoravne odseke (640x160) za boljšo lokacijo predpomnilnika. Nato poveča vsak pas v ločeni niti in spremlja gibanje, vidno v kadru. Po nekaj sekundnem spremljanju gibanja določi primarno območje gibanja in vanj obreže okvir. S tem se zmanjša skupno število slikovnih pik, ki jih mora algoritem obdelati. Nato CribSense spremlja količino gibanja v obrezanem toku in oglasi alarm, če gibanja ni mogoče zaznati v nastavljenem času. Občasno bo CribSense znova odprl pogled za spremljanje celotnega kadra v primeru, da se je dojenček premaknil in ponovno obrezal novo primarno področje gibanja.

Povečava videa se uporablja za povečanje razmerja signal / šum pri subtilnih gibih, kot je dihanje dojenčka. Za večje premike ne bi bilo potrebno, lahko pa pomaga pri zelo subtilnih gibih. Upoštevajte, da naša izvedba ohlapno temelji na algoritmu, opisanem v dokumentih MIT, in ne deluje tako dobro kot njihova lastniška koda.

Optimizacije, kot so večnitnost, prilagodljivo obrezovanje in optimizacija prevajalnika, so nam omogočile približno 3x, 3x oziroma 1,2x pospešitev. To nam je omogočilo, da smo dosegli 10-kratno pospešitev, ki je potrebna za izvajanje v realnem času na Pi.

Vse podrobnosti najdete na strani Arhitektura programske opreme v skladišču CribSense.

Če vas zanima povečava videa, obiščite stran MIT.

3. korak: Priprava strojne opreme: Povežite fotoaparat

Priprava strojne opreme: Povežite fotoaparat
Priprava strojne opreme: Povežite fotoaparat

Najprej zamenjajte 6 -palčni kabel, priložen fotoaparatu, z 12 -palčnim kablom. Če želite to narediti, preprosto sledite tej vadnici o tem, kako zamenjati kabel kamere.

Če povzamemo, boste na zadnji strani fotoaparata videli jeziček za potiskanje/vlečenje, ki ga lahko izvlečete, da sprostite upogljivi kabel. Kratki kabel zamenjajte z daljšim in jeziček potisnite nazaj.

Opazili boste, da imamo na slikah 24 -palčni kabel. Predolg je. 12 -palčni kabel na seznamu materialov je veliko bolj razumne dolžine.

4. korak: Priprava strojne opreme: IR LED

Priprava vaše strojne opreme: IR LED
Priprava vaše strojne opreme: IR LED
Priprava vaše strojne opreme: IR LED
Priprava vaše strojne opreme: IR LED
Priprava vaše strojne opreme: IR LED
Priprava vaše strojne opreme: IR LED

CribSense je relativno enostaven za izdelavo in je v veliki meri sestavljen iz komercialno dostopnih delov. Kot je prikazano na zgornji sliki, obstaja 5 glavnih komponent strojne opreme, od katerih sta samo 2 izdelani po meri. Na tej strani bo predstavljeno, kako sestaviti vezje IR LED, na naslednji strani pa bo opisano, kako sestaviti ohišje.

Za ta del morate dobiti spajkalnik, žice, diode, IR LED in upor. Sestavili bomo vezje, prikazano na drugi sliki. Če ste šele začeli spajkati, je tu lep vodič, ki vas bo dohitel. Medtem ko ta priročnik obravnava spajkanje skozi luknje, lahko za povezovanje teh komponent uporabite iste osnovne tehnike, kot je prikazano na tretji sliki.

Da bi ponoči zagotovili ustrezno osvetlitev, uporabljamo IR LED, ki ni vidna človeškemu očesu, vidna pa je kameri NoIR. IR LED ne porabi veliko energije v primerjavi z Raspberry Pi, zato zaradi enostavnosti IR LED pustimo prižgano.

V prejšnjih različicah Pi je bil največji trenutni izhod teh zatičev 50 mA. Raspberry Pi B+ je to povečal na 500mA. Za preprostost pa uporabljamo le napajalne vtiče 5V, ki lahko napajajo do 1,5A. Sprednja napetost IR LED je po naših meritvah približno 1,7 ~ 1,9 V. Čeprav lahko IR LED črpa 500 mA, ne da bi se poškodoval, zmanjšamo tok na približno 200 mA, da zmanjšamo toploto in splošno porabo energije. Eksperimentalni rezultati kažejo tudi, da je IR LED dovolj svetla z 200mA vhodnega toka. Za premostitev vrzeli med 5V in 1.9V uporabljamo tri diode 1N4001 in 1 ohmski upor zaporedno z IR LED. Padec napetosti na žici, diodah in uporu je približno 0,2 V, 0,9 V (za vsakega posebej) in 0,2 V. Tako je napetost nad IR LED 5V - 0.2V - (3 * 0.9V) - 0.2V = 1.9V. Odvod toplote preko LED je 0,18 W in 0,2 W preko upora, vse v okviru svojih največjih nazivov.

Ampak še nismo končali! Da bi se bolje prilegali ohišju s 3D tiskanjem, želimo, da IR LED leča štrli iz ohišja in da je plošča PCB poravnana z luknjo. Majhna fotodioda v spodnjem desnem kotu vas bo ovirala. Da bi to odpravili, ga razpakiramo in obrnemo na nasprotno stran plošče, kot je prikazano na zadnjih dveh fotografijah. Fotodioda ni potrebna, saj želimo, da LED sveti vedno. Preprost preklop na nasprotno stran pusti prvotno vezje LED nespremenjeno.

Pri spajkanju na žice se prepričajte, da so žice dolge vsaj 12 palcev in da imajo zatiče, ki lahko zdrsnejo preko Pi -jevih GPIO -jev.

5. korak: Priprava strojne opreme: ohišje

Priprava vaše strojne opreme: ohišje
Priprava vaše strojne opreme: ohišje
Priprava vaše strojne opreme: ohišje
Priprava vaše strojne opreme: ohišje
Priprava vaše strojne opreme: ohišje
Priprava vaše strojne opreme: ohišje

Izvorne datoteke:

  • Primer STL
  • Orodje Makerbot
  • Pokrijte STL
  • Cover Makerbot

Uporabili smo preprosto 3D tiskano ohišje za namestitev Pi, fotoaparata in LED. Uporaba našega ohišja ni obvezna, čeprav je priporočljiva, da se majhni otroci ne dotikajo izpostavljenih elektronskih vezij. Vsaka jaslica je drugačna, zato naše ohišje ne vključuje pritrdilnega nosilca. Obstaja več možnosti pritrditve:

  • Kablske vezi
  • 3M dvojna ključavnica
  • ježevi trakovi
  • Trak

Če imate dostop do replikatorja MakerBot (5. generacija), lahko preprosto prenesete datoteke.makerbot za ohišje in pokrovček na svoj replikator MakerBot in natisnete. Tiskanje ohišja traja približno 6 ur, naslovnica pa 3 ure. Če uporabljate drugo vrsto 3D tiskalnika, nadaljujte z branjem.

Za tiskanje CribSense je potreben najmanjši obseg gradnje 9,9 "(L) x 7,8" (Š) x 5,9 "(V). Če nimate dostopa do 3D tiskalnika s to količino gradnje, lahko uporabite spletno tiskanje 3D storitev (na primer Shapeways ali Sculpteo) za tiskanje CribSense. Najmanjša ločljivost tiskanja je 0,015 ". Če uporabljate 3D tiskalnik iz taljenih filamentov, to pomeni, da mora biti premer šobe 0,015 "ali manj. Tiskalniki z nižjo ločljivostjo tiskanja (večji premeri šob) morda delujejo, vendar Raspberry Pi morda ne bo ustrezal ohišju. Kot prednostni material za tiskanje priporočamo PLA (polilaktična kislina). Druga plastika lahko deluje, vendar Raspberry Pi morda ne ustreza, če je koeficient toplotnega raztezanja izbrane plastike večji od koeficienta PLA. Če ima vaš 3D tiskalnik ogrevano gradbeno ploščo, pred nadaljevanjem izključite grelec.

Usmeritev modela na vgradno ploščo tiskalnika je ključnega pomena za uspešen tisk. Ti modeli so bili skrbno oblikovani, zato jih ni treba tiskati s podpornim materialom, s čimer se prihrani plastika in izboljša kakovost tiskanja. Preden nadaljujete, prenesite datoteke 3D za ohišje in ovitek. Pri tiskanju teh modelov mora vrat CribSense ležati ravno na gradbeni plošči. To zagotavlja, da vsi koti previsa pri modelih ne presegajo 45 stopinj, s čimer se odpravi zahteva po podpornem materialu. Za navodila o usmerjanju 3D -modelov v prostornino tiskalnika glejte priročnik z navodili, ki je priložen vašemu 3D -tiskalniku. Primeri za konstrukcijsko usmerjenost ohišja in pokrova so prikazani zgoraj.

Poleg tega, da vrat CribSense postavite ravno proti gradbeni plošči, boste morda opazili, da se modeli vrtijo okoli navpične osi. To bo morda potrebno, da se model prilega v prostornino vašega 3D tiskalnika. Ta rotacija je neobvezna, če je dolžina vaše gradnje dovolj dolga, da sprejme CribSense.

6. korak: Priprava strojne opreme: Montaža

Priprava vaše strojne opreme: Montaža
Priprava vaše strojne opreme: Montaža
Priprava vaše strojne opreme: Montaža
Priprava vaše strojne opreme: Montaža
Priprava vaše strojne opreme: Montaža
Priprava vaše strojne opreme: Montaža
Priprava vaše strojne opreme: Montaža
Priprava vaše strojne opreme: Montaža

Ko pripravite vso strojno opremo, lahko začnete z montažo. V tem procesu je mogoče uporabiti katero koli lepilo, vendar priporočamo vroče lepilo iz dveh glavnih razlogov. Vroče lepilo se hitro posuši, zato vam ni treba dolgo čakati, da se lepilo posuši. Poleg tega je vroče lepilo odstranljivo, če naredite napako. Če želite odstraniti posušeno vroče lepilo, namočite vroče lepilo v alkohol (izopropil). Priporočamo 90% koncentracijo ali več, vendar bo 70% koncentracija še vedno delovala. Namakanje posušenega vročega lepila v izopropilnem alkoholu oslabi vez med lepilom in podlago, kar vam omogoča, da lepilo čisto odlepite. Pri namakanju lepila v izopropilnem alkoholu je treba Raspberry Pi izklopiti in odklopiti. Pred ponovnim nanosom vročega lepila in zagonom Raspberry Pi pustite, da se vse posuši.

Vse slike za te korake so v redu in sledijo skupaj z besedilnimi koraki.

  1. Vstavite Raspberry Pi v ohišje. Če želite vstaviti zvočna vrata, ga boste morali nekoliko upogniti, a ko bo vstavljen, ga bo avdio priključek obdržal. Ko je nameščen, se prepričajte, da je še vedno dostopen do vseh vrat (npr. Lahko priključite napajalni kabel).
  2. Nato z vročim lepilom pritrdite Pi in pritrdite kamero na Pi. Če jih raje uporabljate, so tudi luknje za vijake.
  3. Zdaj prilepite LED in kamero na sprednji pokrov (na sliki). Začnite z vročim lepljenjem kamere NoIR na luknjo za kamero. Prepričajte se, da je kamera tesno in poravnana z ohišjem. Ne uporabljajte preveč lepila; sicer fotoaparata ne boste mogli namestiti v glavno ohišje. Vklopite Pi in si oglejte kamero (na primer `raspistill -v`), da se prepričate, da je dobro nagnjena in ima dobro vidno polje. Če ni, odstranite vroče lepilo in ga znova namestite.
  4. Nato prilepite IR LED na luknjo na vratu pokrova. Vrat je pod kotom 45 stopinj, da stransko osvetli jaslice, kar povzroči več senc v situacijah s šibko svetlobo. To doda več kontrasta sliki in olajša zaznavanje gibanja.
  5. Priključite žice IR LED na nožice glave Raspberry Pi, kot je prikazano na shematski sliki.
  6. Kable pakirajte v ohišje tako, da jih ne mečkate in ne obremenjujete. Na koncu smo preklopili slog kabelske harmonike, ker je bil naš upogibni kabel kamere predolg.
  7. Z vtaknjenim vročim lepilom okoli robov, kjer se stikata oba kosa, in ju zatesnite na mestu.

7. korak: Umerjanje

Image
Image
Praznovanje
Praznovanje

Podrobnosti o konfiguracijskih parametrih najdete v dokumentaciji repozitorija CribSense. Oglejte si tudi videoposnetek, če si želite ogledati primer, kako lahko umerite CribSense, potem ko ste vse nastavili.

Tu je vzorec konfiguracijske datoteke:

[io]; V/I konfiguracija

; input = path_to_file; Vhodna datoteka za uporabo input_fps = 15; fps vhoda (največ 40, priporočeno 15 pri uporabi fotoaparata) full_fps = 4,5; fps, pri katerih je mogoče obdelati polne sličice crop_fps = 15; fps, pri katerih je mogoče obdelati obrezane sličice camera = 0; Širina kamere = 640; Širina višine vhodnega videa = 480; Višina vhodnega video časa time_to_alarm = 10; Koliko sekund čakati brez gibanja pred alarmom. [obrezovanje]; Adaptive Cropping Settings crop = true; Ali obrezati frame_to_settle = 10 ali ne; # okvirjev za čakanje po ponastavitvi pred obdelavo roi_update_interval = 800; # okvirjev med preračunavanjem ROI roi_window = 50; # okvirjev za spremljanje, preden izberete ROI [gibanje]; Nastavitve zaznavanja gibanja erode_dim = 4; dimenzija jedra jedra dilate_dim = 60; dimenzija razširjenega jedra diff_threshold = 8; abs razlika, potrebna za prepoznavanje trajanja spremembe = 1; # okvirjev za ohranjanje gibanja, preden označite resnično pixel_threshold = 5; # slikovnih pik, ki se morajo razlikovati, če jih označite kot gibanje show_diff = false; prikaz razlike med 3 okvirji [povečava]; Nastavitve povečave videa amplify = 25; % Želene ojačitve z nizko mejo = 0,5; Nizka frekvenca pasovnega pasu. visoka mejna vrednost = 1,0; Visoka frekvenca pasovnega pasu. prag = 50; Fazni prag kot % pi. show_magnification = false; Pokaži izhodne okvirje vsake povečave [debug] print_times = false; Natisni čas analize

Umerjanje algoritma je iterativni napor, brez natančne rešitve. Svetujemo vam, da preizkusite različne vrednosti in jih združite s funkcijami za odpravljanje napak, da poiščete kombinacijo parametrov, ki so najbolj primerna za vaše okolje. Preden začnete kalibracijo, se prepričajte, da sta show_diff in show_magnification nastavljena na true.

Smernica je, da povečanje vrednosti ojačanja in faznega praga poveča količino povečave, uporabljene za vhodni video. Te vrednosti bi morali spreminjati, dokler jasno ne vidite gibanja, ki ga želite slediti v video okvirju. Če opazite artefakte, bi lahko pomagalo zmanjšanje faznega praga ob ohranjanju istega povečanja.

Parametri zaznavanja gibanja pomagajo kompenzirati hrup. Pri zaznavanju gibalnih področij se erode_dim in dilate_dim uporabijo za določanje velikosti jeder OpenCV, ki se uporabljajo za erozijo in razširitev gibanja, tako da se hrup najprej odstrani, nato pa se preostali signal gibanja znatno razširi, da postanejo področja gibanja očitna. Te parametre bo morda treba prilagoditi tudi, če je vaša posteljica v zelo visokem kontrastu. Na splošno boste za nastavitve visokega kontrasta potrebovali višji erode_dim in za nizek kontrast nižji erode_dim.

Če zaženete CribSense z show_diff = true in opazite, da je preveč izhoda akumulatorja bele barve ali pa se kakšen popolnoma nepovezan del videoposnetka zazna kot gibanje (npr. Utripajoča svetilka), povečajte erode_dim, dokler ni prikazan le del videoposnetka. ustreza vašemu otroku največji del bele barve. Prva slika prikazuje primer, ko je dimenzija erozije prenizka za količino gibanja v okvirju, naslednja pa dobro umerjen okvir.

Ko je ta umerjen, se prepričajte, da je pixel_threshold nastavljen na vrednost, tako da "Gibanje slikovnih pik" poroča samo o najvišjih vrednostih premikanja slikovnih pik, ne pa o vseh (kar pomeni, da morate zmanjšati šum). V idealnem primeru boste na svojem terminalu videli takšen izhod, kjer je jasen periodičen vzorec, ki ustreza gibanju:

[info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 1.219812 Hz

[info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 1.219812 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 1.219812 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 1.219812 Hz [info] Premik slikovnih pik: 44 [info] Ocena gibanja: 1.219812 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 1.219812 Hz [info] Premik slikovnih pik: 161 [info] Ocena gibanja: 1.219812 Hz [info] Premik slikovnih pik: 121 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 86 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Pixel Movem ent: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 97 [info] Ocena gibanja: 0,841416 Hz [info] Gibanje slikovnih pik: 74 [info] Ocena gibanja: 0,839298 Hz [info] Pixel Gibanje: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 60 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 48 [info] Gibanje Ocena: 0,839298 Hz [info] Gibanje slikovnih pik: 38 [info] Ocena gibanja: 0,839298 Hz [info] Gibanje slikovnih pik: 29 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 28 [info] Ocena gibanja: 0,839298 Hz [info] Gibanje slikovnih pik: 22 [info] Ocena gibanja: 0,839298 Hz [info] Gibanje slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz [info] Premik slikovnih pik: 0 [info] Ocena gibanja: 0,839298 Hz

Če vaš izhod izgleda bolj tako:

[info] Gibanje slikovnih pik: 921 [info] Ocena gibanja: 1,352046 Hz

[info] Gibanje slikovnih pik: 736 [info] Ocena gibanja: 1.352046 Hz [info] Gibanje slikovnih pik: 666 [info] Ocena gibanja: 1.352046 Hz [info] Premik slikovnih pik: 663 [info] Ocena gibanja: 1.352046 Hz [info] Premik slikovnih pik: 1196 [info] Ocena gibanja: 1.352046 Hz [info] Gibanje slikovnih pik: 1235 [info] Ocena gibanja: 1.352046 Hz [info] Premik slikovnih pik: 1187 [info] Ocena gibanja: 1.456389 Hz [info] Premik slikovnih pik: 1115 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 959 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 744 [info] Ocena gibanja: 1.456389 Hz [info] Premik slikovnih pik: 611 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 468 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 371 [info] Ocena gibanja: 1.456389 Hz [info] Premik slikovnih pik: 307 [info] Ocena gibanja: 1.456389 Hz [info] Premik slikovnih pik: 270 [info] Ocena gibanja: 1.456389 Hz [info] Premik slikovnih pik: 234 [info] Ocena gibanja: 1.456389 Hz [info] Premik slikovnih pik: 197 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 179 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 164 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 239 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 733 [info] Ocena gibanja: 1.456389 Hz [info] Gibanje slikovnih pik: 686 [info] Ocena gibanja: 1.229389 Hz [info] Premik slikovnih pik: 667 [info] Ocena gibanja: 1.229389 Hz [info] Premik slikovnih pik: 607 [info] Ocena gibanja: 1.229389 Hz [info] Gibanje slikovnih pik: 544 [info] Ocena gibanja: 1.229389 Hz [info] Gibanje slikovnih pik: 499 [info] Ocena gibanja: 1.229389 Hz [info] Premik slikovnih pik: 434 [info] Ocena gibanja: 1.229389 Hz [info] Gibanje slikovnih pik: 396 [info] Ocena gibanja: 1.229389 Hz [info] Gibanje slikovnih pik: 375 [info] Ocena gibanja: 1.229389 Hz [info] Gibanje slikovnih pik: 389 [info] Ocena gibanja: 1.229389 Hz [info] Gibanje slikovnih pik: 305 [info] Ocena gibanja: 1.312346 Hz [info] Gibanje slikovnih pik: 269 [info] Ocena gibanja: 1.312346 Hz [info] Premik slikovnih pik: 1382 [info] Gibanje E premer: 1,312346 Hz [info] Gibanje slikovnih pik: 1086 [info] Ocena gibanja: 1,312346 Hz [info] Premik slikovnih pik: 1049 [info] Ocena gibanja: 1,312346 Hz [info] Premik slikovnih pik: 811 [info] Ocena gibanja: 1,312346 Hz [info] Gibanje slikovnih pik: 601 [info] Ocena gibanja: 1.312346 Hz [info] Gibanje slikovnih pik: 456 [info] Ocena gibanja: 1.312346 Hz

Prilagodite pixel_threshold in diff_threshold, dokler niso vidni samo vrhovi, sicer pa je premik slikovnih pik 0.

8. korak: demonstracija

Image
Image

Tukaj je majhen demo, kako deluje CribSense. Predstavljati si boste morali, da je ta pritrjen na stran jaslic.

Ko postavite CribSense nad posteljico, boste morali optimizirati razdaljo med dojenčkom in kamero. V idealnem primeru bodo prsi vašega dojenčka zapolnile manj kot 1/3 okvirja. Otrok ne sme biti predaleč, sicer bo videoposnetek z nizko ločljivostjo težko našel dovolj podrobnosti za povečavo. Če je fotoaparat preblizu, fotoaparat morda ne bo videl vašega otroka, če se zvije ali premakne iz kadra. Podobno, če je otrok pod "šotorsko" odejo, kjer je med odejo in otrokovim prsnim košem omejen stik, bo morda težko zaznati gibanje. Dobro jih prilepi!

Prav tako boste želeli razmisliti o razsvetljavi okoli vaše jaslice. Če je vaša posteljica tik ob oknu, se lahko pojavijo premikajoče se sence ali spreminjajo vrednosti svetlobe, ker sonce zapirajo oblaki, ali pa se gibanje zgodi zunaj okna. Nekje z enakomerno osvetlitvijo je najbolje.

Z nekaj več dela menimo, da bi lahko kdo izboljšal našo programsko opremo, tako da je kalibracija veliko lažji proces. V prihodnosti bi lahko dodali tudi dodatne funkcije, kot so potisna obvestila.

9. korak: Odpravljanje težav

Pri nastavitvi CribSense boste morda naleteli na nekaj pogostih težav. Na primer, imate težave pri sestavljanju/izvajanju programa ali ne slišite zvoka. Ne pozabite, da CribSense ni popolnoma zanesljiv varuh za dojenčke. Veseli bomo prispevkov v našem skladišču GitHub, ko boste izboljšali!

Tukaj je nekaj nasvetov za odpravljanje težav, ki smo jih zbrali pri izdelavi CribSense.

Ne predvaja se alarm

  • Ali vaši zvočniki delujejo?
  • Ali lahko predvajate druge zvoke iz Pi zunaj alarma CribSense?
  • Če vaš Pi poskuša predvajati zvok prek HDMI in ne avdio vrat? Preverite stran za konfiguracijo zvoka Raspberry Pi in se prepričajte, da ste izbrali pravilen izhod.
  • Ali programska oprema CribSense zazna gibanje? Če CribSense deluje v ozadju, lahko preverite z journalctl -f v terminalu.
  • Če CribSense zazna veliko gibanja, boste morda morali kalibrirati CribSense.

IR LED ne deluje

  • Ali lahko opazite šibko rdečo barvo, ko pogledate IR LED? Rahlo rdeč obroč mora biti viden, ko sveti LED.
  • Preverite polarnost povezav. Če sta +5V in GND obrnjena, ne bo delovalo.
  • Priključite LED na napajalnik z omejitvijo napetosti/toka 5V/0.5A. Običajno bi moral porabiti 0,2A pri 5V. V nasprotnem primeru LED morda ne deluje pravilno.

CribSense zazna gibanje, čeprav ni dojenčka

  • Ali ste pravilno kalibrirali CribSense?
  • Ne pozabite, da CribSense samo išče spremembe v vrednostih slikovnih pik

    • Ali se znotraj okvirja premikajo sence?
    • Ali utripa ali se spreminja osvetlitev?
    • Ali je CribSense nameščen na stabilno površino (to je nekaj, kar se ne bo treselo, če bodo ljudje hodili po njem)?
    • Ali obstajajo drugi viri gibanja v okvirju (ogledala, ki lovijo odseve itd.)?

CribSense NE zazna gibanja, čeprav obstaja

  • Ali ste pravilno kalibrirali CribSense?
  • Je kaj na poti kamere?
  • Ali se sploh lahko povežete s kamero iz Raspberry Pi? Preverite tako, da v terminalu zaženete raspistill -v, da za nekaj sekund odprete kamero na Pi.
  • Če pogledate sudo systemctl status cribsense, ali se CribSense dejansko izvaja?
  • Ali je vaš dojenček pod odejo, ki je "postavljena" navzgor, da ne vzpostavlja stika z otrokom? Če so med odejo in otrokom velike zračne reže, lahko odeja prikrije gibanje.
  • Ali lahko vidite gibanje, če video povečate?
  • Ali lahko vidite gibanje, če nastavite nizke in visoke frekvence?
  • Če se to dogaja samo pri šibki svetlobi, ste se prepričali, da kalibracija deluje pri šibki svetlobi?

CribSense se ne gradi

Ali ste namestili vse odvisnosti?

Ne morem zagnati cribsense iz ukazne vrstice

  • Ali ste med zagonom programske opreme pomotoma kaj napačno vtipkali./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug?
  • Ali je cribsense prisoten v /usr /bin?
  • Kakšna pot je na voljo, če zaženete "which cribsense"?

Priporočena: