Jeffrey Cross
Jeffrey Cross

Hauskanpito: Tietokonevision hiustenleikkuri

Osa siitä, mikä saa minut valmistajaksi, on se, että haluan tehdä asioita itse, kun voin. Olen jopa leikannut omat hiukset. Mikään ei ole hieno, pidä mielessäsi, vain lyhyt leikkuri leikkaimella. Vaikea osa kuitenkin leikkaa hyvän linjan kaulan takana. Ei ole vain vaikea leikata, jopa käyttämällä useita peilejä, mutta se on varsin selvää, kun en ole pysynyt yllä. Yleensä pyydän vaimoni auttamaan minua, mutta haluan olla itsestään riippuvaista ja päätin nähdä, oliko hauskaa ja koulutettua tapaa leikata se itse.

Pohdin tätä ongelmaa, että kaksi asiaa, jotka tulivat mieleeni, olivat tietokonenäkö ja automatisoitu raskaat laitteet. Ajattelin, että voisin käyttää tietokonevisiona seurata päätäni ja trimmeriä, ja lisäksi olen jo kauan etsinyt tekosyyn oppia tietokoneen visiosta. Ajattelin rakennuslaitteita mallina, koska jotkut puskutraktorien ohjausjärjestelmät käyttävät GPS: tä koneen paikantamiseksi ja säätävät sitten terää sivuston suunnitelman vaatimusten mukaisesti. Teoreettisesti buldooserioperaattori voisi vain ajaa edestakaisin paikan päällä monta kertaa, ja ohjausjärjestelmä käsitteli terän korkeutta, jotta tuloksena olisi täysin muotoiltu sivusto. Päätin rakentaa trimmerin, jonka voisin sokeasti nousta ylös ja alas kaulani takana, ja otan sen automaattisesti käyttöön tai pois käytöstä sen aseman mukaisesti.

Tutkimukseni herätti suuren avoimen lähdekoodin tietokonenäkökehyksen reaktiivisuuden nimellä. Se sisältää erityisiä grafiikoita, joita kutsutaan fiducial markereiksi, jotka tulostetaan ja kiinnitetään fyysisiin kohteisiin tunnistamista ja seurantaa varten. Vaikka järjestelmä on suunniteltu monitoimipöytiä varten, järjestelmä on riittävän joustava käytettäväksi suuremmilla etäisyyksillä, kunhan merkit on mitoitettu asianmukaisesti. Minun tarvitsi vain kiinnittää joitakin merkkiaineita trimmeriin ja päähänsä, kirjoita käsittelypiirros saada merkkien X- ja Y-koordinaatit reaktiivisen sovelluksen avulla ja käyttää sitten Arduinoa säätämään trimmerin akkuvirtaa tarpeen mukaan.

Tämä hanke ei ole pelkästään suoraviivainen, mutta myös edullinen. Reaktiivinen kirjasto on vapaasti käytettävissä ja merkit voidaan tulostaa kotona. Löysin rakentamisen kypärän, joka hylättiin taloni takana olevaan metsään, mutta löydät ne $ 5 $ 15: lle paikallisessa kodin kaupassa. Kova hattu sopii tähän hyvin, koska niissä on sisäpuolella säädettävä päävalja ja runsaasti tilaa ulkokuorelle. Suosittelen pientä akkukäyttöistä trimmeriä (20 dollaria), eikä se sekoita johonkin muuhun virtalähteeseen. Mikä tahansa Arduino-kortti voisi ohjata releä, joka ohjaa trimmeria, mutta käytin Arduino Micro -laitetta, koska se on pieni ja siinä on USB-liitin. En kirjoittanut mitään Arduino-koodia, juuri ladannut Firmata-luonnoksen Arduino IDE: stä, joka mahdollistaa Arduinon hallinnan Processing-luonnoksesta.

Reaktiivinen sovellus tarkkailee kannettavan kameran kameraa ja lähettää toimittajien sijainnit. Käsikirjoituskuvio kuuntelee reagointi-sovelluksen fiducial-sijaintiraportteja ja laskee viivan kypärän vasemman varren merkin ja kypärän oikean varren merkin välillä. Sitten se ajaa trimmerin viivan merkkijonon kaavan avulla, joka määrittää, onko trimmeri joko kypärän merkkien välisen viivan ylä- tai alapuolella. Jos jokin säätimistä puuttuu, se näyttää “ERROR” ja kääntää trimmerin pois. Jos trimmeri on leikkausviivan yläpuolella, se näyttää "KEEP" ja kääntää trimmerin pois. Jos trimmeri on leikkauslinjan alapuolella, se näyttää "CUT" ja kääntää trimmerin päälle. Luonnos on seuraava, ja se on vain kevyesti muutettu versio esimerkkikoodista, joka sisältyy reaktiivisuuteen:

tuoda TUIO. *; tuoda java.util. *; import processing.serial. *; tuonti 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-fontti; void setup () {size (800,600); noStroke (); alkua (0); silmukka (); Kuvanopeus (30); vihje (ENABLE_NATIVE_FONTS); font = createFont ("Arial", 18); scale_factor = korkeus / table_size; tuioClient = uusi TuioProcessing (tämä); println (Arduino.list ()); arduino = uusi Arduino (tämä, Arduino.list () [0], 115200); (int i = 0; i <= 13; i ++) arduino.pinMode (i, Arduino.OUTPUT); } void draw () {background (255); textFont (fontti, 18 * scale_factor); float obj_size = object_size * scale_factor; float cur_size = cursor_size * scale_factor; TuioObject l_ear = null; TuioObject r_ear = null; TuioObject-trimmeri = null; Vector tuioObjectList = tuioClient.getTuioObjects (); varten (int i = 0; i 0) {arduino.digitalWrite (12, Arduino.HIGH); alkua (255,0,0); teksti ("CUT", 30, 150); } else {arduino.digitalWrite (12, Arduino.LOW); alkua (0,255,0); teksti ("KEEP", 30, 150); } Vector tuioCursorList = tuioClient.getTuioCursors (); varten (int i = 0; i0) {aivohalvaus (0,0255); TuioPoint start_point = (TuioPoint) pointList.firstElement () ;; varten (int j = 0; j 0) jos se on "oikealla". * * http://wiki.processing.org/w/Find_which_side_of_a_line_a_point_is_on * / float linePointPosition2D (float x1, float y1, float x2, float y2, float x3, float y3) {return (x2 - x1) * (y3 - y1) ) - (y2 - y1) * (x3 - x1); }

Minun oli suoritettava vanhempi versio prosessista saadakseni asioita vanhassa Macissa, jossa oli OS 10.6. Minun täytyi myös kokeilla pari eri versiota Firmata Arduinosta, mutta eri laitteistoilla mittarilukema voi vaihdella. Älä pelkää kokeilla.

Vanhempien tietokoneiden osalta kaivos pystyi käsittelemään videon vain 20 kuvaa sekunnissa. Uskon, että tuloksena oleva hiustenleikkaus paranisi huomattavasti, jos saisin tämän numeron korkeammaksi. Jos katsot videota tarkasti, näet yhden "suurista häiriöistäni", jossa minulla on trimmeri "leikattu" vyöhykkeellä ja twitchy käsi siirtää sen nopeasti "pidä" -vyöhykkeeseen ja päähän ennen kuin trimmeri on sammutettu. Oman käteni siirtäminen hitaammin auttaisi. Toivoin rakentaa tämän järjestelmän Raspberry Pi: n tai BeagleBoardin pohjalta, mutta kun näin, kuinka hitaasti minun kannettava tietokone ja työpöytä käsittelivät kehyksiä, päätin pysyä kannettavan tietokoneen kanssa voima- ja siirrettävyyden tasapainon varmistamiseksi.

Kuten näet videon viimeisestä kuvasta, en voinut saada täydellistä leikkausta ensimmäisestä järjestelmän testistä. Seuraavan kuukauden hiustenleikkaus on kuitenkin aina olemassa, ja toivon, että olen osoittanut tarpeeksi, että pääset alkuun, kun jätät tarpeeksi, että sinulla on oma seikkailu rakentaa ja parantaa tätä äskettäin keksitettyä hiustenleikkaustekniikkaa.

Katso koko sarja tästä.

Osake

Jättänyt Kommenttia