พื้นที่เก็บข้อมูลนี้ใช้เครื่องมือค้นหารูปภาพกับภาพถ่ายในเครื่องซึ่งขับเคลื่อนโดยโมเดล CLIP มีความแม่นยำอย่างน่าประหลาดใจและสามารถค้นหารูปภาพจากการสืบค้นที่ซับซ้อนได้ สำหรับข้อมูลเพิ่มเติม โปรดดูบล็อกโพสต์ของ Medium ที่นี่
ฟังก์ชั่นเพิ่มเติมในการจัดหมวดหมู่รูปภาพขึ้นอยู่กับบุคคลที่ถูกนำเสนอนั้นถูกนำไปใช้กับไลบรารี face_recognition
นอกจากนี้ยังมีฟิลเตอร์หลายตัวให้เลือก ซึ่งช่วยให้คุณสามารถค้นหารูปภาพกลุ่ม ภาพหน้าจอ ฯลฯ
ในสภาพแวดล้อมเสมือน Python 3.8+ ให้ติดตั้งจาก PIP หรือจากแหล่งที่มา:
pip install image-searcher
pip install face_recognition # Optional to enable face features
pip install flask flask_cors # Optional to enable a flask api
pip install -r dev_requirements.txt
pip install face_recognition # Optional to enable face features
pip install flask flask_cors # Optional to enable a flask api
การแก้ไขปัญหา : หากประสบปัญหาในการสร้างล้อสำหรับ dlib ในระหว่างการติดตั้ง face_recognition ตรวจสอบให้แน่ใจว่าได้ติดตั้งแพ็คเกจ python3.8-dev
(ตามลำดับ python3.x-dev
) และสร้างสภาพแวดล้อมเสมือนใหม่ตั้งแต่ต้นด้วยคำสั่งดังกล่าวเมื่อติดตั้งแล้ว
ปัจจุบันการใช้งานมีดังนี้ ขั้นแรกไลบรารีจะคำนวณการฝังรูปภาพทั้งหมดทีละภาพ และจัดเก็บไว้ในพจนานุกรมที่เลือกเพื่อใช้อ้างอิงเพิ่มเติม หากต้องการคำนวณและจัดเก็บข้อมูลเกี่ยวกับบุคคลในภาพ ให้เปิดใช้งานแฟล็ก include_faces
(โปรดทราบว่าจะทำให้กระบวนการจัดทำดัชนีช้าลงถึง 10 เท่า)
from image_searcher import Search
searcher = Search ( image_dir_path = "/home/manu/perso/ImageSearcher/data/" ,
traverse = True ,
include_faces = False )
เมื่อกระบวนการนี้เสร็จสิ้นหนึ่งครั้ง ไลบรารีจะถูกใช้ผ่าน Python ดังนี้:
from image_searcher import Search
searcher = Search ( image_dir_path = "/home/manu/perso/ImageSearcher/data/" ,
traverse = True ,
include_faces = False )
# Option 1: Pythonic API
from PIL import Image
ranked_images = searcher . rank_images ( "A photo of a bird." , n = 5 )
for image in ranked_images :
Image . open ( image . image_path ). convert ( 'RGB' ). show ()
# Option 2: Launch Flask api from code
from image_searcher . api import run
run ( searcher = searcher )
การเพิ่มแท็กที่ส่วนท้ายของข้อความค้นหา (ตัวอย่าง: A bird singing #photo
) จะกรองการค้นหาตามรายการแท็ก แท็กที่รองรับในขณะนี้คือ:
ที่จะมาคือการสนับสนุนสำหรับ:
หลังจากจัดทำดัชนีรูปภาพที่สนใจแล้ว สามารถใช้ Flask API เพื่อโหลดโมเดลหนึ่งครั้ง จากนั้นค้นหาได้อย่างมีประสิทธิภาพ
image_dir_path : /home/manu/Downloads/facebook_logs/messages/inbox/
save_path : /home/manu/
traverse : true
include_faces : true
reindex : false
n : 42
port :
host :
debug :
threaded :
from image_searcher . api import run
# Option 1: Through a config file
run ( config_path = "path_to_config_file.yml" )
# Option 2: Through an instanciated Search object
from image_searcher import Search
run ( searcher = Search ( image_dir_path = "/home/manu/perso/ImageSearcher/data/" ,
traverse = True ,
include_faces = False ))
กระบวนการ gunicorn สามารถเริ่มต้นได้ในพื้นที่ด้วย:
gunicorn " api.run_flask_gunicorn:create_app('path_to_config_file.yml') "
--name image_searcher
--bind 0.0.0.0: ${GUNICORN_PORT :- 5000}
--worker-tmp-dir /dev/shm
--workers= ${GUNICORN_WORKERS :- 2}
--threads= ${GUNICORN_THREADS :- 4}
--worker-class=gthread
--log-level=info
--log-file ' - '
--timeout 30
หมายเหตุ: ปรับพารามิเตอร์การหมดเวลา (เป็นวินาที) หากมีการจัดทำดัชนีรูปภาพใหม่จำนวนมาก/
โดยการเปิดเว็บเพจในเบราว์เซอร์ด้วยเครื่องมือค้นหาสาธิต search.html
ผ่านจุดสิ้นสุด API ออนไลน์: http://127.0.0.1:5000/get_best_images?q=a+photo+of+a+bird
ในหลาม:
import requests
import json
import urllib . parse
query = "a photo of a bird"
r = requests . get ( f"http://127.0.0.1:5000/get_best_images?q= { urllib . parse . quote ( query ) } " )
print ( json . loads ( r . content )[ "results" ])
การใช้เครื่องมือนี้กับรูปภาพช่วงวันหยุดหรือการเก็บรูปภาพใน Messenger และ Whatsapp จะทำให้ได้ค้นพบรูปภาพเก่าๆ อีกครั้ง และช่วยในการค้นหารูปภาพที่หายไปนานได้อย่างน่าทึ่ง
ทำการทดสอบด้วย
python -m unittest
และขุยด้วย:
pylint image_searcher
repo นี้เป็นงานระหว่างดำเนินการที่เพิ่งเริ่มต้น ตามที่เป็นอยู่ จะคำนวณประมาณ 10 ภาพต่อวินาทีในระหว่างขั้นตอนการจัดทำดัชนีเริ่มต้น จากนั้นจะคำนวณเกือบจะทันทีในระหว่างขั้นตอนการสืบค้น
ยินดีรับคำขอคุณสมบัติและการสนับสนุน การปรับปรุงอินเทอร์เฟซการค้นหาเว็บจะได้รับการชื่นชมอย่างมาก!
ลดความซับซ้อนและความแข็งแกร่งของอินสแตนซ์คลาส Search:
ความเร็ว:
คุณสมบัติ:
การฝังไฟล์:
ส่วนหน้า:
การปรับใช้: