Jeffrey Cross
Jeffrey Cross

Napravite mrežni senzor lica s obradom

Ovaj kôd istražuje kako koristiti web poslužitelj za prikupljanje podataka senzora iz skice za obradu. Primjerice, OpenCV ćemo povremeno otkriti i prijaviti broj lica koja se pojavljuju u vidnom polju vaše web-kamere. Na takvoj konferenciji ili umjetničkoj izložbi možete iskoristiti nešto slično da biste vidjeli koliko je ljudi zainteresirano za određenu sesiju ili izložbu. Pomoću tog feeda podataka možete stvoriti mobilnu aplikaciju koja će vam pokazati gdje je većina ljudi na konferenciji u bilo kojem trenutku.

Postavite web-poslužitelj

Za ovaj projekt trebat će vam pristup web poslužitelju s PHP-om. (PHP je skriptni jezik za kreiranje web stranica koje nudi gotovo svaka hosting tvrtka.) Ako nemate račun u hosting tvrtki, možete jednostavno postaviti web poslužitelj na svom računalu. Zapravo, većina novih Macova dolazi s Apacheom, jednim od najpopularnijih web poslužitelja koji je unaprijed instaliran. Sve što trebate učiniti jest aktivirati ga, što možete učiniti preko panela "System Preferences" (Postavke sustava) vašeg računala. Jednostavno otvorite postavke, kliknite "Dijeljenje", a zatim na popisu na lijevoj strani označite "Web Sharing". (Ako ste u sustavu Windows, morat ćete instalirati vanjski poslužitelj. Imao sam veliki uspjeh s XAMPP-om, koji ima sve što vam treba.)

Ako sve prođe dobro, prikazat će se indikator statusa "Web Sharing: On" u zelenoj boji. Vidjet ćete i adresu koju možete upotrijebiti u pregledniku za pristup "korijenu" web-lokacije. (Zabilježite tu adresu, jer ćemo je kasnije trebati u skici za obradu.) Sljedeća slika prikazuje više pojedinosti:

Kada je dijeljenje omogućeno, spremni ste postaviti PHP skriptu koja će zabilježiti podatke. To se postiže dodavanjem nekoliko datoteka u korijenski direktorij web-poslužitelja. Na Macu je to obično direktorij "Sites", koji se nalazi na istom mjestu kao i vaši imenici Music, Movies i Documents.

Da biste pokrenuli postavljanje skripte, ispustite ga u terminal i upišite sljedeće naredbe:

cd ~ / web-lokacije / mkdir face_sensor cd face_sensor dodir senzor_log.txt chmod 777 sensor_log.txt

U ovom nizu naredbi mijenjamo se u "korijenski" direktorij u kojem Macov web poslužitelj očekuje da će pronaći datoteke, stvoriti novi direktorij nazvan "face_sensor", a zatim dodati praznu datoteku dnevnika u koju naš PHP skript može pisati. Ovaj posljednji korak odvija se u dva dijela: prvi je upotreba dodir naredbu za stvaranje nove, prazne datoteke dnevnika. Drugi korak je korištenje chmod naredbu za postavljanje dopuštenja za datoteku tako da PHP može zapisivati ​​podatke u datoteku.

Zatim morate konfigurirati sustav tako da poslužitelj može izvršavati PHP skripte. SerpicoLugNut na Stackoverflow ima veliki opis kako to učiniti na Najlakši način za aktiviranje PHP i MySQL na Mac OS 10.6 (Snow Leopard) ?. Evo što kaže učiniti:

