Pramogos: kompiuterio vizija plaukų kirpimui - 💡 Fix My Ideas

Pramogos: kompiuterio vizija plaukų kirpimui

Pramogos: kompiuterio vizija plaukų kirpimui


Autorius: Ethan Holmes, 2019

Dalis to, kas verčia mane tapti kūrėju, yra ta, kad aš galiu daryti viską, ką galiu. Aš netgi nupjau savo plaukus. Nieko išgalvotas, nepamirškite, kad tai yra greitas pjūvis su žoliapjove. Tačiau sudėtinga dalis yra geros linijos pjovimas kaklo gale. Ne tik sunku apipjaustyti, net ir naudojant kelis veidrodžius, bet tai gana akivaizdu, kai nesiliaujau. Paprastai aš prašau savo žmonos man padėti, bet man patinka būti savarankišku, ir nusprendžiau pamatyti, ar yra įdomus ir švietėjiškas būdas jį apipjaustyti.

Aptariant šią problemą, du dalykai, kurie buvo mano nuomone, buvo kompiuterinė vizija ir automatizuota sunki įranga. Supratau, kad galėčiau naudoti kompiuterinę viziją, kad galėčiau sekti galvą ir žoliapjovę, be to, jau seniai ieškojau pasiteisinimo sužinoti apie kompiuterinę viziją. Aš galvojau apie statybos įrangą kaip modelį, nes kai kurios buldozerių valdymo sistemos naudoja GPS, kad surastų mašiną, o tada reguliuokite peilį pagal svetainės plano reikalavimus. Teoriškai, buldozerio operatorius gali daug kartų vairuoti pirmyn ir atgal, o valdymo sistema tvarkytų ašmenų aukštį, kad būtų sukurta ideali skulptūra. Aš pradėjau statyti žoliapjovę, kurią aš galėjau aklai paleisti į viršų ir žemyn mano kaklo gale, ir automatiškai jį įjungti arba išjungti pagal savo padėtį.

Mano tyrimas parodė puikią atvirojo kodo kompiuterinio regėjimo sistemą pagal reaktyvumo vardą. Ji apima specialią grafiką, vadinamą fiducial markeriais, kurie atspausdinami ir pritvirtinami prie fizinių objektų, kad būtų atpažįstami ir stebimi. Nors sistema skirta daugiaaukščiams stalams, sistema yra pakankamai lanksti, kad ją būtų galima naudoti didesniais atstumais, kol žymekliai yra tinkamai matuojami. Viskas, ką turėjau padaryti, buvo pritvirtinti kai kuriuos žymeklius prie žoliapjovės ir mano galvutės, parašyti apdorojimo eskizą, kad gautumėte žymeklių X ir Y koordinates iš reaktyviosios programos, ir tada naudokite Arduino, kad valdytumėte žoliapjovės akumuliatoriaus energiją.

Šis projektas yra ne tik paprastas, bet ir nebrangus. Reaktyviosios bibliotekos naudojimas yra laisvas, o žymekliai gali būti spausdinami namuose. Radau, kad statybinis šalmas, kuris buvo sunaikintas už savo namuose esančioje miško, bet jūs galite rasti už $ 5 $ 15 vietinėje parduotuvėje. Kietos kepurės yra puikios, nes jos turi reguliuojamą galvos diržą viduje ir daug vietos montavimui ant išorinio apvalkalo. Aš rekomenduoju naudoti mažą bateriją maitinamą žoliapjovę ($ 20). Bet kuri „Arduino“ plokštė galėtų valdyti relę, kad būtų galima valdyti žoliapjovę, bet aš naudoju „Arduino Micro“, nes ji yra maža ir turi laive USB lizdą. Nenurodavau jokio „Arduino“ kodo, ką tik įkėliau „Firmata“ eskizą iš „Arduino IDE“, o tai leidžia „Arduino“ valdyti iš apdorojimo eskizo.

Reaktyvioji programa stebi nešiojamojo kompiuterio fotoaparatą ir siunčia fiducialų pozicijas. Apdorojimo eskizas klauso atskaitos padėties ataskaitų iš reaktyviosios programos ir apskaičiuoja liniją tarp šalmo kairiojo patikimumo žymeklio ir šalmo dešiniojo patikimumo žymeklio padėties. Tuomet jis išjungia žoliapjovės patikimumo žymeklio padėtį per formulę, kuri nustato, ar žoliapjovė yra virš arba žemiau linijos tarp šalmo žymeklių. Jei trūksta bet kokio patikimumo, jis parodo „ERROR“ (klaidos) ir išjungia žoliapjovę. Jei žoliapjovė yra virš pjovimo linijos, ji parodo „KEEP“ ir išjungia žoliapjovę. Jei žoliapjovė yra žemiau pjovimo linijos, ji rodo „CUT“ ir įjungia žoliapjovę. Paveikslėlis yra toks, ir yra tik šiek tiek pakeista pavyzdinio kodo versija, įtraukta į reaktyvumą:

