Turinys:

„CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius: 9 žingsniai (su nuotraukomis)
„CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius: 9 žingsniai (su nuotraukomis)

Video: „CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius: 9 žingsniai (su nuotraukomis)

Video: „CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius: 9 žingsniai (su nuotraukomis)
Video: CribSenseSetup 2024, Lapkritis
Anonim
„CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius
„CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius
„CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius
„CribSense“: bekontaktis, vaizdo įrašų pagrindu veikiantis kūdikių monitorius

„CribSense“yra vaizdo įrašų bekontaktis kūdikių monitorius, kurį galite pasigaminti nesulaužydami banko

„CribSense“yra „C ++“vaizdo didinimo diegimas, pritaikytas veikti su „Raspberry Pi 3“modeliu B. Savaitgalį galite nustatyti savo kūdikio lovelės monitorių, kuris kelia signalą, jei kūdikis nustoja judėti. Kaip premiją, visą programinę įrangą galima laisvai naudoti nekomerciniais tikslais ir ją galima lengvai išplėsti.

Visą saugyklą, kurioje yra šaltinio failų ir dokumentacijos, rasite adresu

Nors manome, kad „CribSense“yra gana smagu, svarbu prisiminti, kad tai iš tikrųjų nėra sertifikuotas, nepriekaištingas saugos įtaisas. Tai reiškia, kad jis turi būti tinkamai sukonfigūruotas ir turėti gerai kontroliuojamą aplinką, kad galėtų dirbti. Pavyzdžiui, jei jis nėra gerai sukalibruotas ir (arba) vaizdo įrašo aplinka nėra palanki vaizdo įrašo didinimui, gali būti, kad negalėsite jo naudoti. Mes tai padarėme kaip įdomų projektą, norėdami pamatyti, kaip gerai galėtume turėti daug skaičiavimo reikalaujančią programinę įrangą, pvz., Vaizdo didinimą, naudojant ribotą aparatinę įrangą, pvz., „Raspberry Pi“. Bet koks tikras produktas reikalauja daug daugiau bandymų nei mes. Taigi, jei naudojate šį projektą, laikykite jį tokiu, koks jis yra: trumpas vaizdo padidinimo tyrimas „Pi“.

Ko jums reikės:

„Raspberry Pi + Camera“+ konfigūravimo įrankiai:

  • Raspberry Pi 3 B modelis
  • 5V 2.5A Micro USB maitinimo šaltinis
  • „Raspberry Pi NoIR“fotoaparato modulis V2
  • „MicroSD“kortelė (naudojome 16 GB 10 klasės kortelę)
  • Lankstus kabelis „Raspberry Pi“fotoaparatui (12 colių)
  • Garsiakalbiai su 3,5 mm įvestimi
  • HDMI monitorius
  • USB klaviatūra
  • USB pelė
  • [neprivaloma] „Raspberry Pi“radiatorius (jei nerimaujate dėl karščio, vieną iš jų galite priklijuoti prie „Pi“)

IR šviesos diodų grandinė veikimui esant silpnam apšvietimui:

  • [3x] 1N4001 diodai
  • 1 omas, 1 W rezistorius
  • 1W IR šviesos diodas
  • 2 laidai, skirti prijungti šviesos diodą prie „Pi“
  • Lituoklis

Važiuoklė:

  • Prieiga prie 3D spausdintuvo (minimalus konstrukcijos tūris = 9,9 "x 7,8" x x 5,9 "aukštis), norint spausdinti mūsų važiuoklę. Tačiau drąsiai kurkite savo.
  • Klijai (tiks bet kokio tipo klijai, tačiau prototipams rekomenduojama naudoti karštus klijus).

1 žingsnis: Būtinos sąlygos

Prieš pradėdami mūsų nuoseklų vadovą, turėtumėte jau įdiegti naujausią „Raspbian“versiją į savo SD kortelę ir įsitikinti, kad jūsų „Pi“veikia. Kad galėtumėte pasiekti kamerą, taip pat turėsite įjungti fotoaparato modulį.

2 veiksmas: „CribSense“programinės įrangos diegimas

„CribSense“priklauso nuo „autoconf“, „libtool“, „OpenCV“ir „libcanberra“bei bendrų programinės įrangos įrankių.

  • „autoconf“ir „libtool“naudojami automatiškai konfigūruoti „makefiles“ir kurti „CribSense“scenarijus daugelyje platformų (pvz., „Linux“, OSX ir „Raspberry Pi“).
  • „OpenCV“yra galingas kompiuterinės vizijos paketas, naudojamas vaizdams apdoroti, ir yra vaizdo didinimo ir judesio aptikimo kodo pagrindas. Jis puikiai palaiko, yra paprastas naudoti ir pasižymi geru veikimu.
  • „libcanberra“yra paprasta biblioteka, skirta įvykių garsams paleisti. Jis naudojamas „CribSense“aliarmo garsui paleisti.

Apsilankykite atskiruose jų puslapiuose, kad gautumėte išsamią informaciją.

Įdiekite juos atidarę „Pi“terminalą ir paleisdami:

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

Toliau turite nustatyti fotoaparato tvarkyklę automatiškai įkelti, pridėdami „bcm2835-v4l2“prie „/etc/modules-load.d/modules.conf“. Jūsų modules.conf turėtų atrodyti taip:

# /etc /modules: branduolio moduliai, įkeliami įkrovos metu.

# # Faile yra branduolio modulių, kurie turėtų būti įkelti # įkrovos metu, pavadinimai, po vieną eilutėje. Eilutės, prasidedančios „#“, ignoruojamos. „i2c-dev bcm2835-v4l2“

Kai failas bus redaguotas, turite iš naujo paleisti „Pi“. Šią tvarkyklę „CribSense“naudoja tiesiogiai ištraukti kadrus iš „NoIR“kameros.

Tada galite klonuoti saugyklą paleisdami:

git klonas

Tada eikite į saugyklą ir paleiskite programinę įrangą

cd CribSense

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

Sveikiname, jūs įdiegėte visą reikalingą programinę įrangą!

Konfigūracija

„CribSense“galima pritaikyti naudojant paprastą INI konfigūracijos failą. Paleidus „make install“, konfigūracijos failas yra adresu /etc/cribsense/config.ini. Šiuos parametrus galite peržiūrėti ir redaguoti paleisdami

sudo nano /etc/cribsense/config.ini

Trumpas kiekvieno parametro paaiškinimas pateikiamas numatytojoje konfigūracijoje, tačiau daugiau informacijos rasite adresu https://lukehsiao.github.io/CribSense/setup/config/. Kalibravimą ir konfigūravimą taip pat aptarsime šio vadovo pabaigoje.

Veikia „CribSense“

„CribSense“buvo sukurta paleisti paleidžiant naudojant sisteminę paslaugą. Kol esate prijungtas prie „Raspberry Pi“klaviatūra ir pele, įsitikinkite, kad jūsų lovelės konfigūracijos parametrai veikia. Jei perkelsite, gali reikėti iš naujo sureguliuoti šiuos parametrus.

Kai derinate parametrus, galite paleisti „Cribsense“pagal savo norą iš komandinės eilutės

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

Kai būsite patenkinti, paleiskite automatinį paleidimą

sudo systemctl įgalina „Cribsense“

Bėgdami galite sustabdyti „Cribsense“paleidimą automatiškai

sudo systemctl išjungti „Cribsense“

Programinės įrangos apžvalga

„CribSense“programinė įranga yra šio projekto širdis ir siela. Pamatėme keletą puikių vaizdo didinimo demonstracinių demonstracijų iš MIT ir norėjome išbandyti panašų algoritmą „Raspberry Pi“. Tam reikėjo daugiau nei 10 kartų pagreitinti „tbl3rd“darbą, susijusį su C ++ vaizdo didinimo įgyvendinimu, kad jis veiktų realiuoju laiku „Pi“. Reikalingi optimizavimai vadovavosi mūsų programinės įrangos kūrimu.

Aukštu lygiu „CribSense“pakartotinai važiuoja per programinės įrangos būsenos mašiną. Pirma, jis padalija kiekvieną 640 x 480 pilkos spalvos vaizdo įrašo kadrą į 3 horizontalias dalis (640 x 160), kad būtų geriau talpykloje. Tada ji padidina kiekvieną juostą atskirame siūle ir stebi kadre matomą judesį. Stebėdamas judesį kelias sekundes, jis nustato pagrindinę judesio sritį ir apkarpo rėmą. Tai sumažina bendrą algoritmo apdorojamų taškų skaičių. Tada „CribSense“stebi judesio kiekį apkarpytame sraute ir skamba aliarmu, jei per nustatytą laiką nesuvokiamas judesys. Periodiškai „CribSense“vėl atveria savo vaizdą, kad galėtų stebėti visą kadrą, jei kūdikis pajudėtų ir iš naujo apkarpytų aplink naują pagrindinę judesio sritį.

Vaizdo didinimas naudojamas norint padidinti signalo ir triukšmo santykį subtilių judesių, tokių kaip kūdikių kvėpavimas. Tai nebūtų būtina didesniems judesiams, bet gali padėti labai subtiliems judesiams. Atminkite, kad mūsų diegimas yra laisvai pagrįstas algoritmu, aprašytu MIT dokumentuose, ir neveikia taip gerai, kaip jų patentuotas kodas.

Optimizavimas, pvz., Kelių gijų, pritaikomas apkarpymas ir kompiliatoriaus optimizavimas, pagreitino mus atitinkamai maždaug 3, 3 ir 1,2 karto. Tai leido mums pasiekti 10 kartų pagreitį, reikalingą realiuoju laiku paleisti „Pi“.

Išsamią informaciją rasite „CribSense“saugyklos programinės įrangos architektūros puslapyje.

Jei jus domina vaizdo įrašo didinimas, apsilankykite MIT puslapyje.

3 žingsnis: Paruoškite aparatūrą: prijunkite fotoaparatą

Techninės įrangos paruošimas: prijunkite fotoaparatą
Techninės įrangos paruošimas: prijunkite fotoaparatą

Pirmiausia turite su fotoaparatu gautą 6 colių kabelį pakeisti 12 colių kabeliu. Norėdami tai padaryti, tiesiog vadovaukitės šia pamoka, kaip pakeisti fotoaparato kabelį.

Apibendrinant, fotoaparato gale pamatysite stūmimo/traukimo skirtuką, kurį galite ištraukti, kad atlaisvintumėte lankstųjį kabelį. Pakeiskite trumpą kabelį į ilgesnį ir stumkite skirtuką atgal.

Pastebėsite, kad mūsų nuotraukose yra 24 colių kabelis. Jis buvo per ilgas. Medžiagų sąraše esantis 12 colių kabelis yra daug protingesnio ilgio.

4 žingsnis: Paruoškite aparatūrą: IR šviesos diodas

Techninės įrangos paruošimas: IR šviesos diodas
Techninės įrangos paruošimas: IR šviesos diodas
Techninės įrangos paruošimas: IR šviesos diodas
Techninės įrangos paruošimas: IR šviesos diodas
Techninės įrangos paruošimas: IR šviesos diodas
Techninės įrangos paruošimas: IR šviesos diodas

„CribSense“yra gana lengva sukurti ir daugiausia susideda iš parduodamų dalių. Kaip matyti aukščiau esančiame paveikslėlyje, yra 5 pagrindiniai aparatūros komponentai, iš kurių tik 2 yra pagaminti pagal užsakymą. Šiame puslapyje bus aprašyta, kaip sukurti IR šviesos diodų grandinę, o kitame puslapyje - važiuoklės konstrukcija.

Šiai daliai turite gauti lituoklį, laidus, diodus, IR šviesos diodą ir rezistorių. Mes sukursime grandinę, pavaizduotą 2 paveiksle. Jei dar nesate lydmetalis, čia yra puikus vadovas, kuris jus užklups. Nors šiame vadove aptariamas litavimas per skylę, galite naudoti tuos pačius pagrindinius metodus, kaip sujungti šiuos komponentus, kaip parodyta 3 paveiksle.

Siekiant užtikrinti tinkamą nakties apšvietimą, mes naudojame IR šviesos diodą, kuris nematomas žmogaus akims, bet matomas NoIR fotoaparatui. IR šviesos diodas nevartoja daug energijos, palyginti su „Raspberry Pi“, todėl paprastumo dėlei paliekame įjungtą IR šviesos diodą.

Ankstesnėse „Pi“versijose didžiausia šių kaiščių srovė buvo 50 mA. „Raspberry Pi B+“tai padidino iki 500 mA. Tačiau paprastumui naudojame tik 5 V maitinimo kaiščius, kurie gali tiekti iki 1,5 A. Pagal mūsų matavimus IR šviesos diodo priekinė įtampa yra apie 1,7 ~ 1,9 V. Nors IR šviesos diodas gali suvartoti 500 mA nepažeisdamas savęs, mes sumažiname srovę iki maždaug 200 mA, kad sumažintume šilumą ir bendrą energijos suvartojimą. Eksperimentiniai rezultatai taip pat rodo, kad IR šviesos diodas yra pakankamai ryškus, kai įėjimo srovė yra 200 mA. Norėdami užpildyti atotrūkį tarp 5V ir 1,9V, mes naudojame tris 1N4001 diodus ir 1 omo rezistorių nuosekliai su IR LED. Įtampos kritimas per laidą, diodus ir rezistorių yra atitinkamai apie 0,2 V, 0,9 V (kiekvienam) ir 0,2 V. Taigi įtampa per IR šviesos diodą yra 5V - 0,2V - (3 * 0,9V) - 0,2V = 1,9V. Šilumos išsklaidymas per šviesos diodą yra 0,18 W ir 0,2 W per rezistorių, viskas gerai, neviršijant jų maksimalių verčių.

Bet mes dar nebaigėme! Siekdami geriau tilpti į 3D spausdintą važiuoklę, norime, kad IR LED objektyvas išsikištų iš mūsų važiuoklės ir kad PCB plokštė būtų su skyle. Apatiniame dešiniajame kampe sutrukdys mažas fotodiodas. Norėdami tai išspręsti, mes jį išlydome ir apverčiame į priešingą lentos pusę, kaip parodyta paskutinėse dviejose nuotraukose. Fotodiodo nereikia, nes norime, kad šviesos diodas visada degtų. Tiesiog perjungus jį į priešingą pusę, originali LED grandinė nesikeičia.

Lituojant prie laidų, įsitikinkite, kad laidai yra mažiausiai 12 colių ilgio ir turi kaiščių antraštes, kurios gali slysti per „Pi“GPIO.

5 žingsnis: Paruoškite aparatūrą: važiuoklė

Techninės įrangos paruošimas: važiuoklė
Techninės įrangos paruošimas: važiuoklė
Techninės įrangos paruošimas: važiuoklė
Techninės įrangos paruošimas: važiuoklė
Techninės įrangos paruošimas: važiuoklė
Techninės įrangos paruošimas: važiuoklė

Šaltinio failai:

  • Byla STL
  • „Case Makerbot“
  • Uždenkite STL
  • „Makerbot“viršelis

Mes panaudojome paprastą 3D spausdintą važiuoklę „Pi“, fotoaparatui ir LED. Mūsų važiuoklės naudojimas yra neprivalomas, nors rekomenduojama, kad maži vaikai neliestų atviros elektroninės grandinės. Kiekviena lovelė yra skirtinga, todėl mūsų važiuoklėje nėra tvirtinimo laikiklio. Gali būti keletas montavimo variantų:

  • Kabeliai
  • 3M dvigubas užraktas
  • Velcro
  • Juosta

Jei turite prieigą prie „MakerBot“replikatoriaus (5 -oji karta), galite tiesiog atsisiųsti.makerbot failus, skirtus dėklui ir dangteliui, į „MakerBot“replikatorių ir atsispausdinti. Dėklo spausdinimas užtrunka apie 6 valandas, o viršelis - 3 valandas. Jei naudojate kito tipo 3D spausdintuvą, skaitykite toliau.

Norint spausdinti „CribSense“, reikia mažiausiai 9,9 colio (L) x 7,8 colio (P) x 5,9 colio (H). paslaugą (pvz., „Shapeways“ar „Sculpteo“), kad spausdintumėte „CribSense“. Minimali spausdinimo skiriamoji geba yra 0,015 colio. Jei naudojate lydytų gijų gamybos tipo 3D spausdintuvą, tai reiškia, kad purkštukų skersmuo turi būti 0,015 colio arba mažesnis. Gali veikti mažesnės spausdinimo raiškos (didesni purkštukų skersmenys) spausdintuvai, tačiau „Raspberry Pi“gali netilpti į korpusą. Kaip rekomenduojamą spausdinimo medžiagą rekomenduojame PLA (polipienio rūgštį). Kiti plastikai gali veikti, tačiau „Raspberry Pi“gali netikti tuo atveju, jei pasirinkto plastiko šiluminio plėtimosi koeficientas yra didesnis nei PLA. Jei jūsų 3D spausdintuvas turi pašildytą konstrukcinę plokštę, prieš tęsdami išjunkite šildytuvą.

Norint sėkmingai spausdinti, labai svarbu modelį orientuoti į spausdintuvo konstrukcinę plokštę. Šie modeliai buvo kruopščiai suprojektuoti, todėl jų nereikia spausdinti su pagalbine medžiaga, taip taupant plastiką ir pagerinant spausdinimo kokybę. Prieš tęsdami atsisiųskite korpuso ir dangtelio 3D failus. Spausdinant šiuos modelius, „CribSense“kaklas turi būti plokščias ant konstrukcijos plokštės. Tai užtikrina, kad visi modelių išsikišimo kampai neviršytų 45 laipsnių, todėl nebereikės atraminės medžiagos. Instrukcijas, kaip orientuoti 3D modelius į spausdintuvo tūrį, rasite su 3D spausdintuvu pateikiamame naudojimo vadove. Korpuso ir dangčio konstrukcijos orientacijos pavyzdžiai pateikti aukščiau.

Galite ne tik priglausti „CribSense“kaklą prie konstrukcijos plokštės, bet ir pastebėti, kad modeliai yra pasukti aplink vertikalią ašį. To gali prireikti, kad modelis tilptų į jūsų 3D spausdintuvo konstrukcijos tūrį. Šis sukimasis yra neprivalomas, jei kūrimo apimtis yra pakankamai ilga, kad tilptų „CribSense“.

6 veiksmas: aparatūros paruošimas: surinkimas

Techninės įrangos paruošimas: surinkimas
Techninės įrangos paruošimas: surinkimas
Techninės įrangos paruošimas: surinkimas
Techninės įrangos paruošimas: surinkimas
Techninės įrangos paruošimas: surinkimas
Techninės įrangos paruošimas: surinkimas
Techninės įrangos paruošimas: surinkimas
Techninės įrangos paruošimas: surinkimas

Kai paruošite visą techninę įrangą, galite pradėti surinkimą. Šiame procese galima naudoti bet kokius klijus, tačiau rekomenduojame karštus klijus dėl dviejų pagrindinių priežasčių. Karšti klijai greitai išdžiūsta, todėl nereikia ilgai laukti, kol klijai išdžius. Be to, jei suklydote, karšti klijai yra nuimami. Norėdami pašalinti džiovintus karštus klijus, įmerkite karštus klijus į trinamąjį (izopropilo) alkoholį. Rekomenduojame 90% ar didesnę koncentraciją, tačiau 70% koncentracija vis tiek veiks. Mirkę džiovintus karštus klijus izopropilo alkoholyje, susilpninsite ryšį tarp klijų ir pagrindo paviršiaus, leisdami klijus švariai nulupti. Mirkant klijus izopropilo alkoholyje, „Raspberry Pi“reikia išjungti ir atjungti. Prieš tepdami karštus klijus ir paleisdami „Raspberry Pi“, būtinai leiskite visam išdžiūti.

Visos šių veiksmų nuotraukos yra tvarkingos ir seka kartu su teksto veiksmais.

  1. Įdėkite „Raspberry Pi“į važiuoklę. Norėdami įvesti garso prievadą, turėsite jį šiek tiek sulenkti, tačiau kai jis bus įvestas, garso lizdas jį laikys vietoje. Įdėję, įsitikinkite, kad vis tiek galite pasiekti visus prievadus (pvz., Galite prijungti maitinimo kabelį).
  2. Tada naudokite karštus klijus, kad pritvirtintumėte Pi į vietą ir pritvirtintumėte fotoaparatą prie Pi. Taip pat yra varžtų skylių, jei norite jas naudoti.
  3. Dabar priklijuokite šviesos diodą ir fotoaparatą prie priekinio dangtelio (nuotraukoje). Pradėkite karštu klijavimu NoIR fotoaparatą prie kameros angos. Įsitikinkite, kad fotoaparatas yra prigludęs ir sutapatintas su važiuokle. Nenaudokite per daug klijų; kitaip fotoaparato negalėsite įdėti į pagrindinį dėklą. Būtinai įjunkite „Pi“ir pažvelkite į fotoaparatą (pvz., „Raspistill -v“), kad įsitikintumėte, jog jis yra gerai pakreiptas ir turi gerą matymo lauką. Jei taip nėra, nuimkite karštus klijus ir pakeiskite jų vietą.
  4. Tada priklijuokite IR šviesos diodą prie angos, esančios dangtelio kaklelyje. Kaklas yra 45 laipsnių kampu į lovelės šoną, todėl esant silpnam apšvietimui atsiranda daugiau šešėlių. Tai padidina vaizdo kontrastą ir palengvina judesio aptikimą.
  5. Pritvirtinkite IR šviesos diodų laidus prie „Raspberry Pi“antgalių kaiščių, kaip parodyta schemoje.
  6. Įkiškite kabelius į važiuoklę taip, kad jie nesusiglamžytų ir netemptų. Mes galų gale sulankstėme kabelio akordeono stilių, nes mūsų fotoaparato lankstusis kabelis buvo per ilgas.
  7. Viską įkišus, karštais klijais aplink kraštus, kur susitinka dvi dalys, užsandarinkite jas vietoje.

7 žingsnis: kalibravimas

Image
Image
Kalibravimas
Kalibravimas

Išsamią informaciją apie konfigūracijos parametrus rasite „CribSense“saugyklos dokumentacijoje. Taip pat peržiūrėkite vaizdo įrašą, kad pamatytumėte pavyzdį, kaip galite kalibruoti „CribSense“, kai viskas bus nustatyta.

Čia yra konfigūracijos failo pavyzdys:

[io]; Įvesties/išvesties konfigūracija

; įvestis = kelias_failas; Įvesties failas naudoti įvesties_fps = 15; kadrų per sekundę (40 maks., Rekomenduojama 15, jei naudojate fotoaparatą) full_fps = 4,5; fps, kuriuo galima apdoroti visus kadrus crop_fps = 15; fps, kuriuo galima apdoroti apkarpytus kadrus kamera = 0; Naudojamas fotoaparatas plotis = 640; Įvesties vaizdo aukščio plotis = 480; Įvesties vaizdo įrašo aukštis time_to_alarm = 10; Kiek sekundžių reikia laukti be judesio prieš žadintuvą. [apkarpymas]; Adaptyvūs apkarpymo nustatymai apkarpyti = true; Ar apkarpyti frame_to_settle = 10; # kadrų laukti po atstatymo prieš apdorojant roi_update_interval = 800; # kadrų tarp IG perskaičiavimo roi_window = 50; # kadrų, kuriuos reikia stebėti prieš pasirenkant ROI [motion]; Judesio aptikimo nustatymai erode_dim = 4; erodo branduolio matmuo dilate_dim = 60; išsiplėtusio branduolio matmenys diff_threshold = 8; abs skirtumas reikalingas prieš pripažįstant pokyčių trukmę = 1; # kadrų, kad išlaikytų judesį prieš pažymėdami tikrąjį pikselių_slenkstį = 5; # pikselių, kurie turi skirtis, kad būtų pažymėti kaip judesio šou_diff = false; rodyti skirtumą tarp 3 kadrų [padidinimas]; Vaizdo didinimo nustatymai sustiprinti = 25; Stiprinimo procentas pageidaujamas maža riba = 0,5; Žemas pralaidumo dažnis. aukštoji riba = 1,0; Didelis dažnių juostos pralaidumas. slenkstis = 50; Fazės slenkstis kaip % pi. show_magnification = klaidinga; Rodyti kiekvieno padidinimo išvesties kadrus [debug] print_times = false; Spausdinkite analizės laikus

Algoritmo kalibravimas yra pasikartojanti pastanga, be tikslaus sprendimo. Mes raginame eksperimentuoti su įvairiomis vertėmis, derinant jas su derinimo funkcijomis, kad rastumėte labiausiai jūsų aplinkai tinkamų parametrų derinį. Prieš pradėdami kalibruoti, įsitikinkite, kad show_diff ir show_magnification yra nustatyta į true.

Paprastai padidinus stiprinimą ir fazės_slenksčio reikšmes, padidinamas įvesties vaizdo įrašo padidinimas. Turėtumėte keisti šias vertes, kol vaizdo įrašo kadre aiškiai matysite norimą stebėti judesį. Jei matote artefaktų, gali padėti sumažinti fazės_slenkstį išlaikant tą patį stiprinimą.

Judesio aptikimo parametrai padeda kompensuoti triukšmą. Aptikdami judesio sritis, „erode_dim“ir „dilate_dim“naudojami norint nustatyti „OpenCV“branduolių, naudojamų judesiui suardyti ir išplėsti, matmenis, kad triukšmas iš pradžių išnyktų, o likęs judesio signalas būtų gerokai išplėstas, kad judesio sritys būtų akivaizdžios. Šiuos parametrus taip pat gali tekti sureguliuoti, jei jūsų lovelė yra labai didelio kontrasto. Apskritai, norint nustatyti didelio kontrasto parametrus, jums reikės didesnio erode_dim, o mažesnio - mažesnio erode_dim.

Jei paleidžiate „CribSense“su „show_diff = true“ir pastebite, kad per daug akumuliatoriaus išvesties yra balta arba kai kuri visiškai nesusijusi vaizdo įrašo dalis yra aptinkama kaip judesys (pvz., Mirksi lemputė), padidinkite „erode_dim“, kol pasirodys tik vaizdo įrašo dalis. atitinka jūsų kūdikį yra didžiausia baltos spalvos dalis. Pirmajame paveikslėlyje parodytas pavyzdys, kai erozijos matmenys yra per maži kadro judesiui, o kitame - gerai sukalibruotas kadras.

Kai tai bus sukalibruota, įsitikinkite, kad „pixel_threshold“nustatyta tokia vertė, kad „Pixel Movement“praneštų tik apie didžiausias pikselių judėjimo vertes, o ne apie visas (tai reiškia, kad reikia išjungti triukšmą). Idealiu atveju tokį išvestį matysite savo terminale, kur yra aiškus periodiškas modelis, atitinkantis judesį:

[info] Pikselių judėjimas: 0 [informacija] Judesio sąmata: 1,219812 Hz

[info] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 1,219812 Hz [info] Pikselių judėjimas: 0 [info] Judesio įvertinimas: 1,219812 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 1,219812 Hz [informacija] Pikselių judėjimas: 44 [informacija] Judesio įvertinimas: 1,219812 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio prognozė: 1,219812 Hz [informacija] Pikselių judėjimas: 161 [informacija] Judesio prognozė: 1,219812 Hz [informacija] Pikselių judėjimas: 121 [informacija] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio prognozė: 0,841416 Hz [informacija] Pikselių judėjimas: 86 [informacija] Judesio sąmata: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio prognozė: 0,841416 Hz [info] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 0,841416 Hz [info] Pikselių judėjimas: 0 [info] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [info] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas ent: 0 [info] Judesio įvertinimas: 0,841416 Hz [info] Pikselių judėjimas: 0 [info] Judesio įvertinimas: 0,841416 Hz [info] Pikselių judėjimas: 0 [info] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio prognozė: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio sąmata: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio prognozė: 0,841416 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 0,841416 Hz [informacija] Pikselių judėjimas: 97 [informacija] Judesio sąmata: 0,841416 Hz [informacija] Pikselių judėjimas: 74 [informacija] Judesio prognozė: 0,839298 Hz [informacija] Pikselis Judėjimas: 0 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 60 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio įvertinimas: 0,839298 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio prognozė: 0,839298 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 48 [informacija] Judesys Įvertinimas: 0,839298 Hz [informacija] Pikselių judėjimas: 38 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 29 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 28 [informacija] Judesio prognozė: 0,839298 Hz [info] Pikselių judėjimas: 22 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio sąmata: 0,839298 Hz [informacija] Pikselių judėjimas: 0 [informacija] Judesio prognozė: 0,839298 Hz [informacija] Pikselių judėjimas: 0 [informacija] judesio įvertinimas: 0,839298 Hz [informacija] pikselių judėjimas: 0 [informacija] judesio įvertinimas: 0,839298 Hz

Jei jūsų išvestis atrodo daugiau taip:

[info] Pikselių judėjimas: 921 [informacija] Judesio sąmata: 1,352046 Hz

[info] Pikselių judėjimas: 736 [informacija] Judesio įvertinimas: 1,352046 Hz [informacija] Pikselių judėjimas: 666 [informacija] Judesio sąmata: 1,352046 Hz [informacija] Pikselių judėjimas: 663 [informacija] Judesio prognozė: 1,352046 Hz [informacija] Pikselių judėjimas: 1196 [informacija] Judesio įvertinimas: 1,352046 Hz [informacija] Pikselių judėjimas: 1235 [informacija] Judesio sąmata: 1,352046 Hz [informacija] Pikselių judėjimas: 1187 [informacija] Judesio sąmata: 1,456389 Hz [informacija] Pikselių judėjimas: 1115 [informacija] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 959 [informacija] Judesio prognozė: 1,456389 Hz [informacija] Pikselių judėjimas: 744 [informacija] Judesio sąmata: 1,456389 Hz [informacija] Pikselių judėjimas: 611 [informacija] Judesio sąmata: 1,456389 Hz [info] Pikselių judėjimas: 468 [informacija] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 371 [info] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 307 [info] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 270 [info] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 234 [informacija] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 197 [informacija] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 179 [informacija] Judesio įvertinimas: 1,456389 Hz [informacija] Pikselių judėjimas: 164 [informacija] Judesio sąmata: 1,456389 Hz [informacija] Pikselių judėjimas: 239 [informacija] Judesio prognozė: 1,456389 Hz [informacija] Pikselių judėjimas: 733 [informacija] Judesio sąmata: 1,456389 Hz [informacija] Pikselių judėjimas: 686 [informacija] Judesio sąmata: 1,229389 Hz [informacija] Pikselių judėjimas: 667 [informacija] Judesio sąmata: 1,229389 Hz [informacija] Pikselių judėjimas: 607 [informacija] Judesio įvertinimas: 1,229389 Hz [informacija] Pikselių judėjimas: 544 [informacija] Judesio prognozė: 1,229389 Hz [informacija] Pikselių judėjimas: 499 [informacija] Judesio sąmata: 1,229389 Hz [informacija] Pikselių judėjimas: 434 [informacija] Judesio prognozė: 1,229389 Hz [informacija] Pikselių judėjimas: 396 [informacija] Judesio įvertinimas: 1,229389 Hz [informacija] Pikselių judėjimas: 375 [informacija] Judesio sąmata: 1,229389 Hz [informacija] Pikselių judėjimas: 389 [informacija] Judesio prognozė: 1,229389 Hz [informacija] Pikselių judėjimas: 305 [informacija] Judesio sąmata: 1,312346 Hz [informacija] Pikselių judėjimas: 269 [informacija] Judesio sąmata: 1,312346 Hz [informacija] Pikselių judėjimas: 1382 [informacija] Judėjimas E apytikslė: 1,312346 Hz [informacija] Pikselių judėjimas: 1086 [informacija] Judesio sąmata: 1,312346 Hz [informacija] Pikselių judėjimas: 1049 [informacija] Judesio sąmata: 1,312346 Hz [informacija] Pikselių judėjimas: 811 [informacija] Judesio sąmata: 1,312346 Hz [info] Pikselių judėjimas: 601 [informacija] Judesio įvertinimas: 1,312346 Hz [informacija] Pikselių judėjimas: 456 [informacija] Judesio sąmata: 1,312346 Hz

Koreguokite „pixel_threshold“ir „diff_threshold“, kol matomos tik smailės, o kitaip pikselių judėjimas yra 0.

8 žingsnis: demonstracija

Image
Image

Čia yra nedidelė „CribSense“veikimo demonstracija. Turėsite įsivaizduoti, kad jis pritvirtintas prie lovelės šono.

Kai pastatysite „CribSense“virš savo lovelės, turėsite optimizuoti atstumą tarp kūdikio ir fotoaparato. Idealiu atveju jūsų kūdikio krūtinė užpildys mažiau nei 1/3 rėmo. Vaikas neturėtų būti per toli, nes kitaip mažos skiriamosios gebos vaizdo įrašas stengsis rasti pakankamai detalių, kad padidintų. Jei fotoaparatas yra per arti, fotoaparatas gali nematyti jūsų vaiko, jei jis ridenasi ar išsikelia iš kadro. Panašiai, jei vaikas yra po „palapine“antklode, kur ribotas kontaktas tarp antklodės ir vaiko krūtinės, gali būti sunku aptikti judesį. Įdėkite juos gerai!

Taip pat norėsite apsvarstyti apšvietimą aplink savo lovelę. Jei jūsų lovelė yra prie pat lango, galite matyti judančius šešėlius arba keisti šviesos vertes, nes saulė yra užblokuota debesų arba judėjimas vyksta už lango. Geriausia kur nors, kur yra pastovus apšvietimas.

Dirbdami daugiau, manome, kad kažkas galėtų patobulinti mūsų programinę įrangą, kad kalibravimas būtų daug sklandesnis. Ateityje taip pat gali būti pridėtos papildomos funkcijos, pvz., Tiesioginiai pranešimai.

9 veiksmas: trikčių šalinimas

Nustatydami „CribSense“galite susidurti su keliomis įprastomis problemomis. Pavyzdžiui, kyla problemų kuriant/paleidžiant programą arba negirdint jokio garso. Atminkite, kad „CribSense“nėra visiškai patikimas kūdikių monitorius. Mes laukiame jūsų „GitHub“saugyklos indėlio, kai darote patobulinimus!

Štai keletas trikčių šalinimo patarimų, kuriuos surinkome kurdami „CribSense“.

Žadintuvas negroja

  • Ar jūsų garsiakalbiai veikia?
  • Ar galite groti kitus „Pi“garsus ne „CribSense“žadintuve?
  • Jei jūsų „Pi“bando leisti garsą per HDMI, o ne garso prievadą? Patikrinkite Raspberry Pi garso konfigūracijos puslapį ir įsitikinkite, kad pasirinkote tinkamą išvestį.
  • Ar „CribSense“programinė įranga aptinka judesį? Jei „CribSense“veikia fone, galite tai patikrinti terminale naudodami journalctl -f.
  • Jei „CribSense“jaučia daug judesių, gali tekti kalibruoti „CribSense“.

IR šviesos diodas neveikia

  • Ar matote blyškią raudoną spalvą, kai žiūrite į IR šviesos diodą? Šviečiant šviesos diodui turėtų būti matomas silpnas raudonas žiedas.
  • Patikrinkite jungčių poliškumą. Jei +5V ir GND yra atvirkščiai, tai neveiks.
  • Prijunkite šviesos diodą prie maitinimo šaltinio su 5V/0,5A įtampos/srovės riba. Paprastai jis turėtų suvartoti 0,2 A esant 5 V įtampai. Jei ne, jūsų LED gali veikti netinkamai.

„CribSense“nustato judesį, net jei nėra kūdikio

  • Ar tinkamai kalibravote „CribSense“?
  • Atminkite, kad „CribSense“tik ieško pikselių verčių pokyčių

    • Ar kadre juda šešėliai?
    • Ar mirksi ar keičiasi apšvietimas?
    • Ar „CribSense“yra sumontuotas ant stabilaus paviršiaus (t. Y. To, kas nesudrebės, jei juo eis žmonės)?
    • Ar rėmelyje yra kitų judėjimo šaltinių (veidrodžiai, fiksuojantys atspindžius ir pan.)?

„CribSense“NEGALIMA judėti, nors yra judesio

  • Ar tinkamai kalibravote „CribSense“?
  • Ar yra kas nors kameros kelyje?
  • Ar apskritai galite prisijungti prie fotoaparato iš „Raspberry Pi“? Patikrinkite paleisdami raspistill -v terminale, kad kelias sekundes atidarytumėte „Pi“kamerą.
  • Jei pažvelgsite į „sudo systemctl“būsenos „cribsense“, ar „CribSense“iš tikrųjų veikia?
  • Ar jūsų kūdikis yra po antklode, kuri yra „palapinėta“, kad jis nekontaktuotų su vaiku? Jei tarp antklodės ir vaiko yra didelių oro tarpų, antklodė gali užmaskuoti judesį.
  • Ar matote judesį, jei padidinsite vaizdo įrašą?
  • Ar matote judesį, jei sureguliuojate žemo ir aukšto dažnio ribas?
  • Jei tai vyksta tik esant silpnam apšvietimui, ar įsitikinote, kad kalibravimas veikia esant silpnam apšvietimui?

„CribSense“nesukuria

Ar įdiegėte visas priklausomybes?

Negaliu paleisti „Cribsense“iš komandinės eilutės

  • Ar kurdami programinę įrangą netyčia klaidingai įvedėte./autogen.sh --prefix =/usr --sysconfdir =/etc --disable-debug
  • Ar cribsense yra /usr /bin?
  • Koks kelias numatytas, jei paleidžiate „kurią lovelę“?

Rekomenduojamas: