VIAME هو تطبيق رؤية حاسوبية مصمم للذكاء الاصطناعي للقيام بذلك بنفسك بما في ذلك اكتشاف الكائنات وتتبع الكائنات والتعليقات التوضيحية للصور/الفيديو والبحث عن الصور/الفيديو وفسيفساء الصور وتحسين الصور وقياس الحجم ومعالجة بيانات الكاميرات المتعددة وتوليد النماذج السريعة وأدوات لتقييم الخوارزميات المختلفة. كان VIAME يستهدف في الأصل تحليلات الأنواع البحرية، ويحتوي الآن على العديد من الخوارزميات والمكتبات الشائعة، وهو مفيد أيضًا كمجموعة أدوات عامة لرؤية الكمبيوتر. يحتوي على عدد من الأدوات المستقلة لإنجاز ما سبق، وإطار عمل لخط أنابيب يمكنه ربط عقد C/C++، وpython، وmatlab معًا بطريقة متعددة الخيوط، وخوارزميات متعددة ترتكز على البنية التحتية لخط الأنابيب. وأخيرًا، تم دمج جزء من الخوارزميات في كل من واجهات مستخدم سطح المكتب والويب لعمليات النشر في أنواع مختلفة من البيئات، مع أرشيف مفتوح للتعليقات التوضيحية ومثال لمنصة الويب المتاحة على viame.kitware.com.
يعد دليل البدء السريع للمستخدم ومقاطع الفيديو التعليمية ودليل المطور أكثر شمولاً، ولكن يتم أيضًا إدراج إدخالات محددة أدناه مقسمة حسب الوظائف الفردية:
نظرة عامة على الوثائق <> التثبيت <> البناء <> جميع الأمثلة <> واجهة DIVE <> واجهة العرض <> البحث وإنشاء النماذج السريعة <> واجهة سطر الأوامر الخاصة بكاشف الكائنات <> واجهة سطر الأوامر لتعقب الكائنات <> واجهة سطر الأوامر لتدريب الكاشف <> تقييم أجهزة الكشف <> الاكتشاف تنسيقات الملفات <> المعايرة وتحسين الصورة <> التسجيل والفسيفساء <> قياس الاستريو وخرائط العمق <> نظرة عامة على خطوط الأنابيب <> معلومات الفئة الأساسية وخطوط الأنابيب <> تكامل المكونات الإضافية <> أمثلة لقوالب المكونات الإضافية <> تضمين الخوارزميات في لغة C++
للحصول على دليل التثبيت الكامل ووصف النكهات المختلفة لـ VIAME، راجع دليل البدء السريع أعلاه. يتم توفير إصدار سطح المكتب الكامل كملف .msi أو .zip أو .tar. وبدلاً من ذلك، تتوفر التعليقات التوضيحية المستقلة (بدون أي خوارزميات معالجة) عبر أدوات التثبيت الأصغر حجمًا (انظر DIVE المستقلة أدناه). وأخيرًا، تتوفر ملفات الإرساء لكل من VIAME Desktop والويب (أدناه). بالنسبة لعمليات التثبيت الكاملة لسطح المكتب، قم باستخراج الثنائيات ووضعها في دليل من اختيارك، على سبيل المثال /opt/noaa/viame على Linux أو C:Program FilesVIAME على Windows. إذا كنت تستخدم حزمًا تم إنشاؤها بدعم GPU، فتأكد من تثبيت برامج تشغيل فيديو كافية، الإصدار 465.19 أو أعلى. تعتمد أفضل طريقة لتثبيت برامج التشغيل على نظام التشغيل لديك. هذا غير مطلوب في حالة استخدام التعليقات التوضيحية اليدوية (أو مصنفات الإطارات فقط). تعتبر الثنائيات كبيرة جدًا، من حيث مساحة القرص، نظرًا لتضمين ملفات وبرامج نماذج افتراضية متعددة، ولكن إذا كنت تقوم فقط ببناء الميزات المطلوبة من المصدر (على سبيل المثال للتطبيقات المضمنة)، فهي أصغر بكثير.
متطلبات التثبيت:
توصيات التثبيت:
ثنائيات سطح المكتب الكاملة لنظام التشغيل Windows:
ثنائيات سطح المكتب الكاملة لنظام التشغيل Linux:
تطبيقات الويب :
الحزم الإضافية:
صور Docker متاحة على: https://hub.docker.com. للحصول على حاوية افتراضية تحتوي على خوارزميات أساسية فقط، ويمكن تشغيلها عبر سطر الأوامر، راجع:
kitware/viame:gpu-algorithms-latest
هذه الصورة بدون رأس (أي أنها لا تحتوي على واجهة مستخدم رسومية) وتحتوي على تثبيت VIAME لسطح المكتب (وليس الويب) في المجلد /opt/noaa/viame. للحصول على روابط إلى حاويات إرساء VIAME-Web، راجع القسم أعلاه في وثائق التثبيت. لا يتم تضمين معظم النماذج الإضافية في المثيل ولكن يمكن تنزيلها عبر تشغيل البرنامج النصي download_viame_addons.sh في مجلد bin.
هذه التعليمات مخصصة للمطورين أو المهتمين ببناء أحدث إصدار فرعي. يجب على أي شخص مهتم بتشغيل البرنامج كما هو وعدم تعديله أن يستخدم أدوات التثبيت المدرجة في القسم السابق، دون الحاجة إلى إنشاء البرنامج. يمكن العثور على المزيد من تعليمات البناء المتعمقة هنا، ولكن يمكن إنشاء البرنامج إما كبرنامج فائق الجودة، والذي يبني معظم تبعياته جنبًا إلى جنب مع نفسه، أو كبرنامج مستقل. يتطلب إنشاء VIAME، على الأقل، Git وCMake ومترجم C++. يوصى أيضًا بتثبيت Python و CUDA. في حالة استخدام CUDA، يُفضل الإصدار 11.7 أو 11.6، مع CUDNN 8. قد تعمل أو لا تعمل إصدارات CUDA أو CUDNN الأخرى. بالنسبة لتوزيعات بايثون، يلزم وجود Python3.6 أو أعلى على الأقل، إلى جانب تثبيت النقطة.
للبناء على سطر الأوامر في Linux، استخدم الأوامر التالية، مع استبدال [دليل المصدر] و[دليل البناء] فقط بالمواقع التي تختارها. على الرغم من أن هذه المجلدات يمكن أن تكون نفسها، إلا أنه من الممارسات الجيدة أن يكون لديك مجلد "src" ثم دليل "build" منفصل بجانبه:
git clone https://github.com/VIAME/VIAME.git [source-directory]
cd [source-directory] && git submodule update --init --recursive
بعد ذلك، قم بإنشاء دليل إنشاء وتشغيل الأمر cmake
التالي (أو بدلاً من ذلك، استخدم واجهة المستخدم الرسومية cmake إذا كنت لا تستخدم واجهة سطر الأوامر):
mkdir [build-directory] && cd [build-directory]
cmake -DCMAKE_BUILD_TYPE:STRING=Release [source-directory]
بمجرد اكتمال أمر cmake
، يمكنك تكوين أي علامات بناء تريدها باستخدام "ccmake" أو واجهة المستخدم الرسومية cmake، ثم البناء باستخدام الأمر التالي على Linux:
make -j8
أو بدلاً من ذلك عن طريق إنشائه في Visual Studio أو المترجم الذي تختاره على Windows. في نظام التشغيل Linux، يخبر "-j8" البنية بتشغيل مؤشرات ترابط متعددة باستخدام 8 سلاسل رسائل، وهذا مفيد لبناء أسرع على الرغم من أنه إذا حصلت على خطأ فقد يكون من الصعب رؤيته، وفي هذه الحالة قد يكون تشغيل "make" فقط أمرًا صعبًا. أكثر فائدة. بالنسبة لنظام التشغيل Windows، يعد VS2019 حاليًا هو المترجم الأكثر اختبارًا.
هناك العديد من الوسائط الاختيارية التي يمكن من خلالها التحكم في المكونات الإضافية التي سيتم إنشاؤها، مثل تلك المذكورة أدناه. إذا تم تمكين مكون إضافي يعتمد على تبعية أخرى مثل OpenCV)، فسيتم فرض علامة التبعية على التشغيل. إذا لم تكن متأكدًا مما يجب تشغيله، فمن الأفضل ترك إشارات التمكين والتعطيل الافتراضية التي ستنشئ معظم الوظائف (وإن لم يكن كلها). هذه هي المكونات الأساسية التي نوصي بتركها قيد التشغيل:
علَم | وصف |
---|---|
VIAME_ENABLE_OPENCV | يبني عمليات OpenCV وعمليات OpenCV الأساسية (أجهزة قراءة الفيديو وواجهات المستخدم الرسومية البسيطة) |
VIAME_ENABLE_VXL | يبني عمليات VXL وVXL الأساسية (قارئات الفيديو ومرشحات الصور) |
VIAME_ENABLE_PYTHON | تشغيل الدعم لاستخدام عمليات بايثون (خوارزميات متعددة) |
VIAME_ENABLE_PYTORCH | تثبيت جميع عمليات الـ pytorch (الكاشفات والمتتبعات والمصنفات) |
وعدد من العلامات التي تتحكم في أدوات النظام المساعدة والتحسينات التي سيتم إنشاؤها، على سبيل المثال:
علَم | وصف |
---|---|
VIAME_ENABLE_CUDA | تمكين تحسينات CUDA (GPU) عبر جميع الحزم |
VIAME_ENABLE_CUNN | لتمكين تحسينات CUDNN (GPU) عبر جميع العمليات |
VIAME_ENABLE_DIVE | تمكين DIVE GUI (التعليق التوضيحي والتدريب على تسلسلات متعددة) |
VIAME_ENABLE_VIVIA | إنشاء واجهات VIVIA GUI (العرض والبحث عن التعليقات التوضيحية والبحث عن الفيديو) |
VIAME_ENABLE_DOCS | إنشاء وثائق على مستوى فئة Doxygen (وضع شجرة التثبيت) |
VIAME_BUILD_DEPENDENCIES | بناء VIAME كبناء فائق، وبناء جميع التبعيات (افتراضي) |
VIAME_INSTALL_EXAMPLES | تثبيت أمثلة للوحدات المذكورة أعلاه في شجرة التثبيت/الأمثلة |
VIAME_DOWNLOAD_MODELS | تنزيل النماذج المدربة مسبقًا لاستخدامها مع الأمثلة والواجهات |
وأخيرًا، عدد من العلامات التي تبني خوارزميات أو واجهات ذات وظائف أكثر تخصصًا:
علَم | وصف |
---|---|
VIAME_ENABLE_TENSORFLOW | يبني البرنامج المساعد للكشف عن كائن TensorFlow |
VIAME_ENABLE_DARKNET | يبني البرنامج المساعد للكشف عن الكائنات Darknet (YOLO). |
VIAME_ENABLE_TENSORRT | يبني البرنامج المساعد للكشف عن كائن TensorRT |
VIAME_ENABLE_BURNOUT | يبني البرنامج المساعد لمصنف البكسل القائم على Burn-Out |
VIAME_ENABLE_SMQTK | يبني ملحقات SMQTK لدعم فهرسة الصور/الفيديو والبحث فيها |
VIAME_ENABLE_KWANT | يبني أدوات الكشف عن KWANT وتتبع التقييم (تسجيل النقاط). |
VIAME_ENABLE_LEARN | يبني أساليب إضافية للتعلم المنخفض |
VIAME_ENABLE_SCALLOP_TK | يبني البرنامج المساعد للكشف عن الكائنات على أساس Scallop-TK |
VIAME_ENABLE_SEAL | يبني ختم واجهة المستخدم الرسومية متعددة الوسائط |
VIAME_ENABLE_ITK | يبني تسجيل الصور عبر طريقة ITK |
VIAME_ENABLE_UW_CLASSIFIER | يبني البرنامج المساعد لمصنف الأسماك UW |
VIAME_ENABLE_MATLAB | تشغيل الدعم وتثبيت كافة عمليات MATLAB |
VIAME_ENABLE_LANL | يبني كاشف الإسكالوب الإضافي (Matlab). |
فيامي ├── cmake # ملفات التكوين CMake للحزم الفرعية ├── docs # ملفات التوثيق والدليل (التجميع المسبق) ├── التكوينات # جميع ملفات ونماذج التكوين القابلة للتشغيل بواسطة النظام │ ├── خطوط الأنابيب # جميع تكوينات خطوط الأنابيب المعالجة │ │ └── النماذج # جميع النماذج، التي يتم تنزيلها فقط بناءً على العلامات │ ├── prj-linux # ملفات مشروع Linux الافتراضية │ └── prj-windows # ملفات مشروع windows الافتراضية ├── أمثلة # جميع الأمثلة القابلة للتشغيل وأمثلة البرامج التعليمية ├── الباقات # المشاريع الخارجية التي يستخدمها النظام │ ├── kwiver # معالجة البنية التحتية الخلفية │ ├── fletch # منشئ التبعية للأشياء التي لا تتغير كثيرًا │ ├── kwant # أدوات تقييم الكاشف والتسجيل │ ├── vivia # واجهات المستخدم الرسومية الأساسية لسطح المكتب (الإصدار 1.0) │ └── ... # حزم أخرى متنوعة (عادةً للخوارزميات) ├── الإضافات # خوارزميات أو أغلفة متكاملة حول المشاريع الخارجية │ └── ... # ملحقات إضافية متنوعة (كاشفات وخرائط عمق ومرشحات وما إلى ذلك) ├── الأدوات # أدوات أو نصوص برمجية مستقلة، غالبًا ما تعتمد على ما سبق └── README.md # صفحة مقدمة المشروع التي تقرأها └── RELEASE_NOTES.md # قائمة بآخر التحديثات في النظام لكل إصدار
إذا كان لديك بالفعل حساب VIAME وترغب في تبديل الفروع أو تحديث الكود الخاص بك، فمن المهم إعادة التشغيل:
git submodule update --init --recursive
بعد تبديل الفروع للتأكد من حصولك على التجزئة الصحيحة للحزم الفرعية داخل الإصدار. نادرًا جدًا قد تحتاج أيضًا إلى تشغيل:
git submodule sync
فقط في حالة تغيير عنوان الوحدات الفرعية. ما عليك سوى تشغيل هذا الأمر إذا ظهرت لك رسالة الخطأ "يتعذر جلب التجزئة #hashid".
تم إصدار VIAME بموجب ترخيص BSD-3.
يمكن العثور هنا على قائمة غير شاملة بالأوراق ذات الصلة المستخدمة في المشروع جنبًا إلى جنب مع المساهمين.
تم تطوير VIAME بتمويل من مصادر متعددة، مع شكر خاص لتلك المذكورة هنا.