Tartalomjegyzék:

CribSense: érintés nélküli, video alapú babamonitor: 9 lépés (képekkel)
CribSense: érintés nélküli, video alapú babamonitor: 9 lépés (képekkel)

Videó: CribSense: érintés nélküli, video alapú babamonitor: 9 lépés (képekkel)

Videó: CribSense: érintés nélküli, video alapú babamonitor: 9 lépés (képekkel)
Videó: Дэниел Шмахтенбергер: Уничтожат ли нас технологии? 2024, November
Anonim
CribSense: érintésmentes, video alapú babamonitor
CribSense: érintésmentes, video alapú babamonitor
CribSense: érintésmentes, video alapú babamonitor
CribSense: érintésmentes, video alapú babamonitor

A CribSense egy videóalapú, érintés nélküli bébiőr, amelyet úgy készíthet el, hogy tönkre nem megy

A CribSense a videó nagyítás C ++ megvalósítása, amely Raspberry Pi 3 B modellre van hangolva. Hétvégén beállíthatja saját kiságy tetején lévő bébiőrét, amely riasztást kelt, ha gyermeke leáll. Bónuszként az összes szoftver szabadon használható nem kereskedelmi célokra, és könnyen bővíthető.

A forrásfájlokat és dokumentációt tartalmazó teljes lerakat a https://github.com/lukehsiao/CribSense címen található.

Bár szerintünk a CribSense nagyon szórakoztató, fontos megjegyezni, hogy ez valójában nem minősített, bolondbiztos biztonsági eszköz. Vagyis megfelelően kell konfigurálni és jól irányított környezetet kell biztosítani a működéshez. Például, ha nincs megfelelően kalibrálva, és/vagy a videó környezete nem segíti elő a videó nagyítását, előfordulhat, hogy nem tudja használni. Ezt egy szórakoztató projektnek tekintettük, hogy lássuk, milyen jól tudunk olyan számítástechnikai szoftvereket futtatni, mint a videó nagyítás olyan számítástechnikai korlátozott hardvereken, mint a Raspberry Pi. Bármely valódi termék sokkal több tesztelést igényelne, mint mi. Tehát, ha ezt a projektet használja, vegye úgy, amilyen: a videó nagyításának rövid felfedezése a Pi -n.

Amire szüksége lesz:

Raspberry Pi + kamera + konfigurációs eszközök:

  • Raspberry Pi 3 B modell
  • 5V 2.5A Micro USB tápegység
  • Raspberry Pi NoIR kamera modul V2
  • MicroSD kártya (16 GB -os Class 10 kártyát használtunk)
  • Rugalmas kábel a Raspberry Pi kamerához (12 ")
  • Hangszórók 3,5 mm -es bemenettel
  • HDMI monitor
  • USB billentyűzet
  • USB egér
  • [opcionális] Raspberry Pi hűtőborda (ha aggódik a hő miatt, ragaszthat egyet ezek közül a Pi -re)

IR LED áramkör gyenge fényviszonyok esetén:

  • [3x] 1N4001 diódák
  • 1 Ohm, 1 W ellenállás
  • 1W IR LED
  • 2 vezeték a LED csatlakoztatásához a Pi -hez
  • Forrasztópáka

Alváz:

  • Hozzáférés egy 3D nyomtatóhoz (minimális építési térfogat = 9,9 "L x 7,8" W x 5,9 "H) az alváz nyomtatásához. Nyugodtan készítse el sajátját.
  • Ragasztó (bármilyen típusú ragasztó működni fog, de forró ragasztó ajánlott a prototípus elkészítéséhez).

1. lépés: Előfeltételek

Mielőtt elkezdené lépésről lépésre szóló útmutatónkat, telepítenie kell a Raspbian legújabb verzióját az SD-kártyára, és meg kell győződnie arról, hogy a Pi működőképes. A kamera elérése előtt engedélyeznie kell a kamera modult is.

2. lépés: A CribSense szoftver telepítése

A CribSense az autoconf, a libtool, az OpenCV és a libcanberra, valamint a gyakori szoftvereszközök függvénye.

  • Az autoconf és a libtool számos platformon (például Linux, OSX és a Raspberry Pi) a makefiles automatikus konfigurálására és a CribSense parancsfájlok készítésére szolgál.
  • Az OpenCV egy hatékony számítógépes látáscsomag, amelyet képfeldolgozásra használnak, és amely a videó nagyító és mozgásérzékelő kód alapja. Nagy támogatással rendelkezik, könnyen használható és jó teljesítményű.
  • A libcanberra egy egyszerű könyvtár az eseményhangok lejátszására. A CribSense riasztási hangjának lejátszására szolgál.

Látogasson el az egyes oldalakra, ahol teljes körű tájékoztatást kap.

Telepítse ezeket egy terminál megnyitásával a Pi -n, és futtassa:

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

Ezután be kell állítania a kamera illesztőprogramját automatikus betöltésre a bcm2835-v4l2 hozzáadásával az `/etc/modules-load.d/modules.conf` fájlhoz. A modules.conf így kell kinéznie:

# /etc /modules: rendszermag modulok betöltése a rendszerindításkor.

# # A fájl a rendszermag modulok nevét tartalmazza, amelyeket # kell betölteni a rendszerindításkor, soronként egyet. A "#" betűvel kezdődő sorokat figyelmen kívül hagyja. i2c-dev bcm2835-v4l2

A fájl szerkesztése után újra kell indítania a Pi -t. A CribSense ezt az illesztőprogramot használja a keretek közvetlen lehúzásához a NoIR kamerából.

Ezután klónozhatja az adattárat a futtatásával:

git klón

Ezután lépjen be a tárolóba, és futtassa a szoftvert

cd CribSense

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

Gratulálunk, minden szükséges szoftvert telepített!

Konfiguráció

A CribSense testreszabható egy egyszerű INI konfigurációs fájlon keresztül. A `make install` futtatása után a konfigurációs fájl az /etc/cribsense/config.ini címen található. Futtatásával megtekintheti és szerkesztheti ezeket a paramétereket

sudo nano /etc/cribsense/config.ini

Az egyes paraméterek rövid magyarázata az alapértelmezett konfigurációban található, de további részletek a https://lukehsiao.github.io/CribSense/setup/config/ címen érhetők el. Az útmutató végén a kalibrálást és a konfigurációt is tárgyaljuk.

A CribSense futtatása

A CribSense -t úgy tervezték, hogy indításkor fusson, egy systemd szolgáltatás használatával. Míg a Raspberry Pi készülékhez billentyűzettel és egérrel csatlakozik, győződjön meg arról, hogy a konfigurációs paraméterek működnek a kiságy számára. Előfordulhat, hogy át kell állítania ezeket a paramétereket, ha áthelyezi őket.

Amíg a paramétereket hangolja, a cribsense -t tetszés szerint futtathatja a parancssorból

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

Ha elégedett, futtatásával engedélyezheti az automatikus futtatást

sudo systemctl engedélyezi a cribsense -t

Futtatással leállíthatja a kiságy automatikus futását

sudo systemctl letiltja a cribsense -t

Szoftver áttekintés

A CribSense szoftver a projekt szíve és lelke. Láttuk az MIT videó nagyításának nagyszerű bemutatóit, és ki akartunk próbálni egy hasonló algoritmust futtatni egy Raspberry Pi -n. Ez több mint 10-szeres gyorsítást igényelt a tbl3rd videó nagyítás C ++ megvalósításán végzett munkájából, hogy valós időben fusson a Pi-n. A szükséges optimalizálások irányították a szoftver tervezését.

Magas szinten a CribSense ismételten áthalad a szoftverállapot -gépen. Először is, minden 640x480 -as, szürkeárnyalatos videókeretet 3 vízszintes részre (640x160) oszt fel a gyorsítótár jobb elhelyezése érdekében. Ezután minden szalagot külön szálban felnagyít, és figyeli a keretben látható mozgást. A mozgás néhány másodperces megfigyelése után meghatározza az elsődleges mozgási területet, és a keretet vágja hozzá. Ez csökkenti az algoritmus által feldolgozandó képpontok teljes számát. Ezután a CribSense figyeli a mozgás mennyiségét a kivágott folyamban, és riaszt, ha konfigurálható ideig nem érzékel mozgást. Időnként a CribSense ismét megnyitja a nézetet, hogy figyelemmel kísérje a teljes keretet arra az esetre, ha a csecsemő megmozdult, és újra körülvágja az új elsődleges mozgási területet.

A videó nagyítást a finom mozgások, például a csecsemő légzése jel -zaj arányának növelésére használják. Nagyobb mozgásoknál nem szükséges, de nagyon finom mozgásoknál segíthet. Megjegyezzük, hogy a megvalósításunk lazán az MIT papírjaiban leírt algoritmuson alapul, és nem teljesít olyan jól, mint a saját kódjuk.

Az olyan optimalizálások, mint a többszálú, az adaptív vágás és a fordítóoptimalizálás körülbelül 3x, 3x és 1,2x gyorsítást eredményeztek. Ez lehetővé tette számunkra, hogy elérjük a 10-szeres gyorsítást, amely a valós idejű futtatáshoz szükséges a Pi-n.

A részleteket a CribSense adattár Szoftver architektúra oldalán találja.

Ha érdekli a videó nagyítása, látogasson el az MIT oldalára.

3. lépés: A hardver előkészítése: Csatlakoztassa a fényképezőgépet

A hardver előkészítése: Csatlakoztassa a fényképezőgépet
A hardver előkészítése: Csatlakoztassa a fényképezőgépet

Először cserélje le a fényképezőgéphez kapott 6 "-es kábelt a 12" -es kábellel. Ehhez egyszerűen kövesse ezt az oktatóanyagot a kamera kábelének cseréjéről.

Összefoglalva, a fényképezőgép hátulján egy toló/húzó fül látható, amelyet kihúzva kioldhatja a flexibilis kábelt. Cserélje ki a rövid kábelt a hosszabbra, és nyomja vissza a fület.

Észre fogja venni, hogy a képeinken 24 hüvelykes kábel található. Túl hosszú volt. Az anyaglistán szereplő 12 hüvelykes kábel sokkal ésszerűbb.

4. lépés: A hardver előkészítése: IR LED

A hardver előkészítése: IR LED
A hardver előkészítése: IR LED
A hardver előkészítése: IR LED
A hardver előkészítése: IR LED
A hardver előkészítése: IR LED
A hardver előkészítése: IR LED

A CribSense viszonylag könnyen megépíthető, és nagyrészt kereskedelmi forgalomban kapható alkatrészekből áll. Amint a fenti ábrán látható, 5 fő hardverkomponens van, amelyek közül csak 2 egyedi gyártású. Ez az oldal bemutatja az IR LED áramkör felépítését, a következő oldalon pedig az alváz felépítését.

Ehhez a részhez meg kell szereznie a forrasztópáka, vezetékek, diódák, IR LED és ellenállás. Megépítjük a 2. ábrán látható áramkört. Ha még nem ismeri a forrasztást, itt van egy jó útmutató, amely elkapja. Míg ez az útmutató a lyukon keresztüli forrasztást tárgyalja, ugyanazokat az alapvető technikákat használhatja ezen alkatrészek összekapcsolására, amint azt a 3. ábra mutatja.

Az éjszakai megfelelő megvilágítás érdekében IR LED -et használunk, amely nem látható az emberi szem számára, de a NoIR kamera számára. Az IR LED nem fogyaszt sok energiát a Raspberry Pi -hez képest, ezért az egyszerűség kedvéért hagyjuk bekapcsolva az IR LED -et.

A Pi korábbi verzióiban ezeknek a csapoknak a maximális áramkimenete 50 mA volt. A Raspberry Pi B+ ezt 500 mA -ra növelte. Az egyszerűség kedvéért azonban csak az 5 V -os tápokat használjuk, amelyek akár 1,5 A feszültséget is képesek biztosítani. Méréseink szerint az IR LED előremenő feszültsége körülbelül 1,7 ~ 1,9 V. Bár az IR LED 500 mA áramot képes felvenni anélkül, hogy károsítaná önmagát, az áramot körülbelül 200 mA -re csökkentjük, hogy csökkentsük a hőt és a teljes energiafogyasztást. A kísérleti eredmények azt is mutatják, hogy az IR LED elég fényes 200 mA bemeneti áram mellett. Az 5V és 1,9V közötti rés áthidalásához három 1N4001 diódát és 1 ohmos ellenállást használunk sorban az IR LED -el. A feszültségcsökkenés a vezetéken, a diódákon és az ellenálláson körülbelül 0,2 V, 0,9 V (mindegyiknél) és 0,2 V. Így az IR LED feletti feszültség 5V - 0,2V - (3 * 0,9V) - 0,2V = 1,9V. A LED -en keresztüli hőelvezetés 0,18 W és 0,2 W az ellenállás felett, mindez a maximális teljesítményükön belül.

De még nem végeztünk! Annak érdekében, hogy jobban illeszkedjünk a 3D nyomtatott házba, szeretnénk, ha az IR LED lencse kinyúlna az alvázunkból, és a NYÁK lap egy síkban lenne a lyukkal. A jobb alsó sarokban lévő kis fotodióda akadályozni fogja. Ennek orvoslására forrasztjuk ki, és fordítsuk a tábla másik oldalára, amint az az utolsó két fotón látható. A fotodiódára nincs szükség, mivel azt akarjuk, hogy a LED mindig világítson. Ha egyszerűen átkapcsolja a másik oldalra, az eredeti LED áramkör változatlan marad.

Amikor a vezetékeket forrasztja, győződjön meg arról, hogy a vezetékek legalább 12 hüvelyk hosszúak és tüskés fejrészekkel rendelkeznek, amelyek átcsúszhatnak a Pi GPIO -ján.

5. lépés: A hardver előkészítése: Váz

A hardver előkészítése: Alváz
A hardver előkészítése: Alváz
A hardver előkészítése: Alváz
A hardver előkészítése: Alváz
A hardver előkészítése: Alváz
A hardver előkészítése: Alváz

Forrás fájlok:

  • STL eset
  • Case Makerbot
  • Fedél STL
  • Borító Makerbot

Egy egyszerű 3D nyomtatott házat használtunk a Pi, a kamera és a LED elhelyezésére. Alvázunk használata opcionális, bár ajánlott, hogy megakadályozzuk, hogy a kisgyermekek megérintsék az elektronikus áramköröket. Minden kiságy más, ezért az alvázunk nem tartalmaz rögzítő konzolt. Többféle rögzítési lehetőség közül választhat:

  • Kábelkötegelők
  • 3M kettős zár
  • Tépőzár
  • Szalag

Ha hozzáfér a MakerBot replikátorhoz (5. generáció), egyszerűen töltse le a.makerbot fájlokat a tokhoz és a borítóhoz a MakerBot replikátorra, és nyomtasson. A tok kinyomtatása körülbelül 6 órát, a borító nyomtatása pedig 3 órát vesz igénybe. Ha más típusú 3D nyomtatót használ, olvassa tovább.

A CribSense nyomtatásához legalább 9,9 "(L) x 7,8" (W) x 5,9 "(H) méretű építési térfogatra van szükség. Ha nem rendelkezik hozzáféréssel egy ilyen nyomtatási kötettel rendelkező 3D nyomtatóhoz, használhat online 3D nyomtatást szolgáltatás (például Shapeways vagy Sculpteo) a CribSense nyomtatásához. A minimális nyomtatási felbontás 0,015 ". Ha olvasztott szálgyártású típusú 3D nyomtatót használ, ez azt jelenti, hogy a fúvóka átmérőjének 0,015 hüvelyknek vagy kisebbnek kell lennie. Az alacsonyabb nyomtatási felbontású (nagyobb fúvókaátmérőjű) nyomtatók működhetnek, de előfordulhat, hogy a Raspberry Pi nem fér bele a házba. A PLA -t (politejsavat) javasoljuk előnyben részesített nyomtatási anyagként. Más műanyagok működhetnek, de a Raspberry Pi nem illik a tokba, ha a kiválasztott műanyag hőtágulási együtthatója nagyobb, mint a PLA. Ha a 3D nyomtató rendelkezik fűtött építőlemez, kapcsolja ki a fűtőt, mielőtt folytatja.

A sikeres nyomtatáshoz elengedhetetlen, hogy a modellt a nyomtató építőlemezén tájolja. Ezeket a modelleket gondosan tervezték, így nem kell alátámasztó anyaggal nyomtatni, ezáltal megtakarítva a műanyagot és javítva a nyomtatási minőséget. Mielőtt folytatná, töltse le a tok és a borító 3D fájljait. Ezen modellek nyomtatásakor a CribSense nyakának laposan kell feküdnie az építőlemezen. Ez biztosítja, hogy a modellek összes túlnyúlási szöge ne haladja meg a 45 fokot, így nincs szükség támasztóanyagra. A 3D modelleknek a nyomtató építési térfogatában történő eligazítására vonatkozó útmutatást a 3D nyomtatóhoz mellékelt használati utasításban találja. A burkolat és a burkolat felépítésére vonatkozó példák a fentiekben láthatók.

Amellett, hogy a CribSense nyakát az építőlemezhez simítja, észreveheti, hogy a modellek a függőleges tengely körül forognak. Erre szükség lehet ahhoz, hogy a modell illeszkedjen a 3D nyomtató építési kötetébe. Ez a forgatás opcionális, ha az építési kötet hossza elég hosszú a CribSense használatához.

6. lépés: A hardver előkészítése: összeszerelés

A hardver előkészítése: összeszerelés
A hardver előkészítése: összeszerelés
A hardver előkészítése: összeszerelés
A hardver előkészítése: összeszerelés
A hardver előkészítése: összeszerelés
A hardver előkészítése: összeszerelés
A hardver előkészítése: összeszerelés
A hardver előkészítése: összeszerelés

Miután elkészítette az összes hardvert, elkezdheti az összeszerelést. Bármilyen ragasztó használható ebben a folyamatban, de két fő okból javasoljuk a forró ragasztót. A forró ragasztó gyorsan szárad, így nem kell sokáig várnia, amíg a ragasztó megszárad. Ezenkívül a forró ragasztó eltávolítható, ha hibát követ el. A szárított forró ragasztó eltávolításához áztassa a forró ragasztót dörzsölő (izopropil) alkoholba. Javasoljuk a 90% -os vagy nagyobb koncentrációt, de a 70% -os koncentráció továbbra is működik. A szárított forró ragasztó izopropil -alkoholban való áztatása gyengíti a ragasztó és az alatta lévő felület közötti kötést, lehetővé téve a ragasztó tiszta lehúzását. Amikor a ragasztót izopropil -alkoholba áztatja, a Raspberry Pi -t ki kell kapcsolni, és ki kell húzni. A forró ragasztó újbóli felhordása és a Raspberry Pi indítása előtt mindenképpen hagyja megszáradni.

A lépésekhez tartozó összes kép rendben van, és követi a szöveges lépéseket.

  1. Helyezze be a Raspberry Pi -t a házba. Kicsit hajlítania kell, hogy bejusson az audio portba, de ha be van helyezve, az audio jack a helyén tartja. Ha a helyén van, győződjön meg arról, hogy az összes port továbbra is elérhető (például csatlakoztathatja a tápkábelt).
  2. Ezután forró ragasztóval rögzítse a Pi -t a helyére, és rögzítse a kamerát a Pi -hez. Vannak csavaros lyukak is, ha ezeket szeretné használni.
  3. Most ragassza a LED -et és a kamerát az előlapra (a képen). Kezdje a NoIR kamera forró ragasztásával a kamera lyukához. Győződjön meg arról, hogy a fényképezőgép szorosan illeszkedik a kerethez. Ne használjon túl sok ragasztót; ellenkező esetben nem tudja behelyezni a kamerát a fő tokba. Feltétlenül kapcsolja be a Pi -t, és nézze meg a kamerát (például "raspistill -v"), hogy megbizonyosodjon arról, hogy jó szögben van és jó látómezővel rendelkezik. Ha nem, távolítsa el a forró ragasztót, és helyezze vissza.
  4. Ezután ragassza fel az IR LED -et a fedél nyakán lévő lyukra. A nyak 45 fokos szöget zár be a kiságy oldalsó fényével, ami több árnyékot eredményez gyenge fényviszonyok között. Ez nagyobb kontrasztot kölcsönöz a képnek, megkönnyítve a mozgás észlelését.
  5. Csatlakoztassa az IR LED vezetékeket a Raspberry Pi fejléceihez a sematikus képen látható módon.
  6. Csomagolja be a kábeleket az alvázba úgy, hogy ne gyűrődjön vagy feszüljön meg. Végül a kábelharmonika stílusát hajtogattuk, mert a fényképezőgép flex kábelünk túl hosszú volt.
  7. Mindent behelyezve, forró ragasztóval a szélek körül, ahol a két darab találkozik, és lezárja őket.

7. lépés: Kalibrálás

Image
Image
Kalibráció
Kalibráció

A konfigurációs paraméterekkel kapcsolatos részletek a CribSense lerakat dokumentációjában találhatók. Tekintse meg a videót is, és nézzen példát arra, hogyan kalibrálhatja a CribSense -t, miután mindent beállított.

Íme egy példa a konfigurációs fájlból:

[io]; I/O konfiguráció

; input = útvonal_fájl; Bemeneti fájl az input_fps = 15 használatához; fps bemenet (40 max, 15 ajánlott, ha fényképezőgépet használ) full_fps = 4,5; fps, amelynél a teljes képkockák feldolgozhatók crop_fps = 15; fps, ahol a kivágott képkockák feldolgozhatók kamera = 0; A kamera szélessége = 640; A bemeneti videó magassága szélessége = 480; A bemeneti videó magassága time_to_alarm = 10; Hány másodpercet kell várni mozgás nélkül a riasztás előtt. [vágás]; Adaptív vágási beállítások crop = true; Vágja -e vagy sem a frame_to_settle = 10; # várakozási keret a visszaállítás után, mielőtt feldolgozza a roi_update_interval = 800; # keret a ROI újraszámítása között roi_window = 50; # képkocka a ROI [mozgás] kiválasztása előtt; Mozgásérzékelési beállítások erode_dim = 4; az erodáló kernel mérete dilate_dim = 60; a dilatált kernel mérete diff_threshold = 8; abszorpciós különbség szükséges a változás időtartamának felismerése előtt = 1; # képkocka a mozgás fenntartására a valódi pixel_threshold = 5 megjelölése előtt; # képpont, amelynek meg kell különböztetnie a mozgás show_diff = false megjelölést; megjeleníti a különbséget 3 képkocka között [nagyítás]; Videó nagyítási beállítások amplify = 25; A kívánt százalékos erősítés alacsony határérték = 0,5; A sávszélesség alacsony frekvenciája. magas határérték = 1,0; A sávszélesség magas frekvenciája. küszöb = 50; A fázisküszöb % -ban pi. show_magnification = hamis; Az egyes nagyítások kimeneti kereteinek megjelenítése [hibakeresés] print_times = false; Nyomtassa ki az elemzési időket

Az algoritmus kalibrálása ismétlődő erőfeszítés, pontos megoldás nélkül. Javasoljuk, hogy kísérletezzen különféle értékekkel, kombinálva azokat a hibakeresési funkciókkal, hogy megtalálja a környezetének leginkább megfelelő paraméterek kombinációját. A kalibrálás megkezdése előtt győződjön meg arról, hogy a show_diff és a show_magnification értéke true.

Iránymutatásként az erősítés és a fázis_küszöb értékek növelése növeli a bemeneti videóra alkalmazott nagyítás mértékét. Addig módosítsa ezeket az értékeket, amíg világosan nem látja a követni kívánt mozgást a videókeretben. Ha műtermékeket lát, segíthet a fázis_küszöb csökkentése, miközben megtartja ugyanazt az erősítést.

A mozgásérzékelő paraméterek segítenek kompenzálni a zajt. A mozgási régiók észlelésekor az erode_dim és a dilate_dim értékeket használják a mozgás erodálására és tágítására használt OpenCV -kernek méreteinek méretezésére, hogy a zaj először elhalványuljon, majd a fennmaradó mozgási jel jelentősen kitáguljon, hogy nyilvánvalóvá váljanak a mozgási régiók. Ezeket a paramétereket is be kell állítani, ha a kiságy nagyon nagy kontrasztú. Általában nagyobb erode_dim kell a nagy kontrasztú beállításokhoz, és alacsonyabb erode_dim az alacsony kontraszthoz.

Ha a CribSense programot show_diff = true értékkel futtatja, és azt észleli, hogy az akkumulátor kimenetének túl nagy része fehér, vagy a videó valamilyen teljesen független részét érzékeli mozgásként (pl. Villódzó lámpa), növelje az erode_dim értéket, amíg csak a videó része a babának megfelelő fehér rész a legnagyobb. Az első ábrán egy példa látható, ahol az erodálódás mérete túl alacsony a keretben lévő mozgás mennyiségéhez képest, míg a következő egy jól kalibrált keretet mutat.

Miután ezt kalibrálta, győződjön meg arról, hogy a pixel_threshold olyan értékre van állítva, hogy a "Pixel Movement" csak a pixelmozgás csúcsértékeit jelenítse meg, és ne mindegyiket (ami azt jelenti, hogy ki kell zárni a zajt). Ideális esetben az ilyen kimenetet fogja látni a terminálon, ahol egyértelmű, periodikus minta van a mozgásnak megfelelően:

[info] Pixel mozgás: 0 [info] Mozgásbecslés: 1,219812 Hz

[info] Pixelmozgás: 0 [info] Mozgásbecslés: 1.219812 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 1.219812 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 1.219812 Hz [info] Pixelmozgás: 44 [info] Mozgásbecslés: 1,219812 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 1,219812 Hz [info] Pixelmozgás: 161 [info] Mozgásbecslés: 1,219812 Hz [info] Pixelmozgás: 121 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 86 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixel Movem ent: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 97 [info] Mozgásbecslés: 0,841416 Hz [info] Pixelmozgás: 74 [info] Mozgásbecslés: 0,839298 Hz [info] Pixel Mozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixel mozgás: 60 [info] Mozgásbecslés: 0,839298 Hz [info] Pixel mozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 48 [info] Mozgás Becslés: 0,839298 Hz [info] Pixelmozgás: 38 [info] Motion becslés: 0,839298 Hz [info] Pixel mozgás: 29 [info] Motion becslés: 0,839298 Hz [info] Pixel mozgás: 28 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 22 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,839298 Hz [info] Pixelmozgás: 0 [info] Mozgásbecslés: 0,839298 Hz

Ha a kimenet inkább így néz ki:

[info] Pixel mozgás: 921 [info] Mozgásbecslés: 1,352046 Hz

[info] Pixelmozgás: 736 [info] Mozgásbecslés: 1,352046 Hz [info] Pixelmozgás: 666 [info] Mozgásbecslés: 1,352046 Hz [info] Pixelmozgás: 663 [info] Mozgásbecslés: 1,352046 Hz [info] Pixelmozgás: 1196 [info] Mozgásbecslés: 1,352046 Hz [info] Pixelmozgás: 1235 [info] Mozgásbecslés: 1,352046 Hz [info] Pixelmozgás: 1187 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 1115 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 959 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 744 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 611 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 468 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 371 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 307 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 270 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 234 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 197 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 179 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 164 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 239 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 733 [info] Mozgásbecslés: 1,456389 Hz [info] Pixelmozgás: 686 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 667 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 607 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 544 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 499 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 434 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 396 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 375 [info] Mozgásbecslés: 1,229389 Hz [info] Pixelmozgás: 389 [info] Mozgásbecslés: 1,229389 Hz [info] Pixel mozgás: 305 [info] Mozgásbecslés: 1,312346 Hz [info] Pixelmozgás: 269 [info] Mozgásbecslés: 1,312346 Hz [info] Pixelmozgás: 1382 [info] Motion E stimate: 1.312346 Hz [info] Pixel Movement: 1086 [info] Motion Becslés: 1.312346 Hz [info] Pixel mozgás: 1049 [info] Motion Becslés: 1.312346 Hz [info] Pixel mozgás: 811 [info] Motion Becslés: 1.312346 Hz [info] Pixel mozgás: 601 [info] Mozgásbecslés: 1.312346 Hz [info] Pixel mozgás: 456 [info] Mozgásbecslés: 1.312346 Hz

Állítsa be a pixel_threshold és diff_threshold értékeket, amíg csak csúcsok nem láthatók, és a pixelmozgás egyébként 0.

8. lépés: demonstráció

Image
Image

Itt egy kis bemutató a CribSense működéséről. El kell képzelni, hogy ez a kiságy oldalához van rögzítve.

Amikor a CribSense -t a kiságy fölé helyezi, optimalizálnia kell a csecsemő és a kamera közötti távolságot. Ideális esetben a csecsemő mellkasa a keret kevesebb mint 1/3 -át fogja kitölteni. A gyermek ne legyen túl messze, különben az alacsony felbontású videó nehezen talál elegendő részletet a nagyításhoz. Ha a kamera túl közel van, előfordulhat, hogy a kamera nem látja gyermekét, ha gurul vagy kimozdul a keretből. Hasonlóképpen, ha a gyermek "sátoros" takaró alatt van, ahol korlátozott érintkezés van a takaró és a gyermek mellkasa között, nehéz lehet a mozgást észlelni. Jól illeszd be őket!

Érdemes figyelembe venni a kiságy körül kialakított világítási helyzetet is. Ha a kiságy közvetlenül az ablak mellett van, előfordulhat, hogy mozgó árnyékokat vagy változó fényértékeket kap, mivel a napot felhők blokkolják, vagy mozgás történik az ablakon kívül. Valahol a legjobb megvilágítás a legjobb.

További munkával azt gondoljuk, hogy valaki javíthat a szoftverünkön, hogy a kalibrálás sokkal gördülékenyebb folyamat legyen. A jövőben további funkciók, például push értesítések is hozzáadhatók.

9. lépés: Hibaelhárítás

A CribSense beállítása során néhány gyakori problémával találkozhat. Például, ha problémái vannak a program felépítésével/futtatásával, vagy nem hall hangot. Ne feledje, hogy a CribSense nem tökéletesen megbízható bébiőr. Örömmel fogadjuk a GitHub adattárunkkal kapcsolatos hozzájárulásokat a fejlesztések során!

Íme néhány hibaelhárítási tipp, amelyeket a CribSense készítése során gyűjtöttünk össze.

Nincs ébresztés

  • Működnek a hangszórói?
  • Le tud játszani más hangokat a Pi -ről a CribSense riasztón kívül?
  • Ha a Pi próbálja a hangot HDMI -n keresztül lejátszani, nem pedig az audio porton? Ellenőrizze a Raspberry Pi Audio konfigurációs oldalt, hogy megbizonyosodjon arról, hogy a megfelelő kimenetet választotta.
  • A CribSense szoftver érzékeli a mozgást? Ha a CribSense fut a háttérben, ellenőrizheti a journalctl -f paranccsal a terminálon.
  • Ha a CribSense sok mozgást érzékel, szükség lehet a CribSense kalibrálására.

Az IR LED nem működik

  • Lát egy halvány piros színt, ha az IR LED -et nézi? A LED világításakor halvány piros gyűrűnek kell látszania.
  • Ellenőrizze a csatlakozók polaritását. Ha a +5V és a GND megfordul, akkor nem fog működni.
  • Csatlakoztassa a LED -et egy 5V/0,5A feszültség-/áramkorlátozású tápegységhez. Általában 0,2 A -t kell fogyasztania 5 V -nál. Ha nem, akkor a LED rosszul működhet.

A CribSense mozgást észlel annak ellenére, hogy nincs csecsemő

  • Megfelelően kalibrálta a CribSense -t?
  • Ne feledje, hogy a CribSense csak a pixelértékek változásait keresi

    • Vannak árnyékok a keretben?
    • Villog vagy változik a világítás?
    • A CribSense stabil felületre van szerelve (azaz valami, ami nem fog remegni, ha emberek járnak mellette)?
    • Van -e más mozgásforrás a keretben (tükrök, amelyek visszaverik a tükröződéseket stb.)?

A CribSense NEM érzékeli a mozgást, annak ellenére, hogy van mozgás

  • Megfelelően kalibrálta a CribSense -t?
  • Van valami a kamera útjában?
  • Tud egyáltalán csatlakozni a Raspberry Pi kamerájához? Ellenőrizze a raspistill -v futtatásával a terminálon, hogy néhány másodpercre kinyissa a kamerát a Pi -n.
  • Ha megnézi a sudo systemctl állapotát, akkor a CribSense valóban fut?
  • A csecsemő olyan takaró alatt van, amelyet úgy „sátoroznak”, hogy ne érintkezzen a gyerekkel? Ha jelentős légrések vannak a takaró és a gyermek között, a takaró elfedheti a mozgást.
  • Látja a mozgást, ha jobban felerősíti a videót?
  • Látja a mozgást, ha hangolja az alacsony és magas frekvenciájú levágásokat?
  • Ha ez csak gyenge fényviszonyok mellett történik, akkor megbizonyosodott arról, hogy a kalibrálás gyenge fényviszonyok mellett is működik?

A CribSense nem épít

Telepítette az összes függőséget?

Nem tudom futtatni a cribsense -t a parancssorból

  • Véletlenül elgépelt valamit, amikor futtatta./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug a szoftverkészítés során?
  • A /usr /bin mappában van kiságy?
  • Milyen útvonalat biztosít, ha "melyik bölcsőst" futtatja?

Ajánlott: