Satura rādītājs:

CribSense: bezkontakta, uz video balstīts mazuļa monitors: 9 soļi (ar attēliem)
CribSense: bezkontakta, uz video balstīts mazuļa monitors: 9 soļi (ar attēliem)

Video: CribSense: bezkontakta, uz video balstīts mazuļa monitors: 9 soļi (ar attēliem)

Video: CribSense: bezkontakta, uz video balstīts mazuļa monitors: 9 soļi (ar attēliem)
Video: My 100,000 Mile Corvette ZR1 Just Made INSANE Power! 2024, Novembris
Anonim
CribSense: bezkontakta videomateriāls bērnu uzraudzībai
CribSense: bezkontakta videomateriāls bērnu uzraudzībai
CribSense: bezkontakta videomateriāls bērnu uzraudzībai
CribSense: bezkontakta videomateriāls bērnu uzraudzībai

CribSense ir uz videomateriāliem balstīts bezkontakta mazuļa monitors, kuru varat izgatavot pats, nepārkāpjot banku

CribSense ir video palielinājuma C ++ ieviešana, kas pielāgota darbam ar Raspberry Pi 3 modeli B. Nedēļas nogalē jūs varat iestatīt savu bērnu gultiņas virsotni, kas rada trauksmi, ja jūsu zīdainis pārstāj kustēties. Kā bonusu visu programmatūru var brīvi izmantot nekomerciāliem mērķiem un to ir viegli paplašināt.

Pilnu krātuvi, kurā ir avota faili un dokumentācija, var atrast vietnē

Lai gan mēs domājam, ka CribSense ir diezgan jautri, ir svarīgi atcerēties, ka šī faktiski nav sertificēta, muļķīgi droša drošības ierīce. Tas ir, lai tas darbotos, tam jābūt pareizi konfigurētam un labi kontrolētai videi. Piemēram, ja tas nav labi kalibrēts un/vai vide videi nav labvēlīga video palielināšanai, iespējams, to nevarēsit izmantot. Mēs to veidojām kā jautru projektu, lai noskaidrotu, cik labi mēs varētu izmantot ļoti smagu programmatūru, piemēram, video palielinājumu, izmantojot ierobežotu aparatūru, piemēram, Raspberry Pi. Jebkurš reāls produkts prasītu daudz vairāk testu, nekā mēs to esam darījuši. Tātad, ja jūs izmantojat šo projektu, uztveriet to tādu, kāds tas ir: īss video palielinājuma pētījums uz Pi.

Kas jums būs nepieciešams:

