رؤية الكمبيوتر. يتحدثون الآن كثيرًا عن ذلك ، حيث يتم تطبيقه وتنفيذه كثيرًا. وبطريقة ما قبل فترة طويلة ، لم تكن هناك مقالات عن مراجعة Habré على السيرة الذاتية ، مع أمثلة من الهندسة المعمارية والمهام الحديثة. لكن هناك الكثير منهم ، وهم رائعون حقًا! إذا كنت مهتمًا بما يحدث في Computer Vision الآن ، ليس فقط من وجهة نظر
الأبحاث والمقالات ، ولكن أيضًا من وجهة نظر المشكلات المطبقة ، فأنت مرحب بك في cat. أيضًا ، يمكن أن تكون المقالة مقدمة جيدة لأولئك الذين أرادوا منذ فترة طويلة أن يبدأوا في فهم كل هذا ، ولكن هناك شيء ما في الطريق ؛)

يوجد اليوم في PhysTech تعاون نشط من "الأكاديمية" والشركاء الصناعيين. على وجه الخصوص ، هناك العديد من
المختبرات المثيرة للاهتمام من شركات مثل Sberbank و Biocad و 1 C و Tinkoff و MTS و Huawei في
كلية PhysTech للرياضيات التطبيقية وعلوم الكمبيوتر .
استلهمت من كتابة هذا المقال من خلال العمل في مختبر
الأنظمة الهجينة الذكية ، الذي افتتحه
VkusVill . المختبر لديه مهمة طموحة - بناء متجر يعمل دون مكاتب نقدية ، وذلك أساسا بمساعدة رؤية الكمبيوتر. لمدة عام تقريبًا من العمل ، أتيحت لي الفرصة للعمل على العديد من مهام الرؤية ، والتي سيتم مناقشتها في هذين الجزأين.
تسوق دون مكاتب النقدية؟ في مكان ما سمعت بالفعل ..ربما ، عزيزي القارئ ، فكرت في
Amazon Go . المهمة ، إلى حد ما ، هي تكرار نجاحهم ، لكن قرارنا يتعلق بالتنفيذ أكثر من مجرد بناء مثل هذا المتجر من نقطة الصفر مقابل
الكثير من المال .
سوف نتحرك وفقًا للخطة:
- الدافع وما يحدث
- التصنيف كنمط حياة
- بنيات الشبكة العصبية التلافيفية: 1000 طريقة لتحقيق هدف واحد
- تصور الشبكات العصبية التلافيفية: أرني العاطفة
- أنا شخصياً من الجراحين: نستخرج ميزات من الشبكات العصبية
- البقاء على مقربة: تمثيل التعلم للناس والأفراد
- الجزء 2:
كشف وتقييم الموقف والتعرف على الإجراءات دون المفسدين
الدافع وما يحدث
من هو المقال؟تركز المقالة بشكل أكبر على الأشخاص الذين لديهم دراية بالفعل بالتعلم الآلي والشبكات العصبية. ومع ذلك ، أنصحك بقراءة القسمين الأولين على الأقل - فجأة سيكون كل شيء واضحًا :)
في عام 2019 ، يتحدث الجميع عن الذكاء الاصطناعي
والثورة الصناعية الرابعة ونهج البشرية نحو التفرد . رائع ، بارد ، ولكن أريد تفاصيل. بعد كل شيء ، نحن تقنيين فضوليين لا يؤمنون بالقصص الخيالية حول الذكاء الاصطناعي ، ونؤمن بالإعداد الرسمي للمهام والرياضيات والبرمجة. في هذه المقالة ، سوف نتحدث عن حالات محددة لاستخدام الذكاء الاصطناعي الحديث - استخدام التعلم العميق (أي الشبكات العصبية التلافيفية) في مجموعة متنوعة من مهام رؤية الكمبيوتر.
نعم ، سنتحدث على وجه التحديد عن الشبكات ، ونذكر أحيانًا بعض الأفكار من وجهة نظر "كلاسيكية" (سوف نسمي مجموعة من الأساليب في الرؤية التي استخدمت قبل الشبكات العصبية ، ولكن هذا لا يعني بأي حال من الأحوال أنها غير مستخدمة الآن).
في رأيي ، فإن أول تطبيق مثير للاهتمام حقًا للشبكات العصبية في الرؤية ، والذي تمت تغطيته في وسائل الإعلام في عام 1993 ، هو
الاعتراف بخط اليد بواسطة جان لوكون . إنه الآن أحد أهم الذكاء الاصطناعى في
Facebook AI Research ، وقد أصدر فريقهم بالفعل
الكثير من الأشياء المفيدة مفتوحة المصدر .
اليوم ، يتم استخدام الرؤية في العديد من المجالات. سأقدم فقط بعض الأمثلة المذهلة:
تسلا وياندكس المركبات غير المأهولةتحليل التصوير الطبي والتنبؤ بالسرطانأجهزة الألعاب: Kinect 2.0 (على الرغم من أنه يستخدم أيضًا معلومات العمق ، أي صور RGB-D)التعرف على الوجوه : Apple FaceID (باستخدام أجهزة استشعار متعددة)تقييم نقطة الوجه: أقنعة سناب شاتالقياس الحيوي لحركات الوجه والعين (مثال من مشروع FPMI MIPT )البحث عن طريق الصورة: ياندكس وجوجلالتعرف على النص الموجود في الصورة ( التعرف الضوئي على الحروف )الطائرات بدون طيار والروبوتات: تلقي المعلومات ومعالجتها من خلال الرؤيةقياس المسافات : بناء خريطة والتخطيط عند تحريك الروبوتاتتحسين الرسومات والقوام في ألعاب الفيديوصورة الترجمة: ياندكس وجوجلالواقع المعزز: Leap Motion (Project North Star) و Microsoft Hololensنقل الأسلوب والملمس: Prisma ، PicsArtناهيك عن العديد من التطبيقات في مختلف المهام الداخلية للشركات. يستخدم Facebook ، على سبيل المثال ، الرؤية لتصفية محتوى الوسائط. تستخدم أساليب رؤية الكمبيوتر أيضًا
في اختبار الجودة / الضرر في الصناعة .
في الواقع ، يجب إعطاء الواقع المعزز اهتمامًا خاصًا ، نظرًا
لأنه لا يعمل في المستقبل القريب ، فقد يصبح هذا أحد المجالات الرئيسية لتطبيق الرؤية.
تحفيز. تهمة. دعنا نذهب:
التصنيف كنمط حياة