Otvorite dobar tekstualni editor (preporučio bih TextMate, ali će i besplatni TextWrangler ili vi ili nano raditi), i otvorite: /etc/apache2/httpd.conf Pronađite liniju: "#LoadModule php5_module libexec / apache2 / libphp5. pa "I odkomentiraj (ukloni #).

Nakon što je direktorij spreman, spremite sljedeći PHP u datoteku pod nazivom record.php:

Nakon kopiranja datoteke idite na preglednik i unesite sljedeći URL:

http: //svoju osobnu web-adresu s ploče za dijeljenje/face_sensor/record.php?face_count=5&room_name=ballroom&interval=2000

Vaš preglednik treba izgovoriti "OK". Ako otvorite sensor_log.txt file, trebali biste vidjeti redak koji izgleda ovako:

01-12-2010 06:01:41 EST dvorana 5 2000

Dakle, što se događa? U osnovi, PHP skripta jednostavno izvlači vrijednosti koje smo stavili u URL upita (npr. Face_count, room_name i interval) i zapisuje ih u karticu razgraničenu karticom. To je to. (Pa, u redu, dodaje se i datum i vrijeme.)

U "pravom" sustavu vjerojatno biste te vrijednosti upisali u bazu podataka, ali to je izvan opsega ovog posta - ono što uglavnom želite učiniti jest pokazati vam kako koristiti obradu za slanje podataka na web-lokaciju, a ne pojedinosti o tome kako ta web stranica bilježi podatke. Ako ste zainteresirani za daljnji rad na zadnjem dijelu, članak Kevina Yanka Izradite vlastitu web-lokaciju pomoću PHP-a i MySQL-a, 1. dio: Instalacija je dobro mjesto za početak.

Postavite skicu

Sada kada je web-poslužitelj postavljen i može bilježiti podatke, sljedeći korak je izraditi skicu za obradu koja otkriva lica i prijavljuje ih natrag vašem poslužitelju. Prije početka provjerite jeste li instalirali controlP5 i vanjske knjižnice OPENCV obrade. (Ako niste upoznati s vanjskim knjižnicama, pogledajte Kako uvesti knjižnice u obradu na O'Reilly odgovorima.) Kada se knjižnice instaliraju, pokrenite Obradu i zalijepite kôd za networked_face_sensor.pde u prozor skice:

Osim toga, morat ćete izmijeniti transmission_url da biste ga postavili na adresu vašeg PHP skripte. Crta

String transmission_url = "http: //MacOdewahn.home/~odewahn/face_sensor/record.php";

mora biti ažurirano na

String transmission_url = "http: //svoju osobnu web-adresu s ploče za dijeljenje/face_sensor/record.php ";

Kada pokrenete skicu, primijetit ćete da prvo morate odabrati izvorni videozapis koji želite koristiti, a to je učinjeno pomoću naredbe cam.settings ();, To vam omogućuje spajanje vanjske web kamere, a ne samo korištenje ugrađene web kamere. Nakon što odaberete izvor, trebali biste vidjeti feed videozapisa.

Proces prepoznavanja lica i izvješćivanja događa se svake 2 sekunde, kako je navedeno u interval promjenjiva. Također možete unijeti "naziv sobe" tako da možete razlikovati više izvora podataka. Na primjer, možda imate jednu kameru koja radi u vašoj dnevnoj sobi, a jedna u vašoj kuhinji, a oba izvještavaju o istom središnjem poslužitelju.

Nakon nekoliko sekundi možete otvoriti zapisnik u web-pregledniku i vidjeti podatke koje su senzori prijavili. URL za to je:

http: //svoju osobnu web-adresu s ploče za dijeljenje/face_sensor/sensor_log.txt

Izgledat će ovako:

Rasprava

Kao što možete vidjeti, kod za obradu je vrlo sličan projektima koje smo istražili na drugim postovima. Zapravo, sve što radimo ovdje je dodavanje nove metode, nazvane prenositi(), da biste podatke vratili poslužitelju. prenositi()Zadatak je stvoriti URL sa svim informacijama koje zahtijeva naš PHP skript. Zabilježite kako se svako ime polja u nizu upita - face_count, interval i name_name - dosljedno koristi u obrađivanju i PHP skripti:

Kada dobijemo ovaj URL, obrada je ugrađena loadStrings () naredba izvršava PHP skriptu na našem poslužitelju za spremanje podataka. Imajte na umu da zapravo ne brinemo o rezultatima u ovom primjeru; samo da se stranica zove. Međutim, ako smo htjeli postati sofisticiraniji, mogli bismo PHP vratiti skriptu statusa ili neke druge informacije.

Konačno vrijedno je napomenuti kako smo koristili Java programsku jedinicu URLEncoder za kodiranje svakog polja. Time se osigurava ispravan prijenos podataka na poslužitelj. Još jednom koristimo neke od moćnih dobrih stvari koje su dostupne u Javi kako bi naš život u Obradi bio mnogo lakši!

U skladištu za kavu:


Početak rada s obradom Naučite programiranje računala na jednostavan način s obradom, jednostavnim jezikom koji vam omogućuje da koristite kod za izradu crteža, animacije i interaktivne grafike. Programski tečajevi obično počinju s teorijom, ali ova knjiga omogućuje vam da skočite izravno u kreativne i zabavne projekte. Idealan je za svakoga tko želi naučiti osnovno programiranje i služi kao jednostavan uvod u grafiku za osobe s određenim vještinama programiranja.

Udio

Ostavite Komentar