vision.detectvision.detect
راجع المدخلات والمخرجات ودعم التشغيل المحدد للعقدة vision.detect.
فيديو تعليمي
04شاهد كيفية إعداد عقدة vision.detect وتشغيلها في سير عمل حقيقي ضمن LaiCai Flow.
المدخلات
5modelIdstringمطلوبliteralallClassesboolاختياريliteralclassNamesarrayاختياريliteralminScorenumberمطلوبliteralroirectمطلوبliteralالمخرجات
9data.bestobject—data.best.scorenumber—data.best.modelIdstring—data.best.classNamestring—data.best.centerpointscreenRatiodata.best.center.xnumberscreenRatiodata.best.center.ynumberscreenRatiodata.best.rectrectscreenRatiodata.itemsarray—دعم التشغيل
توافق النموذج ومتطلباته التقنية
امتداد ONNX وحده لا يضمن التوافق. يجب أن يفهم LaiCai الإدخال وموتر الإخراج وإحداثيات المربعات ودرجات الثقة وترتيب الفئات.
ملف النموذج
استخدم نموذج YOLO قياسيًا لاكتشاف الأجسام ومصدّرًا إلى ONNX. لا يمكن استيراد ملفات PyTorch بصيغة .pt أو معرفات نماذج API السحابية أو نماذج التصنيف والتقسيم والوضعية والمربعات الدوّارة مباشرةً.
.onnxtype: yoloموتر الإدخال
يلزم إدخال RGB واحد بثلاث قنوات وتنسيق NCHW وقيم float32 أو float16 مطبّعة إلى 0–1. يحافظ LaiCai على النسبة باستخدام letterbox بلون RGB 114 ويستخدم 640 × 640 للحجم الديناميكي غير المعروف.
[1, 3, H, W]float32 / float16ربط الفئات
يجب أن تبدأ معرفات الفئات من 0 وتكون متصلة وتتبع ترتيب التدريب. يجب تطابق id2label وlabel2id، وأن يطابق className التسمية تمامًا.
id2labellabel2idclassNameالحجم والسرعة
ابدأ بنموذج Nano أو Small للاكتشاف المستمر. قد تكون النماذج الأكبر أدق لكنها أبطأ وتستهلك ذاكرة أكثر. اختبر على الكمبيوتر وجهاز Android الفعليين.
n / s / m / l / xموترات الإخراج المدعومة
يجب أن يعيد النموذج موتر إخراج واحدًا فقط بأحد التخطيطات التالية. يطبّق LaiCai ترشيح الثقة وNMS على إخراج YOLO الخام.
raw_yolo_no_objectness[1, 4 + nc, N] / [1, N, 4 + nc]مربعات ودرجات فئات بلا objectness منفصل.raw_yolo_with_objectness[1, 5 + nc, N] / [1, N, 5 + nc]مربعات وobjectness ودرجات فئات.postprocessed_xyxy[1, N, 6] / [N, 6]x1 وy1 وx2 وy2 والدرجة ومعرف الفئة بعد NMS.تحقق قبل الاستيراد
- النموذج ONNX لاكتشاف الأجسام وليس .pt أو معرف API سحابي.
- له إدخال RGB NCHW واحد وإخراج مدعوم واحد.
- يستخدم float32 أو float16 وليس INT8/UINT8.
- ترتيب الفئات والتنسيق معروفان، ويُحدد outputFormat للفئة الواحدة.
- يحتوي المجلد على .onnx واحد أو يحدده modelFile في config.json.
- اختبر الإطار الحالي على الكمبيوتر ثم تحقق منه منفصلًا في Android Agent.
مثال config.json
التسميات وoutputFormat أدناه أمثلة. استبدلها بترتيب الفئات وتنسيق الموتر الحقيقيين للنموذج.
{
"id": "game-objects",
"name": "Game Objects",
"type": "yolo",
"modelFile": "model.onnx",
"outputFormat": "raw_yolo_no_objectness",
"id2label": {
"0": "ore",
"1": "tree"
},
"label2id": {
"ore": 0,
"tree": 1
}
}