Astăzi (18 Mai 2017) am avut privilegiul de a participa la conferința internațională StudMathIT, organizată de Universitatea „Aurel Vlaicu” din Arad. Acest eveniment reunește studenți, cercetători și profesori din domeniul științelor exacte, oferind o platformă excelentă pentru a discuta și prezenta cele mai recente inovații în domeniul tehnologiei și matematicii. Conferința este sprijinită parțial de Ministerul Educației și Cercetării din România, ceea ce îi conferă o importanță deosebită în comunitatea academică.
Proiectul prezentat: Yeo.ro – Platforma de shopping inteligent
Am avut ocazia să prezint un proiect deosebit pe care l-am dezvoltat, intitulat Yeo.ro, o platformă de shopping inteligent. Scopul acestui proiect este de a îmbunătăți experiența de cumpărare online prin implementarea unei funcționalități inovatoare: căutarea produselor folosind imagini.
Coordonator științific: Prof. Univ. Dr. Bucerzan Dominic
Abstract: Lucrarea abordează subiectul hashing-ului perceptual de imagini și explică beneficiile implementării acestei tehnici pentru o platformă de shopping. Aceasta include implementarea practică, problemele întâmpinate și soluțiile actuale. Lucrarea oferă o soluție pentru compararea rapidă și găsirea hash-urilor de imagine în cazul seturilor mari de date. Conceptul este implementat într-o platformă de shopping reală, demonstrând astfel utilitatea și valoarea sa.
Importanța unei soluții eficiente pentru shopping-ul online
În era digitală, timpul este esențial. Tot mai mulți oameni aleg să facă cumpărături online datorită diversității ofertei și a confortului pe care îl oferă. Cu toate acestea, alegerea unui produs a devenit o sarcină complicată din cauza numărului mare de magazine online care oferă prețuri diferite pentru aceleași produse. Pentru a răspunde acestei provocări, au fost dezvoltate platforme de comparare a prețurilor, care utilizează soluții inteligente pentru a potrivi produse similare din diferite surse.
Cu toate acestea, procesul de a găsi produsul dorit poate fi accelerat semnificativ prin utilizarea imaginilor. „O imagine face cât o mie de cuvinte” este un principiu relevant, iar extragerea informațiilor dintr-o imagine se poate realiza prin hashing-ul perceptual.
Cum funcționează hashing-ul perceptual
Pentru a implementa funcția „căutare după imagine” pe platforma noastră, am utilizat un algoritm care generează un hash hexadecimal dintr-o imagine.
Iată pașii principali ai algoritmului:
1. Reducerea dimensiunii imaginii: Dimensiunea este redusă la 8×8 pixeli, ignorând raportul de aspect. Aceasta elimină detaliile și frecvențele înalte.
2. Conversia la grayscale: Imaginea este convertită într-o versiune în tonuri de gri, lăsând 64 de valori de culoare.
3. Calcularea mediei culorilor: Se calculează media culorilor din cele 64 de valori.
4. Generarea hash-ului: Hash-ul este generat prin calcularea distanței fiecărui pixel față de culoarea medie, rezultând un hash de 64 de biți.
Pentru a compara două imagini, se calculează „distanța Hamming” între hash-uri, oferind numărul de biți diferiți. Cu cât acest număr este mai mic, cu atât imaginile sunt mai similare.
Implementarea pe Yeo.ro
Platforma noastră este capabilă să gestioneze milioane de produse. Am generat hash-uri pentru aproximativ 2.000.000 de imagini (300GB) și le-am stocat într-o bază de date MySQL. Procesul de căutare a imaginilor se desfășoară în următorii pași:
1. Navigare pe www.yeo.ro
2. Selectarea imaginii: Utilizatorii pot încărca o imagine printr-un simplu click pe pictograma „camera”.
După încărcarea imaginii, utilizatorii pot vizualiza o previzualizare cu un efect de scanare până când cererea AJAX este completă.
Odată finalizată cererea, utilizatorul este redirecționat automat către pagina de rezultate, unde sunt afișate produsele similare, împreună cu titlurile, prețurile și descrierile acestora.
Concluzii și perspective de viitor
Deși această funcționalitate este disponibilă în versiunea live a platformei, este încă în faza beta. În prezent, toate imaginile din baza noastră de date sunt imagini de stoc cu fundal alb, ceea ce limitează precizia căutărilor realizate cu fotografii capturate cu telefoanele mobile. În viitor, intenționăm să implementăm algoritmi de hashing mai complexi pentru a captura mai multe detalii din imagini.
Implementarea algoritmului de Average Hash este cea mai simplă și rapidă, dar prezintă o precizie limitată și generează unele rezultate false. Ne propunem să explorăm și alte opțiuni, cum ar fi Difference Hash (dHash) și perceptual Hash (pHash).
Pentru viitor, planificăm să introducem opțiunea de căutare prin URL-ul unui produs sau al unei fotografii, un proiect la care deja lucrăm. Timpul este prețios, iar scopul nostru este să dezvoltăm soluții care să ne economisească timpul în viitor.