importuoti TUIO. *; importuoti java.util. *; importuoti apdorojimą.serial. *; importuoti cc.arduino. *; Arduino arduino; TuioProcessing tuioClient; boolean trimmer_state = false; float cursor_size = 15; float object_size = 60; float table_size = 760; float scale_factor = 1; PFont šriftas; void setup () {size (800,600); noStroke (); užpildyti (0); kilpa (); frameRate (30); užuomina (ENABLE_NATIVE_FONTS); font = createFont ("Arial", 18); scale_factor = aukštis / table_size; tuioClient = naujas „TuioProcessing“ (tai); println (Arduino.list ()); arduino = naujas Arduino (tai, Arduino.list () [0], 115200); už (int i = 0; i <= 13; i ++) arduino.pinMode (i, Arduino.OUTPUT); } void draw () {background (255); textFont (šriftas, 18 * skalės_faktorius); float obj_size = object_size * scale_factor; float cur_size = cursor_size * scale_factor; TuioObject l_ear = null; TuioObject r_ear = null; TuioObject trimmeris = null; Vector tuioObjectList = tuioClient.getTuioObjects (); už (int i = 0; i 0) {arduino.digitalWrite (12, Arduino.HIGH); užpildyti (255,0,0); tekstas („CUT“, 30, 150); } else {arduino.digitalWrite (12, Arduino.LOW); užpildyti (0,255,0); tekstas („KEEP“, 30, 150); } Vector tuioCursorList = tuioClient.getTuioCursors (); už (int i = 0; i0) {insultas (0,0255); TuioPoint start_point = (TuioPoint) pointList.firstElement () ;; už (int j = 0; j 0) jei jis yra „dešinėje“. * * http://wiki.processing.org/w/Find_which_side_of_a_line_a_point_is_on * / float linePointPosition2D (plūdė x1, plūdė y1, plūdė x2, plūdė y2, plūdė x3, plaukimas y3) {grįžti (x2 - x1) * (y3 - y1 ) - (y2 - y1) * (x3 - x1); }

Turėjau paleisti senesnę „Processing“ versiją, kad galėčiau dirbti su mano senuoju „Mac“, kuriame veikia OS 10.6. Aš taip pat turėjau išbandyti keletą skirtingų „Firmata“ versijų „Arduino“, bet su skirtingomis aparatūromis, jūsų rida gali skirtis. Nebijokite eksperimentuoti.

Kalbant apie senesnius kompiuterius, mano buvo galima apdoroti vaizdo įrašą tik 20 kadrų per sekundę greičiu. Manau, kad gautas šukuosena būtų žymiai pagerinta, jei galėčiau gauti šį skaičių didesnį. Jei atidžiai stebite vaizdo įrašą, pamatysite vieną iš mano „didelių praleidimų“, kur aš turiu pjoviklį „supjaustytoje“ zonoje, o mano raiščioji ranka greitai perkelia ją į „išlaikyti“ zoną ir į galvą, kol žoliapjovė yra išjungė. Mano rankos judėjimas lėčiau padėtų. Tikėjausi sukurti šią sistemą, pagrįstą „Raspberry Pi“ arba „BeagleBoard“, bet kai pamačiau, kaip lėtai mano nešiojamas kompiuteris ir darbalaukis apdoroja rėmus, nusprendžiau laikytis nešiojamojo kompiuterio, kad galėtumėte suderinti galios ir perkeliamumo pusiausvyrą.

Kaip matote iš paskutinio vaizdo įrašo, negalėjau gauti tobulos šukuosenos iš pirmojo sistemos testo. Visada būna kito mėnesio šukuosena, ir tikiuosi, kad parodysiu, kad pradėsiu, o paliekate pakankamai, kad turėsite savo nuotykius kurdami ir tobulindami šią naujai sugalvotą kompiuterinio matymo kirpimo technologiją.

Čia rasite visą seriją.



Jums Gali Būti Įdomu

Interviu su Keith Carollo iš fredflare.com

Interviu su Keith Carollo iš fredflare.com


Pagaminta ant žemės - paukščių erdvėlaivis

Pagaminta ant žemės - paukščių erdvėlaivis


Pagaminta ant žemės - sklandymas ant oro

Pagaminta ant žemės - sklandymas ant oro


Pagaminta ant žemės - Technozoologija

Pagaminta ant žemės - Technozoologija