Kazalo:
- 1. korak: Potrebne so glavne postavke
- 2. korak: Sistem
- 3. korak: Čas kodiranja
- 4. korak: Sestavite skupaj
- 5. korak: Rezultati
- 6. korak: lažno pozitivni rezultati
Video: Cat-a-way-Cat Vision Cat Računalniški vid: 6 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Težava - mačke vaš vrt uporabljajo kot stranišče
Rešitev - porabite preveč časa za izdelavo brizgalne za mačke s funkcijo samodejnega nalaganja na youtube
To ni korak za korakom, ampak pregled gradnje in nekaj kode
#BeforeYouCallPETA - Mačke so v redu, škropilnica z nizkim pritiskom, tako kot dež, ki jo lahko prehitijo, še preden se celo obrne okoli njih. Projekt ni namočiti mačko, ampak jo odtrgati, preden mi zatrejo vrt z mačjo različico jajc Barkers.
1. korak: Potrebne so glavne postavke
Raspberry Pi zero & SD kartica
Fotoaparat Raspberry Pi
Rele
Časovnik 555…. (ali arduino in drug rele, če ne pridejo vaši časovniki 555)
Solenoid
Razpršilnik
Nekakšno ohišje za elektroniko
Pripravljenost udariti v metaforični žebelj s 6 -tonskim kladivom
Kamera s tako majhno ločljivostjo, da komaj vidite vodo, a vseeno lahko vidite mačke, ki tečejo v zavetje
2. korak: Sistem
1, Pi kamera zazna predmet v velikosti mačke, ki se premika za nekaj okvirjev kamere (podrobneje v naslednjem koraku)
2, Pi sproži brizgalno
3, Cat teče v zavetje
4, videoposnetek se samodejno naloži na youtube za užitek gledanja
3. korak: Čas kodiranja
Z uporabo openCV z odštevanjem okvirja lahko najdete območja okvirja, ki se sčasoma spreminjajo, z nekaj vrhunskimi funkcijami pa lahko ugotovite, kako velike so te spremembe in ali se sčasoma pojavljajo, in kar je najpomembneje, ugotovite, ali so velikosti mačk.
Obstaja kar nekaj vaj o odštevanju okvirjev, ki so zelo podrobne, če opravite hitro iskanje v Googlu.
Pregled delovanja kode
1, Kamera neprestano zajema okvirje in jih primerja z zadnjimi
2, Če se zazna oblika mačke, se to zabeleži
3, če se sprememba velikosti mačke nadaljuje v približno 4 sličicah, pi uporabi GPIO za napajanje releja za zagon arduina
4, Arduino pošlje signal za vklop drugega releja za 5 sekund, ki aktivira elektromagnet
5, elektromagnet, ko je vklopljen, omogoča dovajanje vode v brizgalno
6, Ko je brizgalka aktivna, kamera preneha zaznavati in snema video
7, Video je naložen na Youtube
8, Posnetki naloženi v dropbox za sistem natančne nastavitve
Opomba - Zakaj sem na koncu uporabil 2 releja in arduino za vklop solenoida za 5 sekund …
1, pi ne more zagnati in ustaviti solenoida med snemanjem videoposnetka, ko se python skripti zaustavijo, dokler se videoposnetek ne konča, zato je potreba po arduinu (ali merilniku 555), da se elektromagnet odpre in zapre neodvisno od skripta, medtem ko se video se še snema.
2, prvi rele in arduino lahko zamenjate s časovnikom 555, vendar to ni prišlo pravočasno za ta projekt, 555 bi prihranil veliko časa denarja in korakov.
3, pi ne more neposredno sprožiti solenoida, saj Pi GPIO deluje na 3,3 V in 51 mA max, solenoid pa želi, da se sproži 5 V in veliko več kot 51 mA.
4, Vsak okvir je mogoče obrezati, da odstranite zaznavanje gibanja na neželenih območjih, na primer na sosedskem vrtu. Če tega ne storite, bo sosed zmedeno pogledal v vaš vrt, ker se brizgalna izklopi vsakič, ko želi v svojo lopo.
5, verjetno sem zamudil nekaj očitnega in sem izgubil čas, da sem to nastavil tako.
Koda spodaj
uvoz cv2import numpy kot np uvoz argparse #cat čas uvoza uvoz RPi. GPIO kot GPIO uvoz os uvoz dropbox iz picamera.array uvoz PiRGBArray iz picamere uvoz PiCamera #------------------ ------------------------------ Naloži na youtube ----------------- ---------------------- def HDtoYoutube (): ctime = time.strftime ("_%H-%M-%S") cdate = time.strftime ("_%d-%m-%Y") vidname = ctime + cdate #Trigger rele GPIO.output (11, True) time.sleep (.5) GPIO.output (11, False) print ("Taking Video") poskusite: #Take Video os.system ('raspivid -w 1640 -h 922 -o vid {0}.h264 -t 15000'.format (vidname)) #Naloži na tiskalnik youtube ("Nalaganje na YouTube") os. system ('sudo youtube-upload --title = "Mačka je postala mokra {0}" --client-secrets = client_secret.json vid {0}.h264'.format (vidname)) #Odstranite video datoteko, ko končate os.remove ('vid {0}.h264'.format (vidname)) print ("Videoposnetek naložen in odstranjen iz Pi"), razen: pass #-------------------- ---------------------------- Še vedno v dropboxu ------------------- -------------------- def St. illsToDropbox (): print ("Nalaganje fotografije v funkcijo Dropbox") access_token = 'Ah ah ah, nisi rekel čarobne besede … Ah ah ah, nisi rekel čarobne besede' ctime = time.strftime (" %H:%M:%S ") cdate = time.strftime ("%d-%m-%Y ") poskus: ime datoteke =" /Motion/{0}/DetectedAt_{1}.jpg".format(cdate, ctime) print (ime datoteke) client = dropbox.client. DropboxClient (access_token) image = open ("ToDropbox.jpg", 'rb') client.put_file (ime datoteke, slika) image.close () os.remove ("ToDropbox.jpg ") razen: pass #------------------------------------------ ------ Zaznaj gibanje ----------------------------------------- def DetectMotion (): #Define vars min_area = 400 tolarance = 25 #change in pixel bluramount = 21 timetoforget = 0.5 kernel = np.ones ((5, 5), np.uint8) #used for dialate MotionCounter = 0 MinTargetArea = 600 # najmanjša velikost za zaznavanje MaxTargetArea = 5000 #Največja velikost za zaznavanje zdaj = time.time () then = time.time () #inicializirajte kamero kamere = PiCamera () camera.resolution = (640, 480) camera.framerate = 10 raw Capture = PiRGBArray (camera, size = (640, 480)) #warmup camera time.sleep (1) #Zgrabi prvi okvir in ga pripravi za prehod v cv2.acumulate weight camera.capture (rawCapture, format = "bgr") povprečno = rawCapture.array #Izreži neželeno območje PolyCrop = np.array (
#HowToTriggerRealProgrammersWithBadCode
4. korak: Sestavite skupaj
Elektriko vstavite v vodotesno ohišje, privijte stvari v stene in uporabite veliko lepilnega traku in vročega lepila
5. korak: Rezultati
Ko deluje, deluje
6. korak: lažno pozitivni rezultati
Ko ne, poškropi mačje sence, ženo in hčerko.
Pro -tip - Stikalo postavite ob vrata, ki začasno ustavi program zaznavanja gibanja….. nato ga pozabite uporabiti in se prepojite, ko odložite koše.
Upam, da sem naredil kakšnega strokovnjaka za programiranje, elektroniko in DIY vse te napake, ki sem jih verjetno naredil, predvsem pa upam, da ste uživali v vseh mojih pravopisnih napakah.
Priporočena:
Oblikujte svoj računalniški računalniški modul Raspberry Pi: 5 korakov (s slikami)
Oblikujte lastno računalniško ploščo Raspberry Pi Compute Module: Če še nikoli niste slišali za Računalniški računalnik Raspberry Pi Compute Module, je to v bistvu polnopravni računalnik Linux s faktorjem oblike, pomnilnikom RAM za prenosni računalnik! Z njim je mogoče oblikovati lastne plošče po meri, Raspberry Pi je le še en
Sipeed MaiX Bit OpenMV Demos - Računalniški vid: 3 koraki
Sipeed MaiX Bit OpenMV Demos - Computer Vision: To je drugi članek v seriji o Sipeed AI na platformi mikrokrmilnika Edge. Tokrat bom pisal o MaiX Bitu (povezava do Seeed Studio Shop), manjši razvojni plošči, pripravljeni za tiskanje. Njegove specifikacije so zelo podobne
Hladilna ploščica za prenosnik DIY - Awesome Life Hacks with CPU Fan - Ustvarjalne ideje - Računalniški ventilator: 12 korakov (s slikami)
Hladilna ploščica za prenosnik DIY | Awesome Life Hacks with CPU Fan | Ustvarjalne ideje | Računalniški ventilator: Ta video si morate ogledati do konca. za razumevanje videoposnetka
Pretvorite svoj stari računalniški monitor CRT v akvarij! ! !: 11 korakov (s slikami)
Pretvorite svoj stari računalniški monitor CRT v akvarij! ! !: Govorite o odličnem ohranjevalniku zaslona! Že nekaj časa sem si želel narediti to gradnjo. Skoraj vsakič, ko na dan smeti ob cesti zagledam in stari računalniški monitor CRT, pomislim … to bi zagotovo naredilo akvarij za ribe. Torej
DIY CD/DVD 5.25 "Bay PC računalniški hladilnik: 6 korakov (s slikami)
DIY CD/DVD 5.25 -palčni računalniški hladilnik Bay PC: Če se vaš računalnik preveč segreje ali če potrebujete boljši način za hlajenje trdega diska, lahko pokukate v moj projekt in uporabite za vaš primer! To je 8 -centimetrski ventilator 2 originalni maskirni plošči vašega CD -ja v vašem ohišju. Namestite lahko trdi disk