Tartalomjegyzék:
- 1. lépés: Előfeltételek
- 2. lépés: A CribSense szoftver telepítése
- 3. lépés: A hardver előkészítése: Csatlakoztassa a fényképezőgépet
- 4. lépés: A hardver előkészítése: IR LED
- 5. lépés: A hardver előkészítése: Váz
- 6. lépés: A hardver előkészítése: összeszerelés
- 7. lépés: Kalibrálás
- 8. lépés: demonstráció
- 9. lépés: Hibaelhárítás
Videó: CribSense: érintés nélküli, video alapú babamonitor: 9 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:42
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
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 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
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
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.
- 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).
- 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.
- 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.
- 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.
- Csatlakoztassa az IR LED vezetékeket a Raspberry Pi fejléceihez a sematikus képen látható módon.
- 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.
- 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
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ó
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:
Kézfertőtlenítő adagoló áramkör/barkácsolás [érintés nélküli]: 10 lépés
Kézfertőtlenítő adagoló áramkör/DIY [nem érintkezik]: Hesam Moshiri, [email protected]ók Nagy stabilitás és nem érzékeny a környezeti fényre Lézerrel vágott akril (plexi) burkolat A kézfertőtlenítő költséghatékony áramlásszabályozó képessége /alkohol (hatékonyság)
Érintés nélküli Halloween cukorkaadagoló: 6 lépés
Érintés nélküli Halloween cukorkaadagoló: Ismét itt az év, amikor a Halloween-t ünnepeljük, de idén a COVID-19 miatt minden fogadás le van zárva. De a Halloween szellemében nem szabad elfelejtenünk a trükk vagy a kezelés mulatságát. Így ezt a bejegyzést azért hozták létre, hogy lehetővé tegye a család számára, hogy
Érintés nélküli Midi vezérlő: 6 lépés (képekkel)
Érintés nélküli Midi Controller: Napjaink trendje volt, hogy a dolgokat érintésmentessé tegyük. Létrehoztam egy egyszerű midi vezérlőt az Arduino Pro micro és néhány IR-proximity detector kártya segítségével, amely beépített összehasonlítóval rendelkezik, ennek meglehetősen könnyűnek és olcsónak kell lennie. Ez a projekt kb
DIY érintés nélküli kézfertőtlenítő adagoló Arduino vagy mikrokontroller nélkül: 17 lépés (képekkel)
DIY érintés nélküli kézfertőtlenítő adagoló Arduino vagy mikrokontroller nélkül: Mint mindannyian tudjuk, a COVID-19 kitörése elérte a világot, és megváltoztatta életmódunkat. Ebben az állapotban az alkohol és a kézfertőtlenítők létfontosságú folyadékok, azonban megfelelően kell használni őket. Alkoholtartályok vagy kézfertőtlenítők megérintése fertőzött kézzel
Kapacitív érintés az Evive segítségével (Arduino alapú vezérlő): 6 lépés (képekkel)
Kapacitív érintés az Evive segítségével (Arduino alapú vezérlő): Tudja, hogyan működik az okostelefon érintőképernyője? Az okostelefon számos érintőérzékelőt tartalmaz az üveg képernyő alatt. Manapság a kapacitív érintésérzékelő technológián alapul, és még egy gyengéd érintés is könnyen észlelhető. A kapacitív érintés érzékelhető