Obsah:

CribSense: bezkontaktní video monitor založený na videu: 9 kroků (s obrázky)
CribSense: bezkontaktní video monitor založený na videu: 9 kroků (s obrázky)

Video: CribSense: bezkontaktní video monitor založený na videu: 9 kroků (s obrázky)

Video: CribSense: bezkontaktní video monitor založený na videu: 9 kroků (s obrázky)
Video: CribSenseSetup 2024, Listopad
Anonim
CribSense: bezkontaktní dětská chůva založená na videu
CribSense: bezkontaktní dětská chůva založená na videu
CribSense: bezkontaktní dětská chůva založená na videu
CribSense: bezkontaktní dětská chůva založená na videu

CribSense je bezkontaktní dětská chůva založená na videu, kterou si můžete vyrobit sami, aniž byste narušili banku

CribSense je implementace zvětšení videa v jazyce C ++ vyladěná tak, aby fungovala na Raspberry Pi 3 Model B. Přes víkend si můžete nastavit vlastní dětskou chůvičku, která spustí alarm, pokud se vaše dítě přestane pohybovat. Jako bonus je veškerý software volně použitelný pro nekomerční účely a je snadno rozšiřitelný.

Úplné úložiště obsahující zdrojové soubory a dokumentaci najdete na

I když si myslíme, že je CribSense docela zábavná, je důležité si uvědomit, že se ve skutečnosti nejedná o certifikované a spolehlivé bezpečnostní zařízení. To znamená, že aby fungovalo, musí být správně nakonfigurováno a mít dobře kontrolované prostředí. Pokud například není dobře kalibrován a/nebo prostředí ve videu nepřispívá ke zvětšení videa, je možné, že jej nebudete moci použít. Udělali jsme to jako zábavný projekt, abychom zjistili, jak dobře můžeme mít výpočetně náročný software, jako je zvětšení videa, spuštěný na hardwaru omezeném na výpočet, jako je Raspberry Pi. Jakýkoli skutečný produkt by vyžadoval mnohem více testování, než jsme provedli. Pokud tedy používáte tento projekt, vezměte ho tak, jaký je: krátký průzkum zvětšení videa na Pi.

Co budete potřebovat:

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

  • Raspberry Pi 3 Model B
  • Napájecí zdroj Micro USB 5V 2,5A
  • Kamerový modul Raspberry Pi NoIR V2
  • Karta MicroSD (použili jsme kartu 16 GB třídy 10)
  • Flex kabel pro kameru Raspberry Pi (12 ")
  • Reproduktory se vstupem 3,5 mm
  • HDMI monitor
  • USB klávesnice
  • USB myš
  • [volitelně] Chladič Raspberry Pi (pokud vám dělá starosti teplo, můžete jeden z nich nalepit na svůj Pi)

IR LED obvod pro provoz při slabém osvětlení:

  • [3x] 1N4001 diody
  • 1 Ohm, 1W odpor
  • 1W IR LED
  • 2 vodiče pro připojení LED k Pi
  • Páječka

Podvozek:

  • Přístup k 3D tiskárně (minimální objem sestavení = 9,9 "D x 7,8" Š x 5,9 "H) pro tisk našeho šasi. Neváhejte si však vytvořit vlastní.
  • Lepidlo (jakýkoli typ lepidla bude fungovat, ale pro prototypování se doporučuje horké lepidlo).

Krok 1: Předpoklady

Než spustíte našeho podrobného průvodce, měli byste mít již nainstalovanou nejnovější verzi Raspbian na SD kartu a zajistit, aby vaše Pi bylo funkční. Před přístupem ke kameře budete také muset povolit modul kamery.

Krok 2: Instalace softwaru CribSense

CribSense závisí na autoconf, libtool, OpenCV a libcanberra, stejně jako na běžných softwarových nástrojích.

  • autoconf a libtool se používají k automatické konfiguraci makefile a vytváření skriptů pro CribSense na mnoha platformách (jako Linux, OSX a Raspberry Pi).
  • OpenCV je výkonný balíček počítačového vidění, který se používá ke zpracování obrazu a je základem kódu pro zvětšení videa a detekci pohybu. Má skvělou podporu, snadno se používá a má dobrý výkon.
  • libcanberra je jednoduchá knihovna pro přehrávání zvuků událostí. Slouží k přehrávání zvuku alarmu pro CribSense.

Chcete -li získat úplné informace, navštivte jejich jednotlivé stránky.

Nainstalujte je otevřením terminálu na vašem Pi a spuštěním:

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

Dále je třeba nastavit automatické načítání ovladače kamery přidáním bcm2835-v4l2 do souboru/etc/modules-load.d/modules.conf`. Váš modules.conf by měl vypadat takto:

# /etc /modules: moduly jádra, které se mají načíst při spuštění.

# # Soubor obsahuje názvy modulů jádra, které by měly být načteny # při spuštění, jeden na řádek. Řádky začínající na „#“jsou ignorovány. i2c-dev bcm2835-v4l2

Jakmile je soubor upraven, musíte restartovat Pi. Tento ovladač používá CribSense k přímému stahování rámců z kamery NoIR.

Potom můžete úložiště naklonovat spuštěním:

klon git

Dále se přesuňte do úložiště a vytvořte software spuštěním

cd CribSense

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

Gratulujeme, nainstalovali jste veškerý potřebný software!

Konfigurace

CribSense lze přizpůsobit pomocí jednoduchého konfiguračního souboru INI. Po spuštění `make install` se konfigurační soubor nachází na /etc/cribsense/config.ini. Tyto parametry můžete zobrazit a upravit spuštěním

sudo nano /etc/cribsense/config.ini

Stručné vysvětlení každého parametru je uvedeno ve výchozí konfiguraci, ale další podrobnosti jsou k dispozici na https://lukehsiao.github.io/CribSense/setup/config/. Také budeme diskutovat o kalibraci a konfiguraci na konci této příručky.

Spuštění CribSense

CribSense byl navržen tak, aby běžel při spuštění pomocí služby systemd. Zatímco jste připojeni ke svému Raspberry Pi pomocí klávesnice a myši, měli byste se ujistit, že konfigurační parametry pro vaši postýlku fungují. Pokud je přesunete, bude možná nutné tyto parametry znovu vyladit.

Zatímco ladíte parametry, můžete z příkazového řádku spustit libovolně cribsense spuštěním

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

Jakmile budete spokojeni, můžete automatické spuštění povolit spuštěním

sudo systemctl povolit cribsense

Automatické spouštění cribsense můžete zastavit spuštěním

sudo systemctl zakáže cribsense

Přehled softwaru

Software CribSense je srdcem a duší tohoto projektu. Viděli jsme několik skvělých ukázek zvětšení videa od MIT a chtěli jsme zkusit spustit podobný algoritmus na Raspberry Pi. To vyžadovalo více než 10násobné zrychlení práce tbl3rd na jeho C ++ implementaci zvětšení videa, aby mohl běžet v reálném čase na Pi. Při návrhu softwaru se řídily požadované optimalizace.

Na vysoké úrovni CribSense opakovaně cykluje strojem stavu softwaru. Nejprve rozdělí každý video rámeček ve stupních šedi 640x480 na 3 horizontální části (640x160) pro lepší umístění mezipaměti. Poté zvětší každý pás v samostatném vlákně a sleduje pohyb pozorovaný v rámečku. Po několika sekundách sledování pohybu určí primární oblast pohybu a ořízne k ní rám. Tím se snižuje celkový počet pixelů, které musí algoritmus zpracovat. Poté CribSense monitoruje množství pohybu v oříznutém proudu a spustí alarm, pokud není po nastavitelnou dobu vnímán žádný pohyb. CribSense bude pravidelně znovu otevírat svůj pohled, aby monitoroval celý snímek v případě, že se dítě přestěhovalo a znovu ořízne novou novou oblast pohybu.

Zvětšení videa se používá ke zvýšení poměru signálu k šumu jemných pohybů, jako je dýchání kojenců. Nebylo by to nutné pro větší pohyby, ale může to pomoci pro velmi jemné pohyby. Všimněte si, že naše implementace je volně založená na algoritmu popsaném v dokumentech MIT a nefunguje tak dobře jako jejich vlastní kód.

Optimalizace, jako je multithreading, adaptivní oříznutí a optimalizace kompilátoru, nám poskytly přibližně 3x, 3x a 1.2x zrychlení. To nám umožnilo dosáhnout 10x zrychlení potřebného pro běh v reálném čase na Pi.

Úplné podrobnosti najdete na stránce Softwarová architektura úložiště CribSense.

Pokud vás zajímá zvětšení videa, navštivte stránku MIT.

Krok 3: Příprava hardwaru: Připojte fotoaparát

Příprava hardwaru: Připojte fotoaparát
Příprava hardwaru: Připojte fotoaparát

Nejprve vyměňte 6palcový kabel dodaný s fotoaparátem za 12palcový kabel. Chcete -li to provést, můžete jednoduše sledovat tento návod, jak vyměnit kabel kamery.

Stručně řečeno, na zadní straně fotoaparátu uvidíte jazýček push/pull, který můžete vytáhnout a uvolnit flex kabel. Vyměňte krátký kabel za delší a zatlačte jazýček zpět.

Všimnete si, že na našich obrázcích máme 24 "kabel. Byl příliš dlouhý. 12" kabel v seznamu materiálů je mnohem rozumnější délka.

Krok 4: Příprava hardwaru: IR LED

Příprava hardwaru: IR LED
Příprava hardwaru: IR LED
Příprava hardwaru: IR LED
Příprava hardwaru: IR LED
Příprava hardwaru: IR LED
Příprava hardwaru: IR LED

CribSense je relativně snadno konstruovatelný a je z velké části tvořen komerčně dostupnými díly. Jak je vidět na obrázku výše, existuje 5 hlavních hardwarových komponent, z nichž pouze 2 jsou vyráběny na zakázku. Tato stránka vás provede konstrukcí obvodu IR LED a další stránka pojednává o konstrukci podvozku.

Pro tuto část potřebujete páječku, vodiče, diody, IR LED a odpor. Budeme konstruovat obvod zobrazený na 2. obrázku. Pokud s pájením začínáte, zde je pěkný průvodce, který vás dožene. Zatímco tato příručka pojednává o pájení skrz otvor, můžete použít stejné základní techniky k propojení těchto součástí dohromady, jak je znázorněno na 3. obrázku.

Abychom zajistili dostatečné osvětlení v noci, používáme IR LED, která není viditelná lidským okem, ale je viditelná kamerou NoIR. IR LED ve srovnání s Raspberry Pi nespotřebovává mnoho energie, takže z důvodu jednoduchosti necháváme IR LED zapnutou.

V dřívějších verzích Pi byl maximální proudový výstup těchto pinů 50 mA. Raspberry Pi B+ zvýšil na 500mA. Pro jednoduchost však používáme napájecí kolíky 5V, které mohou dodávat až 1,5A. Dopředné napětí IR LED je podle našich měření asi 1,7 ~ 1,9V. Přestože IR LED může odebírat 500mA, aniž by se poškodila, snížíme proud na přibližně 200mA, abychom snížili teplo a celkovou spotřebu energie. Experimentální výsledky také ukazují, že IR LED je dostatečně jasná se vstupním proudem 200mA. K překlenutí mezery mezi 5 V a 1,9 V používáme tři diody 1N4001 a odpor 1 Ohm v sérii s IR LED. Pokles napětí na vodiči, diodách a odporu je asi 0,2 V, 0,9 V (pro každý z nich) a 0,2 V. Napětí na IR LED je tedy 5V - 0,2V - (3 * 0,9V) - 0,2V = 1,9V. Odvod tepla přes LED je 0,18 W a 0,2 W přes odpor, to vše v rámci jejich maximálních hodnot.

Ale ještě nejsme hotovi! Abychom lépe zapadli do 3D tištěného šasi, chceme, aby IR LED čočka vyčnívala z našeho šasi a aby deska PCB byla v jedné rovině s otvorem. Malá fotodioda vpravo dole překáží. Abychom to napravili, odpájíme ho a překlopíme na opačnou stranu desky, jak ukazuje poslední dvě fotografie. Fotodioda není potřeba, protože chceme, aby LED dioda vždy svítila. Pouhým přepnutím na opačnou stranu zůstane původní LED obvod beze změny.

Při pájení na vodiče se ujistěte, že jsou dráty dlouhé alespoň 12 palců a mají kolíkové hlavičky, které mohou proklouznout přes GPIO Pi.

Krok 5: Příprava hardwaru: šasi

Příprava hardwaru: Podvozek
Příprava hardwaru: Podvozek
Příprava hardwaru: Podvozek
Příprava hardwaru: Podvozek
Příprava hardwaru: Podvozek
Příprava hardwaru: Podvozek

Zdrojové soubory:

  • Případ STL
  • Case Makerbot
  • Kryt STL
  • Obal Makerbot

K uložení Pi, kamery a LED jsme použili jednoduchý 3D tištěný podvozek. Používání našeho šasi je volitelné, přestože se doporučuje, aby se zabránilo kontaktu malých dětí s odhalenými elektronickými obvody. Každá postýlka je jiná, takže náš podvozek neobsahuje montážní držák. Několik možností montáže může zahrnovat:

  • Stahovací pásky
  • 3M Dual Lock
  • Suchý zip
  • Páska

Pokud máte přístup k nástroji MakerBot Replicator (5. generace), můžete si jednoduše stáhnout soubory.makerbot pro pouzdro a kryt na svůj MakerBot Replicator a vytisknout. Vytištění pouzdra trvá přibližně 6 hodin a vytištění obalu 3 hodiny. Pokud používáte jiný typ 3D tiskárny, pokračujte ve čtení.

K tisku CribSense je vyžadován minimální objem sestavení 9,9 "(D) x 7,8" (Š) x 5,9 "(H). Pokud nemáte přístup k 3D tiskárně s tímto objemem sestavení, můžete použít online 3D tisk služba (například Shapeways nebo Sculpteo) k tisku CribSense. Minimální rozlišení tisku je 0,015 ". Pokud používáte 3D tiskárnu typu fúzního vlákna, znamená to, že průměr trysky musí být 0,015 "nebo menší. Tiskárny s nižším rozlišením tisku (větší průměry trysek) mohou fungovat, ale Raspberry Pi se nemusí do šasi vejít. Jako preferovaný tiskový materiál doporučujeme PLA (polymléčná kyselina). Jiné plasty mohou fungovat, ale Raspberry Pi nemusí vyhovovat v případě, že je koeficient tepelné roztažnosti zvoleného plastu větší než u PLA. Pokud má vaše 3D tiskárna vyhřívanou konstrukční desku, než budete pokračovat, vypněte ohřívač.

Orientace modelu na konstrukční desku vaší tiskárny je pro úspěšný tisk zásadní. Tyto modely byly pečlivě navrženy, aby nemusely být potištěny podpůrným materiálem, což šetří plast a zlepšuje kvalitu tisku. Než budete pokračovat, stáhněte si 3D soubory pro pouzdro a kryt. Při tisku těchto modelů musí krk CribSense ležet naplocho na stavěcí desce. Tím je zajištěno, že všechny úhly převisu u modelů nepřesahují 45 stupňů, čímž odpadá požadavek na podpůrný materiál. Pokyny k orientaci 3D modelů v objemu sestavení vaší tiskárny naleznete v návodu k obsluze, který je dodáván s vaší 3D tiskárnou. Příklady orientace sestavení pouzdra a krytu jsou uvedeny výše.

Kromě toho, že přiložíte krk CribSense k plošině, můžete si všimnout, že se modely otáčejí kolem svislé osy. To může být nutné, aby se model vešel do objemu sestavy vaší 3D tiskárny. Toto otočení je volitelné, pokud je délka svazku sestavení dostatečně dlouhá, aby vyhovovala CribSense.

Krok 6: Příprava hardwaru: Sestavení

Příprava hardwaru: Sestavení
Příprava hardwaru: Sestavení
Příprava hardwaru: Sestavení
Příprava hardwaru: Sestavení
Příprava hardwaru: Sestavení
Příprava hardwaru: Sestavení
Příprava hardwaru: Sestavení
Příprava hardwaru: Sestavení

Jakmile budete mít veškerý hardware připraven, můžete začít s montáží. V tomto procesu lze použít jakékoli lepidlo, ale horké lepidlo doporučujeme ze dvou hlavních důvodů. Horké lepidlo rychle schne, takže na zaschnutí lepidla nemusíte dlouho čekat. Horké lepidlo je navíc odstranitelné, pokud uděláte chybu. Chcete -li odstranit zaschlé horké lepidlo, namočte horké lepidlo do třecího (isopropyl) alkoholu. Doporučujeme 90% koncentraci nebo vyšší, ale 70% koncentrace bude stále fungovat. Namáčení zaschlého horkého lepidla v isopropylalkoholu oslabí spojení mezi lepidlem a podkladovým povrchem, což vám umožní lepidlo čistě odlepit. Při namáčení lepidla v isopropylalkoholu by měl být Raspberry Pi vypnutý a odpojený ze zásuvky. Před opětovným nanesením horkého lepidla a spuštěním Raspberry Pi nezapomeňte nechat vše zaschnout.

Všechny obrázky pro tyto kroky jsou v pořádku a postupujte společně s textovými kroky.

  1. Vložte Raspberry Pi do šasi. Budete muset trochu ohnout, abyste dostali zvukový port, ale jakmile je v, zvukový konektor jej udrží na svém místě. Jakmile je na svém místě, ujistěte se, že ke všem portům je stále přístup (např. Můžete připojit napájecí kabel).
  2. Poté pomocí horkého lepidla připevněte Pi na místo a připevněte kameru k Pi. Pokud dáváte přednost jejich použití, existují také otvory pro šrouby.
  3. Nyní přilepte LED a kameru k přednímu krytu (na obrázku). Začněte lepením kamery NoIR za tepla do otvoru pro kameru. Ujistěte se, že je kamera pohodlná a zarovnána se šasi. Nepoužívejte příliš mnoho lepidla; v opačném případě nebudete moci kameru vložit do hlavního pouzdra. Nezapomeňte zapnout Pi a podívat se na kameru (například „raspistill -v`), abyste se ujistili, že je dobře natočená a má dobré zorné pole. Pokud tomu tak není, odstraňte horké lepidlo a přemístěte jej.
  4. Dále přilepte IR LED k otvoru na hrdle krytu. Krk je pod úhlem 45 stupňů k postrannímu osvětlení postýlky, což má za následek více stínů v situacích se slabým osvětlením. To dodává obrazu větší kontrast a usnadňuje detekci pohybu.
  5. Připojte IR LED vodiče k pinům záhlaví Raspberry Pi, jak je znázorněno na schematickém obrázku.
  6. Zabalte kabely do šasi způsobem, který je nemačká ani nenamáhá. Nakonec jsme přeložili styl kabelového akordeonu, protože náš flex kabel kamery byl příliš dlouhý.
  7. Se vším zastrčeným, horkým lepidlem kolem okrajů, kde se oba kusy setkávají, utěsněním na místě.

Krok 7: Kalibrace

Image
Image
Kalibrace
Kalibrace

Podrobnosti o konfiguračních parametrech najdete v dokumentaci k úložišti CribSense. Také si prohlédněte video a podívejte se na příklad, jak můžete kalibrovat CribSense poté, co máte vše nastaveno.

Zde je ukázka konfiguračního souboru:

[io]; I/O konfigurace

; vstup = cesta_k_souboru; Vstupní soubor pro použití input_fps = 15; fps vstupu (max. 40, při použití kamery doporučeno 15) full_fps = 4,5; fps, při kterých lze zpracovávat celé snímky crop_fps = 15; fps, při kterých lze zpracovat oříznuté snímky kamera = 0; Kamera pro použití width = 640; Šířka výšky vstupního videa = 480; Výška vstupního videa time_to_alarm = 10; Kolik sekund čekat bez pohybu před poplachem. [oříznutí]; Nastavení adaptivního oříznutí oříznutí = true; Zda oříznout rámce_na_soudit = 10; # snímků počkat po resetu před zpracováním roi_update_interval = 800; # snímků mezi přepočtem ROI roi_window = 50; # snímků k monitorování před výběrem ROI [pohyb]; Nastavení detekce pohybu erode_dim = 4; rozměr erodujícího jádra dilate_dim = 60; rozměr dilatačního jádra diff_threshold = 8; před rozpoznáním trvání změny je zapotřebí rozdíl abs = 1; # snímků k udržení pohybu před označením true pixel_threshold = 5; # pixelů, které se musí lišit, aby bylo možné označit jako pohyb show_diff = false; zobrazit rozdíl mezi 3 snímky [zvětšení]; Zvětšení nastavení zvětšení videa = 25; Požadované procento zesílení s nízkou mezní hodnotou = 0,5; Nízká frekvence pásma. horní mez = 1,0; Vysoká frekvence pásma. práh = 50; Fázový práh jako % pí. show_magnification = false; Zobrazit výstupní snímky každého zvětšení [ladění] print_times = false; Časy analýzy tisku

Kalibrace algoritmu je iterativní úsilí bez přesného řešení. Doporučujeme experimentovat s různými hodnotami, kombinovat je s ladicími funkcemi a najít kombinaci parametrů, která je pro vaše prostředí nejvhodnější. Před zahájením kalibrace se ujistěte, že show_diff a show_magnification je nastavena na true.

Jako vodítko platí, že zvýšení hodnoty zesílení a prahové hodnoty fáze_ zvyšuje množství zvětšení aplikovaného na vstupní video. Tyto hodnoty byste měli měnit, dokud ve videorámečku jasně neuvidíte pohyb, který chcete sledovat. Pokud vidíte artefakty, může pomoci snížení prahu fáze při zachování stejného zesílení.

Parametry detekce pohybu pomáhají kompenzovat hluk. Při detekci pohybových oblastí se erode_dim a dilate_dim používají k dimenzování rozměrů jader OpenCV použitých k erodování a dilataci pohybu tak, že se nejprve eroduje šum, poté se zbývající pohybový signál výrazně rozšíří, aby byly oblasti pohybu zřejmé. Tyto parametry může být také nutné vyladit, pokud je vaše postýlka ve velmi vysokém kontrastu. Obecně budete pro nastavení vysokého kontrastu potřebovat vyšší erode_dim a pro nízký kontrast nižší erode_dim.

Pokud spustíte CribSense s show_diff = true a všimnete si, že příliš mnoho výstupu z akumulátoru je bílé, nebo je nějaká zcela nesouvisející část videa detekována jako pohyb (např. Blikající lampa), zvyšte erode_dim, dokud nebude zobrazena pouze část videa odpovídající vašemu dítěti je největší část bílé. První obrázek ukazuje příklad, kde je rozměr erody příliš nízký na množství pohybu v rámci, zatímco další ukazuje dobře kalibrovaný snímek.

Jakmile to bude zkalibrováno, ujistěte se, že je pixel_threshold nastaven na takovou hodnotu, že „Pixel Movement“hlásí pouze špičkové hodnoty pohybu pixelu, a ne všechny (což znamená, že je třeba omezit šum). V ideálním případě uvidíte výstup takto na vašem terminálu, kde je jasný periodický obrazec odpovídající pohybu:

[informace] Pohyb pixelů: 0 [informace] Odhad pohybu: 1,219812 Hz

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

Pokud váš výstup vypadá více takto:

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

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

Upravujte pixel_threshold a diff_threshold, dokud neuvidíte jen špičky a pohyb pixelu je 0.

Krok 8: Ukázka

Image
Image

Zde je malá ukázka toho, jak CribSense funguje. Budete si muset představit, že je připevněn ke straně postýlky.

Když umístíte CribSense na postýlku, budete muset optimalizovat vzdálenost mezi kojencem a kamerou. V ideálním případě hrudník vašeho dítěte vyplní méně než 1/3 rámu. Dítě by nemělo být příliš daleko, jinak se video s nízkým rozlišením bude snažit najít dostatek detailů ke zvětšení. Pokud je kamera příliš blízko, nemusí fotoaparát vidět vaše dítě, pokud se otočí nebo se odstěhuje z rámečku. Podobně pokud je dítě pod „stanovou“dekou, kde je omezený kontakt mezi dekou a hrudníkem dítěte, může být obtížné detekovat pohyb. Dobře je zastrčte!

Budete také chtít zvážit světelnou situaci kolem vaší postýlky. Pokud je vaše postýlka hned vedle okna, mohou se vám pohybovat stíny nebo měnit hodnoty světla, protože slunce je blokováno mraky nebo se pohyb děje za oknem. Nejlepší je někde s konzistentním osvětlením.

S trochou práce si myslíme, že by někdo mohl vylepšit náš software, aby byla kalibrace mnohem plynulejší. V budoucnu by také mohly být přidány další funkce, jako jsou push notifikace.

Krok 9: Odstraňování problémů

Při nastavování CribSense se můžete setkat s několika běžnými problémy. Například potíže s budováním/spuštěním programu nebo neslyšení zvuku. Pamatujte, že CribSense není dokonale spolehlivá chůva. Při zlepšování uvítáme příspěvky v našem úložišti GitHub!

Zde je několik tipů pro řešení potíží, které jsme shromáždili při vytváření CribSense.

Nehraje žádný alarm

  • Fungují vaše reproduktory?
  • Můžete přehrávat jiné zvuky z Pi mimo alarm CribSense?
  • Pokud se váš Pi pokouší přehrávat zvuk přes HDMI místo zvukového portu? Zkontrolujte stránku konfigurace zvuku Raspberry Pi a ujistěte se, že jste vybrali správný výstup.
  • Detekuje software CribSense pohyb? Pokud CribSense běží na pozadí, můžete to ověřit pomocí journalctl -f v terminálu.
  • Pokud CribSense zaznamenává velký pohyb, možná budete muset CribSense zkalibrovat.

IR LED nefunguje

  • Vidíte při pohledu na IR LED slabě červenou barvu? Když LED dioda svítí, měl by být viditelný slabě červený kroužek.
  • Zkontrolujte polaritu připojení. Pokud jsou +5V a GND obráceny, nebude to fungovat.
  • Připojte LED k napájecímu zdroji s omezením napětí/proudu 5V/0,5A. Normálně by měl spotřebovat 0,2 A při 5V. Pokud tomu tak není, vaše LED dioda pravděpodobně nefunguje správně.

CribSense detekuje pohyb, i když tam není dítě

  • Zkontrolovali jste správně CribSense?
  • Pamatujte, že CribSense jen hledá změny v hodnotách pixelů

    • Pohybují se v rámečku nějaké stíny?
    • Bliká nebo mění se osvětlení?
    • Je CribSense namontován na stabilní povrch (tj. Něco, co se nebude třást, pokud kolem něj budou chodit lidé)?
    • Existují v rámu další zdroje pohybu (zrcadla zachycující odrazy atd.)?

CribSense NENÍ detekován pohyb, přestože pohyb existuje

  • Zkontrolovali jste správně CribSense?
  • Je něco v cestě fotoaparátu?
  • Dokážete se vůbec připojit k fotoaparátu z Raspberry Pi? Zkontrolujte spuštěním raspistill -v v terminálu a na několik sekund otevřete kameru na Pi.
  • Pokud se podíváte na sudo systemctl status cribsense, běží CribSense skutečně?
  • Je vaše dítě pod dekou, která je „nastražená“, aby se nedostalo do kontaktu s dítětem? Pokud jsou mezi přikrývkou a dítětem značné vzduchové mezery, deka může maskovat pohyb.
  • Vidíte ten pohyb, pokud video více zesilujete?
  • Vidíte pohyb, pokud naladíte mezní hodnoty nízké a vysoké frekvence?
  • Pokud k tomu dochází pouze při slabém osvětlení, zajistili jste, aby vaše kalibrace fungovala při slabém osvětlení?

CribSense se nestaví

Nainstalovali jste všechny závislosti?

Nemohu spustit cribsense z příkazového řádku

  • Omylem jste při spuštění softwaru něco špatně zadali při spuštění./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug?
  • Je v /usr /bin cribsense?
  • Jaká cesta je k dispozici, když spustíte „který cribsense“?

Doporučuje: