Indexarea Bazelor de Imagine Multimedia

Indexarea bazelor de imagine multimedia

Student: Coordonator stiintific:

Timus Valentina-Nicoleta Sl.Dr.Ing. Muguras Mocofan

Cuprins:

1. Introducere

2. Bazele de date multimedia

2.1.Intoducere in baze de date

2.1.1. Modele specializate de date

2.1.2. Dezvoltare in domeniul bazelor de date

2.1.3. Interogarea bazelor de date

2.1.4. Performantele bazelor de date

2.2.Specificul bazelor de date multimedia

2.2.1. Evolutia bazelor de date spre ampicatiile multimedia

2.2.2. Caracteristicile bazelor de date multimedia

2.2.3. Sistemul de management al bazelor de date multimedia

2.2.4. Bazele de date orientate pe obiect utilizate in multimedia

2.2.5. Avantajele bazelor de date multimedia

2.3.Complexitatea bazelor de date

2.3.1. Moduri de creștere a performanțelor unei baze de date

2.3.2. Sisteme de gestionare a bazelor de date distribuite

3. Indexarea imaginilor in bazele de date multimedia

3.1.Intoducere

3.1.1. Sistemul de indexare B Trees

3.1.2. HSF (Hashed File Structures

3.2.Structuri de indexare pentru BLOBs

3.3.Indexarea multidimensionala pentru obiectele multimedia

3.3.1. Dimensionare si localizare

3.3.2. Indexarea pentru cautarea bazata pe continut

3.3.3. Gruparea

3.4.Caracteristici globale ale imaginilor propuse pentru indexarea bazelor de date

3.4.1. Atributele stohastice ale unei imagini

3.4.2. Momentele si media spatiala a unei regiuni

3.4.3. Matricea de coocurenta

3.5.Caracteristici locale ale imaginilor propuse pentru indexarea bazelor de date

3.5.1. Texturile

3.5.2. Filtrele Gabor

3.5.3. Partajarea dupa forma

4.Implementarea algoritmului de indexare

4.1. Design informational

4.2. Interfata cu utilizatorul

4.2.1. HTML

4.2.2. Applet-Java

4.3. Metode de procesare a imaginilor

4.3.1. Metode globale

4.3.2. Metode bazate pe matricea de coocurenta

4.3.3. Filtre Gabor

4.4. Comunicarea cu baza de date

4.4.1. Structura bazei de date

4.4.2. JDBC

5.Concluzii

6.Bibilografie

Intoducere

Multimedia combină trei mari informații ale secolului: telecomunicații, tehnică de calcul și audiovizualul. În anii '70, multimedia era doar un cuvânt care însemna audiovizual. În etapa actuală multimedia a devenit o tehnologie care a revoluționat domeniul calculatoarelor. Pornind de la ideea că omul însuși, prin esența lui, este "multimedia", aplicațiile de bază ale acestei tehnologii se canalizează spre informarea și formarea sa.

Multimedia reprezintă ansamblul tehnicilor de creare, stocare, transmitere și exploatare coordonată a informației sub formă de date numerice, text, grafică, sunete, voce, imagini și video. În ultimii ani, o serie de factori au pregătit terenul pentru apariția conceptului de "Multimedia". Printre aceștia putem enumera :răspândirea calculatoarelor personale – se estimează ca astăzi în lume sunt instalate peste câteva sute de milioane de PC-uri; răspândirea unor interfețe grafice cu utilizatorul – au atras din ce în ce mai mulți utilizatori, arătând ce impact poate avea includerea imaginilor și cuvintelor în materialele care conțin cifre;

răspândirea și standardizarea plăcilor de sunet și video – problema majoră ce a rămas un timp nerezolvată dar în acest moment există din ce în ce mai multe soluții disponibile pe piață.

Lucrarea are ca scop dezvoltarea de noi modele de aplicații multimedia, de noi algoritmi și tehnici multimedia, ce pot îmbunătăți activitățile de implementare a produselor multimedia. Finalitatea acesteia este implementarea unei baze de date multimedia cu un grad mare de utilitate in tehnicile de indexare bazate pe conținut.

Tehnicile multimedia își găsesc utilitatea pornind de la probleme de primire, gestionare și transmitere de informații referitoare la știri și până la prelucrări complexe de diverse medii informaționale (prelucrări complexe de imagini, compresii video, recunoaștere vocală, etc.) sau probleme de indexare, stocare și căutare în baze de date.

Proiectul urmareste instituirea unei interfete educationale, ce trebuie sa tina cont de marea diversitate a judecatii umane, a caracteristicilor de perceptie si personalitate si sa se incerce optimizarea interfetei pentru a se potrivi, in mare masura cu grupul de utilizatori vizati. Interfata cu utilizatorul trebuie sa mareasca eficienta rezolvarii sarcinilor, atat a utilizatorului cat si a sistemului.

Prin utilizarea acestei interfete se perimite accesul la prelucrarea imaginilor in functie de nevoile utilizatorului. Prelucrarea imaginilor are ca obiectiv general facilitarea interpretarii informatiilor continute in imagine in functie de aplicatia concreta, interpretarea poate fi de catre om sau de catre un sistem de calcul. In sens larg, prelucrarea imaginilor include in problematica abordata si realizarea unor sisteme inteligente de vedere artificiala, capabile sa recunoasca forme si sa ofere o interpretare a scenei captate de senzorii de imagine.

Inscrierea acestor caracteristici intr-o baza de date poate fi vazuta ca un concept ce în prezent se concentrează asupra bazelor de date multimedia orientate pe obiecte ce acceptă obiecte multimedia de tip flux de date cu constrângeri temporale

De asemenea, am realizat o sinteză a avantajelor folosirii de tehnicilor de programare orientate pe obiecte în cadrul bazelor de date multimedia. Am prezentat variantele clasice de indexare în bazele de date și avantajele ce rezultă din folosirea indexării bazate pe conținut în cazul utilizării de obiecte multimedia

Bazele de date multimedia

Intoducere in baze de date

În perioada anilor 1950-1960, mari companii ca IBM, General Electric și Honeywell au început dezvoltarea conceptului de baze de date. Acestea trebuiau să permită accesul mai multor utilizatori simultan la informații.

Realizatorii limbajului COBOL au început prin implementarea, în cadrul unui departament DATA DIVISION, rutine care să lucreze cu baze de date sau să permită definirea de noi tipuri de date ce pot să acceseze datele și să le actualizeze.

O baza de date poate fi privita ca si o colectie de date, care descrie activitatile dintr-o organizatie. Evolutia sistemelor de baze de date este strans legata de evolutia tehnicilor de modelare a datelor si are la baza nevoia de a modela cat mai precis si natural lumea reala.

Un model de date reperezinta o definitie conceptula abstracta a entitatilor si operatorilor care contribuie la descrierea unei structuri de date. Entitatile permit modelarea stucturilor de date, in timp ce operatorii definesc opertaiile care pot fi efectuate asupra datelor.

Modele specializate de date

Modelul ierarhic – permite organizarea datelor prin intermediul unei structuri ierarhice de tip arbore. A fost primul model de date urilizat de catre IBM, in anii ’60, pentru dezvoltarea unui system de baze de date commercial, Information Management System (IMS).

Modelul retea – prezinta datele ca si colectii de inregistrari (noduri), in timp ce relatiile dintre acestea sunt specificate prin directiile sau muchiile unui graf. Acest model introduce o noua structura pentru reprezentarea grupurilor de date interconectate, numita set. Un membru poate avea rol in mai multe structuri set, deoarece modelul retea ofera suport pentru conceptul de parti multiple.

Modelul relational – permite organizarea datelor sub forma unor tabele interconectate alcatuite din linii si coloane oferind mai multa flexibilitate.Tabelele cunoscute si sub numele de relatii, sunt formate din seturi de inregistrari care la radul lor sunt construite din unul sau mai multe atribute. Acesta a fost propus in 1970 de catre E.F. Codd si reprezinta cea mai populara modalitate de reprezentare a datelor (Ingres, DB2, INFORMIX, Oracle, MS Access, SQL Server, MySQL, PostSQL, Sybase). De asemenea acest model asigura interdependenta aplicatiilor fata de structura datelor, datorita simplificarii structurii logice.

Modele semantice și funcționale – sistemele de baze de date ce au apărut ulterior bazelor de date relaționale s-a bazat pe o modelare semantică a datelor, motivarea acestui tip de modelare a constat în modelarea într-un mod cât mai apropiat de lumea reală apropiindu-se de modelarea orientată pe obiecte. Cel mai popular mod de exprimare semantică a datelor a fost introdus de Chen în 1976 prin faimosul mod ER (Entity-Relationship – entitate-relație) unde o entitate este un obiect sau un lucru care există și care este distinct față de alte obiecte

Statistica modelului orientat pe obiecte

Modelul orientat pe obiecte – defineste orice entitate di lumea reala prin intermediul unor structuri de date independente, care contin colectii de proprietati. Acest model de date utilizeaza concepte din programarea orientata pe obiect, precum : clasa, obiect, abstractizare, incapsulare, mostenire, polimorfism. Baze de date orientate pe obiecte au apărut ca variante comerciale după 1986, cele mai cunoscute sunt GemStone de la ServioLogic, Gbase de la Graphael și Vbase de la Ontos. Următorii ani au fost caracterizați de o dezvoltare impresionantă a aplicațiilor bazate pe orientarea pe obiecte: SIM de la Unisys, Versant de la Versant Object Technology, ObjectStore de la Object Design Inc. și altele.

Dezvoltare in domeniul bazelor de date

Se cunosc atât avantajele bazelor de date orientate pe obiecte, cât și a celor relaționale. O soluție ar fi îmbinarea celor două modele total diferite, într-un model comun care să cumuleze avantajele fiecărui model și să minimizeze dezavantajele. Stonebraker, în 1996, a prezentat următorul mod de clasificare a sistemelor de gestiune a bazelor de date []:

Clasificarea SGBD din punct de vedere al performanțelor

Avantajele principale ale extinderii modelului de date relațional provin de la caracteristicile de reutilizare și partajare. Reutilizarea derivă din posibilitatea de a extinde serverul SGBD, pentru a furniza centralizat funcționalitatea standard, în loc ca acasta să fie codificată în fiecare aplicație.

De exemplu, aplicațiile pot necesita tipuri de date spațiale care reprezintă puncte, linii și poligoane cu funcții asociate care calculează printre altele, distanța dintre două puncte, distanța dintre un punct și o linie, care stabilesc dacă un punct este conținut în interiorul unui poligon și dacă două poligoane se intersectează.

Dacă am putea încapsula, aceste funcționalități în server, atunci s-ar elimina necesitatea de a le definii pentru fiecare aplicație care are nevoie de ele și, în consecință, s-ar permite ca funcționalitățile să fie partajate de toate aplicațiile. De asemenea , aceste avantaje duc la creșterea productivității, atât pentru constructorul de software, cât și pentru utilizatorul final.

Un alt avantaj evident constă în faptul că abordarea relațională extinsă păstrează masa semnificativă de cunoștințe și experiență care a fost investită în dezvoltarea aplicațiilor relaționale. Acest avantaj este semnificativ, deoarece, multe organizații vor considera costul schimbării prohibitiv. Dacă noua funcționalitate este proiectată corespunzător, atunci această abordare trebuie să permită organizațiilor să profite în mod evolutiv de avantajele noileor extensii, fără pierderea beneficiilor oferite de caracteristicile și funcțiile bazelor de date curente.

Interogarea bazelor de date

Sistemul de interogare – prin interogarea unei baze de date se obțin submulțimi sau subobiecte din cadrul unei baze de date ce conține diverse mulțimi și obiecte. Interogarea poate fi considerată ca fiind expresii de înalt nivel care prin modul lor declarativ permit utielor două modele total diferite, într-un model comun care să cumuleze avantajele fiecărui model și să minimizeze dezavantajele. Stonebraker, în 1996, a prezentat următorul mod de clasificare a sistemelor de gestiune a bazelor de date []:

Clasificarea SGBD din punct de vedere al performanțelor

Avantajele principale ale extinderii modelului de date relațional provin de la caracteristicile de reutilizare și partajare. Reutilizarea derivă din posibilitatea de a extinde serverul SGBD, pentru a furniza centralizat funcționalitatea standard, în loc ca acasta să fie codificată în fiecare aplicație.

De exemplu, aplicațiile pot necesita tipuri de date spațiale care reprezintă puncte, linii și poligoane cu funcții asociate care calculează printre altele, distanța dintre două puncte, distanța dintre un punct și o linie, care stabilesc dacă un punct este conținut în interiorul unui poligon și dacă două poligoane se intersectează.

Dacă am putea încapsula, aceste funcționalități în server, atunci s-ar elimina necesitatea de a le definii pentru fiecare aplicație care are nevoie de ele și, în consecință, s-ar permite ca funcționalitățile să fie partajate de toate aplicațiile. De asemenea , aceste avantaje duc la creșterea productivității, atât pentru constructorul de software, cât și pentru utilizatorul final.

Un alt avantaj evident constă în faptul că abordarea relațională extinsă păstrează masa semnificativă de cunoștințe și experiență care a fost investită în dezvoltarea aplicațiilor relaționale. Acest avantaj este semnificativ, deoarece, multe organizații vor considera costul schimbării prohibitiv. Dacă noua funcționalitate este proiectată corespunzător, atunci această abordare trebuie să permită organizațiilor să profite în mod evolutiv de avantajele noileor extensii, fără pierderea beneficiilor oferite de caracteristicile și funcțiile bazelor de date curente.

Interogarea bazelor de date

Sistemul de interogare – prin interogarea unei baze de date se obțin submulțimi sau subobiecte din cadrul unei baze de date ce conține diverse mulțimi și obiecte. Interogarea poate fi considerată ca fiind expresii de înalt nivel care prin modul lor declarativ permit utilizatorilor construcția cerințelor lor de la baza persistentă de date . Câteva din limbajele de interogare au fundații teoretice solide, de exemplu relații de calcul sau algebra booleană, alte baze de date folosesc facilități de interogare dezvoltate local doar pentru acea aplicație. În aplicațiile multimedia se folosesc de foarte multe ori metode de interogare interactive și cu un conținut vizual bogat, intuitiv.

Pentru interogare se folosesc atributele obiectelor multimedia, cuvinte cheie sau proprietăți ale conținutului obiectului. Deoarece sunt și proprietăți ale obiectelor multimedia care la extragere nu sunt foarte exacte, nu oferă rezultate foarte precise (recunoașterea obiectelor de exemplu), se folosesc de foarte multe ori metode probabilistice de evaluare a rezultatelor sau chiar prezentarea de rezultate intermediare din care utilizatorul să poată extrage ceea ce dorește sau caracteristica relevantă pentru acea căutare. Cu alte cuvinte se realizează o căutare prin interogări iterative pentru obținerea de rezultate cât mai exacte.

Utilizarea de mai multe versiuni de date – o altă proprietate a sistemului de management al bazelor de date, ce se dovedește a fi utilă în practică, este posibilitatea de stocare a unor date mai vechi din baza de date, date care în general au fost actualizate și modificate. Este bine ca această operație de salvare a datelor intermediare să se facă automat, fără eforturi din partea utilizatorului. Sunt foarte multe cazuri în care mai sunt necesare stări anterioare ale datelor persistente.

Integritatea – managementul de sistem al bazei de date urmărește consistența bazei de date de la o tranzacție la alta. Predicatele sau condițiile care caracterizează baza de date la un moment dat, reprezintă consistența acelei baze de date. Predicatele se pot aplica și obiectelor sau valorilor atributelor din baza de date. Predicatele ce capturează consistența unei baze de date sunt numite constrângeri de integritate ale bazei de date.

Securitatea – sistemul de managementul al bazelor de date trebuie să conțină și elemente de securitate a datelor și a accesului la date, la obiectele persistente. Securitizarea unei baze de date multimedia este de multe ori dificil de realizat, deoarece se lucrează cu diverse tipuri de date, pentru care există numeroase tabele cu atribute ale acestora, de multe ori comune pentru diverse obiecte. Acest lucru face ca atribuirea proprietăților de accesare să de multe ori o sarcină foarte dificilă. Este necesară de multe ori organizarea accesului pe mai multe nivele ierarhice și diverse grupuri de utilizatori.

Performantele bazelor de date

Optimizarea unei baze de date constituie un proces bazat pe mai multe etape:

organizarea și structurarea categoriilor de obiectelor stocate;

structurarea modului de stocare ierarhic, asigurarea persistenței;

optimizarea tranzacțiilor;

rezolvarea problemelor concurențiale;

asigurarea refacerii datelor în cazul eșecului unei tranzacții (asigurarea refacerii datelor pentru un număr cât mai mare de tipuri de eșecuri posibile);

optimizarea interogării, stabilirea de interogări multiple, ierarhice cu ordonare probabilistică și interactive;

optimizarea și automatizarea procesului de salvare a stărilor bazei de date;

dezvoltarea sistemului de verificare al integrității bazei de date;

organizarea sistemului de securitizare, definirea de utilizatori și drepturi pentru aceștia.

Cea mai importantă operație pentru utilizatorii de baze de date este operația de căutare și regăsire a informațiilor (Information retrieval – IR) în baza de date. De aceea, o atenție deosebită trebuie să se acorde pentru optimizarea acestui proces, în mod special dacă căutarea unei informații se bazează pe conținut.

Specificul bazelor de date multimedia

. Evoluția bazelor de date spre aplicații multimedia

Atât bazele de date relaționale cât și cele orientate pe obiecte suportă ca tipuri de date numere întregi, în virgulă mobilă, caractere și șiruri de caractere. Pentru a suporta aplicații multimedia este necesar ca baza de date să suporte și tipuri de date foarte lungi bit, octet sau șiruri de caractere. Majoritatea bazelor de date stochează numai calea de acces înspre imagini sau secvențele video din baza de date, fiind mai mult orientate spre referințele acestora.

O altă funcție care lipsește de la bazele de date convenționale este căutarea bazată pe conținut. Tipic, interogarea și căutarea în baze de date convenționale sau baze de date orientate pe obiecte se bazează pe atributele obiectelor.

Căutarea bazată pe conținut este relativ ușor de implementat în cazul obiectelor de tip text. În schimb definirea tuturor atributelor care caracterizează un obiect de tip video sau imagine este foarte dificilă. Complexitatea operației de indexare și căutare este dată de numărul mare de categorii de imagini și secvențe video ce există, pentru acestea fiind dificil de a se definii un număr de caracteristici redus care să permită o bună clasificare a acestora.

Caracteristic pentru bazele de date multimedia este și structurarea obiectelor sub diverse forme ierarhice, organizare ce se regăsește și în cazul sistemelor de stocare. Cercetările în acest domeniu au demonstrat că se poate utiliza un nivel ierarhic superior al bazei de date, restrâns ca dimensiune, pentru identificarea informației stocate. Astfel de sisteme folosesc arbori de căutare de tip B. Aplicațiile acestor baze de date se regăsesc în sistemele geografice informatizate [] CAD [], căutare în baze de date ce conțin fețe (aplicații de criminalistică) [].

Ulterior au apărut prototipuri de baze de date multimedia generalizate ca și domenii de aplicații, dar care au o serie de similarități legate de cerințele utilizatorilor ce trebuie satisfăcute. Exemple de astfel de sisteme sunt: VIMSYS ce folosește patru nivele ierarhice în definirea arhitecturii bazei de date orientate pe obiecte și este cu precădere orientată pentru stocarea de imagini []; GRIM-DBMS este o bază de date orientată pe obiecte, ce oferă facilități pentru stocarea, indexarea, interogarea și căutarea imaginilor, sunt incluse și câteva facilități de analiză a imaginilor, recunoaștere de obiecte și grupare pe baza caracteristicilor []; etc.

Există o mare varietate a prototipurilor sistemelor de baze de date [], [], [], [], [] din mai multe puncte de vedere:

Varietate a modelelor – baze de date relaționale extinse, orientate pe obiecte, bazate pe sisteme de căutare a conținutului, etc;

Varietate a categoriilor de aplicații – aplicații ce folosesc tipuri de date spațial reprezentate, aplicații orientate pe conținutul informațional al înregistrărilor din baza de date, aplicații orientate pe descrierea de obiecte complexe sub formă ierarhică, etc;

Varietate a scopului final al sistemului – interfețe grafice cu utilizatorul pentru aplicații multimedia, sisteme de căutare inteligente, modele de interogare, reprezentări de arhitecturi informaționale complexe, etc;

Varietate a tipurilor de date multimedia suportate.

Ca și concluzie, pot spune că toate sistemele de baze de date studiate, au ca scop integrarea unui cât mai mare număr de tipuri de informații și diversificarea serviciilor oferite utilizatorilor: sisteme de interogare inteligente, motoare de căutare cât mai eficiente bazate și pe conținut.

Caracteristicile bazelor de date multimedia

Pentru a determina caracteristicile unei baze de date multimedia este bine ca pentru început să prezint principalele categorii de aplicații:

Aplicații ce rulează de pe CD-ROM – există tendința la multe persoane să considere CD-ROM-ul asemănător unei baze de date multimedia deoarece permite stocarea unui număr foarte mare de informații, texte, sunete, imagini, secvențe video. De fapt, nu reprezintă decât un suport de stocare a informației.

Aplicații ce permit organizarea și vizualizarea conținutului fișierelor și directoarelor de pe un calculator – există din ce în ce mai multe soft-uri ce permit o ușoară organizare a conținutului directoarelor prin afișarea de mici pictograme ce reprezintă de exemplu, o imagine stocată la mică rezoluție. Integrarea facilităților de copiere, mutare, ștergere îi face pe mulți utilizatori să considere aceste aplicații ca și baze de date.

Programe video la cerere – „video on demand” – este cea mai spectaculoasă aplicație multimedia și se bazează pe transmiterea de programe video spre utilizator atunci când acesta le solicită. Are la bază o rețea de comunicații bine dezvoltată de mare viteză și servere de mare capacitate ce pot stoca cantități imense de programe video și care pot transmite simultan mai multe programe video [], [].

Managementul documentelor – există mari cantități de informație ce sunt stocate sub formă de imagini, de exemplu diverse publicații mai vechi, ziare, microfilme, unde este foarte important modul de indexare al informație, cum se poate ajunge la un anumit material iar dacă este posibil pe lângă tehnicile obișnuite de indexare să existe și variante de căutare bazate pe conținut în general se folosesc tehnici de recunoaștere automată a caracterelor (OCR).Uzual se folosesc baze de date relaționale cu referințe la adresele de stocare ale imaginilor.

BLOB – Binary Large Objects – de foarte multe ori bazele de date multimedia sunt reprezentate, sau considerate de unii ca fiind baze de date relaționale ce permit stocarea de date de mari dimensiuni. Un BLOB poate conține sunet, imagine sau secvențe video, iar managementul de sistem al acestor baze de date relaționale (RDBMS) poate lucra cu acest tip de date și permite tranzacționarea acestora, în multe cazuri este permisă, de exemplu, afișarea imaginilor, redarea unui sunet sau rularea unei secvențe video direct de către interfața bazei de date.

Bazele de date în sine pot fi considerate ca fiind aplicații multimedia mai ales dacă ele stochează obiecte multimedia. Se întâlnesc frecvent baze de date relaționale orientate pe obiecte ce suportă diverse tipuri de informații multimedia și care folosesc de asemenea ierarhii de clase atât pentru obiectele memorate cât și pentru structura sistemului (a bazei de date intrinseci). O categorie aparte de baze de date este reprezentată de către bazele de date orientate pe obiecte unde diversele câmpuri ale acestora sau atributele cele caracterizează obiectele multimedia sunt mult mai ușor de accesat printr-o astfel de reprezentare a lor. Cea mai des întâlnită utilizare a acestora este în cadrul bazelor de date multimedia ce folosesc pentru stocare obiectele aplicațiilor CAD sau CAM.

CAD/CAM (Computer Aided Design / Computer Aided Manufacturing) sunt aplicații ce lucrează cu obiecte 3D. Mai mulți utilizatori pot accesa simultan același biblioteci de elemente 3D.

Agenții de știri, posturi de radio și televiziune – toate posturile de radio și televiziune folosesc medii informatizate de gestionare a informațiilor, atât pentru cele care sosesc de la diverse surse cât și pentru cele ce se transmit sau se stochează pe diverse suporturi. Pentru adunarea informațiilor și știrilor, într-un post de televiziune, de exemplu, se folosesc medii ca: publicații în format electronic, email, pagini Web, faxuri, date transmise de agenții specializate. De cele mai multe ori utilizator dorește ca aceste informații să fie cât mai variate, să conțină imagini, sunete și secvențe video, adică se fie reprezentate de o bază de date multimedia.

Aplicații specifice se pot întâlnii și în industrie unde sunt necesari algoritmi de căutare orientați pe aplicația respectivă.

Sisteme educaționale – societatea actuală se caracterizează printr-o nevoie de perfecționare continuă și de înalt nivel a individului. De cele mai multe ori, aceasta se face după terminarea studiilor obișnuite, iar problemele familiare și de servici impun utilizarea altor moduri de studiu, variantele tradiționale ne fiind suficiente și satisfăcătoare.

Publicitate și marketing – majoritatea companiilor folosesc diverse medii pentru a prezenta produsele sau serviciile, apelându-se în general la baze de date multimedia pentru stocarea și accesarea acestora atât de clienți cât și de utilizatori.

Aplicațiile prezentate mai sus sunt doar câteva din domeniile unde este întâlnit conceptul de „multimedia” și în special aplicații ce se folosesc de facilitățile oferite de către bazele de date multimedia.

Respectând argumentele prezentate în cele câteva tipuri de aplicații prezentate, se poate trage o primă concluzie referitoare la bazele de date multimedia, din perspectiva utilizatorilor în primul rând: este nevoie ca baza de date să suporte cât mai multe formate și tipuri de date și să ofere în același timp posibilitatea de stocare de obiecte de foarte mari dimensiuni caracteristice aplicațiilor multimedia.

Sistemul de management al bazelor de date multimedia

Sistemul de management al bazelor de date multimedia se bazează pe integrarea a trei tehnologii fundamentale:

Baze de date cu capabilități convenționale;

Sisteme de stocare ierarhice;

Capacitate de căutare a informație bazată pe conținutul acesteia.

Schematic o bază de date multimedia este reprezentată în figura următoare:

Sistemul de management al unei baze de date multimedia trebuie să suporte următoarele tipuri de date: text, sunet, obiecte grafice (2D și 3D), imagini, secvențe video, animații, scripturi și reprezentări pentru obiecte multimedia complexe [], [].

Prin faptul ca o baza de date trebuie să „suporte”, înțeleg, că anumite caracteristici și tipuri de date sunt recunoscute automat de către baza de date. Un tip este reprezentat de structura datelor și operațiile care se pot realiza cu acestea. Interfețele bazelor de date trebuie să permită invocarea de operații cu aceste tipuri de date, să permită rularea de predicate, să actualizeze sub-structuri ale acestor tipuri de date [], [].

Prin capacitatea de stocare o bază de date nu trebuie să fie limitată, ea trebuie să reprezinte un sistem deschis pentru extinderi ulterioare. Din acest punct de vedere trebuie conceput de la început sistemul de indexare astfel încât să nu apară limitări, recomandabil este să se folosească structuri modulare organizate pe diverse ierarhii. Problemele de limitare a capacității de stocare se transmit și înspre partea hardware a sistemului. Sistemul hard trebuie prevăzut de la început cu structuri paralele atât pe partea de tratare a conectărilor din partea utilizatorilor la baza de date, cât și din punct de vedere al accesului la partea de stocare efectivă a informațiilor (folosirea de sisteme de hardisk-uri paralele).

Tipuri de date multimedia și volumul ocupat de acestea

Se pune problema și a unei bune gestionări și organizări a resurselor din punct de vedere financiar. O viteză mare de lucru pentru o bază de date se obține dacă datele acesteia sunt stocate în memorii de mare viteză RAM. Prețul acestora este relativ mare și asigură o persistență a datelor, întreruperea alimentării de exemplu poate determina pierderea datelor.

De aceea se preferă încărcarea temporară a datelor în memorii RAM de pe suporturi magnetice sau optice, iar pentru siguranță, în funcție de modificările apărute să se asigure o actualizare a datelor pe hardisk-uri. În cazul datelor ce nu se modifică, se recomandă folosirea de suporturi optice pentru date, fiind dat prețul mai scăzut al acestora. Se poate realiza din acest punct de vedere o ierarhizare a modului de stocare și manipulare a datelor

pentru îmbunătățirea performanțelor raportată la prețul de cost.

Bazele de date orientate pe obiect utilizate in multimedia

Bazele de date orientate pe obiecte sunt considerate ca fiind ideale pentru a suporta aplicații de tipul baze de date multimedia. Orientarea pe obiecte și multimedia au foarte multe elemente comune. Scopul orientării pe obiecte este de a realiza programe pentru calculatoare care să modeleze cât mai bine lumea reală.

Scopul aplicațiilor multimedia este de a prezenta lumea înconjurătoare cât mai fidel posibil. Deci între punctul de vedere al realizatorilor de modele și punctul de vedere al realizatorilor de reprezentări există foarte multe asemănări.

Reprezentarea unui obiect multimedia dintr-un punct de vedere comun pentru realizatorii de aplicații multimedia și pentru realizatorii de programe orientate pe obiecte.

O importantă similaritate este prezentată în figura de mai sus unde un obiect este văzut prin prisma reprezentări acestuia la care se adaugă operațiile care se pot realiza cu acesta.

Fiecare tip de date multimedia este un obiect cu structură proprie de stocare și un set particular de operații ce definesc starea unor obiecte specifice multimedia.

În tabelul sunt prezentate sintetic trei modele de baze de date și diferențele ce apar între acestea. Se observă din tabel că este necesar ca pentru o bază de date multimedia ce are în general o structură orientată pe obiecte să se introducă parametrul timp, de care depind o parte din date și operațiile care se realizează cu ele, iar ca și constrângere apare noțiunea de calitate a serviciului oferit [].

Avantajele bazelor de date multimedia

Avantajele folosirii tipuri de date abstracte în bazele de date multimedia pot fi concluzionate în modul următor:

Permit o mai bună conceptualizare și modelare a lumii reale;

Măresc robustețea sistemului – prin folosirea acestui tip de date este permisă la folosirea variabilelor să se verifice de fiecare dată tipul datei respective pentru a nu avea erori în timpul rulării, verificarea în acest mod a integrității și a operațiilor efectuate permit creșterea corectitudinii programelor;

Performanțele sistemului cresc – cunoașterea tipurilor de obiecte permite creșterea vitezei de compilare; sunt posibile de asemenea strategii de grupare a obiectelor persistente în vederea stocării; folosirea unei exprimări abstracte a obiectelor face posibilă ascunderea unor detalii de proiectare, la implementare folosindu-se doar obiectul ca o singură entitate;

Permite o mai bună captură a semanticii tipurilor – folosirea tipurilor de date abstracte grupează sau localizează mai bine operațiile și reprezentarea atributelor. Acesta a permis o mai ușoară asociere a operațiilor cu obiectelor multimedia cu care acestea lucrează.

Separă implementarea de specificații – sunt permise modificări și îmbunătățiri ale aplicației fără a se modifica interfața publică a datelor de tip abstract.

Permite extensibilitatea sistemului – prin refolosirea unor componente software, fiind astfel mai ușoară realizarea aplicației și depanarea acesteia.

Aceste considerente sunt foarte utile din punct de vedere practic, mai ales că aplicațiile multimedia suportă conceptul de introducere – plugged – de noi tipuri de date, ceea ce permite sistemelor complexe să reutilizeze anumite unități.

Folosirea moștenirilor în cadrul bazelor de date multimedia prezintă două mari avantaje atât pentru cei care implementează aplicația cât și pentru utilizatori:

Oferă un model natural de organizare a informației – de exemplu, elemente multimedia, elemente grafice, periferice multimedia pot fi folosite într-o organizare naturală și directă.

Permite partajarea codului și a reprezentării, reducând foarte mult efortul de dezvoltare al aplicației. Este permisă definirea de noi clase în vârful ierarhiei. Instanțe sau ierarhii de clase ce implementează de exemplu importul sau exportul unei imagini, afișarea sau editarea unui grafic, acestea pot fi reutilizate sau pot fi extinse pentru aplicarea lor în cadrul bazelor de date multimedia.

Identitatea unui obiect oferă o serie de avantaje pentru bazele de date multimedia:

Identitatea unui obiect ne permite reprezentarea directă a obiectului în spațiul obiectelor structurate sub forma unui graf. În multe aplicații este necesar ca unele instanțe ale unor clase definite de utilizator să fie partajată referențial.

Folosirea identității unui obiect permite utilizatorilor să nu mențină integritatea referențială. În aplicațiile multimedia tipic se folosesc reprezentări ale obiectelor sub formă de graf, cum ar fi de exemplu documentele complexe cu multiple pagini și în fiecare pagină se găsesc diverse elemente. Aceste tipuri de obiecte pot fi suportate de baza de date fără a fi necesară o suprascriere a constrângerilor de integritate referențială (diferit față de bazele de date referențiale).Prin folosirea aceluiași token se rezolvă probleme de referință în cadrul memoriei sau al bazei de date.

Asocierea diverselor operații cu identitatea obiectelor oferă o unealtă foarte puternică de manipulare a funcționalității obiectelor din cadrul aplicațiilor de tip baze de date multimedia.

Medii pentru obiecte distribuite și platforme interoperabile – OLE și OpenDoc – incorporează conceptul de identitate a obiectului.

Încadrarea suportului de identitate a obiectului în bazele de date multimedia oferă o uniformitate în suportarea obiectelor independente de aplicație sau locație.

Complexitatea bazelor de date

Moduri de creștere a performanțelor unei baze de date

Pe lângă stocarea ierarhică a informației, posibilitate de căutare după conținut și alte proprietăți prezentate mai sus, unei baze de date multimedia i se mai pot adăuga și alte caracteristici secundare cum ar fi:

Tipuri de date spațiale și sistem de interogare spațial – când se manipulează tipuri de date de tip imagine ce au sub-obiecte. Pentru indexarea unor astfel de obiecte este bine să se integreze și relațiile dintre sub-obiecte, pentru astfel de reprezentări se va dezvolta și un sistem de interogare adecvat.

Sistem de interogare interactiv, cu redefinire a parametrilor de căutare în mod iterativ, bazat pe răspunsul utilizatorilor la rezultatele parțiale ale căutării afișate – acest tip de interogare presupune o bună interfață grafică cu utilizatorul, care să permită utilizatorului formarea interogării în mod iterativ și intuitiv..

Sistem de extragere automată a caracteristicilor și indexare – în cazul imaginilor, de exemplu, la introducerea unei imagini în baza de date este bine ca unele caracteristici să se calculeze la momentul respectiv (calculul valorii medii, a dispersiei, diverse momente și histograme). Integrarea acestor caracteristici în baza de date o dată cu obiectul inițial poate scurta timpul de căutare ce folosește acele caracteristici, ne mai fiind necesară calcularea lor în momentul căutării, ele existând în baza de date.

Sistem de indexare multidimensional – se știe că folosirea unei singure chei pentru accesul la informații, cazul structurilor sub formă de arbore de tip B, este mai puțin performantă decât sistemele de indexare sub formă de arbore de tip R sau K, ce folosesc indexare spațială (cu mai multe chei de indexare) – se recomandă deci, folosirea mai multor chei de indexare pentru aplicațiile multimedia.

Gruparea după obiecte complexe – în cazul aplicațiilor CAD/CAM este bine ca obiecte complexe constituite din mai multe sub-obiecte să se păstreze legătura cu obiectul principal care le încadrează și de la acestea să se meargă mai departe la căutarea sub-obiectelor.

Într-o bază de date multimedia trebuie să existe posibilitatea definirii de noi tipuri de date care să fie transparente în relația aplicație-utilizator.

Conceperea software a bazei de date multimedia trebuie să pornească de la idea modularității și dezvoltării ulterioare a bazei de date. Sistemul de afișare al rezultatelor căutării trebuie să permită afișarea acestora în diverse moduri.

De multe ori relevanța căutării și a rezultatelor obținute depinde de modul în care acestea sunt prezentate. De exemplu, dacă se caută imagini similare cu o imagine dată, nu este relevantă afișarea unei liste cu sursele fișierelor ce conțin imagini, ci este mult mai bună o afișare de pictograme la scara redusă a imaginilor sau afișarea unei liste de imagini în ordonate după parametrii ce căutare. O ordonare după parametrii de căutare, poate ajuta la redefinirea acestora în scopul îmbunătățirii rezultatelor obținute la căutare.

O bază de date multimedia poate funcționa bine doar dacă sunt îndeplinite și anumite condiții legate de resursele hardware, astfel se recomandă o deplină transparență a echipamentelor necesare de exemplu pentru accesarea bazei de date, dar și ale resurselor serverului, sistemului de comunicare client/server, etc

Din punct de vedere hardware, echipamentul trebuie să fie structurat modular, astfel încât să se poată realiza dezvoltări ulterioare fără o reproiectare a suportului software. Trebuie să existe o legătură între modularitatea software și cea hardware.

Pentru bazele de date multimedia o caracteristică importantă o reprezintă dependența datelor de timp. De aceea, trebuie luate măsuri care să evite probleme de incompatibilitate a modului de reprezentare a informației de timp.

Sisteme de gestionare a bazelor de date distribuite

Posibilitatea de a realiza o structură de baze de date de mare complexitate care să fie localizate în diverse locații a fost o provocare pentru toți dezvoltatorii de aplicații din acest domeniu.

Autonomia locală – situarile dintr-un sistem distribuit trebuie să fie autonome: datele locale sunt deținute și gestionate local; operațiile locale rămân pur locale; toate operațiile dintr-un sit sunt controlate de către situl respectiv.

Nici un fel de dependență de un sit central – nu trebuie să existe nici un sit fără de care să nu poată opera sisteml. Aceasta implică faptul că nu trebuie să existe servere centrale pentru servicii, cum ar fi administrarea tranzacțiilor, detectarea erorilor, optmizarea interogărilor și administrarea globală a sistemului.

Operarea continuă – ideal este ca sa nu fie necesare opriri planificate ale sistemului pentru operații de adăugare sau eliminare a unui sit din sistem, crearea și ștergerea dinamică a fragmentelor dintr-unul sau mai multe situri.

Independența de locație – utilizatorul trebuie să aibă posibilitatea de a accesa baza de date din interiorul oricărui sit. Utilizatorul trebuie să aibă posibilitatea de a accesa toate datele ca și cum ar fi stocate în situl său, indiferent de locul unde acestea sunt stocate din punct de vedere fizic.

Independența de fragmentare – utilizatorul trebuie să aibă posibilitatea de a accesa datele, indiferent de modul în care sunt fragmentate.

Independența de reproducere – utilizatorul trebuie să nu fie conștient de faptul că datele au fost reproduse. Astfel, utilizatorul nu trebuie să aibă posibilitatea de a accesa direct o anumită copie a unui articol de date și nici nu trebuie să reactualizeze special toate copiile unui articol de date.

Prelucrarea distribuită a interogărilor – sistemul trebuie să aibă capacitatea de a prelucra interogări care se referă la date aflate în mai multe situri. Prelucrarea distribuită a tranzacțiilor – sistemul trebuie să accepte tranzacția ca unitate de refacere. Sistemul trebuie să garanteze că atât tranzacțiile globale, cât și cele locale se conformează regulilor ACID pentru tranzacții și anume: caracterul atomic, coerența, izolarea și durabilitatea.

Independența de hardware – este necesar ca sistemul de gestiune al bazelor de date distribuite să poată fi rulat pe o diversitate cât mai mare de platforme hardware. Independența de sistemul de operare – este necesar ca sistemul de gestiune al bazelor de date distribuite să poată fi rula pe o diversitate cât mai mare de sisteme de operare.

Independența de rețea – este necesar ca sistemul de gestiune al bazelor de date distribuite să poată fi rula pe o diversitate cât mai mare de rețele de comunicație separate.

Independența de baza de date – este posibil ca local să existe diverse sisteme de gestiune a bazelor de date ce rulează local, eventual pot exista și diferite modele de baze de date.

Indexarea imaginilor in baze de date multimedia

Introducere

Problema pe care trebuie să o rezolve un sistem de indexare, într-o bază de date multimedia, este creșterea vitezei de căutare. Acest lucru se poate realiza prin intermediul modului în care se localizează informației în baza de date, prin modul în care este caracterizată, cuantificată, distanța dintre două obiecte[], [].

Tehnicile de indexare și grupare sunt folosite cu succes în cadrul bazelor de date relaționale și a celor orientate pe obiecte []. Folosind un index, sau o cheie pentru operația de căutare, timpul de căutare se reduce foarte mult în cazul bazelor de date de foarte mari dimensiuni. În general, indiferent de tipul bazelor de date se folosesc sisteme de indexare a înregistrărilor ce au aceeași structură sau atribute comune.

O colecție de obiecte sau de înregistrări poate fi organizată pentru o căutare eficicentă utilizând un sistem de indexare cu o sigură cheie. Cele mai des întâlnite sisteme de indexare cu o singură cheie sunt sistemele B Trees.

. Sistemul de indexare B Trees

Sistemul de indexare B Trees – fișierele ce sunt sortate folosind un câmp de tip cheie sunt în mod obișnuit indexate astfel încât să permită o creștere dinamică a bazei de date, posibilități de actualizare și o eficientă căutare. Un arbore B Trees este un arbore echilibrat care în fiecare nod are între k+1, și 2k+1 pointeri și între k și 2k chei în fiecare nod. Nodul unui astfel de arbore este format din secvențe alternative de <Pointeri de pagină> < Valori ale cheii> []. Parametrul k depinde de dimensiunea paginii și de dimensiunea cheii, iar acestea se aleg în funcție de aplicație.

Pentru o secvență P1, K1, P2, K2, … , Pi , unde Pj este un pointer la o pagină iar Kl este cheia, algoritmul de căutare B Trees funcționează astfel:

P1 va fi pointerul pentru o pagină care are toate cheile mai mici sau egale cu K1.

P2 va fi pointerul pentru o pagină care are toate cheile mai mari decât K1 și mai mici sau egale cu K2.

Căutarea, inserarea și ștergerea în cazul algoritmului de indexare de tip B Trees, au fost foarte bine tratate în literatură, în acest moment existând mai multe variante pentru acest algoritm [], [], []. Varianta B+ folosește stocarea valorii cheilor în cadrul frunzelor arborelui. Dacă arborele B are N chei, atunci lungimea maximă a căi de la rădăcină la frunze este , lungimea timpului de căutare având o expresie logaritmică în funcție de mărimea bazei de date. Se poate folosi și o variantă de indexare cu indici secundari, frunzele arborelui în acest caz conținând perechea <Valoarea cheii, Identiticator obiect>. Rădăcina și nivelele intermediare sunt folosite pentru localizarea paginii (frunză) ce conține o valoare specifică pentru cheie. Iar apoi identificatorul obiectului va identifica înregistrarea ce are valoarea specificată de valoarea cheii.

HSF (Hashed File Structures

HSF (Hashed File Structures) – o strategie alternativă pentru varianta prezentată mai sus este schema de transformare cheie-adresă. Funcțiile de mapare ale spațiului cheilor , în spațiul de valori al tabelelor HSF, au în general valori finite, fiind propuse în literatură un număr foarte mare de variante (metode ce folosesc gruparea valorilor existente într-un tabel HSF, metode ce folosesc structuri de tip HSF doar pentru partea de indexare secundară). Considerentele principale de folosire a acestora sunt rezumate în posibilitatea de a converti o distribuție neuniformă a cheilor în una uniformă și posibilitatea de mapare a unui spațiu de chei de foarte mari dimensiuni într-un spațiu redus de adrese de stocare și un timp relativ redus de căutare a unei înregistrări.

Structuri de indexare pentru BLOBs

BLOBs – reprezintă date în format binar de foarte mari dimensiuni nestructurate. Având dat un BLOB, operațiile ce se efectuează la modul general cu acesta sunt: crearea unui nou BLOB, poziționarea în cadrul unui BLOB pentru scrierea sau citirea din acesta, inserarea și extragerea unei secvențe de biți în cadrul unui BLOB, extragerea proprietăților unui BLOB.

Liste de legătură – o variantă folosită frecvent pentru simplitatea ei, este definirea indexării în cadrul unui BLOB prin intermediul unei liste de legături. Astfel, un BLOB este împărțit în mai multe pagini ce pot fi accesate direct. Operații de inserare, ștergere sau înlocuire de pagini din cadrul unui BLOB sunt facil de realizat, operația de refacere a listei de legături fiind foarte simplă.

Principalul dezavantaj al unei asemenea scheme de indexare constă în faptul că nu toate accesările sunt necesare chiar de la începutul unei pagini, și sunt descărcate de exemplu de pe un server cantități enorme de date fără utilitate, de aceea în sistemele cu foarte multe accesări se poate întâmpla să apară și blocaje. De aceea au fost necesare scheme mult mai complexe de indexare și accesare a BLOBs.

Directoare pentru BLOBs de mărime impusă – majoritatea implementărilor presupun o dimensiune maximă pentru BLOBs, iar uneori dimensiunea acestuia poate fi de câțiva gigaocteți. Se preferă definirea unui director de o dimensiune fixă, iar fiecare BLOB are mai multe segmente (pagini) ce pot fi accesați prin intermediul unor pointeri. Un exemplu este sugestiv în acest caz: consider dimensiunea directorului de 2Gb (valoare des întâlnită ca restricție a diverselor sisteme de operare sau aplicații ce manipulează asemenea date). Dacă se consideră dimensiunea unui segment de 10kb, iar pentru fiecare segment se folosesc pointeri pe 8 biți, vor fi deci necesari 1600kb pentru gestionarea acestui BLOB.

Dimensiunea segmentelor poate fi redusă, iar spațiul ocupat de pointeri pentru gestionare poate crește, mărindu-se și complexitatea procesului de gestionare a BLOB, dar se obține și o mai bună acuratețe în poziționare iar în cazul serverelor cu obiecte multimedia se reduce considerabil riscul de blocare și debitul de informație neutilă accesată.

Indexarea multidimensională pentru obiectele multimedia

Există foarte multe aplicații multimedia unde căutarea se face după mai multe atribute. De exemplu, pentru imagini sunt mai multe atribute care caracterizează aspectul general (dimensiune, număr de culori, tip compresie, etc.) și număr foarte mare de atribute care caracterizează conținutul imaginii (texturi, obiecte, forme, etc.). În aceste condiții, sistemele de indexare unidimensionale nu sunt suficiente.

Ex :

Fie următorul exemplu, de exemplificare a avantajelor oferite de indexarea multicheie: se presupune că operația de căutare necesită N atribute și că avem o cheie secundară de indexare pentru fiecare dintre aceștia. Dacă se realizează o căutare exactă pentru toate cele N atribute, vom avea:

Pentru fiecare atribut Ai , se caută indexul secundar și se identifică identificatorii obiectelor OIDi = {Oi, … , Om} pentru toate obiectele calificabile în urma procesului de căutare după un anumit atribut.

Intersectarea tuturor mulțimilor OID1, OID2, … , OIDn va determina o mulțime OIDrezultate ce conține identificatorii (adresele) pentru toate obiectele ce îndeplinesc aceste condiții.

Se obțin obiectele pornind de la adresele identificate în pasul anterior.

Concluziile ce se pot extrage de la acest mod indexare sunt următoarele:

Timpul de căutare, în cazul în care se utilizează mai multe atribute și o indexare după o singură cheie, devine foarte mare.

Folosirea unui sistem multicheie poate crește performanțele căutării multiatribut.

Spațiul multidimensional al atributelor (dacă avem k – atribute, vom avea un spațiu cu k dimensiuni) se împarte în spații mai mici k – dimensionale.

Dimensionalitatea și localizarea

Dimensionarea si localizarea este o caracteristică fundamentală care se regăsește pentru toate structurile de date uni sau multidimensionale este dată de necesitatea acestora de a se adapta la numărul variabil de obiecte și chei. Trebuie să se adapteze la modificările valorilor cheilor și ștergerii obiectelor care determină și ștergerea valorii cheilor din structură.

Când se adaugă valori cheilor și obiecte, spațiul (unidimensional pentru structuri cu o sigură cheie și multidimensional pentru structuri cu mai multe chei) necesită o partiționare. Pentru această partiționare a spațiului de căutare, structurile multidimensionale de acces au două caracteristici suplimentare: dimensionalitatea și localizarea.

Dimensionalitatea apare atunci când partiționarea spațiului se face prin intermediul unei lini, plan, unul sau mai multe hiperplane într-un spațiu multidimensional. Localizarea apare atunci când un subspațiu este partiționat prin împărțirea în subspații multidimesionale dijuncte.

Structurile cu orientare matricială sunt mult mai flexibile decât variantele structuri de tip arbore.

.Indexarea pentru căutarea bazată pe conținut

Intr-o bază de date multimedia nu sunt suficiente numai atribute (cheile) pentru căutare, ci este nevoie de o căutare bazată pe conținut mult mai complexă. Sistemele de indexare bazate pe structuri multidimensionale se dovedesc a fi utile, dar nu acoperă întreaga arie de aplicații.

Scopul unui sistem de indexare este de a îmbunătății timpul de răspuns al sistemului, atunci când are loc o interogare a bazei de date. Deoarece fiecare tip de date, poate avea o structură aparte, este relativ dificil de a standardiza metodele utilizate. Se preferă utilizarea unei structuri comune, care să fie personalizată pentru fiecare tip de date în parte.

Dintre metodele secundare (acestea se introduc pentru creșterea eficienței la căutare, pe lângă variantele obișnuite de indexare) folosite pentru indexare pot aminti: metoda inversării indexilor și metoda ce folosește semnătura de indexare.

Metoda de indexare, ce folosește inversarea indexilor, este o metodă secundară de stocare, reprezentată de un form, ce asociază o mulțime de obiecte cu un cuvânt cheie. Semnătura de indexare este o tehnică alternativă pentru indexarea conținutului și se folosește de construcția unei semnături pentru fiecare obiect indexat [].

.Gruparea

Există două tehnici principale de îmbunătățire a performanțelor de căutare pentru un sistem de stocare a informațiilor de tip bază de date:

Indexarea – am prezentat în paragrafele anterioare pe scurt câteva metode ce se folosesc, avantajele și dezavantajele acestora.

Gruparea – clustering – se folosește pentru organizarea obiectelor compozite, complexe, în segmente de stocare continue, cu optimizarea accesului la subcomponente și componente.

Gruparea trebuie să permită ca obiectele cele mai des accesate, să fie înregistrate cât mai aproape unele de celelalte, pentru a se reduce timpul de acces. Aplicațiile multimedia tipice, ce folosesc ierarhii de obiecte sau obiecte complexe, sunt:

Aplicațiile CAD;

Aplicațiile de grafică pe mai multe straturi și grafica vectorială;

Site-urile Web;

Aplicații ce rulează de pe CD-ROM;

Structuri video ierarhice.

Sunt mai multe strategii ce permit gruparea obiectelor. În genera, spațiul obiectelor dintr-o bază de date este controlat prin intermediul unui graf. Un spațiu gestionat de un graf trebuie mapat pe modul de stocare fizic. Unitățile de stocare în general sunt paginate iar fiecare pagină poate conține mai multe segmente.

Gruparea poate fi realizată:

static – pe baza tipului sau structurii obiectelor;

dinamic – programatorul poate specifica în care segment să fie realizată înregistrarea. De exemplu, programatorul poate specifica că obiectul O1 trebuie plasat cât mai aproape de obiectul O2 .

Dacă dezvoltatorul de aplicații cunoaște modul de accesare al obiectelor, atunci, este recomandabilă utilizarea variantei dinamice, deoarece poate îmbunătății enorm performanțele de căutare (se reduce considerabil de mult timpul de accesare).

Caracteristici globale ale imaginilor propuse la indexarea bazelor de date

Regiunea unei imagini poate fi definită ca un ansamblu de pixeli dintr-o imagine ce pot fi caracterizați de câteva atribute. Aceste atribute vor fi folosite în continuare pentru a realiza o clasificare a pixelilor dintr-o imagine după proprietățile conexiunilor ce există între aceștia.

Atributele stohastice ale unei imagini

Se considera imaginea ca un proces aleator discret A[s] cu valori reale. Dacă s este fixat, atunci A[s] este o variabilă aleatoare pentru care se pot defini, pentru diverse realizări [], următoarele:

Media

Pentru un semnal continuu A(x), speranța sau media ansamblului este definit prin:

(1.1.)

Pentru un semnal discret media se definește în următorul mod:

. (2.)

unde ai este o realizare a variabilei A[s] și pi este probabilitatea P(A[s] = ai )

Momentul de ordinul k

(1.3.)

Momentul centrat de ordinul k

(1.4.)

Autocorelația

(1.5.)

Momentele și media spațială a unei regiuni

Pentru o regiune R de K pixeli, se definesc diferite momente spațiale, centrate sau necentrate []:

Momentul spațial de ordinul I sau media

(2.1)

Momentul spațial centrat de ordinul doi sau varianța

(2.)

Momentul spațial centrat de ordinul k

(2.)

Autocovarianța sau momentul spațial compus de ordinul secund

(2.)

unde, Nc este numărul de cupluri (s, s+ t) din regiunea R. Autocovarianța este periodică dacă textura este periodică.

Momentul spațial compus de ordinul k

(2.)

unde, Nk este numărul de cupluri (s, s+ t1,…, s+ tk-1) din regiunea R.

Procesul este staționar de ordinul I dacă E{A[s]} este independent de site. În plus un proces este staționar de ordinul II dacă autocorelația nu depinde de translația t între două site.

(2.)

Când procesele sunt staționare, se pot exploata momentele spațiale, observând o realizare pe un ansamblu de site, o legătură va apare între diverse site pentru diverse realizări. În plus procesul este ergodic de ordinul doi când R tinde spre întreg planul N2, la:

(2.)

(2.)

Studiul celor două momente nu este suficient pentru a discrimina diverse texturi. A. Gagalowicz a reușit să sintetizeze texturi diferențiabile pentru ochi ce au momentele egale până la ordinul 4 [].

Pentru se definește:

(2.) unde,

(2.)

Pentru un număr mare de realizări, se estimează P(A(s)=) prin h(). h nu este decât densitatea empirică de probabilitate a lui A.

a) T1 b) T2 c) T3

d) T4 e) T5 c) T6

3-1. Texturile analizate

a) Histograma texturii T2 b) Histograma texturii T3

c) Histograma texturii T5 d) Histograma texturii T6

3-2. Histogramele texturilor analizate

Histograma de coocurență sau media spațială de ordinul doi

(2.)

Am constatat că sistemul vizual uman nu poate discrimina două texturi ce au aceeași distribuție de probabilitate de ordinul I și II. Pot exista contraexemple de texturi macroscopice ce permit discriminări datorită existenței unor elemente deterministe, texeli. Acești parametri statistici au dezavantajul că sunt dificil de manipulat deoarece ocupă multă memorie și timp de calcul.

Pornind de la imaginea originală contrastul se definește în următorul mod:

Contrastul = (2.)

unde, este varianța, iareste momentul de ordinul IV. Acesta poate fi calculat pentru întreaga imagine sau pe ferestre alunecătoare.

Granularitatea se bazează pe calculul mediei unor ferestre alunecătoare.

j (2.)

unde, Img[i,j] este valoarea nivelului de gri pentru pixelul de coordonate (i,j); k este între 0 și 5.

(2.)

(2.)

Pentru fiecare pixel, se alege valoarea lui k care maximizează expresiile (5.19) și (5.20). Parametrul de optimizare va fi:

(2.)

Pentru o imagine de dimensiune mxn, granularitatea se poate defini astfel:

(2.)

Directivitatea este vectorul gradient calculat pentru fiecare pixel

Matricea de coocurență

Matricile de coocurență conțin mediile spațiale de ordin secund. Pentru o translație t, matricile de coocurență MCt ale unei regiuni R sunt definite pentru toate cuplurile de nivele de gri (a, b) prin relația:

(2.)

MCt(a,b) este deci numărul de cupluri de pixeli (s, s+t) din regiunea considerată, separați prin vectorul de translație t.

Matricile ce coocurență conțin o cantitate importantă de informație dar care este dificil de manipulat în întregime.

În general, se folosesc câțiva indici sau caracteristici ale imaginilor:

Omogenitatea : (2.)

Acest indice, este cu atât mai mare, cu cât se regăsesc mai multe cupluri de pixeli de același nivel sau când nivelele de gri sunt constante sau când se descoperă o periodicitate în direcția translației.

Contrastul : (2.)

Fiecare termen al matricii MCt este ponderat prin distanța sa față de diagonală. Se obține un indice ce corespunde noțiunii uzuale de contrast. El este mai mare când termenii de-a lungul diagonalei matricii sunt mari, acest lucru se datorează trecerii de la un pixel cu un nivel de gri mare și unul foarte redus.

Entropia : (2.)

Entropia este mică dacă întâlnim adesea același cuplu de pixeli și mare dacă cuplul de pixeli este slab reprezentat. Ea indică gradul de dezordine care este prezent în textură.

Corelația : (2.)

Media ponderată a liniilor matricii MCt : (2.)

Media ponderată a coloanelor matricii MCt : (2.)

Varianța liniilor matricii MCt : (2.)

Varianța coloanelor matricii MCt : (2.)

Omogenitatea locală : (2.)

Directivitatea : (2.)

Directivitatea este importantă mai ales atunci când există pixeli de același nivel de gri separați printr-o translație t [].

Uniformitatea : (2.)

Este o caracteristică foarte utilă atunci când pixeli de același nivel de gri apar adesea în direcția de translație.

Indicii sau caracteristicile menționate mai sus sun corelate, dar permit reducerea considerabilă a informației conținute în matricea de coocurență [].

Din practică rezultă că în general sunt suficienți 5 indici pentru a discrimina texturile: omogenitatea, contrastul, entropia, omogenitatea locală și momentul de ordinul 2 Aceste aspecte au fost studiate de autor, care a propus un algoritm pentru segmentarea imaginilor folosind proprietățile texturilor [].

Problemele apar însă atunci când prelucrăm imagini reale, cu un număr mare de texturi, texturi ce pot avea caracteristici asemănătoare, caz în care segmentarea cu praguri multiple devine o problemă serioasă.

Aplicarea caracteristicilor matricii de coocurență pentru o imagine ce conține 8 texturi

În figura sunt prezentate atributele unei imagini ce conține 8 texturi diferite. Se poate remarca faptul că una, două sau chiar trei texturi se pot identifica ușor, în schimb pentru celelalte texturi există o anumită confuzie. O segmentare multiprag nu ar putea oferi calitatea dorită.

Matricile de coocurență generalizate [], [] sunt pentru a descrie aranjamentul spațial al primitivelor imaginilor cum ar fi contururile sau liniile. Ele generalizează noțiunea de matrice de coocurență de la studiul nivelelor de gri la studiul distribuției spațiale a primitivelor texturilor.

Caracteristici locale ale imaginilor

Texturile

Texturarea este o tehnica importanta de crestere a realismului scenelor virtuale, prin care se genereaza imagini ale obiectelor tridimensionale mult mai interesante si mai complexe. Prin texturare, se moduleaza culoarea suprafetelor obiectelor folosind o imagine repetitiva (textura), obtinându-se un efect asemanator aceleia de aplicatie (lipire) a unui desen pe o suprafata.

În decursul dezvoltarii tehnicilor de texturare, au fost propuse diferite modalitati de creare a impresiei de realism a suprafetelor, de exemplu prin perturbatia normalelor suprafetelor, sau prin variatii ale iluminarii mediului ambiant al obiectelor. În momentul actual, metoda cea mai larg raspândita, cu numeroase implementari hardware în sistemele grafice, este metoda de modulare a culorii suprafetelor obiectelor folosind imagini de texturi.

Texturile se definesc ca imagini bidimensionale care se aplica suprafetelor obiectelor, sau ca un câmp tridimensional, si atunci culoarea obiectului se determina prin intersectia suprafetelor sale cu acest câmp tridimensional al texturii. În lucrarea de fata ne vom ocupa de texturi bidimensionale.

Problema principală în recunoașterea unei texturi este identificarea elementului primitiv, texelul.

Texturile se pot clasifica în patru mari clase [], după modul de definire

Texturi definite prin primitive;

Texturi ce au un model structural;

Texturi ce au un model statistic;

Texturi gradient.

Exemple de texturi ce au primitiva repetată în mod regulat (rândul de sus) Exemple de texturi ce au primitiva repetată în mod neregulat (rândul de jos)

Texturi definite prin primitive

Noțiunea de “primitivă” a unei texturi sau de “texel”, este elementul central în definirea unei texturi. Un texel este o primitivă vizuală care conține câteva proprietați invariante și care apare în imagine în diferite poziții, deformații și orientări. O proprietate invariantă de bază a unui texel este faptul că media pixelilor ce îl formează dă un nivel de gri constant. Proprietăți mult mai elaborate sunt legate de descrierea formei.

a) b)

a) Textură ce are primitivele elipse de diverse dimensiuni

b) Textură ce are primitivele segmente de linii drepte

Primitivele texturii pot fi pixeli, grupări de pixeli (cum ar fi segmente de curbe) sau regiuni. Textura « boabe de cafea » ar putea fi descrisă și în următorul mod: elipse negre pe un fundal alb. În definirea unei texturi cu primitive este foarte important faptul că ele apar în mod repetat. Se pune întrebarea de câte ori ? Acest lucru poate fi explicat calitativ prin imaginarea unei ferestre ce corespunde dimensiunii unui texel, și raportarea întregii suprafețe la suprafața ferestrei.

Este foarte importantă rezoluția la care se face analiza texturii.

Ex : textura « zid din cărămizi », la o rezoluție scăzută elementul primitiv este « cărămida ». Dacă rezoluția crește, se poate lua în considerare textura fiecărei cărămizi, iar pentru aceasta să se facă analiza elementului primitiv. Din acest scurt exemplu se poate remarca faptul că ideea de primitivă poate fi văzută și sub o forma ierarhică.

De aceea este foarte importantă alegerea unei rezoluții potrivite, adică alegerea dimensiunii ferestrei de analiză a texturii astfel încât să permită reperarea primitivelor dorite. Pentru analiza imaginii la nivel de grup de cărămizi este nevoie de o fereastră mult mai mare decât în cazul analizării texturii la nivel de cărămidă.

Filtrele Gabor

Discriminarea texturilor în cadrul bazelor de date sau segmentarea acestora în cazuri de prelucrări de imagini, presupune o acuratețe și o abordare strâns legată de capacitatea robustă a ochiului uman de interpretare a texturilor și de modul de realizare a segmentării imaginilor bazată pe texturi.

Au fost propuse mai multe metode de interpretare și de segmentare a texturii, unele dintre ele se bazau pe o bancă de modele de filtre [].

Metoda experimentată, care va fi expusă în continuare, se bazează pe un set de filtre liniare ce operează în paralel în descompunerea imaginii într-o colecție de subimagini. Aceste subimagini vor fi combinate folosind una sau mai multe mecanisme neliniare pentru generarea imaginii segmentate.

Filtrele individuale sunt proiectate astfel ca acțiunea lor simultană să se concentreze asupra unui domeniu de frecvențe și asupra unor interacțiuni spațiale locale [], [], [], []. Acesta este motivul pentru care se încearcă o descompunere spațiu-frecvență unitară.

Analiza Fourier a descompunerilor unitare spațiu-frecvență permite extragerea modificărilor locale ale frecvenței, modificări ce depind și de poziția în imagine.

Utilizând diferite clase de operatori putem realiza o bună descompunere unitară spațiu frecvență, una din clasele cele mai atractive este clasa funcțiilor elementare Gabor (GEF) [], []. Aceste funcții sunt localizate optimal de principiul incertitudinii din domeniul frecvență și din domeniul spațial (optimizarea incertitudinii se bazează pe metrica x), ele putând fi foarte selective atât în domeniul frecvență cât și în domeniul spațial []. GEF sunt filtre trece-bandă și refac caracteristicile celulelor vizuale cervicale.

Utilizarea de bănci de filtre determină o îngreunare a calculelor. Dacă o imagine de intrare conține două regiuni cu texturi diferite, atunci diferențele locale spațiale și de frecvență dintre cele două regiuni vor produce diferențe la ieșire pentru unul sau mai multe filtre. Deci, diferența dintre texturi este transformată în discontinuități ale imaginii de ieșire, atunci când există diferențe de textură între regiunile luate în discuție.

Discontinuitățile pot fi folosite în continuare în procesare pentru partiția imaginii în diferite regiuni. Pentru scheme ce folosesc bănci de filtre GEF, fiecare filtru constă în parametrizarea GEF cu o neliniaritate.

Neliniaritatea implică calcule foarte complexe, filtrele folosite sunt filtre Gabor.

Primele etape în proiectarea filtrelor au presupus :

calcularea transformatei Fourier pentru textura în cauză și determinarea celor mai diferite frecvențe;

folosirea unei căutări euristice pentru studiul sistemului vizual uman;

realizarea unei decompoziții spectrale pe prototipuri de "texels" pentru fiecare textură de interes și notarea celor mai mari diferențe ce apar;

Dintre pionierii acestui domeniu îi putem aminti pe: A. Bovik și D.F. Dunn, ei au demonstrat că folosirea unui model matematic de definire a texturii și aplicarea filtrelor Gabor poate determina la ieșirea acestora un semnal semnătură ce corespunde conturului dintre două texturi diferite.

Ei identifică patru tipuri de semnături: treaptă, vale, creastă, treaptă. Aceste semnături apar numai dacă parametrii de definire ai filtrului Gabor sunt bine aleși.

Pentru texturi naturale ce au un larg domeniu de variație, este nevoie de o metodă sistematică de selectare a parametrilor filtrului. Pentru a obține o discriminare mai robustă pentru diferite perechi de textură, se poate propune o schemă de segmentare ce utilizează un filtru multiplu, motivația fiind dată de modelul Rician (descris într-un paragraf următor). Problema ce rămâne în continuare este cum combinăm acele filtre.

O problemă ce trebuie luată în considerare în cazul segmentării imaginilor este supervizarea segmentării, care nu se poate face în general automat atunci când imaginea ce este segmentată este compusă din foarte multe texturi, ea presupunând existența unei bănci mari de filtre sau a operatorului uman ce trebuie să indice eșantionul de textură pentru care se vor calcula parametrii filtrului.

Implementarea algoritmului de indexare

Design informational

Interfata este o parte a unui sistem care servește comunicării, facilitând aceasta. În tehnologia calculatoarelor termenul de interfață se referă la un punct /loc de interacțiune dintre două unități, dispozitive componente ale unui sistem, care punct/loc este compatibil din punct de vedere hardware și software spre ambele părți ce comunică prin el uni- sau bidirecțional. Deci, prin analogie, sensul de interfață poate fi uzual interpretat ca o suprafață de margine, de graniță a unui element, care servește comunicației spre și/sau dinspre alte elemente.

O interfata trebuie sa asigure o separare clara intre vederea externa si cea interna a unei abstractii, facand posibila utilizarea abstractiei fara a se cunoaste implementarea sa. Conceptul de interfata exista in unele limbaje de programare obiect, mai recente, de exemplu HTML, JAVA, C, C++.

Interfata cu utilizatorul

HTML

HTML este un limbaj pentru descriere, structurare si formatare orientat catre prezentarea documentelor pe o singura pagine folosit la majoritatea site-urilor web, utilizând un software de redare specializat, numit agent utilizator HTML.

HTML furnizează mijloacele prin care conținutul unui document poate fi adnotat cu diverse tipuri de metadate și indicații de redare. Indicațiile de redare pot varia de la decorațiuni minore ale textului, cum ar fi specificarea faptului că un anumit cuvânt trebuie subliniat sau că o imagine trebuie introdusă, până la scripturi sofisticate, hărți de imagini și formulare.

Applet Java

Limbajul Java a cunoscut o răspândire foarte mare datorită faptului că un program Java poate fi încorporat într-o pagină web, putând fi executat ori de câte ori pagina respectivăeste vizitată cu ajutorul unui program de navigare. O pagină web este un fișier care conține două tipuri de informații:

– text obișnuit, reprezentând partea din fișier care este afișată de către programul de navigare;

– construcții speciale numite tag-uri, care servesc la:

– controlul modului de afișare a textului, privind aspecte de genul: formatul literelor, alinierea pe orizontală sau verticală, prezentarea datelor sub formă de tabele etc.

– includerea de imagini in pagină

– realizarea de legături spre alte pagini.

Ansamblul de reguli care guvernează construirea și utilizarea tag-urilor se numește HyperText Markup Language — HTML. Pentru ca un fișier HTML să fie recunoscut de o aplicație de navigare pe Internet, el trebuie să aibă o anumită structură:

<HTML>

<HEAD>

<TITLE>

Titlul paginii

</TITLE>

</HEAD>

<BODY>

Conținulul propriu-zis al paginii

</BODY>

<HTML>

Limbajul HTML este un instrument de organizare a informației astfel încât aceasta să poată fi accesată și prezentată într-un mod util și plăcut pentru utilizatori. Una dintre limitările HTML-ului constă în caracterul său pasiv deoarece nu poate fi folosit pentru a crea pagini de Internet interactive. Această limitare este rezolvată cu ajutorul applet-urilor Java. Un applet este un program Java compilat (adică un fișier cu extensia .class) al cărui nume este referit într-o pagină web. Când pagina respectivă este încărcatăîntr-un browser, programul va fi și el încărcat și lansat în execuție. Un asemenea program va fi capabil, pe lângă simpla afișare de informații, să citească date și să le prelucreze. Este important de reținut faptul că un applet nu poate fi lansat în execuție de sine stătător, ci doar prin intermediul browser-elor compatibile Java.

Un applet utilizează date din pachetul java.applet, care realizează controlul execuției, precum și al comunicării dintre un applet și contextul său. Pe lângă acestea, applet-ul trebuie să conțină elemente de interfață grafică pentru dialogul cu utilizatorul (din pachetul java.awt.).

Ex:

package interfata;

import javax.swing.JApplet;

public class Interfata extends JApplet

{……

private void createGUI() {

setSize(new Dimension(450, 450));

JPanel mainPanel = new JPanel();

getContentPane().add(mainPanel);

final JTextField fileName = new JTextField();

fileName.setPreferredSize(new Dimension(250, 20));

mainPanel.add(fileName);

JButton buton = new JButton( "…" );

mainPanel.add(buton);

}

}

Pentru a lansa în execuție un applet se parcurg următorii pași:

se compilează applet-ul obținând un fișier .class (în cazul prezentat, numeInterfata.class);

se inserează o referință la acest fișier în pagina web în care se dorește încorporat applet-ul folosind secvența:

<APPLET CODE =”nume_fisier.class” WIDTH=dim_w HEIGHT=dim_h> </APPLET>

unde dim_w și dim_h sunt numere întregi care reprezintă lungimea, respectiv lățimea, exprimate în număr de pixeli, ale unui dreptunghi pe ecran, considerat fereastră pentru applet. În interiorul acestui dreptunghi vor fi încadrate toate afișările applet-ului;

se încarcă pagina web într-un browser compatibil Java

Pentru exemplul nostru poate fi folosit următorul program HTML:

<HTML>

<HEAD>

<TITLE>

Interfata

</TITLE>

</HEAD>

<BODY>

……

<B> Procesare de imagine</B><BR><BR>

<APPLET CODE = “Interfata.class” WIDTH=600 WEIGHT=500></APPLET>

……

</BODY>

<HTML

Fișierul .class trebuie să se afle în același director cu fișierul HTML, altfel nu este suficient să se scrie doar numele său la atributul CODE. Clasa principală a unui applet trebuie neapărat să extindă clasa predefinită Applet.

Metode de procesare a imaginilor

In acest proiect “Indexarea bazelor de date multimedia” un rol important il are limbajulde programarea Java. Dupa cum se va observa accesul direct la interfata se face prin intermediul applet-ului construit in Java, vazut ca o interfata ce permite accesul la structura codului, iar accesul la baza de date se realizeaza prin intermediul pachetului JDBC oferit ca suport de limbajul Java. Nu doar atat, Java ne permite crearea de metode intr-un mod detaliat si placut.

Metodele sunt partea cea mai importanta a oricarui limbaj de programare orientat obiect deoarece ele definesc fiecare actiune indeplinita de un obiect .Clasele si obiectele ofera un cadru de lucru . Variabilele de instanta si de clasa ofera o modalitate de a defini ceea ce reprezinta aceste clase si obiecte . Doar metodele pot defini comportamentul unui obiect – lucrurile pe care este capabil sa le realizeze sau modul cum interactioneaza cu alte clase sau obiecte .

Metode globale

Ex1: Calulul MedieiRGB

package caracteristici_globale;

public class MetodaRGB {

public static float MediaRGB(int[][][] pixels, float[] valori) {

float Media = 0;

int nrpixeli=0;

float M= 0;

for (int k = 0; k < 3; k++) {

for (int i = 0; i < pixels.length; i++) {

for (int j = 0; j < pixels[i].length; j++) {

Media +=pixels[i][j][k];

nrpixeli +=1;

}

}

}

M = Media/nrpixeli;

System.out.println(M);

return M;

}

}

Metode bazate pe matricea de coocurenta

Matricea de coocurenta ne este necesara pentru calulul caracteristicilor globale, cum ar fi contrastul, omogenitatea, directivitatea, granularitatea. Prin apelarea acestei metode “Mcoo” putem sa construim metodele de calul pentru caractristicile mai sus mantionate, ale unei imagini.

Ex2: Calculul matricei de coocurenta

package matricea_de_coocurenta;

public class Matricea_Coocurenta {

public static int [][] Mcoo(int[][][] pixels,int x, int y, float[] valori) {

int [][] ImgGrey = new int [pixels.length][];

int[][] Mcoo = new int [255][255];

//conversie grey

for (int i = 0; i < pixels.length; i++) {

ImgGrey[i]=new int [pixels[i].length];

for (int j = 0; j < pixels[i].length; j++) {

ImgGrey[i][j] =(int) (0.30*pixels[i][j][0]+0.59*pixels[i][j][1]+0.11*pixels[i][j][2]);

}

}

//media ptr imag grey

for (int i = 0; i < pixels.length-x; i++) {

for (int j = 0; j < pixels[i].length-y; j++) {

Mcoo[ImgGrey[i][j]][ImgGrey[i+x][i+y]]+=1;

}

}

return Mcoo;

}

Filtre Gabor

Comunicarea cu bazele de date

MySQL este un sistem de gestiune a bazelor de date relaționale foarte rapid și robust. O bază de date permite utilizatorului să stocheze, să caute, să sorteze și să regăsească datele în mod eficient.

In baza de date MySQL se vor regasi valorile generate de metodele construite in Java.

Structura bazei de date

JDBC

JDBC este o interfata de programare a aplicatiilor pentru executia de interogari SQL si este compus dintr-o serie de clase si interfete scrise in Java.

Driverele JDBC pot fi, în functie de functionalitati, de doua feluri:

– pe partea de client ;

– mixte, atât pe partea de client cât si pe

cea de server.

JDBC ofera un standard pentru dezvoltarea de aplicatii ce folosesc baze de date. Folosind JDBC se pot trimite foarte usor interogari SQL catre un sistem de gestiune al bazelor de date virtual in sensul ca nu este necesara scrierea unui program Java care sa acceseze o baza de date MySQL si a unui alt program pentru a accesa o baza de date Oracle.

Se poate scrie un singur program Java folosind JDBC care se poata trimite interogari SQL catre un anumit sistem de gestiune al bazei de date (SGBD).

Cu ajutorul JDBC putem face posibile urmatoarele actiuni:

Stabilirea unei conexiuni la aceasta baza de date

Trimiterea unor interogari SQL catre baza de date

Procesarea rezultatelor

Stabilirea conexiunii se face un felul urmator:

//stabilirea conexiuni cu o baza de date MySQL

import java.sql.*;

class JdbcInterfata {

public static void main (String[] args) {

try

{

// Step 1: Load the JDBC driver.

Class.forName("com.imaginary.sql.msql.MsqlDriver");

// Step 2: Establish the connection to the database.

String url = "jdbc:msql://www.myserver.com:1114/contact_mgr";

Connection conn = DriverManager.getConnection(url,"user1","password");

}

catch (Exception e)

{

System.err.println("Got an exception! ");

System.err.println(e.getMessage());

}

}

}

Concluzii

Procesarea imaginilor consta din utilizarea informatiilor bidimensionale sau tridimensionale de la un captor vizual, utilizând tratari numerice, cu ajutorul calculatoarelor în procesul de analiza.

Patru factori au influentat în mod decisiv dezvoltarea unor sisteme de analiza a imaginilor de cost redus:

-larga disponibilitate a unor sisteme de calcul relativ ieftine (compatibile IBM PC sau Macintosh) cu posibilitati de calcul si memorare ridicate precum si cu posibilitati de interfatare la dispozitive de stocare a imaginilor de tip frame-grabber sau placi multimedia

-dezvoltarea unor circuite integrate care permit o conversie a semnalelor video de înalta calitate si la o rata de transfer ridicata

-cresterea calitatii dispozitivelor de achizitie de imagini combinata cu reducea preturilor de vânzare si aparitia în ultima vreme a camerelor digitale la preturi accesibile

-disponibilitatea atât hardware, cât si software pentru calculatoare compatibile IBM PC sau Macintosh, a unor placi de achizitie de imagini precum si a unor programe aplicative sau biblioteci de functii (API) la un pret din ce în ce mai redus si cu posibilitati de calcul din ce în ce mai mari.

Primul instrument care s-a impus și pe baza căruia se construiesc în prezent documentele multimedia este limbajul HTML. Acesta s-a dezvoltat treptat, deoarece îi lipseau posibilitățile de a descrie publicații electronice profesionale.

Limbajul Java este o simplificare a limbajelor orientate pe obiecte, de fapt a C++ -ului. Java păstrează proprietățile acestora, fiind flexibil, simplu, puternic, independent de platforma hardware pe care rulează.

De retinut ca  una dinte caracteristicile Java este si aceea ca ofera un suport foarte larg pentru prezentarea informatiei grafice. Pe langa faptul ca furnizeaza mijloace simple de afisare a imaginilor statice si de construire a acestora, Java permite manipularea si animarea imaginilor intr-un mod unic pentru contextul web. In calculator, culorile sunt reprezentate prin combinarea culorilor de baza: rosu, verde si albastru. Acest sistem este cunoscut ca RGB (Red Green Blue) si este suportat complet in Java.

Prelucrarea imaginilor are ca obiectiv general facilitate interpretarii informatiilor continute in imagini. In functie de aplicatia concreta interpretarea poate fi realizata de om sau de un sistem de calcul.

Descrierea bazata pe continut a imaginii se realizeaza în principal prin recunoasterea si interpretarea unor caracteristici esentiale ale tipului de mediu, cum ar fi: culoarea, textura, forma, locatia spatiala, regiunile de interes, caracteristicile faciale, cadrele cheie, detectarea modificarilor de scena. Recunoasterea automata a caracteristicilor importante ale unui mediu necesita un algoritm corespunzator, ale caror criterii de optimizare sunt atât micsorarea costurilor, dar si asigurarea unei indexari consistente.

Indexarea este o facilitate frecvent folosită pentru afișarea datelor într-o anumită ordine, dar și pentru un acces rapid la date. În plus, indexarea este utilă și pentru crearea unor relații temporare între tabele.

In sensul larg, prelucrarea imaginilor include in porblematica abordata si realizarea unor sisteme inteligente de vedere artificiala, capabile sa recunoasca forme si sa ofere o interpretare a scenei captate de senzori de imagine.

Analiza imaginii presupune efectuarea unor masuratori ale parametrilor obiectului studiat si stabilirea unei descrieri a acestuia. In situatia in care procedura are un nivel avansat de prelucrare masuratorile se stocheaza sau se transmit ele fiind ulterior folosite de operatorul uman pentru interpretare.

In cazul procedurilor de recunoastere a formei si interpretare, parametrii obiectului analizat se asambleaza intr-un model mathematic. Prelucrarea efectiva a imaginilor se face pe un calculator PC, o statie grafica sau un echipament specializat. In general, echipamente specializate se folosesc pentru aplicatii in explorare, la care metodele de prelucrare au fost dezvlotate si optimizate, astfel incat a fost posibila stabilirea cerintelor hardware. In ultimul timp, au devenit disponibile comercial valoroase pachete software dedicate prelucrarii de imaginilor. Acestea contin numerosi algoritmi de uz general si constituie un excellent punct de plecare in rezolvarea aplicatiilor

Algoritmii bazati pe continut desi împart câteva trasaturi comune, au fiecare un aspect propriu dependent de mediul tratat. Recunoasterea bazata pe continut, complet automatizata este departe de a se realiza. Tendinta actuala care ar furniza rezultate mai bune ar fi combinarea metodelor bazate pe text cu cele bazate pe continut pentru descrierea imaginii si a miscarii

Alegerea unui model de date fundamental permite automatizarea proceselor în sistemele

multimedia, folosind diferite categorii de algoritmi. Se poate constata ca acesti algoritmi sunt

în principal recursivi, datorita structurii arborescente oferite de catre modele si se bazeaza

pe continut, pe structura sau pe context. Luarea în considerare a contextului în procesele de

cautare a informatiei multimedia a determinat necesitatea ca algoritmii de regasire bazati pe

continut sa fie însotiti si de procese de navigare.

Datorita complexitatii naturii datelor multimedia, algoritmii necesari analizei mediilor se

aplica pe mai multe niveluri corespunzatoare gradelor de întelegere a informatiei. Acestea

determina de asemenea mai multe niveluri de indexare care se vor folosi apoi în procesul de

regasire.

Stocarea datelor multimedia pe suporturi standard; această etapă prezintă probleme de reprezentare și compresie/decompresie. Tendința în prezent este de arhivare a informațiilor astfel încât să se reducă dimensiunea zonei tampon în timpul operațiilor de intrare/ieșire. O modalitate de a elimina aceste probleme este folosirea standardelor ca JPEG sau MPEG; pentru bitmap-uri există BLOB (Binary Large Object) care facilitează stocarea și regăsirea datelor. 

Regăsirea informațiilor este o problemă mai ales în cazul imaginilor dinamice și al segmentelor audio și video, deoarece de multe ori acestea conțin informațiile relevante. Pentru bazele de date regăsirea se face cu ajutorul limbajului de interogare (SQL) și a structurilor indexate.

Problemele care apar se datorează în primul rând navigatoarelor (foarte diferite) cu care se lucrează, deoarece fiecare interpretează în mod diferit imaginile, în funcție de platforma pe care rulează. În al doilea rând, există o limitare fizică a driverelor cu care se lucrează pentru regăsirea acestor tipuri de informații; în multe cazuri informațiile nu pot fi accesate, navigatorul anunțând printr-un mesaj soft-ul necesar.

In concluzie prin bazele de date multimedia ne sunt prezentate metode de accesare a informațiilor într-o bază de date prin intermediul mai multor tehnici de indexare și de grupare a informațiilor. Scopul acestora este de a crește performanțele de căutare ale obiectelor înregistrate. Tehnicile prezentate folosesc sisteme uni sau multi-cheie pentru indexare, având unul sau mai multe atribute folosite pentru căutare.

Bibliografie

Bibliografie

[] Stonebraker M. – Object-Relational DBMSs: The Next Great Wave, San Francisco, Ed. Morgan Kaufmann Publisher, 1996.

[] Egenhofer M. J. – Extending SQL for graphical display, Cartography and Geographic Information System, 1991.

[] Krishnan D., Kunii T. L. – A visual database interfase for CAD aplications, Visual database system, Ed. IFIP, Amsterdam, 1992.

[] Wu J. K., Nrasimhalu A. D. – Identifying faces using multiple retrievals, IEEE Multimedia, No. 1, 1994.

[] Gupta E. A., Weymouth T. E., Jain R – Semantic queries with picture: The VIMSYS model, Proceedings of the seventeenth international conference on VLDB, Barcelonam Spain, 1991.

[] Rabitti F., Stancev P. – GRIM-DBMS: A graphical image database management system, Visual DataBase Systems, Ed. Elsevier, New York, 1989 .

[] Hua K. A., Vu K., Oh J. H. – SamMatch: A Flexible and Efficient Sampling-Based Image Retrieval Technique for Large Image Databases, Proceeding of The 7-th ACM International Multimedia Conference, Orlando, SUA, 30 october – 5 November, pp. 225-234, 1999.

[] Aslandogan Y. A., Yu T. C. – Multiple evidence combination in image retrieval: Diogenes searches for people on the WEB, SIGIR 2000, Proceedings of the 23 rd Annual International ACM SIGIR Conference on Research an Development in Information Retrieval, Athens, Greece, pp. 88-95, 24-28 July 2000.

[] Nastar C., Mitschke M., Meilhac C., Boujemaa N. – Surfimage: a Flexible Content-Based Image Retrieval System, Proceeding of The 6-th ACM International Multimedia Conference, Bristol, England, 12-16 September, pp. 339-344, 1998.

[] Dimitrova N., Chen Y., Nikolovska L. – Visual Associations in DejaVideo, ACCV 2000 – Proceedings of the Fourth Asian Conference on Computer Vision, Taipei, Taiwan, pp. 353-361, 8-11 January 2000.

[] Porkaew K., Chakrabarti K. – Query Refinement for Multimedia Similarity Retrieval in MARS, Proceeding of The 7-th ACM International Multimedia Conference, Orlando, SUA, 30 october – 5 November, pp. 235-242, 1999.

[] Hua K. A., Cai Y., Sheu S. – Patching: A Multicast Technique for True Video-on-Demand Services, Proceeding of The 6-th ACM International Multimedia Conference, , 12-16 September, pp. 191-200, 1998.

[] Griwodz C., Merkel O., Dittmann J., Steinmetz R. – Protecting VoD The Easier Way, Proceeding of The 6-th ACM International Multimedia Conference, Bristol, England, 12-16 September, pp. 21-28, 1998.

[] Subrahmanian V. S., Jajodia S. – Multimedia Database System, Ed. Springer, Berlin 1996.

[] Marcus S., Subrahmanian V. S. – Foundations of MMDS Systems, Multimedia Database System, pp. 3-31, Ed. Springer, Berlin 1996.

[] Bohm K., Rakow T. C. – Metadata for Multimedia Documents, SIGMOD Record, Vol 23, No. 4, pp. 21-26, dec. 1994.

[] Jain R., Hampapur A. – Metadata in Video Databases, SIGMOD Record, Vol 23, No. 4, pp. 27-33, dec. 1994.

[] Little T. D. C.,Ghafoor A. – Network considerations for distributed multimedia objects composition and communication, IEEE Network Magazine No. 4, pp 32-49, 1990

[] O'Neil P., O'Neil E. – Database: Principles, Programming, and Performance, Ed. Kluwer Academic Publishers, London, 2001.

[] Steinmetz R., Nahrstedt K. – Multimedia: Computing, Communications & Applications, Ed. Prentice Hall, London, 1995.

[] Abiteboul S. Hull R., Vianu V. – Fondements des Bases de Données, Ed. Vuibert, Paris 2000.

[] Bayer R., McCreight E. – Organization and maintenance of large ordered indexes, Acta Infrormatica, No. 1, pp. 173-189, 1972.

[] Held G., Stonebraker M. – B-Trees re-examined, Communications on The ACM No. 21, pp. 139-143, 1978.

[] Bayer R., Unterauer K. – Prefix B Trees, ACM Transaction on Database Systems, No. 2, pp. 11-26, 1977.

[] Khoshafian S., Baker B. – Multimedia and Imaging Databases, Ed. Morgan Kaufmann Publisher, San Francisco, California, pp. 417-421, 1996.

[] Faloutsos C. M. – Signature files, Information retrieval: Data Structures and Algoritms, Ed. Prentice-Hall, New York, 1992.

[] Cocquerez J. P., Philipp S. – Analyse d’images: filtrage e segmentation, Ed. Mason, Paris, 1995.

[] Gagalowicz A. – Vers un modele de textures, These d’Etat, Universite Pierre et Marie Curie, Paris VI, 1983.

[] Conners R.W., Harlow C.A. – Toward a structural textural analyser based on statistical methods, CGIP, 1980.

[] Parker J. R. – Algorithms for Image Processing and Computer Vision, Ed. Wiley Computer Publishing New York, 1997.

[] Conners R.W., Harlow C.A. – A theoretical comparaison of texture algorithms, IEEE Trans on PAMI, vol 2, 1980.

[] Mocofan M., Vasiu R., Alexa F. – Algoritm pentru segmentarea imaginilor folosind proprietățile texturilor, Analele Facultății de Inginerie din Hunedoara, Tomul I, Fascicola 2, Proceedings of the International Symposium, pp. 23-28, 4-5 Nov. 1999.

[] Davis L.S., Clerman M., Aggarwal J.K. – An empirical evaluation of generalized co-occurrence matrices, IEEE Trans on PAMI, vol 3, 1981.

[] Galloway M.M. – Texture analysis using gray level run lengths, CGIP 4, 172-179, 1975.

[] Ballard D., Brown C. – Computer Vision, Prentice-Hall, New York, 1992.

[] Bovik A., Clark M. – Multichannel texture analysis using localized spatial filters, IEEE Trans. Patt. Anal. Machine Intell vol. 12, 1990

[] Randen T. – Filter and Filter Bank Design for Image Texture Recognition, PHD Tesis 1997.

[] Dunn D., Higgins W. – Optimal Gabor Filers for Texture Segmentations, IEEE Transactions on Image Processing, july 1995.

[] Tuner A., Pichler O., Hosicka B. – Unsupervised texture Segmentation of Image Using Tuned Matched Gabor Filers, IEEE Transactions on Image Processing, june 1995.

[] Comer M. L., Delp E. J. – Multiresoluion Image Segmentation, Computer Vision and Image Processing, 1997.

[] Yao J., Krolak P., Steele C. – The Generalized Gabor Transform, IEEE Trans on Image Processing, vol 4, no.7, 1995.

[] Bastiaans M. – Gabor’s expansion of a signal into Gaussian elementary signals, Opt.Eng. vol. 20, no.4, 1981.

[] Wexler J., Raz S. – Discrete Gabor expansions, Signal Processing vol. 21, no. 3, 1990

Similar Posts

  • Sistemul de Achizitie Dinamic Si Licitatia Electronica

    Introducere În general termenul de achiziții publice este utilizat pentru a descrie obținerea de lucrări, servicii și produse de către autoritățile publice naționale, regionale ori locale. Normele de achiziții publice fac referire la procedurile pentru atribuirea contractelor de achiziție publică de produse, lucrării și servicii în Uniunea Europeană. Sectorul publice, utilitățile și ale instituții definite…

  • Teoria Grafurilor

    Cuprins Cap.I Introducere in teoria grafurilor……………………………………….1 Cap.II Determinarea conectivității unui graf…………………………………5 2.1 Matrice asociată unui graf………………………………………………..5 2.2 Algoritmul lui Roy-Warshall…………………………………………….7 2.3 Parcurgerea grafurilor……………………………………………………10 2.3.1 Parcurgerea grafurilor în adâncime (depth-first search)………10 2.3.2 Parcurgerea grafurilor prin cuprindere (breadth-first search) ..15 2.3.3 Aplicații in conexitate ale parcurgerii grafurilor………………17 Cap.III k-Conexitate și -Conexitate……………………………………………27 3.1 Noțiuni intoductive………………………………………………………27 3.2 Proprietăți……………………………………………………………….28 3.3…

  • Aria Suprafetei. Integrale DE Suprafata

    ARIA SUPRAFEȚEI. INTEGRALE DE SUPRAFAȚĂ CUPRINS Introducere Cap.I: Integrale curbilinii. §1.  Drum, drum rectificabil, curbă. §2.  Integrale curbilinii de primul tip. 2.1. Integrala curbilinie de primul tip. 2.2. Reducerea la o Integrală Definită Obișnuită 2.3. Proprietățile integralelor curbilinii §3. Integrale curbilinii de al doilea tip. 3.1. Integrale curbilinii de al doilea tip. 3.2. Formula de…

  • Integrarea Sistemelor Informatice

    Table of Contents 1.7. CRM (Customer Relationship Management) 1.7.1. Conceptul CRM Gartner Group defineste produsele CRM (Customer Relationship Management) ca fiind o strategie de afaceri, in care rezultatul final este optimizarea profitabilitatii, a venitului si a satisfactiei clientilor, prin definirea de segmente de clienti, dezvoltarea practicilor de multumire a clientilor si implementarea de procese orientate…

  • Studiu Privind Posibilitatea Implementarii Unui Sistem Informatic Integrat Intr Un Imm

    CAPITOLUL 1. MANAGEMENTUL MODERN AL IMM-URILOR 1.1. Caracterizarea întreprinderilor mici și mijlocii (IMM) Definiția microîntreprinderilor și a întreprinderilor mici și mijlocii este actualizată pentru a lua în considerare evoluțiile economice de după 1996 (inflația și creșterea productivității) și experiențele practice avute. IMM este acronimul pentru întreprinderi mici și mijlocii, așa cum sunt definite în legislația…