كما قلت ، في التسعينيات ، تم إطلاق الشباك في الأفق. وأطلقوا النار في مهمة محددة - مهمة تصنيف الصور للأرقام المكتوبة بخط اليد (
مجموعة البيانات الشهيرة
MNIST ). تاريخياً ، كانت مهمة تصنيف الصور هي أساس حل جميع المهام اللاحقة تقريبًا في الرؤية. النظر في مثال محدد:
المهمة : يتم إعطاء مجلد به صور عند المدخل ، ولكل صورة كائن معين: إما قطة ، أو كلب ، أو شخص (حتى لو لم تكن هناك صور "قمامة" ، فهي مهمة غير حيوية للغاية ، ولكن عليك أن تبدأ من مكان ما). تحتاج إلى تقسيم الصور إلى ثلاثة مجلدات:
/cats
و
/dogs
و
/leather_bags
/humans
، ووضع الصور فقط مع الكائنات المقابلة في كل مجلد.
ما هي الصورة / الصورة؟
في كل مكان تقريبًا ، من المعتاد العمل مع الصور بتنسيق RGB. كل صورة لها ارتفاع (H) ، عرض (W) ، وعمق 3 (ألوان). وبالتالي ، يمكن تمثيل صورة واحدة باعتبارها موتر البعد HxWx3 (كل بكسل عبارة عن مجموعة من ثلاثة أرقام - قيم شدة في القنوات).
تخيل أننا لسنا على دراية برؤية الكمبيوتر بعد ، لكننا نعرف التعلم الآلي. الصور هي ببساطة التنسورات العددية في ذاكرة الكمبيوتر. نقوم بإضفاء الطابع الرسمي على المهمة من حيث التعلم الآلي: الكائنات عبارة عن صور ، وعلاماتها هي قيم بالبكسل ، والإجابة لكل كائن هي تسمية صنف (قطة ، كلب أو شخص). هذه
مهمة تصنيف خالصة.
يمكنك أن تأخذ بعض الأساليب من طريقة العرض "الكلاسيكية" أو التعلم الآلي "الكلاسيكي" ، أي أنها ليست شبكة عصبية. تتكون هذه الأساليب بشكل أساسي من إبراز صور بعض الميزات (النقاط الخاصة) أو المناطق المحلية التي ستميز الصورة ("
حقيبة الكلمات المرئية "). عادةً ما يتلخص الأمر في شيء مثل
SVM عبر
HOG /
SIFT .
لكننا اجتمعنا هنا للحديث عن الشبكات العصبية ، لذلك لا نريد استخدام العلامات التي اخترعناها ، ولكن نريد أن تفعل الشبكة كل شيء من أجلنا. سيأخذ المصنف الخاص بنا علامات الكائن كإدخال ويعيد التنبؤ (تسمية الفئة). هنا ، تعمل قيم الكثافة بالبكسل كعلامات (انظر نموذج الصورة في
المفسد أعلاه). تذكر أن الصورة عبارة عن موتر بالحجم (الارتفاع ، العرض ، 3) (إذا كان لونًا). عند تعلم الدخول إلى الشبكة ، عادةً ما يتم تقديم كل هذا ليس بواسطة صورة واحدة وليس بواسطة مجموعة بيانات كاملة ، ولكن بواسطة دفعات ، على سبيل المثال في أجزاء صغيرة من الكائنات (على سبيل المثال ، 64 صورة في الدفعة).
وبالتالي ، تتلقى الشبكة موتر إدخال حجم (BATCH_SIZE ، H ، W ، 3). يمكنك "توسيع" كل صورة في خط متجه من أرقام H * W * 3 والعمل مع القيم بالبكسل تمامًا مثل الإشارات في التعلم الآلي ، ومن شأن
Perceptron (MLP) العادي أن يفعل ذلك تمامًا ، لكن بصراحة ، خط أساسي ، نظرًا لأن العمل باستخدام وحدات البكسل كصف متجه لا يأخذ في الاعتبار ، على سبيل المثال ، التغير اللغوي للكائنات في الصورة. يمكن أن تكون نفس القطة في منتصف الصورة ، وفي الزاوية ، لن يتعلم MLP هذا النمط.
لذلك تحتاج إلى شيء أكثر ذكاء ، على سبيل المثال ، عملية الالتواء. وهذا عن الرؤية الحديثة ، حول
الشبكات العصبية التلافيفية :
قد يبدو رمز التدريب على شبكة الالتفاف مثل هذا (في إطار PyTorch) منذ الآن نتحدث عن
التدريب مع المعلم ، نحتاج إلى عدة عناصر لتدريب شبكة عصبية:
- البيانات (موجودة بالفعل)
- هندسة الشبكات (تسليط الضوء)
- وظيفة الخسارة التي ستحدد كيفية تعلم الشبكة العصبية (هنا ستكون إنتروبيا )
- طريقة التحسين (ستغير وزن الشبكة في الاتجاه الصحيح)
- تحديد العمارة ومعلمات المحسن (على سبيل المثال ، حجم خطوة المحسن ، وعدد الخلايا العصبية في الطبقات ، ومعاملات التنظيم)
هذا هو بالضبط ما يتم تنفيذه في الكود ؛ يتم وصف الشبكة العصبية التلافيفية نفسها في فئة Net ().
إذا كنت تريد أن تتعلم ببطء من البداية عن الحزم وشبكات الالتفاف ، أوصي
بمحاضرة في مدرسة التعليم العميق (MIPT MIPT) (باللغة الروسية) حول هذا الموضوع ، وبالطبع
دورة cs231n في جامعة ستانفورد (باللغة الإنجليزية) .
باختصار ، تسمح لك عملية الالتفاف بالبحث عن أنماط على الصور بناءً على تباينها. عندما ندرب الشبكات العصبية التلافيفية (eng: الشبكات العصبية التلافيفية) ، في الواقع ، نجد مرشحات الإلتفاف (أوزان الخلايا العصبية) التي تصف الصور جيدًا ، وكذلك يمكننا تحديد الفئة منها بدقة. تم اختراع العديد من الطرق لإنشاء مثل هذه الشبكة. أكثر مما تعتقد ...
بنيات الشبكة العصبية التلافيفية: 1000 طريقة لتحقيق هدف واحد
نعم ، نعم ،
مراجعة معمارية أخرى . ولكن هنا سأحاول جعلها ذات صلة قدر الإمكان!
أولاً كان هناك
LeNet ، فقد ساعد Jan LeCun في التعرف على الأرقام في عام 1998. كانت هذه أول شبكة عصبية تلافيفية للتصنيف. كانت الميزة الرئيسية لها هي أنها بدأت في الأساس في استخدام عمليات
الالتواء والتجميع .

ثم كان هناك هدوء في تطوير الشبكات ، لكن الأجهزة لم تقف مكتوفة الأيدي ؛ تم تطوير حسابات فعالة على GPU و
XLA . في عام 2012 ، ظهرت AlexNet ، في مسابقة ILSVRC (
ImageNet Large Recognition Visual Recognition Challenge ).
استطرادا صغيرا حول ILSVRCتم تجميع
ImageNet بحلول عام 2012 ،
واستخدمت مجموعة فرعية من آلاف الصور و 1000 فئة في مسابقة ILSVRC. لدى ImageNet حاليًا حوالي 14 مليون صورة و 21،841 درسًا (مأخوذة من الموقع الرسمي) ، ولكن عادة ما تختار فقط مجموعة فرعية للمنافسة. أصبح ILSVRC أكبر مسابقة تصنيف للصور السنوية. بالمناسبة ، اكتشفنا مؤخرًا كيفية
التدريب على ImageNet في غضون دقائق .
كان على ImageNet (في ILSVRC) من 2010 إلى 2018 أنهم تلقوا شبكات
SOTA في تصنيف الصور. صحيح ، منذ عام 2016 ، أصبحت المسابقات في توطين المشهد وكشفه وفهمه ، وليس التصنيف ، أكثر صلة بالموضوع.
عادةً ، تلقي
المراجعات المعمارية المختلفة الضوء على تلك التي كانت الأولى في ILSVRC من 2010 إلى 2016 ، وعلى بعض الشبكات الفردية. من أجل عدم تجميع القصة ، وضعتها تحت المفسد أدناه ، محاولًا التأكيد على الأفكار الرئيسية:
كانت أفكار كل هذه البنيات (باستثناء ZFNet ، يذكر عادة) قليلاً في وقت واحد كلمة جديدة في الشبكات العصبية للرؤية. ومع ذلك ، بعد عام 2015 كان هناك العديد من التحسينات الأكثر أهمية ، على سبيل المثال ، Inception-ResNet ، Xception ، DenseNet ، SENet. أدناه حاولت جمعها في مكان واحد.
يمكن العثور على معظم هذه النماذج ل PyTorch
هنا ، وهناك
شيء رائع .
ربما لاحظت أن الأمر برمته يزن كثيرًا (أريد 20 ميغابايت كحد أقصى ، أو حتى أقل) ، في الوقت الحالي يستخدمون الأجهزة المحمولة في كل مكان ،
ويزداد شعبية
إنترنت الأشياء ، مما يعني أنك تريد أيضًا استخدام الشبكات هناك.
العلاقة بين وزن النموذج والسرعةنظرًا لأن الشبكات العصبية داخلها تتكاثر فقط ، فإن عدد عمليات الضرب (اقرأ: عدد الأوزان) يؤثر بشكل مباشر على سرعة العمل (إذا لم يتم استخدام مرحلة ما بعد المعالجة أو مرحلة ما قبل المعالجة). تعتمد سرعة الشبكة نفسها على التنفيذ (الإطار) ، والأجهزة التي تعمل عليها ، وحجم صورة الإدخال.
قام مؤلفو العديد من المقالات بمسار ابتكار تصميمات سريعة ، لقد جمعت أساليبهم تحت المفسد أدناه:
سي إن إن العمارة خفيفة الوزن يتم أخذ الأرقام الموجودة في جميع الجداول
من السقف من المستودعات ومن
جدول تطبيقات Keras ومن
هذه المقالة .
أنت تسأل: "لماذا كتبت عن هذه" حديقة الحيوان "بأكملها من النماذج؟ ولماذا مهمة التصنيف؟ لكننا نريد أن نعلم الآلات أن نرى ، والتصنيف هو مجرد نوع من المهمة الضيقة .. ". والحقيقة هي أن الشبكات العصبية لاكتشاف الكائنات وتقييم المواقف / النقاط وإعادة تحديد الهوية والبحث في صورة ما تستخدم بالضبط نماذج التصنيف
كعمود فقري ، ويعتمد 80٪ من النجاح عليها.
لكنني أريد أن أثق بطريقة أو بأخرى في شبكة CNN ، أو فكروا في صناديق سوداء ، ولكن ما هو "في الداخل" ليس واضحًا. لفهم آلية تشغيل الشبكات التلافيفية بشكل أفضل ، توصل الباحثون إلى استخدام التصور.
تصور الشبكات العصبية التلافيفية: أرني العاطفة
هناك خطوة مهمة نحو فهم ما يحدث داخل الشبكات التلافيفية وهي مقالة
"تصور وتفهم الشبكات التلافيفية" . في ذلك ، اقترح المؤلفون عدة طرق لتصور بالضبط ما (على أي أجزاء من الصورة) الخلايا العصبية في طبقات CNN مختلفة تستجيب (أوصي أيضا بمشاهدة
محاضرة ستانفورد حول هذا الموضوع ). كانت النتائج رائعة للغاية: أظهر المؤلفون أن الطبقات الأولى من الشبكة التلافيفية تستجيب لبعض "الأشياء منخفضة المستوى" حسب نوع الحواف / الزوايا / الخطوط ، وأن الطبقات الأخيرة تستجيب بالفعل لأجزاء كاملة من الصور (انظر الصورة أدناه) ، أي أنها تحمل بالفعل في حد ذاته بعض دلالات.
علاوة على ذلك ، قام
مشروع التصور العميق من جامعة كورنيل والشركة بتصور متطور أكثر ، بينما تعلم
ديب دريم الشهير التشويه بأسلوب مثير
للإدمان (فيما يلي صورة من
deepdreamgenerator.com ).
في عام 2017 ،
نُشر مقال جيد جدًا على Distill ، حيث أجروا تحليلًا تفصيليًا لما تراه كل طبقة ، ومؤخراً (في مارس 2019) اخترع Google
أطلس التنشيط : خرائط فريدة يمكن تصميمها لكل طبقة شبكة ، مما يجعلها أقرب إلى فهم الصورة العامة لشبكة CNN.
إذا كنت ترغب في اللعب مع التصور بنفسك ، فإنني أوصي بـ
Lucid و
TensorSpace .
حسنًا ، يبدو أن CNN صحيح إلى حد ما. نحن بحاجة إلى معرفة كيفية استخدام هذا في مهام أخرى ، وليس فقط في التصنيف. هذا سوف يساعدنا على استخراج الصور Embedding'ov ونقل التعلم.
أنا شخصياً من الجراحين: نستخرج ميزات من الشبكات العصبية
تخيل أن هناك صورة ، ونحن نريد العثور على تلك التي تبدو بصريا (وهذا ، على سبيل المثال ، البحث في صورة في Yandex.Picture). في السابق (قبل الشبكات العصبية) ، اعتاد المهندسون على استخراج الميزات يدويًا لهذا الغرض ، على سبيل المثال ، اختراع شيء يصف الصورة جيدًا ويسمح بمقارنتها بالآخرين. في الأساس ، تعمل هذه الطرق (
HOG ،
SIFT ) مع
تدرجات الصورة ، وعادة ما تسمى هذه الأشياء واصفات الصور "الكلاسيكية". ذات أهمية خاصة ، أود أن أشير إلى
المادة وإلى
مسار أنتون كونوشن (هذا ليس الإعلان ، مجرد دورة جيدة :)
باستخدام الشبكات العصبية ، لا يمكننا اختراع هذه الميزات والاستدلال بأنفسنا ، ولكن تدريب النموذج بشكل صحيح ومن ثم
أخذ إخراج طبقة أو أكثر من طبقات الشبكة كعلامات على الصورة .
إن إلقاء نظرة فاحصة على جميع البنى يوضح أن هناك خطوتين للتصنيف في CNN:
1).
ميزة الطبقات
النازع لاستخراج ميزات إعلامية من الصور باستخدام الطبقات التلافيفية
2). التعلم على رأس هذه الميزات طبقات مصنف
Fully Connected (FC)يدمج تضمين الصور (الميزات) في حقيقة أنه يمكنك أخذ علاماتهم بعد مستخرج
المعالم لشبكة عصبية تلافيفية (على الرغم من إمكانية تجميعها بطرق مختلفة) كتوصيف إعلامي للصور. وهذا هو ، قمنا بتدريب شبكة التصنيف ، ثم نأخذ الخروج أمام طبقات التصنيف. تسمى هذه العلامات "
ميزات" أو "
واصفات الشبكة العصبية" أو "
زخارف الصور" (على الرغم من أن "الأعراس" تُقبل عادةً في البرمجة اللغوية العصبية (NLP) ، نظرًا لأن هذه رؤية ، سأتحدث كثيرًا عن
الميزات ). عادة ما يكون هذا نوعًا من المتجهات العددية ، على سبيل المثال ، 128 رقمًا ، والتي يمكنك العمل بها بالفعل.
ولكن ماذا عن الترميز التلقائي؟نعم ، في الواقع ، يمكن الحصول على الميزات عن طريق
التشفير التلقائي . في ممارستي ، قاموا بذلك بطرق مختلفة ، ولكن ، على سبيل المثال ، في مقالات حول إعادة التعريف (التي ستتم مناقشتها لاحقًا) ، لا يزالون في أغلب الأحيان يأخذون ميزات بعد المستخرج ، بدلاً من تدريب التشفير التلقائي على ذلك. يبدو لي أنه من المفيد إجراء تجارب في كلا الاتجاهين ، إذا كان السؤال هو ما الذي يعمل بشكل أفضل.
وبالتالي ، يمكن ترتيب خط الأنابيب لحل
مشكلة البحث بالصور ببساطة: فنحن نقوم بتشغيل الصور عبر شبكة CNN ، ونأخذ علامات من الطبقات المطلوبة ونقارن هذه الميزات مع بعضها البعض من صور مختلفة. على سبيل المثال ، نعتبر ببساطة المسافة الإقليدية لهذه المتجهات.
نقل التعلم هو تقنية معروفة للتدريب الفعال للشبكات العصبية التي تم تدريبها بالفعل على مجموعة بيانات محددة لمهمتها. غالبًا ما يقولون أيضًا Fine Tuning بدلاً من Transfer Learning ، في
مقرر Stanford يشير cs231n إلى أن هذه المفاهيم يتم مشاركتها ، ويقولون ، Transfer Learning هي فكرة عامة ، و Fine Tuning هو أحد تطبيقات التقنية. هذا ليس مهمًا جدًا بالنسبة لنا في المستقبل ، والشيء الرئيسي هو أن نفهم أنه يمكننا تدريب الشبكة للتنبؤ جيدًا بمجموعة البيانات الجديدة ، بدءًا من أوزان عشوائية ، ولكن من أولئك المدربين على بعض أنواع ImageNet الكبيرة. هذا صحيح بشكل خاص عندما يكون هناك القليل من البيانات ، وتريد حل المشكلة من الناحية النوعية.
تعلم المزيد عن نقل التعلم ومع ذلك ، قد لا يكفي مجرد أخذ الميزات الضرورية والقيام بتدريب إضافي من مجموعة البيانات إلى مجموعة البيانات ، على سبيل المثال ، لمهام البحث عن أشخاص متشابهين / أشخاص / شيء محدد. قد تكون صور الشخص نفسه بصريًا في بعض الأحيان أكثر تباينًا من صور أشخاص مختلفين. من الضروري أن تبرز الشبكة بالضبط تلك العلامات المتأصلة في شخص / كائن واحد ، حتى لو كان من الصعب علينا القيام بذلك بأعيننا. مرحبا بكم في عالم
التعلم التمثيل .
البقاء على مقربة: تمثيل التعلم للناس والأفراد
ملاحظة المصطلحاتإذا قرأت مقالات علمية ، في بعض الأحيان ، يبدو أن بعض المؤلفين يفهمون عبارة التعلم المتري بطريقة مختلفة ، ولا يوجد إجماع على طرق استدعاء التعلم المتري وغيره. لهذا السبب قررت في هذه المقالة تجنب هذه العبارة المعينة واستخدمت تعليماً تمثيلياً أكثر منطقية ، فقد لا يوافق بعض القراء على ذلك - سأكون سعيدًا بمناقشته في التعليقات.
وضعنا المهام:
- المهمة 1 : يوجد معرض (مجموعة) من صور وجوه الأشخاص ، نريد أن تكون الشبكة قادرة على الاستجابة وفقًا لصورة جديدة إما باسم شخص من المعرض (من المفترض أن تكون هذه هي) ، أو قلنا أنه لا يوجد شخص في المعرض (وربما نضيف إليها) شخص جديد)
- المهمة 2 : نفس الشيء ، لكننا لا نعمل مع صور الوجوه ، ولكن مع مجموعة كاملة من الناس
وعادة ما تسمى المهمة الأولى
التعرف على الوجوه ، والمهمة الثانية -
إعادة تحديد الهوية (يختصر باسم
ريد ). قمت بدمجها في كتلة واحدة ، لأن حلولها تستخدم أفكارًا متشابهة اليوم: من أجل معرفة عمليات إدراج الصور الفعالة التي يمكنها التعامل مع المواقف الصعبة إلى حد ما ، تستخدم اليوم أنواعًا مختلفة من الخسائر ، مثل
الخسارة الثلاثية والخسائر الرباعية ،
فقدان مركز التباين ،
فقدان جيب التمام .
لا تزال هناك
شبكات سيامية رائعة ، لكنني بصراحة لم أستخدمها بنفسي. بالمناسبة ، ليس فقط الخسارة نفسها "تقرر" ، ولكن كيفية
أخذ عينات من أزواج من الإيجابيات والسلبيات لذلك ، يؤكد مؤلفو المقال
أهمية أخذ العينات في عملية التعلم التضمين العميق .
إن جوهر كل هذه الخسائر والشبكات السيامية بسيط - نحن نريد أن تكون صور فئة (شخص) في الفضاء الخفي للميزات (الزينة) "قريبة" ، وأن تكون الطبقات (الناس) مختلفة "بعيدة". يقاس القرب عادة على النحو التالي: تؤخذ زخرفة الصور من شبكة عصبية (على سبيل المثال ، ناقل من 128 رقمًا) وننظر إما في
المسافة الإقليدية المعتادة بين هذه المتجهات أو
قرب جيب التمام. من الأفضل أن تختار طريقة القياس على مجموعة البيانات / المهمة.
إن التمثيل التخطيطي لخط أنابيب حل المشكلات في تعلم التمثيل يبدو كالتالي:
ولكن أن تكون أكثر دقة ، مثل هذا: (Softmax + CrossEntropy), (Triplet, Contrastive, etc.). positive' negative'
: - , — . , — - , (,
). .
هناك العديد من المقالات الجيدة حول التعرف على الوجوه : مقالة مراجعة ( يجب أن تقرأ! ) ، FaceNet ، ArcFace ، CosFace .هناك أيضًا الكثير من التطبيقات: dlib ، OpenFace ، FaceNet repo ، وفي Habré تم إخبارنا به بالفعل لفترة طويلة . يبدو أنه تمت إضافة ArcFace و CosFace فقط مؤخرًا (اكتب في التعليقات ، إذا فاتني شيء ما هنا ، سأكون سعيدًا بمعرفة شيء آخر).ومع ذلك ، أصبح من المألوف الآن عدم التعرف على الوجوه ، ولكن توليدها ، أليس كذلك؟في المقابل ، تمر مهمة إعادة تحديد الهوية الآن بنشاط نشط ، يتم نشر المقالات شهريًا ، والناس يجربون أساليب مختلفة ، شيء ما يعمل الآن ، شيء ما لا يزال غير جيد جدًا.
سأشرح جوهر مشكلة Reid بمثال: يوجد معرض به مجموعة من الأشخاص ، على سبيل المثال ، 10 أشخاص ، لكل منهم 5 محاصيل (يمكن أن تكون من جوانب مختلفة) ، أي 50 صورة في المعرض. يأتي اكتشاف جديد (محصول) ، ويجب أن أقول أي نوع من الأشخاص من المعرض أو أن يقول إنه غير موجود وأن يقدم له هوية جديدة. تكون المهمة معقدة بسبب حقيقة أن عمليات الكشف البشري تأتي من زوايا مختلفة: الأمامي والخلفي والجانبي والسفلي بالإضافة إلى الكاميرات التي تأتي منها الصور مختلفة أيضًا (توازن الإضاءة / توازن اللون الأبيض ، إلخ).بالمناسبة ، في مختبرنا ريد هي واحدة من المهام الرئيسية. يوجد الكثير من المقالات ، بعضها عن خسارة جديدة وأكثر فاعلية ، وبعضها عن طريقة جديدة للحصول على مقالات سلبية وإيجابية.مراجعة جيدة لطرق Reid القديمة في مقالة 2016 . الآن ، كما كتبت أعلاه ، يتم تطبيق نهجين - التصنيف أو تعلم التمثيل. ومع ذلك ، هناك خصوصية للمشكلة ، حيث يناضل الباحثون معها بطرق مختلفة ، على سبيل المثال ، اقترح مؤلفو Aligned Re-Id لمحاذاة الميزات بطريقة خاصة (نعم ، لقد تمكنوا من تحسين الشبكة باستخدام البرمجة الديناميكية ، Karl ) ، في مقال آخر اقترحوه لاستخدام شبكات Advativearial Networks (GAN) ) .demotivator, , -, . , - , , , . — !
من بين التطبيقات ، أود أن أذكر بالتأكيد OpenReid و TorchReid . انتبه إلى الكود نفسه - في رأيي ، هو مكتوب بكفاءة من وجهة نظر بنية الإطار ، مزيد من التفاصيل هنا . بالإضافة إلى ذلك ، كلاهما موجود على PyTorch ، ويحتوي الملف التمهيدي على العديد من الروابط لمقالات حول إعادة تعريف الأشخاص ، وهو أمر لطيف.بشكل عام ، هناك طلب خاص على خوارزميات الوجه وطارد في الصين الآن ( إذا كنت تعرف ما أقصد ). هل نحن على الخط؟ من يعرف ...كلمة عن تسارع الشبكات العصبية
لقد قلنا بالفعل أنه يمكنك فقط التوصل إلى بنية خفيفة الوزن. ولكن ماذا لو كانت الشبكة مدربة بالفعل وكانت باردة ، لكن هل ما زلت بحاجة لضغطها؟ في هذه الحالة ، قد تساعد إحدى الطرق التالية (أو كلها):حسنًا ، القاعدة ليست استخدام float64 ، ولكن ، على سبيل المثال ، لا أحد يلغى float32. حتى أن هناك مقالًا حديثًا عن التدريب ذي الدقة المنخفضة . في الآونة الأخيرة ، بالمناسبة ، قدمت Google MorphNet ، والذي (نوعًا ما) يساعد في ضغط النموذج تلقائيًا.ما التالي؟
لقد ناقشنا حقًا الكثير من الأشياء المفيدة والتطبيقية في DL و CV: التصنيف ، معماريات الشبكة ، التصور ، حفلات الزفاف. ومع ذلك ، في الرؤية الحديثة ، هناك أيضًا مهام مهمة أخرى: الاكتشاف ، التجزئة ، فهم المشهد. إذا كنا نتحدث عن الفيديو ، فعندئذ أريد تتبع الأشياء في الوقت المناسب ، والتعرف على الإجراءات وفهم ما يحدث على الفيديو. لهذه الأشياء سيتم تخصيص الجزء الثاني من المراجعة.ترقبوا!ملحوظة: ما نوع التعليم الذي تقدمه الآن مدرسة الفيزيوتقنية التابعة لـ PMI MIPT؟