Munculnya Internet merevolusi cara kami mengakses informasi melalui mesin pencari yang kuat seperti Google, Bing, dan Yandex. Dengan hanya beberapa kata kunci, kami dapat dengan cepat menemukan halaman web yang berkaitan dengan pertanyaan kami. Sebagai teknologi, khususnya AI, kemajuan, banyak mesin pencari sekarang memfasilitasi pencarian gambar online.
Berbagai teknik untuk pencarian gambar telah muncul, termasuk:
Dalam proyek ini, kami akan menggunakan jaringan saraf konvolusional pra-terlatih (CNN) untuk mengekstrak fitur berharga dari gambar. Metodologi ini, komponen kunci dari pencarian gambar berbasis konten, memberikan manfaat berikut:
Singkatnya, dalam penelitian ini kami ingin menjawab pertanyaan berikut: Apakah dua gambar serupa terkait embedding masih serupa?
Untuk proyek ini, kami telah menggunakan CIFAR-10. Ini adalah dataset yang tersedia secara bebas yang terdiri dari 60.000 gambar warna, masing -masing mengukur 32x32 piksel . Gambar -gambar ini milik 10 kategori berbeda: pesawat terbang, mobil, burung, kucing, rusa, anjing, katak, kuda, kapal, dan truk. Untuk mendapatkan embedding yang sesuai, kami menerapkan model CNN yang sudah terlatih, khususnya VGG-16 , untuk mengekstraksi fitur-fitur penting. Vektor yang dihasilkan adalah 512 dimensi . Di dalam Pinecone, kami membuat indeks bernama "gambar" dengan dimensi 512, di mana semua vektor ini akan disimpan.
Gagasan di balik proyek ini adalah untuk menemukan apakah gambar burung yang serupa misalnya memiliki embedding yang serupa. Untuk melakukannya, kami telah mengunggah 50.000 dari total 60.000 gambar yang terkait dengan indeks Pinecone. Partisi ini dibuat untuk memastikan bahwa kami memiliki gambar yang sepenuhnya baru dan berbeda dibandingkan dengan yang sudah disimpan sebagai vektor di pinus. Perhatikan juga bahwa parisi ini sudah dilakukan oleh dataset CIFAR-10 ke dalam kereta dan uji batch yang mewakili versi serial dari array gambar asli.
Picutre di bawah ini menggambarkan seluruh proses menyimpan embeddings ke indeks pinus. Dari langkah pertama membaca gambar, menerapkan jaringan saraf VGG16 pra-terlatih untuk menghasilkan embbed 512 dimensi yang kemudian ditingkatkan (yaitu disimpan) dalam indeks pinecone. 
Dalam proyek ini, kami menangani 50 ribu gambar, yang menimbulkan beberapa tantangan dalam hal kompusi terutama ketika membaca gambar, Unpickle (kami telah menurunkan versi serial dataset CIFAR-10) mereka dan mengekstraksi fitur melalui CNN. Kami mencoba memanfaatkan kekuatan komputasi parrallel saat menjalankan kode kami sehingga semuanya berjalan secepat mungkin pada beberapa core CPU melalui multithreading.
Catatan: Jika memungkinkan, jalankan proyek ini pada lingkungan bertenaga GPU untuk perhitungan yang lebih cepat.
Buat akun Pinecone secara gratis di sini.
Dapatkan kunci API dan lingkungan yang terkait dengan akun Pinecone Anda
Klone repo ini (untuk bantuan lihat tutorial ini).
Buat lingkungan virtual di folder proyek (untuk bantuan lihat tutorial ini).
Jalankan perintah berikut untuk menginstal paket yang diperlukan.
pip3 install -r requirements.txt
pip install -r requirements.txt
python insert_data.py -key <API_KEY> -env <ENV> -metric <METRIC>
Ganti <vidt> dan <Api_key> dengan nilai yang Anda dapatkan dari akun Pinecone Anda. Tunggu skrip dilakukan. 7. Luncurkan aplikasi menggunakan yang berikut.
streamlit run app.py -- -key <API_KEY> -env <ENV>
Setelah semuanya selesai, Anda harus melihat sesuatu seperti ini:
