مرحبًا بك في Schema.org
هذا هو مستودع مشروع Schema.org. فهو يحتوي على جميع المخططات والأمثلة والبرامج المستخدمة لنشر schema.org. بالنسبة للموقع نفسه، يرجى مراجعة Schema.org بدلاً من ذلك.
ملاحظة: يتم استيراد الكثير من البرامج الداعمة من وحدة فرعية: "sdopythonapp"
تتم إدارة المشكلات والمقترحات هنا من قبل المتعاونين في المشروع، وخاصة المشاركين في مجموعة مجتمع W3C Schema.org. إذا كنت مهتمًا بالمشاركة، فيرجى الانضمام إلى المجموعة في W3C، وقدم نفسك وابحث عن المشكلات التي تثير اهتمامك أو قم بتقديمها هنا. إذا كنت جديدًا على Git وGitHub، فهناك مقدمة مفيدة لـ GitHub في W3C Wiki.
هناك أيضًا اختبارات تكامل مستمرة للتحقق من طلبات السحب الواردة.
يمثل الإصدار رقم 1 في GitHub نقطة دخول لتخطيط الإصدار. وينبغي أن يقدم نظرة عامة على العمل القادم، من حيث المواضيع العامة والقضايا المحددة ومعالم الإصدار. سيتم ربط الإصدار رقم 1 بنقاط الإدخال لكل إصدار، أو التنقل بين المشكلات عبر التصنيف أو الحدث الرئيسي داخل GitHub.
كل تغيير في الموقع يأتي من خلال المناقشات هنا. يتم تسجيل التغييرات الجوهرية في ملاحظات الإصدار الخاصة بنا. يمكن العثور على معاينة لمسودة ملاحظات الإصدار الجديد كجزء من موقع الاختبار لإصدارنا التالي. كل شهر أو نحو ذلك، بعد المراجعة النهائية من قبل مجموعة Schema.org التوجيهية والمجتمع الأوسع، نقوم بإصدار إصدار رسمي.
فيما يتعلق بتراخيص CC والتراخيص مفتوحة المصدر للمستندات والبرامج، راجع إدخال الأسئلة الشائعة.
نحن مهتمون دائمًا بالاقتراحات العملية لتحسينات schema.org، وقد تزايدت مجموعة المخططات لدينا تدريجيًا منذ إطلاقنا في عام 2011. ونحن نحاول إعطاء الأولوية للإصلاحات والتحسينات البسيطة للمخططات والأمثلة والوثائق الحالية لدينا بدلاً من إضافة مخططات جديدة. المفردات، ومن المرجح أن نضيف مخططات جديدة عندما يكون هناك دليل على أن بعض تطبيقات الاستهلاك (ويفضل أن تكون واسعة النطاق) ستستفيد من البيانات. لا يلزم أن تكون التطبيقات المستهلكة محركات بحث؛ تعد الأدوات البرمجية (على سبيل المثال، المصادر المفتوحة والأساليب الغنية بالترميز لتحليلات الويب أو الوظائف الإضافية للمتصفح أو الأدوات السحابية) كلها مجالات غنية للاستكشاف والتعاون. والشيء المهم هو أنه ينبغي أن يكون هناك بعض التوقعات المعقولة بأن يستفيد مستهلكو البيانات من التغييرات بشكل جيد. لا يكفي تبرير الإضافات على أساس أن محركات البحث عمومًا تحاول استخدام البيانات المنظمة المستندة إلى Schema.org. من الأسهل دمج التغييرات الصغيرة والتغييرات المتوافقة مع الإصدارات السابقة.
ملاحظة: لا يحاول Schema.org التقاط التفاصيل الكاملة لمحتوى الويب؛ إنه بالضرورة تبسيط لواقع أكثر تعقيدًا. وهذا يعني أنه سيكون هناك العديد من الحالات التي يبدو فيها إضافة المزيد من التفاصيل إلى Schema.org ممكنًا. ومع ذلك، ومن أجل إبقاء Schema.org بسيطًا وقابلاً للاستخدام للناشرين ومشرفي المواقع، فغالبًا ما نختار عدم إضافة مثل هذه التفاصيل.
يستخدم Schema.org معايير الويب مثل JSON-LD وMicrodata وRDFa للسماح بالامتداد المستقل (على سبيل المثال، راجع مفردات GS1).
من غير المرجح أيضًا أن نقوم بعمليات إعادة تنظيم واسعة النطاق لمصطلحات Schema.org، إذا كانت مدفوعة فقط باعتبارات الأناقة أو "النمذجة المناسبة" أو النقاء الوجودي أو التوحيد المفاهيمي. على الرغم من أن مؤسسي المشروع وفريقه على دراية - ويحترمون - التقاليد الكامنة وراء مثل هذه الاهتمامات، فإن حجم ونطاق وطبيعة Schema.org تطلب منا استبدال الأناقة والاتساق العالمي بفكرة أكثر غموضًا إلى حد ما للتطور التدريجي والواقعية التسامح مع أسلوب قد يكون في غير مكانه في الأنطولوجيا الرسمية. قد يتم قبول المقترحات الخاصة بتوحيد هياكل المعرفة القائمة على المنطق وعبر المجالات بشكل أفضل، على سبيل المثال في مجتمع Ontolog.
نقدم أحيانًا أنواعًا بدون اقترانات خصائص مخصصة، وذلك ببساطة لأسباب تتعلق بقابلية الاستخدام الترميزية. في علم الوجود الرسمي، غالبًا ما يُعتبر هذا نموذجًا سيئًا. ومع ذلك، يمكن أن تؤدي الهياكل المكافئة منطقيًا إلى العديد من الأخطاء من الناشرين/مشرفي المواقع الذين لا يعرفون المفاهيم الرسمية الأساسية وراء JSON-LD أو RDF/S.
Schema.org ليس نظامًا مغلقًا، وقد قامت مبادرات أخرى (مثل Wikidata أو GS1) بتعريف العديد من المصطلحات الأخرى التي يمكن مزجها جنبًا إلى جنب مع تلك التي نحددها في schema.org. كما أننا نبذل جهودًا لمواءمة تصميماتنا مع المعايير والمبادرات الخارجية ذات الصلة، حتى عندما يؤدي ذلك إلى تقليل الأناقة العالمية لـ Schema.org عند النظر إليها بمفردها. على سبيل المثال، في سياق التراث الببليوغرافي أو الثقافي، قد نتأثر بمبادرات مثل MARC وBibFrame وFRBR، بينما في مجال التجارة الإلكترونية تعاوننا مع Good Affairs وGS1. تأثرت المصطلحات المتعلقة بالأخبار في Schema.org بشكل كبير من خلال دمج تصميم IPTC's rNews، جنبًا إلى جنب مع التعاون مع مدققي الحقائق، ومشروع Trust، وغيرهم. تتأثر مفرداتنا المتعلقة بالتلفزيون والموسيقى بشكل كبير بالعمل مع هيئة الإذاعة البريطانية (BBC) واتحاد البث الأوروبي، جنبًا إلى جنب مع علم الوجود الموسيقي وMusicBrainz؛ تعكس مخططاتنا هذه التصميمات السابقة. نحن نفضل التعاون بهذه الطريقة، وتحسين Schema.org بشكل تدريجي والعمل على تحسين هذه التصميمات ودمجها ومزجها بدلاً من إنتاج نموذجنا النقي بشكل منفصل. قد تفتقر النتيجة إلى الأناقة العالمية ولكنها تجعل عملنا يتماشى مع الجهود ذات الصلة في جميع أنحاء العالم.
نحن نرحب دائمًا بالقضايا التي تتعقب مشكلات سهولة الاستخدام والقراءة، ولكننا نشجع التركيز على المواقف الملموسة (على سبيل المثال، كيفية وصف الأحداث المتكررة) بدلاً من الاهتمامات الفلسفية العالمية (على سبيل المثال، ما إذا كان الحجز أو الإجراء هو حدث "حقًا"). نحن نعطي الأولوية للتماسك المحلي (وجود طرق معقولة لوصف العديد من المواقف المشتركة) على الأناقة العالمية (وجود نظرية عالمية يكون فيها لكل شيء مكان معقول). هذا لا يعني أننا لن نقوم أبدًا بعمليات تنظيف، لكنها متوازنة مع (وغالبًا ما تفوقها) اعتبارات أخرى.
عندما نضيف مصطلحات، غالبًا في المنطقة "في انتظار المراجعة"، فإننا نشجع بشدة التعليقات التي تأخذ منظورًا عالميًا: كيف يرتبط مصطلح جديد بمصطلحات أخرى، وكيف يمكن استخدامه جنبًا إلى جنب مع الأنماط الموجودة مسبقًا، وما إلى ذلك. التغييرات التي نجريها خلال تعكس مرحلة التكامل هذه الاعتبارات، ولكن يتم التعبير عنها عادة من خلال إعادة صياغة متواضعة، أو أمثلة، أو تعديل توثيق روابط النوع/الخاصية، وليس من خلال إعادة الهيكلة الرئيسية.
شاهد المزيد عن "كيف نعمل"
بالنسبة لمعظم المتعاونين، كل ما تحتاج إلى معرفته حول البرنامج هو كيفية تشغيله. الهدف من البرنامج هو إنشاء نسخة ثابتة من موقع Schema.org، بما في ذلك التغييرات المحلية المحتملة، لفحص وتشغيل خادم ويب بسيط على نظام محلي للاختبار. بنفس الطريقة التي يتم بها نشر إصدار الإنتاج على خادم سحابي، يمكن بعد ذلك نشر الإصدار المحلي الخاص بك على جهاز ظاهري باستخدام gcloud لتمكين التعاون مع الآخرين.
تتوفر التعليمات الكاملة في SOFTWARE_README.md والتي تشرح كيفية إنشاء النسخة المحلية الأولية للعمل معها، ثم تطويرها لاختبار أي تغييرات. ستحتاج بشكل أساسي إلى بيئة شبيهة بنظام Linux (بما في ذلك Mac) محملة بإصدار Python 3.6 أو أعلى. يمكنك بعد ذلك إجراء إصدارات اختبارية لـ schema.org تعمل على جهازك الخاص ويمكن الوصول إليها من خلال http://localhost:8080/ أو نشرها على appspot.com للتعاون. راجع وثائق Appengine للحصول على تفاصيل حول أوامر gcloud ذات الصلة.
تتوفر معلومات أكثر تفصيلاً حول البرنامج واستخدامه في SOFTWARE_README.md. راجع أيضًا الملاحظات الموجودة في الويكي: https://github.com/schemaorg/schemaorg/wiki/Contributing
جميع المخططات والأمثلة موجودة في البيانات/في الملفات المشفرة بـ utf-8.
ملف المخططات الرئيسي هو data/schema.ttl (utf-8).
أثناء تطوير المخططات، قد يكون استخدام data/sdo-somethinghere-schema.ttl مفيدًا.
يعتمد التنسيق على W3C RDFS بتنسيق RDF/Turtle.
يتم تخزين الأمثلة في data/examples.txt (utf-8) وملفات .txt الأخرى.
كما هو الحال مع المخططات، سيتم أيضًا قراءة ملف data/examples.txt. قد يكون من المفيد التطوير باستخدام ملفات منفصلة.
عندما يتم دمج المفردات أخيرًا في المستودع الرئيسي، سيتم دمج بيانات المخطط في schema.org. ومع ذلك، ستبقى الأمثلة في ملفات منفصلة، حيث يعمل هذا بشكل أفضل مع آلية مقارنة الملفات في git.
التسلسل الهرمي للبيانات/الإصدارات/ محجوز للقطات الإصدار (راجع https://schema.org/version/).
التسلسل الهرمي ext// محجوز للامتدادات (راجع https://schema.org/docs/extension.html).
لم نعد نستخدم فروع جيثب للعمل الجاري. الرئيسي/الفرع هو أحدث مرشح لدينا. ليس من المضمون أن تكون في حالة متسقة من الناحية المفاهيمية، ولكن يجب أن تستقر قبل تعميم الإصدار المرشح للمراجعة.
تتعلق هذه الوثائق بقاعدة تعليمات البرنامج وليس بـ schema.org نفسه. ومع ذلك، لاحظ أن التسميات والتعليقات والوثائق يجب أن تستخدم اللغة الإنجليزية الأمريكية (في الكود والمخططات)، إذا كان هناك حاجة للاختيار بين متغيرات اللغة الإنجليزية. يرجى استهداف اللغة الإنجليزية الدولية حيثما أمكن ذلك.
انظر أيضًا: https://twitter.com/schemaorg_dev
مثال:
`
ترخيص أباتشي-2.0
جدول المحتويات
Darknet Object Detection Framework وYOLO
أوراق
معلومات عامة
نسخة دارك نت
أوزان MSCOCO المدربة مسبقًا
مبنى
جوجل كولاب
طريقة لينكس CMake
طريقة ويندوز CMake
باستخدام دارك نت
سطر الأوامر
تمرين
أدوات وروابط أخرى
خريطة الطريق
أهداف قصيرة المدى
أهداف منتصف المدة
أهداف طويلة المدى
Darknet Object Detection Framework وYOLO
شعارات darknet وhank.ai
Darknet هو إطار شبكة عصبية مفتوح المصدر مكتوب بلغات C وC++ وCUDA.
YOLO (أنت تنظر مرة واحدة فقط) هو نظام متطور للكشف عن الكائنات في الوقت الفعلي، والذي يعمل في إطار عمل Darknet.
اقرأ كيف تساعد Hank.ai مجتمع Darknet/YOLO
الإعلان عن Darknet V3 "الجاز"
راجع موقع الويب Darknet/YOLO
يرجى قراءة الأسئلة الشائعة حول Darknet/YOLO
انضم إلى خادم الفتنة Darknet/YOLO
أوراق
الورق YOLOv7
مقياس الورق-YOLOv4
الورق YOLOv4
ورقة YOLOv3
معلومات عامة
لا يزال إطار عمل Darknet/YOLO أسرع وأكثر دقة من أطر العمل والإصدارات الأخرى من YOLO.
هذا الإطار مجاني تمامًا ومفتوح المصدر. يمكنك دمج Darknet/YOLO في المشاريع والمنتجات الحالية - بما في ذلك المشاريع التجارية - دون ترخيص أو دفع رسوم.
يمكن لـ Darknet V3 ("Jazz") الذي تم إصداره في أكتوبر 2024 تشغيل مقاطع فيديو مجموعة بيانات LEGO بدقة تصل إلى 1000 إطارًا في الثانية عند استخدام وحدة معالجة الرسوميات NVIDIA RTX 3090، مما يعني أنه تتم قراءة كل إطار فيديو وتغيير حجمه ومعالجته بواسطة Darknet/YOLO في 1 مللي ثانية أو أقل.
يرجى الانضمام إلى خادم Darknet/YOLO Discord إذا كنت بحاجة إلى مساعدة أو إذا كنت تريد مناقشة Darknet/YOLO: https://discord.gg/zSq8rtW
يمكن تشغيل إصدار وحدة المعالجة المركزية من Darknet/YOLO على أجهزة بسيطة مثل Raspberry Pi والخوادم السحابية وcolab وأجهزة الكمبيوتر المكتبية وأجهزة الكمبيوتر المحمولة وأجهزة التدريب المتطورة. يتطلب إصدار GPU من Darknet/YOLO وحدة معالجة رسومات قادرة على CUDA من NVIDIA.
من المعروف أن Darknet/YOLO يعمل على أنظمة Linux وWindows وMac. انظر تعليمات البناء أدناه.
نسخة دارك نت
لم يكن لأداة Darknet الأصلية التي كتبها جوزيف ريدمون في 2013-2017 رقم إصدار. نحن نعتبر هذا الإصدار 0.x.
كما أن نسخة Darknet الشهيرة التالية التي يحتفظ بها Alexey Bochkovskiy بين 2017-2021 لم يكن لها رقم إصدار. نحن نعتبر هذا الإصدار 1.x.
كان مستودع Darknet الذي ترعاه Hank.ai ويديره Stéphane Charette بدءًا من عام 2023 هو الأول الذي يحتوي على أمر إصدار. من عام 2023 حتى أواخر عام 2024، تم إرجاع الإصدار 2.x "OAK".
كان الهدف هو محاولة كسر أقل قدر ممكن من الوظائف الحالية مع التعرف على قاعدة التعليمات البرمجية.
أعد كتابة خطوات البناء حتى يكون لدينا طريقة واحدة موحدة للبناء باستخدام CMake على كل من نظامي التشغيل Windows وLinux.
تم تحويل قاعدة التعليمات البرمجية لاستخدام برنامج التحويل البرمجي C++.
تحسين Chart.png أثناء التدريب.
إصلاحات الأخطاء والتحسينات المتعلقة بالأداء، والتي تتعلق في الغالب بتقليل الوقت المستغرق لتدريب الشبكة.
الفرع الأخير من قاعدة التعليمات البرمجية هذه هو الإصدار 2.1 في الفرع v2.
بدأت المرحلة التالية من التطوير في منتصف عام 2024 وتم إصدارها في أكتوبر 2024. يُرجع أمر الإصدار الآن 3.x "JAZZ".
يمكنك دائمًا إجراء فحص لفرع v2 السابق إذا كنت بحاجة إلى تشغيل أحد هذه الأوامر. أخبرنا حتى نتمكن من التحقيق في إضافة أي أوامر مفقودة.
تمت إزالة العديد من الأوامر القديمة والتي لم تتم صيانتها.
العديد من تحسينات الأداء، سواء أثناء التدريب أو أثناء الاستدلال.
تم تعديل واجهة برمجة تطبيقات Legacy C؛ ستحتاج التطبيقات التي تستخدم واجهة برمجة تطبيقات Darknet الأصلية إلى تعديلات طفيفة: https://darknetcv.ai/api/api.html
واجهة برمجة تطبيقات Darknet V3 C وC++ الجديدة: https://darknetcv.ai/api/api.html
تطبيقات جديدة ونموذج التعليمات البرمجية في أمثلة src: https://darknetcv.ai/api/files.html
أوزان MSCOCO المدربة مسبقًا
تم تدريب العديد من الإصدارات الشائعة من YOLO مسبقًا لتوفير الراحة على مجموعة بيانات MSCOCO. تحتوي مجموعة البيانات هذه على 80 فئة، والتي يمكن رؤيتها في الملف النصي cfg/coco.names.
هناك العديد من مجموعات البيانات الأبسط والأوزان المدربة مسبقًا المتاحة لاختبار Darknet/YOLO، مثل LEGO Gears وRolodex. راجع الأسئلة الشائعة حول Darknet/YOLO للحصول على التفاصيل.
يمكن تنزيل أوزان MSCOCO المدربة مسبقًا من عدة مواقع مختلفة، وهي متاحة أيضًا للتنزيل من هذا الريبو:
YOLOv2، نوفمبر 2016
YOLOv2-صغيرة
YOLOv2-كامل
YOLOv3، مايو 2018
YOLOv3-صغيرة
YOLOv3-كامل
YOLOv4، مايو 2020
YOLOv4-صغيرة
YOLOv4-كامل
YOLOv7، أغسطس 2022
YOLOv7-صغيرة
YOLOv7-كامل
يتم توفير أوزان MSCOCO المدربة مسبقًا للأغراض التجريبية فقط. توجد ملفات .cfg و.names المقابلة لـ MSCOCO في دليل cfg. أوامر المثال:
wget --no-clobber https://github.com/hank-ai/darknet/releases/download/v2.0/yolov4-tiny.weights darknet02displayannotatedimages coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg darknet03display_videos coco.names yolov4-tiny.cfg yolov4-tiny.weights video1.avi DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights image1.jpg DarkHelp coco.names yolov4-tiny.cfg yolov4-tiny.weights video1. افي
لاحظ أنه من المتوقع من الأشخاص تدريب شبكاتهم الخاصة. يُستخدم MSCOCO عادةً للتأكد من أن كل شيء يعمل بشكل صحيح.
مبنى
تم دمج طرق البناء المختلفة المتوفرة في الماضي (ما قبل 2023) معًا في حل واحد موحد. يتطلب Darknet الإصدار 17 من لغة C++ أو الإصدار الأحدث، OpenCV، ويستخدم CMake لإنشاء ملفات المشروع الضرورية.
لا تحتاج إلى معرفة لغة C++ لإنشاء أو تثبيت أو تشغيل Darknet/YOLO، بنفس الطريقة التي لا تحتاج فيها إلى أن تكون ميكانيكيًا لقيادة السيارة.
جوجل كولاب
لينكس
ويندوز
احذر إذا كنت تتبع برامج تعليمية قديمة تحتوي على خطوات إنشاء أكثر تعقيدًا، أو تقوم بإنشاء خطوات لا تتطابق مع ما هو موجود في هذا الملف التمهيدي. بدأت خطوات البناء الجديدة كما هو موضح أدناه في أغسطس 2023.
ننصح مطوري البرامج بزيارة https://darknetcv.ai/ للحصول على معلومات حول الأجزاء الداخلية لإطار عمل الكشف عن الكائنات Darknet/YOLO.
جوجل كولاب
تعليمات Google Colab هي نفس تعليمات Linux. تتوفر العديد من دفاتر ملاحظات Jupyter التي توضح كيفية القيام بمهام معينة، مثل تدريب شبكة جديدة.
راجع دفاتر الملاحظات في الدليل الفرعي colab، و/أو اتبع تعليمات Linux أدناه.
طريقة لينكس CMake
البرنامج التعليمي لبناء Darknet لنظام التشغيل Linux
اختياري: إذا كان لديك وحدة معالجة رسومات NVIDIA حديثة، فيمكنك تثبيت إما CUDA أو CUDA+cuDNN في هذه المرحلة. إذا تم تثبيته، فسوف يستخدم Darknet وحدة معالجة الرسومات (GPU) الخاصة بك لتسريع معالجة الصور (والفيديو).
يجب عليك حذف ملف CMakeCache.txt من دليل إنشاء Darknet الخاص بك لإجبار CMake على إعادة العثور على كافة الملفات الضرورية.
تذكر إعادة بناء Darknet.
يمكن تشغيل Darknet بدونه، ولكن إذا كنت ترغب في تدريب شبكة مخصصة، فيلزم توفر إما CUDA أو CUDA+cuDNN.
تفضل بزيارة https://developer.nvidia.com/cuda-downloads لتنزيل CUDA وتثبيته.
تفضل بزيارة https://developer.nvidia.com/rdp/cudnn-download أو https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#cudnn-package-manager-installation-overview للتنزيل وتثبيت cuDNN.
بمجرد تثبيت CUDA، تأكد من أنه يمكنك تشغيل nvcc وnvidia-smi. قد تضطر إلى تعديل متغير PATH الخاص بك.
إذا قمت بتثبيت CUDA أو CUDA+cuDNN في وقت لاحق، أو قمت بالترقية إلى إصدار أحدث من برنامج NVIDIA:
تفترض هذه التعليمات (ولكنها لا تتطلب!) وجود نظام يعمل بنظام التشغيل Ubuntu 22.04. قم بالتكيف حسب الضرورة إذا كنت تستخدم توزيعًا مختلفًا.
sudo apt-get install build-essential git libopencv-dev cmake mkdir ~/srccd ~/src git clone https://github.com/hank-ai/darknetcd darknet mkdir buildcd build cmake -DCMAKEBUILDTYPE=Release .. make -j4 package sudo dpkg -i darknet-VERSION.deb
إذا كنت تستخدم إصدارًا أقدم من CMake، فستحتاج إلى ترقية CMake قبل أن تتمكن من تشغيل أمر cmake أعلاه. يمكن ترقية CMake على Ubuntu باستخدام الأوامر التالية:
sudo apt-get purge cmake sudo snap install cmake --classic
إذا كنت تستخدم bash كصدفة أوامر، فستحتاج إلى إعادة تشغيل الصدفة الخاصة بك في هذه المرحلة. في حالة استخدام الأسماك، يجب أن تلتقط المسار الجديد على الفور.
المستخدمين المتقدمين:
إذا كنت تريد إنشاء ملف تثبيت RPM بدلاً من ملف DEB، فراجع الأسطر ذات الصلة في CM_package.cmake. قبل تشغيل حزمة make -j4 ستحتاج إلى تعديل هذين السطرين:
مجموعة (CPACKGENERATOR "DEB")# مجموعة (CPACKGENERATOR "RPM")
بالنسبة للتوزيعات مثل Centos وOpenSUSE، ستحتاج إلى تبديل هذين الخطين في CM_package.cmake لتكون:
مجموعة (CPACKGENERATOR "DEB") مجموعة (CPACKGENERATOR "RPM")
لتثبيت حزمة التثبيت بمجرد الانتهاء من بنائها، استخدم مدير الحزم المعتاد للتوزيع الخاص بك. على سبيل المثال، في الأنظمة المستندة إلى Debian مثل Ubuntu:
sudo dpkg -i darknet-2.0.1-Linux.deb
سيؤدي تثبيت حزمة .deb إلى نسخ الملفات التالية:
/usr/bin/darknet هو برنامج Darknet المعتاد القابل للتنفيذ. قم بتشغيل إصدار darknet من واجهة سطر الأوامر للتأكد من تثبيته بشكل صحيح.
/usr/include/darknet.h هو Darknet API لمطوري C وC++ وPython.
يحتوي /usr/include/darknet_version.h على معلومات الإصدار للمطورين.
/usr/lib/libdarknet.so هي المكتبة التي يمكن الارتباط بها لمطوري C وC++ وPython.
/opt/darknet/cfg/... هو المكان الذي يتم فيه تخزين كافة قوالب .cfg.
لقد انتهيت الآن! تم إنشاء Darknet وتثبيته في /usr/bin/. قم بتشغيل هذا للاختبار: إصدار darknet.
إذا لم يكن لديك /usr/bin/darknet فهذا يعني أنك لم تقم بتثبيته، بل قمت بإنشائه فقط! تأكد من تثبيت ملف .deb أو .rpm كما هو موضح أعلاه.
طريقة ويندوز CMake
تفترض هذه التعليمات تثبيتًا جديدًا لنظام التشغيل Windows 11 22H2.
افتح نافذة موجه أوامر cmd.exe عادية وقم بتشغيل الأوامر التالية:
تثبيت Winget Git.Git تثبيت Winget Kitware.CMake تثبيت Winget nsis.nsis تثبيت Winget Microsoft.VisualStudio.2022.Community
في هذه المرحلة نحتاج إلى تعديل تثبيت Visual Studio ليشمل دعم تطبيقات C++:
انقر فوق قائمة "ابدأ في Windows" وقم بتشغيل "Visual Studio Installer"
انقر على تعديل
حدد تطوير سطح المكتب باستخدام C++
انقر فوق "تعديل" في الزاوية اليمنى السفلية، ثم انقر فوق "نعم" بمجرد تنزيل كل شيء وتثبيته، انقر فوق قائمة "ابدأ في Windows" مرة أخرى وحدد Developer Command Prompt for VS 2022. لا تستخدم PowerShell لهذه الخطوات، فسوف تقوم بتشغيل في المشاكل!
المستخدمين المتقدمين:
بدلاً من تشغيل موجه أوامر المطور، يمكنك استخدام موجه أوامر عادي أو ssh في الجهاز وتشغيل "Program FilesMicrosoft Visual Studio2022CommunityCommon7ToolsVsDevCmd.bat" يدويًا.
بمجرد تشغيل موجه أوامر المطور كما هو موضح أعلاه (وليس PowerShell!) قم بتشغيل الأوامر التالية لتثبيت Microsoft VCPKG، والذي سيتم استخدامه بعد ذلك لإنشاء OpenCV:
cd c:mkdir c:srccd c:src git clone https://github.com/microsoft/vcpkgcd vcpkg bootstrap-vcpkg.bat .vcpkg.exe دمج تثبيت .vcpkg.exe دمج powershell.vcpkg.exe تثبيت opencv[مساهمة، dnn، freetype، jpeg، openmp، png، webp، العالم]:x64-windows
كن صبورًا في هذه الخطوة الأخيرة حيث قد يستغرق تشغيلها وقتًا طويلاً. يحتاج إلى تنزيل وبناء أشياء كثيرة.
المستخدمين المتقدمين:
لاحظ أن هناك العديد من الوحدات الاختيارية الأخرى التي قد ترغب في إضافتها عند إنشاء OpenCV. قم بتشغيل .vcpkg.exe للبحث في opencv لرؤية القائمة الكاملة.
اختياري: إذا كان لديك وحدة معالجة رسومات NVIDIA حديثة، فيمكنك تثبيت إما CUDA أو CUDA+cuDNN في هذه المرحلة. إذا تم تثبيته، فسوف يستخدم Darknet وحدة معالجة الرسومات (GPU) الخاصة بك لتسريع معالجة الصور (والفيديو).
يجب عليك حذف ملف CMakeCache.txt من دليل إنشاء Darknet الخاص بك لإجبار CMake على إعادة العثور على كافة الملفات الضرورية.
تذكر إعادة بناء Darknet.
يمكن تشغيل Darknet بدونه، ولكن إذا كنت ترغب في تدريب شبكة مخصصة، فيلزم توفر إما CUDA أو CUDA+cuDNN.
تفضل بزيارة https://developer.nvidia.com/cuda-downloads لتنزيل CUDA وتثبيته.
قم بزيارة https://developer.nvidia.com/rdp/cudnn-download أو https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#download-windows لتنزيل وتثبيت cuDNN.
بمجرد تثبيت CUDA، تأكد من أنه يمكنك تشغيل nvcc.exe وnvidia-smi.exe. قد تضطر إلى تعديل متغير PATH الخاص بك.
بمجرد تنزيل cuDNN، قم بفك ضغط دلائل الحاوية والتضمين والليب ونسخها إلى C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/[version]/. قد تحتاج إلى الكتابة فوق بعض الملفات.
إذا قمت بتثبيت CUDA أو CUDA+cuDNN في وقت لاحق، أو قمت بالترقية إلى إصدار أحدث من برنامج NVIDIA:
يجب تثبيت CUDA بعد Visual Studio. إذا قمت بترقية Visual Studio، تذكر إعادة تثبيت CUDA.
بمجرد الانتهاء من جميع الخطوات السابقة بنجاح، ستحتاج إلى استنساخ Darknet وإنشائه. خلال هذه الخطوة، نحتاج أيضًا إلى إخبار CMake بمكان وجود vcpkg حتى يتمكن من العثور على OpenCV والتبعيات الأخرى:
cd c:src git clone https://github.com/hank-ai/darknet.gitcd darknetmkdir buildcd build cmake -DCMAKEBUILDTYPE=Release -DCMAKETOOLCHAINFILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake .. msbuild. exe /الخاصية: النظام الأساسي = x64؛ التكوين = الإصدار / الهدف: البناء -maxCpuCount -verbosity: عادي -detailedSummary darknet.sln msbuild.exe /الخاصية: النظام الأساسي = x64؛ التكوين = الإصدار PACKAGE.vcxproj
إذا حصلت على خطأ بشأن بعض ملفات CUDA أو cuDNN DLL المفقودة مثل cublas64_12.dll، فقم بنسخ ملفات CUDA .dll يدويًا إلى نفس دليل الإخراج مثل Darknet.exe. على سبيل المثال:
انسخ "C: Program FilesNVIDIA GPU Computing ToolkitCUDAv12.2bin*.dll" src-cliRelease
(هذا مثال! تحقق للتأكد من الإصدار الذي تقوم بتشغيله، وقم بتشغيل الأمر المناسب لما قمت بتثبيته.)
بمجرد نسخ الملفات، أعد تشغيل الأمر msbuild.exe الأخير لإنشاء حزمة تثبيت NSIS:
msbuild.exe /property:Platform=x64;التكوين=إصدار PACKAGE.vcxproj
المستخدمين المتقدمين:
لاحظ أن إخراج الأمر cmake هو ملف حل Visual Studio عادي، Darknet.sln. إذا كنت مطور برامج يستخدم واجهة المستخدم الرسومية Visual Studio GUI بانتظام بدلاً من msbuild.exe لإنشاء المشاريع، فيمكنك تجاهل سطر الأوامر وتحميل مشروع Darknet في Visual Studio.
يجب أن يكون لديك الآن هذا الملف الذي يمكنك تشغيله: C:srcDarknetbuildsrc-cliReleasedarknet.exe. قم بتشغيل هذا لاختبار: إصدار C:srcDarknetbuildsrc-cliReleasedarknet.exe.
لتثبيت Darknet بشكل صحيح، والمكتبات وملفات التضمين وملفات DLL الضرورية، قم بتشغيل معالج تثبيت NSIS الذي تم إنشاؤه في الخطوة الأخيرة. راجع الملف darknet-VERSION.exe في دليل البناء. على سبيل المثال:
darknet-2.0.31-win64.exe
سيؤدي تثبيت حزمة تثبيت NSIS إلى:
قم بإنشاء دليل يسمى Darknet، مثل C:Program FilesDarknet.
قم بتثبيت تطبيق CLI وdarknet.exe ونماذج التطبيقات الأخرى.
قم بتثبيت ملفات .dll المطلوبة من جهات خارجية، مثل تلك الموجودة في OpenCV.
قم بتثبيت ملفات Darknet .dll و.lib و.h الضرورية لاستخدام darknet.dll من تطبيق آخر.
قم بتثبيت ملفات القالب .cfg.
لقد انتهيت الآن! بمجرد انتهاء معالج التثبيت، سيتم تثبيت Darknet في C:Program FilesDarknet. قم بتشغيل هذا لاختبار: إصدار C:Program FilesDarknetbindarknet.exe.
إذا لم يكن لديك C:/Program Files/darknet/bin/darknet.exe فهذا يعني أنك لم تقم بتثبيته، بل قمت بإنشائه فقط! تأكد من مراجعة كل لوحة من معالج تثبيت NSIS في الخطوة السابقة.
باستخدام دارك نت
سطر الأوامر
ما يلي ليس القائمة الكاملة لجميع الأوامر التي يدعمها Darknet.
بالإضافة إلى واجهة سطر الأوامر الخاصة بـ Darknet، لاحظ أيضًا واجهة سطر الأوامر لمشروع DarkHelp والتي توفر واجهة سطر أوامر بديلة لـ Darknet/YOLO. يحتوي DarkHelp CLI أيضًا على العديد من الميزات المتقدمة التي لا تتوفر مباشرة في Darknet. يمكنك استخدام كل من Darknet CLI وDarkHelp CLI معًا، فهما لا يستبعد أحدهما الآخر.
بالنسبة لمعظم الأوامر الموضحة أدناه، ستحتاج إلى ملف .weights مع ملفات .names و.cfg المقابلة. يمكنك إما تدريب شبكتك الخاصة (نوصي بشدة!) أو تنزيل شبكة عصبية قام شخص ما بتدريبها بالفعل وإتاحتها مجانًا على الإنترنت. تتضمن أمثلة مجموعات البيانات المدربة مسبقًا ما يلي:
LEGO Gears (العثور على كائنات في صورة)
Rolodex (البحث عن نص في صورة)
MSCOCO (الكشف القياسي عن الكائنات من فئة 80)
تتضمن أوامر التشغيل ما يلي:
قم بإدراج بعض الأوامر والخيارات الممكنة للتشغيل:
مساعدة على الانترنت المظلم
التحقق من الإصدار:
نسخة دارك نت
التنبؤ باستخدام الصورة:
V2: اختبار كاشف الشبكة المظلمة cars.data Cars.cfg Cars_best.weights image1.jpg
V3: darknet02displayannotatedimages Cars.cfg image1.jpg
DarkHelp: DarkHelp Cars.cfg Cars.cfg Cars_best.weights image1.jpg
إحداثيات الإخراج:
V2: اختبار كاشف الشبكة المظلمة Animals.data Animals.cfg Animalbest.weights -extoutput dog.jpg
V3: darknet01inference_images حيوانات dog.jpg
DarkHelp: DarkHelp --json Animals.cfg Animals.names Animal_best.weights dog.jpg
العمل مع مقاطع الفيديو:
V2: العرض التوضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -extoutput test.mp4
V3: darknet03display_videos Animals.cfg test.mp4
DarkHelp: DarkHelp Animals.cfg Animals.names Animal_best.weights test.mp4
القراءة من كاميرا الويب:
V2: العرض التوضيحي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -c 0
V3: حيوانات darknet08display_webcam
حفظ النتائج إلى الفيديو:
V2: العرض التوضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test.mp4 -outfilename res.avi
V3: darknet05processvideosmultithreaded Animals.cfg للحيوانات.أسماء الحيوانات_أفضل.اختبار الأوزان.mp4
DarkHelp: DarkHelp Animals.cfg Animals.names Animal_best.weights test.mp4
جسون:
V2: العرض التوضيحي لكاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights test50.mp4 -jsonport 8070 -mjpegport 8090 -extoutput
V3: darknet06imagestojson الحيوانات image1.jpg
DarkHelp: DarkHelp --json Animals.names Animals.cfg Animal_best.weights image1.jpg
يعمل على GPU محدد:
V2: العرض التوضيحي لكاشف الشبكة المظلمة Animals.data Animals.cfg Animal_best.weights -i 1 test.mp4
للتحقق من دقة الشبكة العصبية:
خريطة كاشف darknet القيادة. بيانات القيادة.cfg القيادة_أفضل.أوزان ... اسم المعرف AvgPrecision TP FN FP TN الدقة معدل الخطأ الدقة استدعاء الخصوصية FalsePosRate -- ---- ------------ ---- -- ------ ------ ------ -------- --------- --------- ---- ----------- ------------ 0 مركبة 91.2495 32648 3903 5826 65129 0.9095 0.0905 0.8486 0.8932 0.9179 0.0821 1 دراجة نارية 80.4499 2936 513 569 5393 0.8850 0.1150 0.8377 0.8513 0.9046 0.0954 2 دراجة 89.0912 570 124 104 3548 0.9475 0.0525 0.8457 0.8213 0.9715 0.0285 3 أشخاص 76.7937 7072 1727 2574 27523 0.8894 0.1106 0.7332 0.8037 0.9145 0.0855 4 مركبات عديدة 64.3089 1068 509 733 11288 0.9087 0.0913 0.5930 0.6772 0.9390 0.0610 5 الضوء الأخضر 86.8118 1969 239 5 10 4116 0.8904 0.1096 0.7943 0.8918 0.8898 0.1102 6 ضوء أصفر 82.0390 126 38 30 1239 0.9525 0.0475 0.8077 0.7683 0.9764 0.0236 7 ضوء أحمر 94.1033 3449 2 17 451 4643 0.9237 0.0763 0.8844 0.9408 0.9115 0.0885
للتحقق من الدقة mAP@IoU=75:
خريطة كاشف الشبكة المظلمة للحيوانات.بيانات الحيوانات.cfg Animalbest.weights -iouthresh 0.75
من الأفضل إجراء إعادة حساب نقاط الارتساء في DarkMark، حيث سيتم تشغيلها 100 مرة متتالية واختيار أفضل نقاط الارتساء من جميع تلك التي تم حسابها. ولكن إذا كنت تريد تشغيل الإصدار القديم في Darknet:
كاشف الشبكة المظلمة calcanchors Animals.data -عدد_العناقيد 6 -العرض 320 -الارتفاع 256
تدريب شبكة جديدة:
كاشف الشبكة المظلمة -map -dont_show تدريب الحيوانات.بيانات الحيوانات.cfg (انظر أيضًا قسم التدريب أدناه)
تمرين
روابط سريعة للأقسام ذات الصلة من الأسئلة الشائعة حول Darknet/YOLO:
كيف أقوم بإعداد الملفات والأدلة الخاصة بي؟
ما هو ملف التكوين الذي يجب أن أستخدمه؟
ما الأمر الذي يجب أن أستخدمه عند تدريب شبكتي الخاصة؟
إن أبسط طريقة للتعليق والتدريب هي استخدام DarkMark لإنشاء جميع ملفات Darknet الضرورية. هذه بالتأكيد هي الطريقة الموصى بها لتدريب شبكة عصبية جديدة.
إذا كنت تفضل إعداد الملفات المتنوعة يدويًا لتدريب شبكة مخصصة:
قم بإنشاء مجلد جديد حيث سيتم تخزين الملفات. في هذا المثال، سيتم إنشاء شبكة عصبية لاكتشاف الحيوانات، لذلك يتم إنشاء الدليل التالي: ~/nn/animals/.
انسخ أحد ملفات تكوين Darknet التي ترغب في استخدامها كقالب. على سبيل المثال، راجع cfg/yolov4-tiny.cfg. ضع هذا في المجلد الذي قمت بإنشائه. في هذا المثال، لدينا الآن ~/nn/animals/animals.cfg.
قم بإنشاء ملف نصي Animals.names في نفس المجلد الذي وضعت فيه ملف التكوين. في هذا المثال، لدينا الآن ~/nn/animals/animals.names.
قم بتحرير ملف أسماء الحيوانات باستخدام محرر النصوص الخاص بك. قم بإدراج الفئات التي تريد استخدامها. يجب أن يكون لديك إدخال واحد بالضبط في كل سطر، بدون أسطر فارغة أو تعليقات. في هذا المثال، سيحتوي ملف .names على 4 أسطر بالضبط:
كلب قطة طائر حصان
قم بإنشاء ملف نصي Animals.data في نفس المجلد. في هذا المثال، سيحتوي ملف .data على:
الفئات = 4 قطار = /home/username/nn/animals/animalstrain.txt صالح = /home/username/nn/animals/animalsvalid.txt أسماء = /home/username/nn/animals/animals.names نسخة احتياطية = /home/ اسم المستخدم/ن/الحيوانات
قم بإنشاء مجلد حيث يمكنك تخزين الصور والتعليقات التوضيحية. على سبيل المثال، قد يكون هذا ~/nn/animals/dataset. ستحتاج كل صورة إلى ملف .txt متطابق يصف التعليقات التوضيحية لتلك الصورة. تنسيق ملفات التعليقات التوضيحية .txt محدد للغاية. لا يمكنك إنشاء هذه الملفات يدويًا نظرًا لأن كل تعليق توضيحي يجب أن يحتوي على الإحداثيات الدقيقة للتعليق التوضيحي. راجع DarkMark أو أي برنامج آخر مشابه لإضافة تعليقات توضيحية إلى صورك. تم توضيح تنسيق التعليقات التوضيحية YOLO في الأسئلة الشائعة حول Darknet/YOLO.
قم بإنشاء الملفات النصية "القطار" و"الصالحة" المذكورة في ملف البيانات. يحتاج هذان الملفان النصيان إلى إدراج كل الصور بشكل فردي والتي يجب أن يستخدمها Darknet للتدريب والتحقق من الصحة عند حساب نسبة mAP%. صورة واحدة بالضبط في كل سطر. قد يكون المسار وأسماء الملفات نسبية أو مطلقة.
قم بتعديل ملف .cfg الخاص بك باستخدام محرر النصوص.
تأكد من أن الدفعة = 64.
لاحظ التقسيمات الفرعية. اعتمادًا على أبعاد الشبكة وحجم الذاكرة المتوفرة على وحدة معالجة الرسومات الخاصة بك، قد تحتاج إلى زيادة التقسيمات الفرعية. أفضل قيمة للاستخدام هي 1 لذا ابدأ بذلك. راجع الأسئلة الشائعة حول Darknet/YOLO إذا لم يناسبك أحد.
ملاحظة: maxbatches=.... القيمة الجيدة التي يجب استخدامها عند البدء هي 2000 × عدد الفئات. في هذا المثال، لدينا 4 حيوانات، لذا 4 * 2000 = 8000. وهذا يعني أننا سنستخدم maxbatches=8000.
ملاحظة الخطوات=.... يجب ضبط هذا على 80% و90% من الدُفعات القصوى. في هذا المثال، سنستخدم الخطوات=6400,7200 حيث تم تعيين maxbatches على 8000.
لاحظ أن العرض=... والارتفاع=.... هذه هي أبعاد الشبكة. تشرح الأسئلة الشائعة لـ Darknet/YOLO كيفية حساب الحجم الأفضل للاستخدام.
ابحث عن كافة مثيلات السطرclasses=... وقم بتعديله بعدد الفئات في ملف .names الخاص بك. في هذا المثال، سنستخدم الفئات=4.
ابحث عن كافة مثيلات مرشحات الخط=... في القسم [التلافيفي] قبل كل قسم [yolo]. القيمة التي يجب استخدامها هي (numberofclasses + 5) 3. وهذا يعني في هذا المثال، (4 + 5) 3 = 27. لذلك سنستخدم مرشحات = 27 على الأسطر المناسبة.
ابدأ التدريب! قم بتشغيل الأوامر التالية:
cd ~/nn/animals/ darknet Detector -map -dont_show قطار الحيوانات.بيانات الحيوانات.cfg
كن صبوراً. سيتم حفظ أفضل الأوزان باسم Animal_best.weights. ويمكن ملاحظة التقدم في التدريب من خلال الاطلاع على