Am tot zis că o să vorbesc un pic aici despre proiectul meu de doctorat și în ce stadiu suntem acum cu el. Here goes.
Tema generală a proiectului este conversia imaginii în sunet, cu aplicații în ghidarea nevăzătorilor. Adică vrem să transmitem unui nevăzător un sunet care să descrie scena pe care o are în față, în sunet. De aici, pornind de la conceptul de brain plasticity, sperăm ca nevăzătorii să poată să își re-antreneze zona din creier responsabilă cu captarea imaginii pentru a prelucra informația sonoră pe care o suprapunem noi sunetelor existente. Există ceva cercetare în domeniul ăsta, și eu sunt în procesul de a descoperi exact câtă și ce rezultate are.
Între timp, ne-am propus să facem niște teste, să ne facem o imagine asupra diferitelor abordări posibile. Continuând munca începută de Alex Iordan la proiectul lui de diplomă, am scris o aplicație care folosește gstreamer (pentru captură), PIL (pentru procesare imagine), glade și pygtk (pentru interfață) și pyaudiere (pentru generare sunet), pe care să o putem folosi în teste. Mi-a luat ceva vreme până am citit toate cele, dar acuma merge destul de ok.
În principiu, preiau imaginea de la un webcam, o trec în grayscale și apoi în imagine binară (alb / negru). Pe imagine definesc macropixeli (pentru a mă ajuta cu viteza de procesare :P) în funcție de care decid dacă imaginea pe care o văd este în interiorul unei ținte, dacă am prins și din țintă și din fundal sau daca văd doar fundal. Evident, testele sunt extrem de simple, cu doar două culori, ținta și fundalul, și doar două dimensiuni.
Obiectivul testelor de acum este de a vedea dacă prin mișcarea capului și limitarea puternică a dimensiunii imaginii poți să îți dai seama care sunt formele pe care le ai în față (curbe, unghiuri drepte, colțuri, dimensiuni …). Săptămâna trecută, înainte să plec la Alba, am făcut un prim rând de teste, și a mers destul de bine. Evident, sunt și lucruri care nu au mers atât de bine (spre exemplu, sunetul pentru cele trei cazuri posibile este continuu și înnebunitor), dar pentru asta avem versiunea 0.02 :P
Astăzi am făcut partea de binarizare și m-am mai jucat un pic cu pyaudiere pentru generarea de sunet intermitent.
Deși proiectul ăsta este mai puțin despre software decât despre alte chestii, ta-daaa, un screenshot din varianta curentă a aplicației:
e super faina ideea
1. trebuie tinut cont ca nevazatorii au simturile dezvoltate in alt mod decat un om care vede.
2. daca se vor produce o infinate de sunete nu va ajuta cu nimic deoarece mintea omului este facuta sa recunoasca, sa invete.
3. la inceput trebuie intr-adevar sa descoperiti cat mai multe sunete, dar apoi acestea trebuie clasificate pe categorii tot de voi:
de exemplu se incepe cu lucruri simple si utile care sa fie usor de invatat si familiarizat cu sunetele: lumina/ intuneric, usa deschisa / inchisa, etc.
apoi se poapte incepe cu ceva mai complicat si diversificat: lichid/solid, etc.
mersi :)
Am luat in considerare in principiu ce ai zis tu in discutiile initiale. Cred ca o asemenea tehnologie poate fi dezvoltata numai prin muuuulte teste si incercand mai multe idei. De aia o sa incercam sa aducem nevazatori si sa lucram cu ei, dupa ce avem un prototip mai serios.
Legat de celalalte chestii, ideea nu este sa creem imagini perfecte, ci, exact cum ai spus, sa incercam sa acoperim niste nevoi de baza, cel putin pentru inceput.
In viitor eu sper sa putem integra treaba asta vizuala si cu o perceptie a distantei (cu un ultrasonic) si eventual si cu informatii de pozitie (cu un GPS). Stiu ca au probleme amandoua, dar sper sa putem sa facem asa o combinatie dintre ele.
Ramane de vazut ;)
Sorry de off-topic dar m-am mutat pe http://www.bogdanpater.ro. Imi poti schimba link-ul din blogroll spre cel nou? Mersi.