การถือกำเนิดของอินเทอร์เน็ตปฏิวัติวิธีที่เราเข้าถึงข้อมูลผ่านเครื่องมือค้นหาที่มีศักยภาพเช่น Google, Bing และ Yandex ด้วยคำหลักเพียงไม่กี่คำเราสามารถค้นหาหน้าเว็บที่เกี่ยวข้องกับการสืบค้นของเราได้อย่างรวดเร็ว ในฐานะที่เป็นเทคโนโลยีโดยเฉพาะอย่างยิ่ง AI ความก้าวหน้าเครื่องมือค้นหาจำนวนมากช่วยค้นหาการค้นหาภาพออนไลน์
เทคนิคต่าง ๆ สำหรับการค้นหาภาพได้เกิดขึ้นรวมถึง:
ในโครงการนี้เราจะใช้เครือข่าย Neural Neural ที่ผ่านการฝึกอบรมมาแล้ว (CNN) เพื่อแยกคุณสมบัติที่มีค่าออกจากภาพ วิธีการนี้ซึ่งเป็นองค์ประกอบสำคัญของการค้นหาภาพที่อิงเนื้อหาให้ประโยชน์ต่อไปนี้:
โดยสรุปในการศึกษานี้เราต้องการตอบคำถามต่อไปนี้: ภาพสองภาพที่คล้ายกันที่เกี่ยวข้องกับการฝังยังคงคล้ายกันหรือไม่?
สำหรับโครงการนี้เราใช้ CIFAR-10 มันเป็นชุดข้อมูลที่มีอยู่อย่างอิสระซึ่งประกอบด้วยภาพสี 60,000 ภาพแต่ละชุดวัด 32x32 พิกเซล ภาพเหล่านี้อยู่ใน 10 หมวดหมู่ที่แตกต่างกัน: เครื่องบิน, รถยนต์, นก, แมว, กวาง, สุนัข, กบ, ม้า, เรือและรถบรรทุก เพื่อให้ได้การฝังตัวที่สอดคล้องกันเราได้ใช้โมเดล CNN ที่ผ่านการฝึกอบรมมาก่อนโดยเฉพาะ VGG-16 เพื่อแยกคุณสมบัติที่จำเป็น เวกเตอร์ที่ได้คือ 512 มิติ ภายใน Pinecone เราสร้างดัชนีชื่อ "รูปภาพ" ด้วยมิติ 512 ซึ่งจะจัดเก็บเวกเตอร์เหล่านี้ทั้งหมด
แนวคิดที่อยู่เบื้องหลังโครงการนี้คือการค้นหาว่าภาพนกที่คล้ายกันเช่นมีการฝังตัวที่คล้ายกัน ในการทำเช่นนั้นเราได้อัปโหลด 50,000 จากทั้งหมด 60,000 ภาพที่เกี่ยวข้องกับการฝังไว้ในดัชนี pinecone พาร์ติชันนี้ถูกสร้างขึ้นเพื่อให้แน่ใจว่าเรามีภาพใหม่และแตกต่างทั้งหมดเมื่อเทียบกับภาพที่เก็บไว้แล้วเป็นเวกเตอร์ใน Pinecone นอกจากนี้โปรดทราบว่าชุดข้อมูล CIFAR-10 นั้นทำไปแล้วในชุดรถไฟและชุดทดสอบที่แสดงถึงอาร์เรย์ภาพต้นฉบับรุ่นที่เป็นอนุกรม
PICUTRE ด้านล่างอธิบายกระบวนการทั้งหมดของการจัดเก็บ embeddings ไว้ในดัชนี pinecone จากขั้นตอนแรกของการอ่านภาพการใช้เครือข่ายนิวรัล VGG16 ที่ผ่านการฝึกอบรมมาก่อนเพื่อสร้าง embbedings มิติ 512 ซึ่งจะเพิ่มขึ้น (เช่นเก็บไว้) ในดัชนี pinecone 
ในโครงการนี้เรากำลังจัดการภาพ 50,000 ภาพซึ่งก่อให้เกิดความท้าทายในแง่ของการเปรียบเทียบโดยเฉพาะอย่างยิ่งเมื่ออ่านภาพ unpickle (เราได้ลดรุ่น CIFAR-10 ชุดข้อมูลอนุกรม) พวกเขาและแยกคุณสมบัติผ่าน CNN เราพยายามที่จะใช้ประโยชน์จากพลังของการคำนวณแบบขนานเมื่อเรียกใช้รหัสของเราเพื่อให้ทุกอย่างทำงานได้เร็วที่สุดเท่าที่จะทำได้ในคอร์ CPU หลายตัวผ่านมัลติเธรด
หมายเหตุ: ถ้าเป็นไปได้ให้เรียกใช้โครงการนี้ในสภาพแวดล้อมที่ขับเคลื่อนด้วย GPU เพื่อการคำนวณที่เร็วขึ้น
สร้างบัญชี Pinecone ฟรีที่นี่
รับคีย์ API และสภาพแวดล้อมที่เกี่ยวข้องกับบัญชี Pinecone ของคุณ
โคลน repo นี้ (เพื่อขอความช่วยเหลือดูบทช่วยสอนนี้)
สร้างสภาพแวดล้อมเสมือนจริงในโฟลเดอร์โครงการ (เพื่อขอความช่วยเหลือโปรดดูบทช่วยสอนนี้)
เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็คเกจที่จำเป็น
pip3 install -r requirements.txt
pip install -r requirements.txt
python insert_data.py -key <API_KEY> -env <ENV> -metric <METRIC>
แทนที่ <Env> และ <pi_key> ด้วยค่าที่คุณได้รับจากบัญชี Pinecone ของคุณ รอให้สคริปต์ทำ 7. เปิดแอพโดยใช้สิ่งต่อไปนี้
streamlit run app.py -- -key <API_KEY> -env <ENV>
เมื่อทุกอย่างเสร็จสิ้นคุณควรเห็นอะไรแบบนี้:
