كان الدافع الرئيسي وراء بناء rubrix
هو امتلاك محرك بحث مرئي مدعوم بالكامل بالذكاء الاصطناعي، وربط المفاهيم في مجالات معالجة اللغات الطبيعية ورؤية الكمبيوتر، وهو شيء نحب أن نطلق عليه "بحث التشابه المشترك". لدى rubrix
حاليًا وظيفتان رئيسيتان:
من فضلك انقر هنا لمعرفة المزيد من التفاصيل حول البنية وكيفية عمل 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
.
قم بتشغيل البرنامج النصي bash setup.sh
باستخدام الأمر التالي:
$ bash setup.sh
ماذا يفعل هذا؟
darknet/
داخل rubrix/index
لتمكين اكتشاف الكائنات باستخدام YOLOv4.assets/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 التالي: $ 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
، كمشروع، هو أفضل نسخة من نفسه.
إذا كنت تعتقد أنه يجب القيام بشيء ما بطريقة مختلفة (أو أنه معطل تمامًا)، فيرجى إنشاء مشكلة.
راجع ملف الترخيص لمزيد من التفاصيل.