Raspberry Pi + kamera + konfigurācijas rīki:

  • Raspberry Pi 3 B modelis
  • 5V 2.5A mikro USB barošanas avots
  • Raspberry Pi NoIR kameras modulis V2
  • MicroSD karte (mēs izmantojām 16 GB 10. klases karti)
  • Elastīgs kabelis Raspberry Pi kamerai (12 ")
  • Skaļruņi ar 3,5 mm ieeju
  • HDMI monitors
  • USB tastatūra
  • USB pele
  • [pēc izvēles] Raspberry Pi radiators (ja jūs uztrauc karstums, varat pielīmēt vienu no tiem savā Pi)

IR LED ķēde darbam vājā apgaismojumā:

  • [3x] 1N4001 diodes
  • 1 omi, 1 W rezistors
  • 1W IR LED
  • 2 vadi LED pieslēgšanai pie Pi
  • Lodāmurs

Šasija:

  • Piekļuve 3D printerim (minimālais konstrukcijas apjoms = 9,9 "L x 7,8" W x 5,9 "H), lai izdrukātu mūsu šasiju. Tomēr jūtieties brīvi izveidot savu.
  • Līme (derēs jebkura veida līme, bet prototipēšanai ieteicams izmantot karstu līmi).

1. darbība. Priekšnosacījumi

Pirms sākat mūsu detalizēto rokasgrāmatu, jums SD kartē jau bija jāinstalē jaunākā Raspbian versija un jāpārliecinās, ka jūsu Pi ir funkcionāls. Lai piekļūtu kamerai, jums arī jāiespējo kameras modulis.

2. darbība: instalējiet CribSense programmatūru

CribSense ir atkarīgs no autoconf, libtool, OpenCV un libcanberra, kā arī no parastajiem programmatūras rīkiem.

  • Autoconf un libtool tiek izmantoti, lai automātiski konfigurētu makefiles un izveidotu skriptus CribSense daudzām platformām (piemēram, Linux, OSX un Raspberry Pi).
  • OpenCV ir jaudīga datora redzes pakotne, ko izmanto attēlu apstrādei, un tā ir video palielinājuma un kustības noteikšanas koda pamatā. Tam ir lielisks atbalsts, to ir viegli lietot un tam ir laba veiktspēja.
  • libcanberra ir vienkārša bibliotēka notikumu skaņu atskaņošanai. To izmanto, lai atskaņotu CribSense modinātāja skaņu.

Apmeklējiet viņu atsevišķās lapas, lai iegūtu pilnīgu informāciju.

Instalējiet tos, atverot termināli savā Pi un palaižot:

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

Tālāk jums jāiestata kameras draiveris automātiskai ielādei, pievienojot bcm2835-v4l2 mapei//etc/modules-load.d/modules.conf`. Jūsu modules.conf vajadzētu izskatīties šādi:

# /etc /modules: kodola moduļi, kas jāielādē sāknēšanas laikā.

# # Failā ir kodola moduļu nosaukumi, kas jāielādē # sāknēšanas laikā, viens katrā rindā. Līnijas, kas sākas ar "#", tiek ignorētas. i2c-dev bcm2835-v4l2

Kad fails ir rediģēts, jums ir jārestartē Pi. Šo draiveri izmanto CribSense, lai tieši izvilktu kadrus no NoIR kameras.

Pēc tam varat klonēt krātuvi, palaižot:

git klons

Pēc tam pārejiet uz krātuvi un izveidojiet programmatūru, palaižot

cd CribSense

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

Apsveicam, esat instalējis visu nepieciešamo programmatūru!

Konfigurācija

CribSense ir pielāgojams, izmantojot vienkāršu INI konfigurācijas failu. Pēc "make install" palaišanas konfigurācijas fails atrodas vietnē /etc/cribsense/config.ini. Jūs varat apskatīt un rediģēt šos parametrus, palaižot

sudo nano /etc/cribsense/config.ini

Noklusējuma konfigurācijā ir sniegts īss katra parametra skaidrojums, taču sīkāka informācija ir pieejama vietnē https://lukehsiao.github.io/CribSense/setup/config/. Šīs rokasgrāmatas beigās mēs apspriedīsim arī kalibrēšanu un konfigurāciju.

Darbojas CribSense

CribSense tika izstrādāts darbam startēšanas laikā, izmantojot systemd pakalpojumu. Kamēr esat izveidojis savienojumu ar Raspberry Pi ar tastatūru un peli, jums jāpārliecinās, ka konfigurācijas parametri darbojas jūsu gultiņai. Pārvietojot šos parametrus, jums, iespējams, būs jāpielāgo.

Kamēr jūs noregulējat parametrus, varat palaist bērnu gultiņu pēc vēlēšanās no komandrindas, palaižot

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

Kad esat apmierināts, varat iespējot automātisko palaišanu, palaižot

sudo systemctl iespējot cribsense

Jūs varat pārtraukt bērnu gultiņas automātisku darbību, palaižot

sudo systemctl atspējot cribsense

Programmatūras pārskats

Programmatūra CribSense ir šī projekta sirds un dvēsele. Mēs redzējām dažas lieliskas MIT video palielināšanas demonstrācijas un vēlējāmies izmēģināt līdzīgu algoritmu Raspberry Pi. Tas prasīja vairāk nekā 10x paātrinājumu no tbl3rd darba pie viņa C ++ video palielinājuma ieviešanas, lai darbotos reāllaikā ar Pi. Nepieciešamās optimizācijas vadīja mūsu programmatūras dizainu.

CribSense augstā līmenī atkārtoti pārvietojas caur programmatūras stāvokļa mašīnu. Pirmkārt, tas sadala katru 640x480 pelēktoņu video rāmi 3 horizontālās sadaļās (640x160), lai labāk saglabātu kešatmiņu. Pēc tam tas katru joslu palielina atsevišķā pavedienā un uzrauga kadrā redzamo kustību. Pēc vairāku sekunžu kustības uzraudzības tas nosaka galveno kustības zonu un apgriež rāmi līdz tai. Tas samazina kopējo algoritma apstrādājamo pikseļu skaitu. Pēc tam CribSense uzrauga kustības apjomu apgrieztajā straumē un izsauc trauksmi, ja kustība netiek uztverta konfigurējamā laika periodā. Periodiski CribSense atkal atvērs savu skatu, lai uzraudzītu visu kadru, ja zīdainis ir pārvietojies un apgriež ap jauno primāro kustības zonu.

Video palielinājumu izmanto, lai uzlabotu signāla un trokšņa attiecību smalkām kustībām, piemēram, zīdaiņu elpošanai. Tas nebūtu nepieciešams lielākām kustībām, bet var palīdzēt ļoti smalkām kustībām. Ņemiet vērā, ka mūsu ieviešana ir brīvi balstīta uz algoritmu, kas aprakstīts MIT dokumentos, un tā nedarbojas tik labi, kā to patentētais kods.

Optimizācija, piemēram, vairāku pavedienu, adaptīva apgriešana un kompilatora optimizācija, nodrošināja attiecīgi aptuveni 3x, 3x un 1,2x paātrinājumu. Tas ļāva mums sasniegt 10x paātrinājumu, kas nepieciešams, lai Pi darbotos reāllaikā.

Pilnu informāciju var atrast CribSense krātuves programmatūras arhitektūras lapā.

Ja jūs interesē video palielinājums, lūdzu, apmeklējiet MIT lapu.

3. darbība. Aparatūras sagatavošana: pievienojiet kameru

Aparatūras sagatavošana: pievienojiet kameru
Aparatūras sagatavošana: pievienojiet kameru

Vispirms nomainiet kameras komplektācijā iekļauto 6 collu kabeli ar 12 collu kabeli. Lai to izdarītu, vienkārši izpildiet šo pamācību par kameras kabeļa nomaiņu.

Rezumējot, kameras aizmugurē redzēsit stumšanas/vilkšanas cilni, kuru varat izvilkt, lai atbrīvotu elastīgo kabeli. Nomainiet īso kabeli ar garāko un nospiediet cilni atpakaļ.

Jūs pamanīsit, ka mūsu attēlos ir 24 collu kabelis. Tas bija pārāk garš. Materiālu sarakstā esošais 12 collu kabelis ir daudz saprātīgāks.

4. solis: aparatūras sagatavošana: IR LED

Aparatūras sagatavošana: IR LED
Aparatūras sagatavošana: IR LED
Aparatūras sagatavošana: IR LED
Aparatūras sagatavošana: IR LED
Aparatūras sagatavošana: IR LED
Aparatūras sagatavošana: IR LED

CribSense ir samērā viegli konstruējams, un to lielākoties veido komerciāli pieejamas detaļas. Kā redzams attēlā iepriekš, ir 5 galvenie aparatūras komponenti, no kuriem tikai 2 ir izgatavoti pēc pasūtījuma. Šajā lapā tiks apskatīts, kā izveidot IR LED ķēdi, un nākamajā lapā tiks apskatīts, kā izveidot šasiju.

Šajā daļā jums ir jāiegādājas lodāmurs, vadi, diodes, IR LED un rezistors. Mēs izveidosim ķēdi, kas parādīta 2. attēlā. Ja jūs neesat iesācis lodēt, šeit ir jauks ceļvedis, kas jūs aizvedīs. Lai gan šajā rokasgrāmatā ir aplūkota lodēšana caur caurumiem, šo komponentu savienošanai varat izmantot tās pašas pamatmetodes, kā parādīts 3. attēlā.

Lai nodrošinātu pietiekamu apgaismojumu naktī, mēs izmantojam IR LED, kas nav redzama cilvēka acīm, bet redzama NoIR kamerai. IR LED netērē daudz enerģijas, salīdzinot ar Raspberry Pi, tāpēc vienkāršības labad atstājam ieslēgtu IR LED.

Iepriekšējās Pi versijās šo tapu maksimālā strāvas izeja bija 50 mA. Raspberry Pi B+ palielināja to līdz 500 mA. Tomēr vienkāršības labad mēs izmantojam tikai 5 V strāvas tapas, kas var nodrošināt līdz 1,5 A. Saskaņā ar mūsu mērījumiem IR gaismas diodes priekšējais spriegums ir aptuveni 1,7 ~ 1,9 V. Lai gan IR LED var uzņemt 500 mA, nesabojājot sevi, mēs samazinām strāvu līdz aptuveni 200 mA, lai samazinātu siltumu un kopējo enerģijas patēriņu. Eksperimentālie rezultāti arī parāda, ka IR gaismas diode ir pietiekami gaiša ar 200mA ieejas strāvu. Lai novērstu plaisu starp 5V un 1,9V, mēs sērijveidā ar IR LED izmantojam trīs 1N4001 diodes un 1 omu rezistoru. Sprieguma kritums pār vadu, diodēm un rezistoru ir attiecīgi aptuveni 0,2 V, 0,9 V (katram) un 0,2 V. Tādējādi spriegums virs IR gaismas diodes ir 5V - 0,2 V - (3 * 0,9 V) - 0,2 V = 1,9 V. Siltuma izkliede virs gaismas diodes ir 0,18 W un 0,2 W virs rezistora, viss ir maksimāli pieļaujamais.

Bet mēs vēl neesam pabeiguši! Lai labāk iederētos 3D drukātajā šasijā, mēs vēlamies, lai IR LED objektīvs izvirzītos no mūsu šasijas un lai PCB plāksne būtu vienā līmenī ar caurumu. Mazā fotodiode apakšējā labajā stūrī traucēs. Lai to novērstu, mēs to atkausējam un pagriežam uz tāfeles pretējās puses, kā parādīts pēdējos divos fotoattēlos. Fotodiods nav vajadzīgs, jo mēs vēlamies, lai gaismas diode vienmēr būtu ieslēgta. Vienkārši pārslēdzot to uz pretējo pusi, sākotnējā LED shēma paliek nemainīga.

Lodējot pie vadiem, pārliecinieties, vai vadi ir vismaz 12 collas gari un tiem ir tapas, kas var pārslīdēt virs Pi GPIO.

5. solis: aparatūras sagatavošana: šasija

Aparatūras sagatavošana: šasija
Aparatūras sagatavošana: šasija
Aparatūras sagatavošana: šasija
Aparatūras sagatavošana: šasija
Aparatūras sagatavošana: šasija
Aparatūras sagatavošana: šasija

Avota faili:

  • Lieta STL
  • Lieta Makerbot
  • Vāks STL
  • Vāka Makerbot

Mēs izmantojām vienkāršu 3D drukātu šasiju, lai izvietotu Pi, kameru un LED. Mūsu šasijas izmantošana nav obligāta, lai gan ieteicams, lai mazi bērni nevarētu pieskarties atklātām elektroniskajām shēmām. Katra gultiņa ir atšķirīga, tāpēc mūsu šasijā nav iekļauts stiprinājums. Var būt vairākas montāžas iespējas:

  • Kabeļu saites
  • 3M Dual Lock
  • Velcro
  • Lente

Ja jums ir piekļuve MakerBot replikatoram (piektā paaudze), varat vienkārši lejupielādēt lietas un vāka.makerbot failus savā MakerBot replikatorā un izdrukāt. Korpusa izdrukāšana aizņem apmēram 6 stundas, bet vāka - 3 stundas. Ja izmantojat cita veida 3D printeri, lūdzu, turpiniet lasīt.

Lai drukātu CribSense, ir nepieciešams minimālais būvēšanas apjoms 9,9 "(L) x 7,8" (W) x 5,9 "(H). Ja jums nav piekļuves 3D printerim ar šo būvējuma apjomu, varat izmantot tiešsaistes 3D drukāšanu pakalpojums (piemēram, Shapeways vai Sculpteo), lai drukātu CribSense. Minimālā drukas izšķirtspēja ir 0,015 collas. Ja izmantojat kausēta kvēldiega izgatavošanas tipa 3D printeri, tas nozīmē, ka jūsu sprauslas diametram jābūt 0,015 collas vai mazākam. Var darboties printeri ar zemāku drukas izšķirtspēju (lielāku sprauslu diametru), bet Raspberry Pi var neietilpt šasijā. Mēs iesakām PLA (polipienskābi) kā vēlamo drukas materiālu. Citas plastmasas var darboties, taču Raspberry Pi var nederēt gadījumā, ja izvēlētās plastmasas termiskās izplešanās koeficients ir lielāks nekā PLA. Ja jūsu 3D printerim ir apsildāmā konstrukcijas plāksne, pirms turpināt, izslēdziet sildītāju.

Veiksmīgai drukāšanai ir svarīgi orientēt modeli uz printera uzbūves plāksnes. Šie modeļi tika rūpīgi izstrādāti, tāpēc tie nav jādrukā ar atbalsta materiālu, tādējādi ietaupot plastmasu un uzlabojot drukas kvalitāti. Pirms turpināt, lejupielādējiet korpusa un vāka 3D failus. Drukājot šos modeļus, CribSense kaklam jāatrodas līdzenumā uz konstrukcijas plāksnes. Tas nodrošina, ka visi pārkares leņķi modeļos nepārsniedz 45 grādus, tādējādi novēršot prasību pēc atbalsta materiāla. Norādījumus par 3D modeļu orientēšanu printera veidotajā apjomā skatiet 3D printera komplektācijā iekļautajā lietošanas pamācībā. Korpusa un vāka konstrukcijas orientācijas piemēri ir parādīti iepriekš.

Papildus tam, ka CribSense kakls ir piestiprināts pie konstrukcijas plāksnes, jūs varat pamanīt, ka modeļi tiek pagriezti ap vertikālo asi. Tas var būt nepieciešams, lai iekļautu modeli jūsu 3D printera būvējuma apjomā. Šī rotācija nav obligāta, ja būvējuma apjoms ir pietiekami garš, lai pielāgotos CribSense.

6. darbība: aparatūras sagatavošana: montāža

Aparatūras sagatavošana: montāža
Aparatūras sagatavošana: montāža
Aparatūras sagatavošana: montāža
Aparatūras sagatavošana: montāža
Aparatūras sagatavošana: montāža
Aparatūras sagatavošana: montāža
Aparatūras sagatavošana: montāža
Aparatūras sagatavošana: montāža

Kad esat sagatavojis visu aparatūru, varat sākt montāžu. Šajā procesā var izmantot jebkuru līmi, bet mēs iesakām karstu līmi divu galveno iemeslu dēļ. Karstā līme ātri izžūst, tāpēc jums nav ilgi jāgaida, līdz līme izžūst. Turklāt, pieļaujot kļūdu, karstā līme ir noņemama. Lai noņemtu žāvētu karstu līmi, iemērciet karsto līmi berzes (izopropilspirtā). Mēs iesakām koncentrēties 90% vai vairāk, bet 70% koncentrācija joprojām darbosies. Kaltētas karstās līmes mērcēšana izopropilspirtā vājinās saikni starp līmi un pamatni, ļaujot līmi tīri noņemt. Mērcējot līmi izopropilspirtā, Raspberry Pi ir jāizslēdz un jāatvieno. Noteikti ļaujiet visam nožūt, pirms atkārtoti uzklājat karstu līmi un palaižat Raspberry Pi.

Visi šo darbību attēli ir kārtībā un seko līdzi teksta soļiem.

  1. Ievietojiet Raspberry Pi šasijā. Lai ievietotu audio portu, tas būs nedaudz jāpieliek, bet, tiklīdz tas būs ievietots, audio ligzda to saglabās vietā. Kad tas ir ievietots, pārliecinieties, ka visiem portiem joprojām var piekļūt (piemēram, varat pievienot strāvas kabeli).
  2. Pēc tam izmantojiet karstu līmi, lai piestiprinātu Pi vietā un pievienotu kameru pie Pi. Ir arī skrūvju caurumi, ja vēlaties tos izmantot.
  3. Tagad pielīmējiet gaismas diodi un kameru pie priekšējā vāka (attēlā). Sāciet, karsti pielīmējot NoIR kameru pie kameras cauruma. Pārliecinieties, vai kamera ir cieši pieguļoša un sakārtota ar šasiju. Nelietojiet pārāk daudz līmes; pretējā gadījumā kameru nevarēs ievietot galvenajā korpusā. Noteikti ieslēdziet Pi un ieskatieties kamerā (piemēram, "raspistill -v"), lai pārliecinātos, ka tā ir labi leņķiska un tai ir labs redzamības lauks. Ja tā nav, noņemiet karsto līmi un novietojiet to citā vietā.
  4. Pēc tam pielīmējiet IR gaismas diodi pie atveres uz vāka kakla. Kakls ir 45 grādu leņķī pret gultiņas sānu apgaismojumu, kas rada vairāk ēnu vājā apgaismojumā. Tas attēlam piešķir lielāku kontrastu, atvieglojot kustības noteikšanu.
  5. Pievienojiet IR LED vadus Raspberry Pi galvenes tapām, kā parādīts shematiskajā attēlā.
  6. Iepakojiet kabeļus šasijā tā, lai tie nesaburzītos un nesaspringtu. Mēs beidzām salocīt kabeļa akordeona stilu, jo mūsu kameras elastīgais kabelis bija pārāk garš.
  7. Kad viss ir ievietots, karsta līme ap malām, kur abas detaļas saskaras, aizzīmogojot tās vietā.

7. solis: kalibrēšana

Image
Image
Kalibrēšana
Kalibrēšana

Sīkāku informāciju par konfigurācijas parametriem var atrast CribSense krātuves dokumentācijā. Skatiet arī videoklipu, lai redzētu piemēru tam, kā jūs varētu kalibrēt CribSense pēc visu iestatīšanas.

Šeit ir konfigurācijas faila paraugs:

[io]; I/O konfigurācija

; ievade = ceļš_fails; Ievades fails, lai izmantotu input_fps = 15; ieejas kadri sekundē (maksimums 40, ieteicams 15, ja izmantojat kameru) full_fps = 4,5; fps, pie kura var apstrādāt pilnus kadrus crop_fps = 15; fps, pie kuriem var apstrādāt apgrieztos kadrus, kamera = 0; Izmantojamā kamera platums = 640; Ievadītā video augstuma platums = 480; Ievadītā video augstums time_to_alarm = 10; Cik sekundes jāgaida bez kustības pirms modinātāja. [apgriešana]; Adaptīvās apgriešanas iestatījumu apgriešana = true; Vai apgriezt frame_to_settle = 10; # kadri jāgaida pēc atiestatīšanas pirms apstrādes roi_update_interval = 800; # kadri starp ROI pārrēķināšanu roi_window = 50; # kadri, kas jāuzrauga, pirms izvēlaties ROI [motion]; Kustības noteikšanas iestatījumi erode_dim = 4; erozijas kodola dimensija dilate_dim = 60; paplašinātā kodola dimensija diff_threshold = 8; pirms izmaiņu ilguma atzīšanas nepieciešama abs atšķirība = 1; # kadri, lai saglabātu kustību, pirms atzīmēt patieso pixel_threshold = 5; # pikseļi, kuriem jābūt atšķirīgiem, lai tos atzīmētu kā kustību show_diff = false; parādīt starpību starp 3 kadriem [palielinājums]; Video palielināšanas iestatījumi pastiprināt = 25; Vēlamā pastiprinājuma procentuālā daļa zemā robeža = 0,5; Joslas caurlaides zemā frekvence. augsta robeža = 1,0; Joslas caurlaides augstā frekvence. slieksnis = 50; Fāzes slieksnis kā % pi. show_magnification = nepatiess; Parādiet katra palielinājuma izvades rāmjus [atkļūdošana] print_times = false; Drukāt analīzes laikus

Algoritma kalibrēšana ir atkārtots darbs, kuram nav precīza risinājuma. Mēs iesakām eksperimentēt ar dažādām vērtībām, apvienojot tās ar atkļūdošanas funkcijām, lai atrastu savai videi vispiemērotāko parametru kombināciju. Pirms sākat kalibrēšanu, pārliecinieties, vai show_diff un show_magnification ir iestatīti uz true.

Pamatnostādnēs palielinot pastiprinājumu un fāzes_sliekšņa vērtības, tiek palielināts ievades video palielinājums. Jums vajadzētu mainīt šīs vērtības, līdz skaidri redzat kustību, kuru vēlaties izsekot video kadrā. Ja redzat artefaktus, var palīdzēt samazināt fāzes_slieksni, saglabājot to pašu pastiprinājumu.

Kustības noteikšanas parametri palīdz kompensēt troksni. Atklājot kustības reģionus, erode_dim un dilate_dim tiek izmantoti, lai izmērītu OpenCV kodolu izmērus, ko izmanto kustību graušanai un paplašināšanai, lai troksnis vispirms tiktu samazināts, pēc tam atlikušais kustības signāls tiek ievērojami paplašināts, lai padarītu kustības apgabalus acīmredzamus. Šie parametri, iespējams, būs jāpielāgo arī tad, ja jūsu gultiņa ir iestatīta ļoti kontrastējoši. Parasti augsta kontrasta iestatījumiem jums būs nepieciešams lielāks erode_dim, bet zemam kontrastam - erode_dim.

Ja palaižat programmu CribSense ar show_diff = true un pamanāt, ka pārāk daudz akumulatora izvades ir baltā krāsā vai kāda pilnīgi nesaistīta video daļa tiek atklāta kā kustība (piemēram, mirgojoša lampiņa), palieliniet erode_dim, līdz tiek parādīta tikai daļa no videoklipa. atbilst jūsu mazulim ir lielākā baltā daļa. Pirmajā attēlā parādīts piemērs, kad erozijas izmērs ir pārāk zems kadra kustības apjomam, bet nākamajā - labi kalibrēts kadrs.

Kad tas ir kalibrēts, pārliecinieties, vai pixel_threshold ir iestatīts uz tādu vērtību, lai “Pixel Movement” ziņotu tikai par pikseļu kustības maksimālajām vērtībām, nevis par visām (tas nozīmē, ka jums ir jāizslēdz troksnis). Ideālā gadījumā jūs redzēsit šādu izvadi savā terminālī, kur ir skaidrs periodisks modelis, kas atbilst kustībai:

[info] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 1,219812 Hz

[informācija] Pikseļu kustība: 0 [informācija] Kustību aprēķins: 1.219812 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 1.219812 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 1.219812 Hz [informācija] Pikseļu kustība: 44 [informācija] Kustības aprēķins: 1,219812 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 1,219812 Hz [informācija] Pikseļu kustība: 161 [informācija] Kustības prognoze: 1,219812 Hz [informācija] Pikseļu kustība: 121 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 86 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustību aprēķins: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] Pikseļu kustība ent: 0 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,841416 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,841416 Hz [informācija] pikseļu kustība: 0 [informācija] kustību aprēķins: 0,841416 Hz [informācija] pikseļu kustība: 97 [informācija] kustību aprēķins: 0,841416 Hz [informācija] pikseļu kustība: 74 [informācija] kustību aprēķins: 0,839298 Hz [informācija] pikseļi Kustība: 0 [informācija] Kustības aprēķins: 0,839298 Hz [informācija] Pikseļu kustība: 60 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 48 [informācija] Kustība Aprēķins: 0,839298 Hz [informācija] Pikseļu kustība: 38 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 29 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 28 [informācija] Kustības aprēķins: 0,839298 Hz [info] Pikseļu kustība: 22 [informācija] Kustību aprēķins: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības prognoze: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustību aprēķins: 0,839298 Hz [informācija] Pikseļu kustība: 0 [informācija] Kustības aprēķins: 0,839298 Hz

Ja jūsu iznākums izskatās vairāk šādi:

[info] Pikseļu kustība: 921 [informācija] Kustības aprēķins: 1,352046 Hz

[info] pikseļu kustība: 736 [informācija] kustību aprēķins: 1,352046 Hz [info] pikseļu kustība: 666 [informācija] kustību aprēķins: 1,352046 Hz [informācija] pikseļu kustība: 663 [informācija] kustību aprēķins: 1,352046 Hz [informācija] pikseļu kustība: 1196 [informācija] Kustības aprēķins: 1,352046 Hz [informācija] Pikseļu kustība: 1235 [informācija] Kustības aprēķins: 1,352046 Hz [informācija] Pikseļu kustība: 1187 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 1115 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 959 [informācija] Kustības prognoze: 1,456389 Hz [informācija] Pikseļu kustība: 744 [informācija] Kustības prognoze: 1,456389 Hz [informācija] Pikseļu kustība: 611 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 468 [informācija] Kustību aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 371 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 307 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 270 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 234 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 197 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 179 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 164 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 239 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 733 [informācija] Kustības aprēķins: 1,456389 Hz [informācija] Pikseļu kustība: 686 [informācija] Kustības prognoze: 1,229389 Hz [informācija] Pikseļu kustība: 667 [informācija] Kustības aprēķins: 1,229389 Hz [informācija] Pikseļu kustība: 607 [info] Kustības aprēķins: 1,229389 Hz [informācija] Pikseļu kustība: 544 [informācija] Kustības prognoze: 1,229389 Hz [informācija] Pikseļu kustība: 499 [informācija] Kustības aprēķins: 1,229389 Hz [informācija] Pikseļu kustība: 434 [informācija] Kustības aprēķins: 1,229389 Hz [informācija] Pikseļu kustība: 396 [informācija] Kustības aprēķins: 1,229389 Hz [informācija] Pikseļu kustība: 375 [informācija] Kustības aprēķins: 1,229389 Hz [informācija] Pikseļu kustība: 389 [informācija] Kustības aprēķins: 1,229389 Hz [informācija] Pikseļu kustība: 305 [informācija] Kustības aprēķins: 1,312346 Hz [informācija] Pikseļu kustība: 269 [informācija] Kustības aprēķins: 1,312346 Hz [informācija] Pikseļu kustība: 1382 [informācija] Kustība E stāvoklis: 1,312346 Hz [informācija] Pikseļu kustība: 1086 [informācija] Kustības aprēķins: 1,312346 Hz [informācija] Pikseļu kustība: 1049 [informācija] Kustības aprēķins: 1,312346 Hz [informācija] Pikseļu kustība: 811 [informācija] Kustības aprēķins: 1,312346 Hz [info] Pikseļu kustība: 601 [informācija] Kustības aprēķins: 1,312346 Hz [informācija] Pikseļu kustība: 456 [informācija] Kustības aprēķins: 1,312346 Hz

Pielāgojiet pixel_threshold un diff_threshold, līdz ir redzamas tikai virsotnes, un citādi pikseļu kustība ir 0.

8. solis: demonstrācija

Image
Image

Šeit ir neliela CribSense darbības demonstrācija. Jums būs jāiedomājas, ka tas ir piestiprināts pie gultiņas sāniem.

Novietojot CribSense virs gultiņas, jums būs jāoptimizē attālums starp zīdaini un kameru. Ideālā gadījumā jūsu mazuļa krūtis aizpildīs mazāk nekā 1/3 no rāmja. Bērnam nevajadzētu būt pārāk tālu, pretējā gadījumā video ar zemu izšķirtspēju neizdosies atrast pietiekami daudz detaļu, lai to palielinātu. Ja kamera ir pārāk tuvu, kamera var neredzēt jūsu bērnu, ja viņš ripo vai pārvietojas no rāmja. Līdzīgi, ja bērns atrodas zem “nojumes” segas, kur starp segu un bērna krūtīm ir ierobežots kontakts, var būt grūti noteikt kustību. Ievelciet tos labi!

Jūs arī vēlēsities apsvērt apgaismojuma situāciju ap savu gultiņu. Ja jūsu gultiņa atrodas tieši pie loga, iespējams, ka jūs redzēsiet kustīgas ēnas vai mainīsiet gaismas vērtības, jo sauli bloķē mākoņi vai kustība notiek ārpus loga. Vislabāk ir kaut kur ar pastāvīgu apgaismojumu.

Veicot vēl kādu darbu, mēs domājam, ka kāds varētu uzlabot mūsu programmatūru, lai kalibrēšana būtu daudz vienmērīgāks process. Nākotnē varētu tikt pievienotas arī papildu funkcijas, piemēram, push paziņojumi.

9. darbība. Problēmu novēršana

Iestatot CribSense, var rasties dažas izplatītas problēmas. Piemēram, ja rodas problēmas ar programmas izveidi/palaišanu vai nav dzirdama neviena audio. Atcerieties, ka CribSense nav pilnīgi uzticams bērnu monitors. Mēs priecāsimies sniegt ieguldījumu mūsu GitHub krātuvē, veicot uzlabojumus!

Šeit ir daži problēmu novēršanas padomi, kurus esam apkopojuši, veidojot CribSense.

Modinātājs netiek atskaņots

  • Vai jūsu skaļruņi darbojas?
  • Vai jūs varat atskaņot citas skaņas no Pi ārpus CribSense modinātāja?
  • Ja jūsu Pi mēģina atskaņot audio, izmantojot HDMI, nevis audio portu? Pārbaudiet Raspberry Pi audio konfigurācijas lapu, lai pārliecinātos, ka esat izvēlējies pareizo izvadi.
  • Vai CribSense programmatūra nosaka kustību? Ja CribSense darbojas fonā, varat pārbaudīt ar journalctl -f terminālī.
  • Ja CribSense uztver daudz kustību, jums, iespējams, būs jākalibrē CribSense.

IR gaismas diode nedarbojas

  • Vai, aplūkojot IR LED, var redzēt vāju sarkanu krāsu? Kad gaismas diode ir ieslēgta, vajadzētu būt redzamam vājam sarkanam gredzenam.
  • Pārbaudiet savienojumu polaritāti. Ja +5V un GND ir apgriezti, tas nedarbosies.
  • Pievienojiet gaismas diodi barošanas avotam ar 5V/0,5A sprieguma/strāvas ierobežojumu. Parasti tam vajadzētu patērēt 0,2A pie 5V. Ja tā nenotiek, iespējams, ka jūsu gaismas diode darbojas nepareizi.

CribSense nosaka kustību pat tad, ja nav zīdaini

  • Vai esat pareizi kalibrējis CribSense?
  • Atcerieties, ka CribSense tikai meklē izmaiņas pikseļu vērtībās

    • Vai kadrā pārvietojas kādas ēnas?
    • Vai mirgo vai mainās apgaismojums?
    • Vai CribSense ir uzstādīts uz stabilas virsmas (t.i., kaut kas nesatricinās, ja cilvēki staigās pa to)?
    • Vai rāmī ir kādi citi kustību avoti (spoguļi, kas uztver atstarojumus utt.)?

CribSense NAV atklāj kustību, pat ja ir kustība

  • Vai esat pareizi kalibrējis CribSense?
  • Vai kamerai ir kas traucēts?
  • Vai jūs vispār varat izveidot savienojumu ar kameru no Raspberry Pi? Pārbaudiet, palaižot raspistill -v terminālī, lai dažas sekundes atvērtu Pi kameru.
  • Ja paskatās uz sudo systemctl statusa cribsense, vai CribSense faktiski darbojas?
  • Vai jūsu zīdainis atrodas zem segas, kas ir “noliekta” tā, lai tā nesaskartos ar bērnu? Ja starp segu un bērnu ir ievērojami gaisa spraugas, sega var maskēt kustību.
  • Vai jūs varat redzēt kustību, ja pastiprināsit videoklipu?
  • Vai jūs varat redzēt kustību, noskaņojot zemās un augstās frekvences atslēgumus?
  • Ja tas notiek tikai vājā apgaismojumā, vai pārliecinājāties, ka kalibrēšana darbojas vājā apgaismojumā?

CribSense neveido

Vai esat instalējis visas atkarības?

Es nevaru palaist cribsense no komandrindas

  • Vai, palaižot programmu, nejauši kaut ko ierakstījāt nepareizi.
  • Vai /usr /bin atrodas gultiņa?
  • Kāds ceļš ir paredzēts, ja palaižat "kuru gultiņu"?

Ieteicams: