Obsah:

CribSense: bezkontaktný video monitor založený na videu: 9 krokov (s obrázkami)
CribSense: bezkontaktný video monitor založený na videu: 9 krokov (s obrázkami)

Video: CribSense: bezkontaktný video monitor založený na videu: 9 krokov (s obrázkami)

Video: CribSense: bezkontaktný video monitor založený na videu: 9 krokov (s obrázkami)
Video: Leap Motion SDK 2024, November
Anonim
CribSense: bezkontaktná video opatrovateľka založená na videu
CribSense: bezkontaktná video opatrovateľka založená na videu
CribSense: bezkontaktná video opatrovateľka založená na videu
CribSense: bezkontaktná video opatrovateľka založená na videu

CribSense je bezkontaktná detská pestúnka na videu, ktorú si môžete vyrobiť sami, bez toho, aby ste museli minúť banku

CribSense je implementácia Zväčšenia videa v C ++, vyladená tak, aby fungovala na Raspberry Pi 3 Model B. Cez víkend si môžete nastaviť vlastnú detskú postieľku, ktorá spustí alarm, ak sa vaše dieťa prestane pohybovať. Ako bonus je všetok softvér voľne použiteľný na nekomerčné účely a je ľahko rozšíriteľný.

Úplné úložisko obsahujúce zdrojové súbory a dokumentáciu nájdete na

Aj keď si myslíme, že CribSense je celkom zábavná, je dôležité si uvedomiť, že v skutočnosti nejde o certifikované a spoľahlivé bezpečnostné zariadenie. To znamená, že na to, aby fungoval, musí byť správne nakonfigurovaný a mať dobre kontrolované prostredie. Ak napríklad nie je správne nakalibrovaný a/alebo prostredie vo videu neprispieva k zväčšeniu videa, možno ho nebudete môcť použiť. Vytvorili sme to ako zábavný projekt, aby sme zistili, ako dobre môžeme mať výpočtový softvér, ako je zväčšenie videa, spustený na hardvéri obmedzenom na výpočet, ako je Raspberry Pi. Akýkoľvek skutočný produkt by vyžadoval oveľa viac testovania, ako sme urobili. Ak teda používate tento projekt, vezmite ho taký, aký je: krátke skúmanie zväčšenia videa na Pi.

Čo budete potrebovať:

Raspberry Pi + kamera + konfiguračné nástroje:

  • Raspberry Pi 3 Model B
  • Napájací zdroj Micro USB 5V 2,5A
  • Kamerový modul Raspberry Pi NoIR V2
  • Karta MicroSD (použili sme kartu 16 GB triedy 10)
  • Flex kábel pre kameru Raspberry Pi (12 ")
  • Reproduktory so vstupom 3,5 mm
  • HDMI monitor
  • USB klávesnica
  • USB myš
  • [voliteľné] Chladič Raspberry Pi (ak vám robí starosti teplo, môžete jeden z nich prilepiť na svoj Pi)

IR LED obvod pre prevádzku pri slabom osvetlení:

  • [3x] 1N4001 diódy
  • 1 ohm, 1W odpor
  • 1W IR LED
  • 2 vodiče na zavesenie LED na Pi
  • Spájkovačka

Podvozok:

  • Prístup k 3D tlačiarni (minimálny stavebný objem = 9,9 palcov x 7,8 palcov x 5,9 palcov H) vám umožní vytlačiť naše šasi. Môžete si však vytvoriť vlastnú.
  • Lepidlo (akýkoľvek typ lepidla bude fungovať, ale na prototypovanie sa odporúča horúce lepidlo).

Krok 1: Predpoklady

Pred spustením nášho podrobného sprievodcu by ste už mali mať na svojej SD karte nainštalovanú najnovšiu verziu Raspbian a zaistiť funkčnosť vášho Pi. Pred prístupom ku kamere budete tiež musieť povoliť modul kamery.

Krok 2: Inštalácia softvéru CribSense

CribSense závisí od autoconf, libtool, OpenCV a libcanberra, ako aj od bežných softvérových nástrojov.

  • autoconf a libtool sa používajú na automatickú konfiguráciu súborov makefiles a vytváranie skriptov pre CribSense na mnohých platformách (ako Linux, OSX a Raspberry Pi).
  • OpenCV je výkonný balík počítačového videnia, ktorý sa používa na spracovanie obrazu a je základom kódu pre zväčšenie videa a detekciu pohybu. Má skvelú podporu, ľahko sa používa a má dobrý výkon.
  • libcanberra je jednoduchá knižnica na prehrávanie zvukov udalostí. Slúži na prehrávanie zvuku budíka pre CribSense.

Ak chcete získať úplné informácie, navštívte ich jednotlivé stránky.

Nainštalujte ich otvorením terminálu na počítači Pi a spustením:

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

Ďalej musíte nastaviť automatické načítanie ovládača kamery pridaním bcm2835-v4l2 do `/etc/modules-load.d/modules.conf`. Váš modules.conf by mal vyzerať takto:

# /etc /modules: moduly jadra, ktoré sa majú načítať pri štarte.

# # Súbor obsahuje názvy modulov jadra, ktoré by sa mali načítať # pri štarte, jeden na riadok. Riadky začínajúce sa „#“sa ignorujú. i2c-dev bcm2835-v4l2

Akonáhle je súbor upravený, musíte reštartovať Pi. Tento ovládač používa spoločnosť CribSense na priame sťahovanie rámcov z kamery NoIR.

Potom môžete klonovať úložisko spustením:

klon git

Ďalej sa presuňte do úložiska a vytvorte softvér spustením

cd CribSense

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

Blahoželáme, nainštalovali ste všetok potrebný softvér!

Konfigurácia

CribSense je možné prispôsobiť pomocou jednoduchého konfiguračného súboru INI. Po spustení programu „make install` sa konfiguračný súbor nachádza na /etc/cribsense/config.ini. Tieto parametre môžete zobraziť a upraviť spustením

sudo nano /etc/cribsense/config.ini

Stručné vysvetlenie každého parametra je uvedené v predvolenej konfigurácii, ale ďalšie podrobnosti sú k dispozícii na https://lukehsiao.github.io/CribSense/setup/config/. O kalibrácii a konfigurácii budeme diskutovať aj na konci tejto príručky.

Spustenie CribSense

CribSense bol navrhnutý tak, aby bežal pri štarte pomocou služby systemd. Kým ste k svojmu Raspberry Pi pripojení pomocou klávesnice a myši, mali by ste sa uistiť, že konfiguračné parametre pre vašu detskú postieľku fungujú. Ak ho presuniete, bude možno potrebné tieto parametre znova vyladiť.

Počas ladenia parametrov môžete z príkazového riadku spustiť ľubovoľne cribsense spustením

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

Keď ste spokojní, môžete automatické spustenie povoliť spustením

sudo systemctl povoliť cribsense

Automatickému spusteniu cribsense môžete zabrániť spustením

sudo systemctl vypnúť cribsense

Prehľad softvéru

Softvér CribSense je srdcom a dušou tohto projektu. Videli sme niektoré zo skvelých ukážok zväčšenia videa od MIT a chceli sme skúsiť spustiť podobný algoritmus na Raspberry Pi. To si vyžadovalo viac ako 10-násobné zrýchlenie práce tbl3rd na jeho implementácii C ++ zväčšovania videa, aby bežal v reálnom čase na Pi. Pri navrhovaní softvéru sa riadili požadovanými optimalizáciami.

Na vysokej úrovni CribSense opakovane cykluje strojom stavového softvéru. Najprv rozdelí každý videosekvenciu s rozlíšením 640 x 480 v odtieňoch sivej na 3 horizontálne sekcie (640 x 160), aby zaistil lepšiu lokalitu vyrovnávacej pamäte. Potom zväčší každý pás v samostatnom vlákne a monitoruje pohyb videný v ráme. Po niekoľkosekundovom monitorovaní pohybu určí primárnu oblasť pohybu a orezá k nej rám. Tým sa zníži celkový počet pixelov, ktoré algoritmus potrebuje na spracovanie. Potom CribSense monitoruje množstvo pohybu v orezanom prúde a spustí alarm, ak počas konfigurovateľného času nie je vnímaný žiadny pohyb. CribSense bude pravidelne otvárať svoj pohľad, aby monitoroval celý záber v prípade, že sa dieťa pohlo a znova orezalo okolo novej primárnej oblasti pohybu.

Zväčšenie videa sa používa na zvýšenie pomeru signálu k šumu pri jemných pohyboch, ako je dýchanie dieťaťa. Nebolo by to potrebné pri väčších pohyboch, ale môže to pomôcť pri veľmi jemných pohyboch. Všimnite si toho, že naša implementácia je voľne založená na algoritme popísanom v článkoch MIT a nefunguje tak dobre ako ich proprietárny kód.

Optimalizácia, ako je viacvláknové spracovanie, adaptívne orezávanie a optimalizácia kompilátora, nám poskytla približne 3x, 3x a 1.2x zrýchlenie. To nám umožnilo dosiahnuť 10x zrýchlenie potrebné na spustenie v reálnom čase na Pi.

Úplné informácie nájdete na stránke Softvérová architektúra úložiska CribSense.

Ak vás zaujíma zväčšenie videa, navštívte stránku MIT.

Krok 3: Príprava hardvéru: Pripojte fotoaparát

Príprava hardvéru: Pripojte fotoaparát
Príprava hardvéru: Pripojte fotoaparát

Najprv vymeňte 6 palcový kábel dodaný s fotoaparátom za 12 palcový. Za týmto účelom môžete jednoducho postupovať podľa tohto návodu na výmenu kábla kamery.

Stručne povedané, na zadnej strane fotoaparátu uvidíte prítlačnú/vyťahovaciu západku, ktorú môžete vytiahnutím uvoľniť ohybný kábel. Vymeňte krátky kábel za dlhší a zasuňte úchytku späť.

Všimnite si, že na našich obrázkoch je 24 "kábel. Bol príliš dlhý. 12" kábel v zozname materiálov je oveľa rozumnejšia dĺžka.

Krok 4: Príprava hardvéru: IR LED

Príprava hardvéru: IR LED
Príprava hardvéru: IR LED
Príprava hardvéru: IR LED
Príprava hardvéru: IR LED
Príprava hardvéru: IR LED
Príprava hardvéru: IR LED

CribSense je relatívne ľahko zostaviteľný a je do značnej miery tvorený komerčne dostupnými časťami. Ako je vidieť na obrázku vyššie, existuje 5 hlavných hardvérových komponentov, z ktorých iba 2 sú vyrobené na mieru. Táto stránka vás prevedie konštrukciou obvodu IR LED a na ďalšej stránke sa pozrieme na konštrukciu podvozku.

Pre túto časť potrebujete svoju spájkovačku, drôty, diódy, infračervenú LED diódu a odpor. Budeme konštruovať obvod zobrazený na 2. obrázku. Ak s spájkovaním začínate, tu je milý sprievodca, ktorý vás dobehne. Aj keď táto príručka pojednáva o spájkovaní cez dieru, na pripojenie týchto komponentov k sebe môžete použiť rovnaké základné techniky, ako je to znázornené na 3. obrázku.

Aby sme v noci zaistili dostatočné osvetlenie, používame IR LED, ktorá nie je viditeľná pre ľudské oko, ale je viditeľná pre kameru NoIR. IR LED v porovnaní s Raspberry Pi nespotrebuje veľa energie, takže kvôli jednoduchosti nechávame IR LED zapnutú.

V starších verziách Pi bol maximálny prúdový výstup týchto kolíkov 50 mA. Raspberry Pi B+ zvýšil na 500mA. Na jednoduchosť však používame napájacie kolíky 5V, ktoré môžu dodávať až 1,5A. Predné napätie IR LED je podľa našich meraní asi 1,7 ~ 1,9V. Napriek tomu, že IR LED môže čerpať 500mA bez toho, aby sa poškodilo, znížime prúd na približne 200mA, aby sme znížili teplo a celkovú spotrebu energie. Experimentálne výsledky tiež ukazujú, že IR LED je dostatočne jasná so vstupným prúdom 200mA. Na preklenutie medzery medzi 5 V a 1,9 V používame tri diódy 1N4001 a odpor 1 Ohm v sérii s IR LED. Pokles napätia na drôte, diódach a odpore je asi 0,2 V, 0,9 V (pre každý z nich) a 0,2 V. Napätie cez IR LED je teda 5 V - 0,2 V - (3 * 0,9 V) - 0,2 V = 1,9 V. Odvod tepla cez LED je 0,18 W a 0,2 W cez odpor, to všetko v rámci svojich maximálnych výkonov.

Ale ešte nie sme hotoví! Aby sme sa lepšie zmestili do šasi s 3D tlačou, chceme, aby IR LED šošovka vyčnievala z nášho šasi a aby bola doska plošných spojov v jednej rovine s otvorom. Malá fotodióda vpravo dole bude prekážať. Aby sme to napravili, odpájame a prevrátime na opačnú stranu dosky, ako je to znázornené na posledných dvoch fotografiách. Fotodióda nie je potrebná, pretože chceme, aby LED dióda vždy svietila. Jednoduchým prepnutím na opačnú stranu zostane pôvodný obvod LED nezmenený.

Pri spájkovaní na drôty dbajte na to, aby boli drôty dlhé najmenej 12 palcov a mali kolíkové hlavičky, ktoré môžu prekĺznuť cez GPIO Pi.

Krok 5: Príprava hardvéru: podvozok

Príprava hardvéru: podvozok
Príprava hardvéru: podvozok
Príprava hardvéru: podvozok
Príprava hardvéru: podvozok
Príprava hardvéru: podvozok
Príprava hardvéru: podvozok

Zdrojové súbory:

  • Prípad STL
  • Case Makerbot
  • Obal STL
  • Kryt Makerbot

Na umiestnenie Pi, kamery a LED sme použili jednoduchý podvozok vytlačený 3D. Používanie nášho šasi je voliteľné, odporúča sa však, aby sa zabránilo kontaktu malých detí s odhalenými elektronickými obvodmi. Každá postieľka je iná, takže náš podvozok neobsahuje montážnu konzolu. Niekoľko možností montáže môže zahŕňať:

  • Sťahovacie pásky
  • 3M duálny zámok
  • Suchý zips
  • Páska

Ak máte prístup k replikátoru MakerBot (5. generácia), môžete si jednoducho stiahnuť súbory.makerbot pre puzdro a kryt do svojho replikátora MakerBot a vytlačiť. Vytlačenie puzdra trvá približne 6 hodín a vytlačenie obalu 3 hodiny. Ak používate iný typ 3D tlačiarne, čítajte ďalej.

Na tlač CribSense je potrebný minimálny stavebný objem 9,9 "(D) x 7,8" (Š) x 5,9 "(H). Ak nemáte prístup k 3D tlačiarni s týmto objemom zostavy, môžete použiť online 3D tlač. služba (napríklad Shapeways alebo Sculpteo) na tlač CribSense. Minimálne rozlíšenie tlače je 0,015 ". Ak používate 3D tlačiareň na výrobu fúznych vlákien, znamená to, že priemer trysky musí byť 0,015 "alebo menší. Tlačiarne s nižším rozlíšením tlače (väčšie priemery trysiek) môžu fungovať, ale Raspberry Pi sa nemusí do šasi zmestiť. Ako preferovaný tlačový materiál odporúčame PLA (kyselina polymliečna). Ostatné plasty môžu fungovať, ale Raspberry Pi nemusí vyhovovať v prípade, ak je koeficient tepelnej rozťažnosti zvoleného plastu väčší ako koeficient PLA. Ak má vaša 3D tlačiareň vyhrievanú konštrukčnú dosku, pred pokračovaním vypnite ohrievač.

Orientácia modelu na konštrukčnú dosku vašej tlačiarne je rozhodujúca pre úspešnú tlač. Tieto modely boli starostlivo navrhnuté, aby sa na ne nemuselo tlačiť podporným materiálom, čím sa šetrí plast a zlepšuje sa kvalita tlače. Predtým, ako budete pokračovať, stiahnite si 3D súbory pre puzdro a kryt. Pri tlači týchto modelov musí krk CribSense ležať naplocho na konštrukčnej doske. To zaisťuje, že všetky uhly previsu nepresahujú 45 stupňov, čím sa eliminuje požiadavka na podporný materiál. Pokyny na orientáciu 3D modelov v zostave vašej tlačiarne nájdete v návode na použitie, ktorý je dodávaný s vašou 3D tlačiarňou. Príklady orientácie konštrukcie puzdra a krytu sú uvedené vyššie.

Okrem toho, že priložíte krk CribSense k plošine, môžete si všimnúť, že sa modely otáčajú okolo zvislej osi. To môže byť potrebné, aby sa model zmestil do objemu zostavy vašej 3D tlačiarne. Toto otočenie je voliteľné, ak je dĺžka vášho zostavovacieho zväzku dostatočne dlhá na to, aby vyhovovala CribSense.

Krok 6: Príprava hardvéru: Zostavenie

Príprava hardvéru: Zostavenie
Príprava hardvéru: Zostavenie
Príprava hardvéru: Zostavenie
Príprava hardvéru: Zostavenie
Príprava hardvéru: Zostavenie
Príprava hardvéru: Zostavenie
Príprava hardvéru: Zostavenie
Príprava hardvéru: Zostavenie

Akonáhle budete mať všetok hardvér pripravený, môžete začať s montážou. V tomto procese je možné použiť akékoľvek lepidlo, ale horúce lepidlo odporúčame z dvoch hlavných dôvodov. Horúce lepidlo rýchlo schne, takže nemusíte dlho čakať, kým lepidlo zaschne. Horúce lepidlo je navyše odstrániteľné, ak urobíte chybu. Na odstránenie zaschnutého horúceho lepidla namočte horúce lepidlo do trecieho (izopropyl) alkoholu. Odporúčame 90% alebo viac koncentrácie, ale 70% koncentrácia bude stále fungovať. Namočenie sušeného horúceho lepidla do izopropylalkoholu oslabí spojenie medzi lepidlom a podkladovým povrchom, čo vám umožní lepidlo čisto odlepiť. Keď namáčate lepidlo v izopropylalkohole, malinu Raspberry Pi vypnite a odpojte zo zásuvky. Pred opätovným nanesením horúceho lepidla a zavedením systému Raspberry Pi nezabudnite všetko vysušiť.

Všetky obrázky pre tieto kroky sú v poriadku a postupujú spolu s textovými krokmi.

  1. Vložte Raspberry Pi do šasi. Budete musieť trochu ohnúť, aby ste dostali zvukový port, ale akonáhle je, zvukový konektor ho udrží na svojom mieste. Akonáhle je na mieste, zaistite, aby bol stále prístupný všetky porty (napr. Môžete zapojiť napájací kábel).
  2. Potom pomocou horúceho lepidla prichyťte Pi na miesto a pripevnite k nemu kameru. K dispozícii sú aj otvory pre skrutky, ak ich chcete použiť.
  3. Teraz prilepte diódu LED a fotoaparát k prednému krytu (na obrázku). Začnite horúcim prilepením kamery NoIR do otvoru pre kameru. Uistite sa, že je fotoaparát tesne priliehajúci k rámu. Nepoužívajte príliš veľa lepidla; v opačnom prípade nebudete môcť kameru vložiť do hlavného puzdra. Nezabudnite zapnúť Pi a pozrieť sa na kameru (napríklad „raspistill -v`), aby ste sa presvedčili, že je dobre naklonená a má dobré zorné pole. Ak nie je, odstráňte horúce lepidlo a premiestnite ho.
  4. Ďalej prilepte IR LED dieru k hrdlu krytu. Krk je v uhle 45 stupňov k bočnému osvetleniu postieľky, čo má za následok viac tieňov v situáciách so slabým osvetlením. To dodáva obrázku väčší kontrast, čo uľahčuje detekciu pohybu.
  5. Pripojte káble IR LED k kolíkom záhlavia Raspberry Pi, ako je znázornené na schematickom obrázku.
  6. Zabaľte káble do šasi spôsobom, ktorý ich nemačká ani nenamáha. Nakoniec sme zložili štýl káblového akordeónu, pretože náš flexibilný kábel pre fotoaparát bol príliš dlhý.
  7. So všetkým zastrčeným, horúcim lepidlom okolo okrajov, kde sa oba kusy stretávajú, utesnite ich na mieste.

Krok 7: Kalibrácia

Image
Image
Kalibrácia
Kalibrácia

Podrobnosti o konfiguračných parametroch nájdete v dokumentácii k archívu CribSense. Tiež si pozrite video a uvidíte príklad, ako by ste mohli kalibrovať CribSense potom, čo máte všetko nastavené.

Tu je ukážka konfiguračného súboru:

[io]; Konfigurácia I/O

; vstup = cesta_na_subor; Vstupný súbor na použitie input_fps = 15; vstupný fps (maximálne 40, pri použití fotoaparátu sa odporúča 15) full_fps = 4,5; fps, pri ktorých je možné spracovať celé snímky, crop_fps = 15; fps, pri ktorých je možné spracovať orezané snímky kamera = 0; Fotoaparát použije šírku = 640; Šírka výšky vstupného videa = 480; Výška vstupného videa time_to_alarm = 10; Koľko sekúnd čakať bez pohybu pred poplachom. [orezanie]; Nastavenia adaptívneho orezania plodina = true; Či orezať alebo nie orezať frames_to_settle = 10; # snímok na počkanie po vynulovaní pred spracovaním roi_update_interval = 800; # snímky medzi prepočtom ROI roi_window = 50; # snímok na monitorovanie pred zvolením NI [pohyb]; Nastavenia detekcie pohybu erode_dim = 4; rozmer jadra erózie dilate_dim = 60; dimenzia dilatovaného jadra diff_threshold = 8; pred rozpoznaním trvania zmeny je potrebný rozdiel abs = 1; # snímok na udržanie pohybu pred nahlásením true pixel_threshold = 5; # pixelov, ktoré sa musia líšiť, aby boli označené ako pohybová show_diff = false; zobraziť rozdiel medzi 3 snímkami [zväčšenie]; Nastavenia zväčšenia videa sa zosilňujú = 25; Požadované % zosilnenia pri nízkych medziach = 0,5; Nízka frekvencia pásma. horná hranica = 1,0; Vysoká frekvencia pásma. prahová hodnota = 50; Fázový prah ako % pí. show_magnification = false; Zobraziť výstupné snímky každého zväčšenia [ladenie] print_times = false; Časy analýzy tlače

Kalibrácia algoritmu je iteračná námaha bez presného riešenia. Odporúčame vám experimentovať s rôznymi hodnotami a kombinovať ich s funkciami ladenia, aby ste našli kombináciu parametrov, ktorá je pre vaše prostredie najvhodnejšia. Pred spustením kalibrácie sa uistite, že show_diff a show_magnification je nastavená na true.

Je pravidlom, že zvýšenie hodnôt zosilnenia a prahových hodnôt fázy zvýši množstvo zväčšenia použitého na vstupné video. Tieto hodnoty by ste mali meniť, kým jasne neuvidíte pohyb, ktorý chcete sledovať, vo video zábere. Ak vidíte artefakty, môže pomôcť zníženie prahu fázy_ pri zachovaní rovnakého zosilnenia.

Parametre detekcie pohybu pomáhajú kompenzovať hluk. Pri detekcii pohybových oblastí sa erode_dim a dilate_dim používajú na dimenzovanie rozmerov jadier OpenCV používaných na eróziu a dilatáciu pohybu tak, aby sa najskôr erodoval šum, potom sa zostávajúci pohybový signál výrazne rozšíri, aby boli pohybové oblasti zrejmé. Tieto parametre bude možno potrebné vyladiť aj vtedy, ak je vaša postieľka nastavená na veľmi vysoký kontrast. Vo všeobecnosti budete na nastavenie vysokého kontrastu potrebovať vyšší erode_dim a na nízky kontrast nižší erode_dim.

Ak spustíte CribSense s show_diff = true a všimnete si, že príliš veľa výstupu z akumulátora je biele alebo sa nejaká úplne nesúvisiaca časť videa detekuje ako pohyb (napr. Blikajúca lampa), zvyšujte erode_dim, kým sa nezobrazí iba časť videa. zodpovedajúce vášmu dieťaťu je najväčšia časť bielej farby. Prvý obrázok ukazuje príklad, kde je rozmer erózie príliš nízky na množstvo pohybu v rámci, zatiaľ čo ďalší ukazuje dobre kalibrovaný rámec.

Akonáhle je toto kalibrované, uistite sa, že je prahová hodnota pixelov nastavená na takú hodnotu, aby „Pohyb pixelov“hlásil iba maximálne hodnoty pohybu pixelov, a nie všetky (čo znamená, že musíte obmedziť šum). V ideálnom prípade uvidíte takýto výstup vo svojom termináli, kde je jasný periodický obrazec zodpovedajúci pohybu:

[info] Pohyb pixelov: 0 [info] Odhad pohybu: 1,219812 Hz

[info] Pohyb pixelov: 0 [info] Odhad pohybu: 1,219812 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 1,219812 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 1,219812 Hz [info] Pohyb pixelov: 44 [info] Odhad pohybu: 1,219812 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 1,219812 Hz [info] Pohyb pixelov: 161 [info] Odhad pohybu: 1,219812 Hz [info] Pohyb pixelov: 121 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 86 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pixel Movem ent: 0 [info] odhad pohybu: 0,841416 Hz [info] pohyb pixelov: 0 [info] odhad pohybu: 0,841416 Hz [info] pohyb pixelov: 0 [info] odhad pohybu: 0,841416 Hz [info] pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 97 [info] Odhad pohybu: 0,841416 Hz [info] Pohyb pixelov: 74 [info] Odhad pohybu: 0,839298 Hz [info] Pixel Pohyb: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 60 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 48 [info] Pohyb Odhad: 0,839298 Hz [info] Pohyb pixelov: 38 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 29 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 28 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 22 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz [info] Pohyb pixelov: 0 [info] Odhad pohybu: 0,839298 Hz

Ak váš výstup vyzerá takto:

[info] Pohyb pixelov: 921 [info] Odhad pohybu: 1,352046 Hz

[info] Pohyb pixelov: 736 [info] Odhad pohybu: 1,352046 Hz [info] Pohyb pixelov: 666 [info] Odhad pohybu: 1,352046 Hz [info] Pohyb pixelov: 663 [info] Odhad pohybu: 1,352046 Hz [info] Pohyb pixelov: 1196 [info] Odhad pohybu: 1,352046 Hz [info] Pohyb pixelov: 1235 [info] Odhad pohybu: 1,352046 Hz [info] Pohyb pixelov: 1187 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 1115 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 959 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 744 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 611 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 468 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 371 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 307 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 270 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 234 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 197 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 179 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 164 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 239 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 733 [info] Odhad pohybu: 1,456389 Hz [info] Pohyb pixelov: 686 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 667 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 607 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 544 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 499 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 434 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 396 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 375 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 389 [info] Odhad pohybu: 1,229389 Hz [info] Pohyb pixelov: 305 [info] Odhad pohybu: 1,312346 Hz [info] Pohyb pixelov: 269 [info] Odhad pohybu: 1,312346 Hz [info] Pohyb pixelov: 1382 [info] Pohyb E stimulovať: 1,312346 Hz [info] Pohyb pixelov: 1086 [info] Odhad pohybu: 1,312346 Hz [info] Pohyb pixelov: 1049 [info] Odhad pohybu: 1,312346 Hz [info] Pohyb pixelov: 811 [info] Odhad pohybu: 1,312346 Hz [info] Pohyb pixelov: 601 [info] Odhad pohybu: 1,312346 Hz [info] Pohyb pixelov: 456 [info] Odhad pohybu: 1,312346 Hz

Nastavte pixel_threshold a diff_threshold tak, aby boli viditeľné iba špičky, a pohyb pixelov je 0.

Krok 8: Ukážka

Image
Image

Tu je malá ukážka toho, ako CribSense funguje. Budete si musieť predstaviť, že je pripevnený k boku detskej postieľky.

Keď umiestnite CribSense na detskú postieľku, budete musieť optimalizovať vzdialenosť medzi kojencom a kamerou. V ideálnom prípade hrudník vášho dieťaťa vyplní menej ako 1/3 rámu. Dieťa by nemalo byť príliš ďaleko, inak sa video s nízkym rozlíšením bude snažiť nájsť dostatok podrobností na zväčšenie. Ak je fotoaparát príliš blízko, fotoaparát nemusí vidieť vaše dieťa, ak sa skotúľa alebo sa pohne z rámu. Podobne, ak je dieťa pod „stanovou“dekou, kde je obmedzený kontakt medzi prikrývkou a hrudníkom dieťaťa, môže byť ťažké rozpoznať pohyb. Dobre ich zastrčte!

Budete tiež chcieť zvážiť svetelnú situáciu okolo vašej postieľky. Ak je vaša postieľka hneď vedľa okna, môžu sa vám pohybovať pohybujúce sa tiene alebo meniť svetelné hodnoty, pretože slnko je blokované mrakmi alebo sa pohyb deje za oknom. Najlepšie je niekde s konzistentným osvetlením.

S trochou ďalšej práce si myslíme, že by niekto mohol vylepšiť náš softvér, aby bola kalibrácia oveľa plynulejší. V budúcnosti by mohli byť pridané aj ďalšie funkcie, ako napríklad push notifikácie.

Krok 9: Riešenie problémov

Pri nastavovaní CribSense sa môžete stretnúť s niekoľkými bežnými problémami. Napríklad máte problémy so zostavením/spustením programu alebo nepočujete žiadny zvuk. Nezabudnite, že CribSense nie je úplne spoľahlivá opatrovateľka. Pri vykonávaní vylepšení by sme privítali príspevky v našom úložisku GitHub!

Tu je niekoľko tipov na riešenie problémov, ktoré sme zhromaždili pri vytváraní CribSense.

Nehrá žiadny alarm

  • Fungujú vaše reproduktory?
  • Môžete prehrávať iné zvuky z Pi mimo alarmu CribSense?
  • Ak sa váš Pi pokúša prehrávať zvuk cez HDMI, nie cez zvukový port? Na stránke konfigurácie zvuku Raspberry Pi skontrolujte, či ste vybrali správny výstup.
  • Detekuje softvér CribSense pohyb? Ak je CribSense spustený na pozadí, môžete to skontrolovať pomocou journalctl -f v termináli.
  • Ak CribSense zaznamenáva veľký pohyb, možno budete musieť kalibrovať CribSense.

IR LED dióda nefunguje

  • Vidíte pri pohľade na IR LED slabo červenú farbu? Keď svieti dióda LED, mal by byť viditeľný slabý červený krúžok.
  • Skontrolujte polaritu pripojení. Ak sú +5V a GND obrátené, nebude to fungovať.
  • Pripojte LED k napájaciemu zdroju s limitom napätia/prúdu 5V/0,5A. Normálne by mal spotrebovať 0,2 A pri 5V. Ak sa tak nestane, vaša LED dióda môže fungovať nesprávne.

CribSense detekuje pohyb, aj keď neexistuje žiadne dieťa

  • Vykonali ste správnu kalibráciu CribSense?
  • Nezabudnite, že CribSense len hľadá zmeny v hodnotách pixelov

    • Pohybujú sa v ráme nejaké tiene?
    • Bliká alebo sa mení osvetlenie?
    • Je CribSense namontovaný na stabilnom povrchu (t.j. niečo, čo sa nebude triasť, ak okolo neho budú chodiť ľudia)?
    • Existujú v ráme ďalšie zdroje pohybu (zrkadlá zachytávajúce odrazy, atď.)?

CribSense NIE JE detegovateľný pohyb, aj keď je tu pohyb

  • Vykonali ste správnu kalibráciu CribSense?
  • Je niečo v ceste fotoaparátu?
  • Dokážete sa vôbec pripojiť k fotoaparátu z Raspberry Pi? Skontrolujte to spustením raspistill -v v termináli, aby ste na niekoľko sekúnd otvorili kameru na Pi.
  • Ak sa pozriete na sudo systemctl status cribsense, skutočne funguje CribSense?
  • Je vaše dieťa pod prikrývkou, ktorá je „stanovaná“, aby neprišlo do kontaktu s dieťaťom? Ak sú medzi prikrývkou a dieťaťom značné vzduchové medzery, prikrývka môže maskovať pohyb.
  • Vidíte ten pohyb, ak video ešte viac umocňujete?
  • Vidíte pohyb, ak naladíte prahy nízkych a vysokých frekvencií?
  • Ak sa to deje iba pri slabom osvetlení, ubezpečili ste sa, že vaša kalibrácia funguje pri slabom osvetlení?

CribSense sa nesestavuje

Nainštalovali ste všetky závislosti?

Nemôžem spustiť cribsense z príkazového riadku

  • Nesprávne ste pri vytváraní softvéru niečo nesprávne zadali pri spustení./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug?
  • Je v /usr /bin prítomný cribsense?
  • Aká cesta je k dispozícii, ak spustíte „ktorý cribsense“?

Odporúča: