แรงจูงใจหลักเบื้องหลังการสร้าง rubrix
คือการมีเครื่องมือค้นหาด้วยภาพซึ่งขับเคลื่อนโดยปัญญาประดิษฐ์โดยสมบูรณ์ โดยเชื่อมโยงแนวคิดในสาขาการประมวลผลภาษาธรรมชาติและการมองเห็นคอมพิวเตอร์ ซึ่งเป็นสิ่งที่เราเรียกว่า "การค้นหาความคล้ายคลึงแบบรวม" ปัจจุบัน rubrix
มีฟังก์ชันหลัก 2 ฟังก์ชัน:
โปรดคลิกที่นี่เพื่อทราบรายละเอียดเพิ่มเติมเกี่ยวกับสถาปัตยกรรมและวิธีการทำงาน rubrix
!
rubrix
ในการดำเนินการ คุณสามารถดูรูปภาพบางส่วนที่ rubrix
ดึงข้อมูลมาเพื่อดูตัวอย่างข้อความค้นหาได้ที่นี่
ส่วนนี้อธิบายข้อกำหนดเบื้องต้น และมีคำแนะนำในการเริ่มโครงการและดำเนินการ
ปัจจุบัน rubrix
ทำงานได้อย่างไม่มีที่ติบน Linux และสามารถตั้งค่าได้อย่างง่ายดายด้วยแพ็คเกจเบื้องต้นทั้งหมดโดยทำตามคำแนะนำเหล่านี้:
ดาวน์โหลด conda เวอร์ชันที่เหมาะสมสำหรับเครื่องของคุณ
ติดตั้งโดยการรันไฟล์ conda_install.sh
โดยใช้คำสั่ง:
$ bash conda_install.sh
เพิ่ม conda
ในโปรไฟล์ทุบตี:
$ source ~ /.bashrc
นำทางไปยัง rubrix/
(ไดเร็กทอรีระดับบนสุด) และสร้างสภาพแวดล้อมเสมือน conda ด้วยไฟล์ environment.yml
ที่รวมอยู่โดยใช้คำสั่งต่อไปนี้:
$ conda env create -f environment.yml
เปิดใช้งานสภาพแวดล้อมเสมือนด้วยคำสั่งต่อไปนี้:
$ conda activate rubrix
หากต้องการติดตั้งแพ็คเกจด้วย setuptools พิเศษ ให้ใช้คำสั่งต่อไปนี้ใน rubrix/
(ไดเร็กทอรีระดับบนสุด) ที่มีไฟล์ setup.py
:
$ pip install .
เมื่อติดตั้งข้อกำหนดเบื้องต้นแล้ว ให้ทำตามคำแนะนำเหล่านี้เพื่อสร้างโครงการ:
นำทางไปยังไดเรกทอรี rubrix/index
รันสคริปต์ทุบตี setup.sh
ด้วยคำสั่งต่อไปนี้:
$ bash setup.sh
สิ่งนี้ทำอะไร?
darknet/
ภายใน rubrix/index
เพื่อเปิดใช้งานการตรวจจับวัตถุด้วย YOLOv4assets/index.json
ซึ่งโดยพื้นฐานแล้วคือดัชนีภาพผกผันที่แมปออบเจ็กต์ทั้งหมดที่ YOLOv4 ฝึกฝนกับรูปภาพที่มีอยู่assets/imageEmbeddingLocations.json
ซึ่งจับคู่รูปภาพทั้งหมดในฐานข้อมูลกับเวกเตอร์ที่ฝังประโยคที่สร้างขึ้นสำหรับแต่ละคำอธิบายในฐานข้อมูลassets/descriptors
หมายเหตุ: สคริปต์ข้างต้นอาจใช้เวลาประมาณ 1.5 - 2 ชั่วโมงในการดำเนินการให้เสร็จสิ้น
rubrix/assets
rubrix/assets/index.json
และ rubrix/assets/imageEmbeddingLocations.json
ที่สัมพันธ์กับเครื่องท้องถิ่น ซึ่งสามารถทำได้ดังนี้:$ conda activate rubrix
>> > from rubrix . utils import fix_paths_in_index
>> > path_to_index = < absolute / path / to / rubrix / assets / index . json >
>> > path_to_emb = < absolute / path / to / rubrix / assets / imageEmbeddingLocations . json >
>> > fix_paths_in_index ( path_to_index , path_to_emb )
rubrix/rubrix/index
และรันสคริปต์ทุบตีต่อไปนี้: $ bash quick_setup.sh
เมื่อทำตามขั้นตอนเหล่านี้เสร็จแล้ว คุณควรจะสามารถใช้ rubrix
ได้
rubrix/query/query_by_text
rubrix/query/query_by_image_objects
คุณสามารถติดตามตัวอย่างการทำงานได้ที่นี่
อีกทางเลือกหนึ่งคือใช้ rubrix
เป็นแอปพลิเคชันบนเว็บเบราว์เซอร์
rubrix/rubrix/web
$ python app.py
นี่มีไว้สำหรับถ้าคุณต้องการปรับใช้ rubrix
บนเซิร์ฟเวอร์ เช่น เซิร์ฟเวอร์ Ubuntu Linux บน AWS
$ sudo docker build -t < YOUR-NAME > /rubrix .
$ sudo docker run -p 9000:80 < YOUR-NAME > /rubrix
การตั้งค่าที่เหมาะสมที่สุดสำหรับสิ่งนี้คือต้องมีการตั้งค่าพร็อกซีย้อนกลับ Apache/Nginx บนระบบโฮสต์ โดยชี้ไปที่พอร์ต 9000
ในกรณีนี้ และ Apache/Nginx ของระบบโฮสต์จะจัดการ SSL ซึ่งจะทำให้คุณสามารถปรับใช้แอปพลิเคชันซ้ำแล้วซ้ำอีกโดยไม่ต้องกังวลกับการสร้างใบรับรอง SSL ใหม่
environment.yml
เนื่องจากการใช้ conda กับสภาพแวดล้อมการใช้งานจริงทุกประเภทถือเป็นฝันร้าย การเปลี่ยนแปลงที่เกิดขึ้นจะไม่สะท้อนให้เห็นในคอนเทนเนอร์ Dockerized ไม่มีแนวทางปฏิบัติเฉพาะสำหรับการมีส่วนร่วม นอกเหนือจากหลักเกณฑ์ทั่วไปบางประการที่เราพยายามปฏิบัติตาม เช่น:
หากคุณเห็นสิ่งที่สามารถปรับปรุงได้ ให้ส่งคำขอดึง! เรายินดีเสมอที่จะดูการปรับปรุง เพื่อให้แน่ใจว่า rubrix
ในฐานะโปรเจ็กต์ เป็นเวอร์ชันที่ดีที่สุดของตัวเอง
หากคุณคิดว่าควรทำอะไรแตกต่างออกไป (หรือแตกหักง่าย) โปรดสร้างปัญหาขึ้นมา
ดูไฟล์ใบอนุญาตสำหรับรายละเอียดเพิ่มเติม