Managementul Proiectelor Software
Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
proiect:tematica [2012/10/08 09:53]
andrei.maruseac [Tematica proiectului]
— (current)
Line 1: Line 1:
-=Tematica proiectului= 
  
-Stocarea informației în format digital a devenit în ziua de azi o alternativă viabilă la imprimarea pe hârtie; documente care ar ocupa o sală întreagă pot fi stocate pe suport electronic și încăpea într-o geanta de mână. Există însă în continuare foarte multe săli ocupate cu documente „tradiționale” create înainte de era digitală. Pentru acestea, spațiul necesar depozitării nu este neapărat cea mai stringentă problemă, ci accesul dificil la ele. O parte sunt arhive, care au nevoie de o catalogare sistematică;​ altele sunt microfilme, o primă tentativă de a rezolva problema spațiului de depozitare; la fel de numeroase, dar probabil chiar mai prețioase în foarte multe cazuri sunt manuscrisele și tipăriturile. Indiferent de natura lor, toate acestea au în comun accesul limitat la informație,​ fie că este vorba de un volum prohibitiv de date ce trebuie sortat sau de restricții de utilizare impuse de raritatea și valoarea documentelor. 
- 
-Soluția la aceste probleme o reprezintă sistemele de analiză și procesare a colecțiilor de imagini document. Acestea reprezintă sisteme software complexe cu funcții multiple, printre care se numără: 
-  * posibilitatea de îmbunătățire digitală a imaginillor inițiale 
-  * catalogarea diverselor entități din cadrul documentelor 
-  * gruparea într-o ierarhie logică a componentelor ce alcătuiesc documentul 
-  * recunoașterea automată a textului 
-  * etc. 
- 
-==Îmbunătățirea digitală a imaginilor inițiale== 
- 
-Pentru început vom delimita două situații în care este necesară îmbunătățirea imaginilor sursă și anume: 
- 
-1. calitatea imaginii scanate (sau a microfilmului) este una slabă și documentul inițial nu mai este disponibil 
- 
-2. însuși documentul inițial este de slabă calitate, fiind afectat de intemperii, condiții de depozitare etc. 
- 
-De ce se dorește totuși îmbunătățirea imaginii? Pe scurt, pentru că „decât să fie rău mai bine să fie bine”. Din punct de vedere tehnic, o imagine cu calitate slabă, cum ar fi contrast redus, artefacte numeroase etc. poate ridica mari dificultăți algoritmilor aplicați în fazele târzii ale procesării imaginilor. Aceștia sunt în general sensibili la aberații care apar în cadrul imaginilor, și prin urmarea eliminarea sau cel puțin reducerea defectelor surselor procesate este esențială pentru obținerea unui rezultat cât mai bun. 
- 
-==Segmentarea imaginii== 
- 
-După modul în care este stocată informația,​ imaginile pot fi imagini raster sau imagini vectoriale. Cele din urmă sunt alcătuite dintr-o serie de componente geometrice cu formule bine definite pe baza cărora sunt construite imagini cu acuratețe foarte bună indiferent de gradul de detaliu solicitat. Din nefericire, aceste imagini nu sunt generate automat de dispozitive atunci când se capturează lumea fizică, ci sunt produsul intervenției directe a omului prin programe dedicate acestui scop. 
- 
-Prin urmare, imaginile care prezintă interes în lumea prelucrărilor automate sunt imaginile de tip raster (sau bitmap). Acestea stocheaza imaginile ca o matrice de pixeli, ceea ce este în general suficient pentru a reda imagini sugestive pentru oameni, dar ridică o serie de probleme când vine vorba de procesare automată. Printre acestea se numără și problema segmentării imaginii. Prin segmentare se înțelege procesul de catalogare și eventual grupare a pixelilor în regiuni pe baza unor caracteristici predefinite. O formă de segmentare ar putea fi identificarea tuturor persoanelor dintr-o imagine. 
- 
-Cea mai des întâlnită formă de segmentare este binarizarea. Binarizarea este o formă simplă de segmentare, care împarte pixelii dintr-o imagine în două categorii: foreground și background, ceea ce duce la obținerea unei imagini alb-negru. În mod ideal, este destul de clar ce pixeli reprezintă obiecte și ce pixeli reprezintă fundalul, dar realitatea este departe de cazul ideal, așa că există foarte mult interes pentru dezvoltarea unor algoritmi eficienți de binarizare. 
- 
-La un „nivel superior” în ierarhia de segmentare se regăsește detecția entităților din cadrul imaginilor binare. Entitățile reprezintă colecții de pixeli „de prim plan” adiacenți sau adiacenți cu o anumită marjă de distanță. În cazul imaginilor document, se vor obține cel mai adesea entități-caracter,​ însă este posibil să se ajungă și la imagini sau alte elemente de design al paginii: linii de separație, steluțe, etc. 
- 
-==Ierarhizarea entităților== 
-Entitățile elementare pot fi grupate mai departe în entități mai complexe: literele în cuvinte, cuvintele în rânduri, rândurile în paragrafe, paragrafele în capitole etc. O astfel de procesare este importantă pentru crearea indexului de conținut și catalogarea documentelor numeroase. În general, criteriile de grupare sunt criterii pur geometrice, ce iau în considerare distribuția pixelilor în cadrul entităților,​ poziționarea lor relativ la pagină etc. Cel puțin teoretic, programul nu ar trebui să înțeleagă conținutul pentru a fi capabil să catalogheze și să ierarhizeze corect entitățile. Acest lucru nu este foarte departe de adevăr, întrucât oamenii pot identifica fără dificultate titlu unei cărți chiar dacă aceasta este scrisă într-o limbă diferită. Criteriile de grupare sunt universale, însă generarea unui program care să realizeze o detecție corectă este mult mai dificilă decât pare. 
- 
-==Identificarea caracterelor - OCR(Optical Character Recognition)== 
-De departe cea mai spectaculoasă componentă și etapă de prelucrare este detecția caracterelor. În modul cel mai simplu și mai naiv caracterele se pot identifica pe baza entităților elementare identificate inițial și alegând dintr-o multțime de reprezentări cunoscute pentru litere, acea literă care se potrivește cel mai bine. Potrivirea la nivel de literă poate însemna potrivirea cu o hartă de biți sau potrivirea unor caracteristici esențiale ale elementelor. 
- 
-În realitate, procesul este ceva mai complex, iar identificarea nu se face la nivel de caracter, ci mai degrabă la nivel de cuvânt. Entitățile care sunt foarte apropiate pot reprezenta de fapt o singură entitate, întreruptă artificial în urma prelucrărilor. Prin urmare, algoritmii încearcă diverse grupări ale acestor entități acolo unde este cazul, iar la sfârșit, cuvântul obținut este la rându-i evaluat pe baza unui dicționar. 
- 
-Identificarea caracterelor funcționează cel mai bine în limba engleză (oarecum evident de altfel). În primul rând, aceasta nu are diacritice, care pot schimba radical sensul unui cuvânt . În al doilea rând, setul de caracterere este relativ redus, câteva zeci, față de scrierile ideografice care depășesc câteva mii. În plus, majoritatea studiilor s-au făcut pe texte în limba engleză, așa că nivelul de expertiză este ridicat. Nu trebuie ignorată nici absența declinărilor și conjugările simple ce favorizează lucrul cu dicționare. 
- 
-Sistemele OCR moderne, realizează ceva mai mult decât simpla detecție a caracterelor,​ realizând inclusiv detecția paragrafelor și a diverselor opțiuni de formatare (le vom numi sisteme OCR fiindcă detecția caracterelor este „sufletul” aplicației,​ și in plus, sintagma „Sistem de analiza și procesare a colecțiilor de imagini document” este prea lungă și este deficitară la capitolul „cool acronym”). Din nefericire, sunt afectate de o serie de neajunsuri: fie sunt monolitice făcând extinderea anevoioasă,​ chiar imposibilă,​ fie sunt mult prea restrictive în privința codului ce trebuie dezvoltat, fie sunt pur și simplu proprietare și funcționează „ca prin magie”, fără vreo explicație pentru comportamentul lor. 
- 
-Ceea ce se dorește (și s-a realizat parțial) este dezvoltarea unui sistem OCR modular, din executabile independente,​ care să poată fi configurate la runtime prin fișiere XML. Problema este că un asemenea program, cu toate că se pretează la activitatea de cercetare, permițând interschimbarea componentelor,​ este un coșmar pentru utilizatorul de rând. Configurarea unui fișier XML nu este tocmai user-friendly,​ fiind necesară o interfață grafică prin care utilizatorul să fie ajutat și ghidat în procesul de setare a configurațiilor de rulare. 
- 
-De asemenea, în ciuda cercetărilor din domeniu, erorile sunt în continuare destul de frecvente, prin urmare este necesară intervenția umană pentru corectarea acestora. Ori corecția rezultatelor în forma fișierelor XML este chiar mai anevoioasă decât crearea unei configurații. Ar fi preferabil să existe module grafice care să permită inspectarea entitățilo exact pe pozițiile în care acestea apar în imagine, putându-se eventua interveni pentru a corecta rezultatele eronate generate în mod automat.