البحث عن الكائنات في الصور؟ الحصول على نموذج تدريبي ومجموعة دنيا من المعرفة حول الشبكات العصبية ، يمكن لأي طالب اليوم الحصول على حل من دقة معينة. ومع ذلك ، فإن معظم الشبكات العصبية المستخدمة لحل هذه المشكلة عميقة للغاية ، وبالتالي فهي تتطلب الكثير من البيانات للتدريب ، فهي تعمل ببطء نسبيًا في مرحلة الاستدلال (خاصةً إذا لم يكن هناك وحدة معالجة GPU على الجهاز) ، فهي تزن كثيرًا وتستهلك الكثير من الطاقة. كل ما سبق يمكن أن يكون بالغ الأهمية في بعض الحالات ، في المقام الأول لتطبيقات الهاتف المحمول.
الباركود هي كائنات ذات بنية بسيطة إلى حد ما. في أثناء البحث ، تمكنا ، باستخدام نهج أصلي نسبيًا ، من البحث عن مثل هذه الأشياء البسيطة بدقة (ضربنا على أحدث طراز) وبسرعة كافية (في الوقت الفعلي على وحدة المعالجة المركزية في المتوسط). بالإضافة إلى ذلك ، كاشفنا خفيف للغاية ، ولا يحتوي على سوى 30 كيلو من الأوزان. سنتحدث عن نتائج بحثنا في هذا المقال.
ولكن قبل الحديث عن الحل ، يجدر بنا الغوص قليلاً في مجال الموضوع ، وربما يستحق الأمر البدء بماهية الباركود.
ما هو الباركود ولماذا تبحث عنه؟
الباركود هو اسم عام لمجموعة من تنسيقات البيانات المقروءة آليا. ربما سمعت عن الباركود ورموز QR - هذه مجرد حالات خاصة من الباركود. في العالم الحديث ، يمكن العثور عليها على التذاكر والسلع في المتاجر والوثائق الرسمية وفي أماكن أخرى كثيرة.

تنقسم الباركود عادةً إلى أحادية البعد ، ممثلة بمجموعة من خطوط سوداء وبيضاء ، وثنائية الأبعاد ، تتكون من كتل صغيرة مربعة أو مستطيلة. كما ترون في الشكل ، بشكل عام ، تتشابه الأنواع المختلفة مع بعضها البعض.
قد يمثل التعقيد بعض أنواع الباركود التي لم يتم تحديد طولها. هذه الرموز الشريطية يمكن أن تكون طويلة بشكل تعسفي وفي الوقت نفسه رقيقة جدا.

المثال أعلاه مصطنع ، لكن الرموز الشريطية بنسب متشابهة موجودة في مستندات حقيقية ، خاصة في الفواتير.
ونظرًا لأن هذه التنسيقات قابلة للقراءة آليًا ، فيجب التعرف عليها بسهولة نسبية بواسطة الجهاز. ومع ذلك ، فإن الخطوة الأولى على طريق الاعتراف هي البحث ، وسيتم مناقشتها في هذه المقالة.
تجدر الإشارة إلى أن الماسحات الضوئية الليزرية والعديد من التطبيقات تنطوي على المشاركة النشطة للشخص - تحتاج إلى توجيه الكاميرا / الماسحة الضوئية بوضوح إلى الرمز الشريطي بحيث يتم التعرف عليها ، وفي هذه الحالة تختفي الحاجة إلى البحث ، بالطبع. ومع ذلك ، في هذا السيناريو ، يضطر المستخدمون إلى بذل جهود إضافية من جانبهم ، وهو أمر غير جيد. هذا النهج أيضًا لا يسمح بالتعرف على العديد من الكائنات في الصورة ، يقتصر على واحد فقط.
بيان المشكلة ومقاييس الجودة
ماذا نود من كاشف الباركود الذي تم إنشاؤه؟
- العثور على جميع الباركود في الصورة دقيقة بما يكفي *
- العثور على الباركود طويلة وضيقة جدا
- في الوقت الحقيقي على وحدة المعالجة المركزية
* يُقترح استخدام التدبير f للكائنات ذات عتبة IoU = 0.5 كمقياس رئيسي للدقة. سننظر أيضًا في معدل الاستعادة والدقة والكشف.
التعريف الرسمي للمقاييسأولاً ، نقدم مفهوم تقاطع IoU على الاتحاد (المعروف أيضًا باسم مؤشر Jaccard). وجود صحيح ( ) وتوقع ( ) قناع الكائن ، يتم احتساب IoU كمنطقة تقاطع مقسومة على منطقة الاتحاد.
من السهل أن نرى أن IoU تأخذ قيمًا من 0 إلى 1. الآن ، استنادًا إلى هذا المقياس ، نقدم مفاهيم الدقة ، الاستعادة ، معدل القياس و الكشف.
فليكن هناك كائنات N في العينة. وضعنا عتبة IoU مساوية لبعض الأرقام الثابتة (على سبيل المثال 0.5). لبعض الأشياء ، والكشف نعتقد أنه إذا ، تم العثور على الكائن (1) ، وإلا فإننا نعتقد أنه لم يتم العثور على الكائن (0). ثم
يعرف بأنه نسبة كائنات العينة الموجودة ،
- نسبة عمليات الكشف المقابلة لجسم عينة واحد على الأقل. يتم تعريف f-measure بشكل قياسي على أنه متوسط متناسق
.
يبقى أن نفهم ما هو معدل الكشف. فليكن هناك صور M مع كائنات في العينة. نحن نحسب IoU بين الأقنعة الحقيقية والمتوقعة في الصورة ، ونقطع بالمثل عتبة الصورة. معدل الاكتشاف هو جزء من الصور التي يكون بها إجمالي IoU لكل الكائنات الحقيقية مع إجمالي IoU لكل الكائنات المتوقعة أكبر من الحد المعطى t.
في الدراسات السابقة (بشأن الكشف عن الباركود) ، من المعتاد استخدام معدل الكشف لتقييم الجودة. ومع ذلك ، فلننظر في هذا الموقف - فليكن هناك كائن واحد كبير جدًا وصغير جدًا في الصورة ، لكن الكاشف وجد كبيرًا ولم يجد صغيراً. في هذه الحالة ، يشير معدل الكشف إلى وجود خطأ فقط إذا كانت العتبة كبيرة جدًا. بالقرب من 1. حين
لن يكون أكثر من 0.5 لقيم العتبة التعسفية ، والتي ستجعل أيضًا المقياس f أقل من 1. ، على سبيل المثال ، قد يشير المقياس f إلى خطأ سابق (بمعنى انخفاض العتبة ) من معدل الكشف.
لذلك ، في تجاربنا ، اعتمدنا على المقياس f ، واستخدمنا معدل الكشف للمقارنة مع أعمال السنوات الماضية.
مستوحاة من أجهزة الكشف عن النص
ربما تكون أداة كشف الأجسام الأكثر شهرة وشعبية عندما تكون السرعة مهمة هي YOLO (أنت تنظر مرة واحدة فقط). هناك أيضًا إصدارات أحدث من YOLOv2 و YOLOv3 ، ولكن بشكل عام هذا النهج مفيد لكائنات مربعة إلى حد ما ، ولكن في إيجاد كائنات ضيقة ، لكن ممدودة للغاية ، هذا النهج ليس قوياً للغاية.
لذلك قررنا الذهاب في الاتجاه الآخر. كما ترون بسهولة ، فإن الخطوط التي تحتوي على نص في الصورة ممدودة وضيقة للغاية ، ومهمة العثور على نص في الصور في المجتمع العلمي شائعة جدًا (وهي بالتأكيد أكثر شعبية من البحث عن الرموز الشريطية) ، كما تم اختراع العديد من الأشكال المعمارية المثيرة للاهتمام القائمة على بنية الرسم البياني. يتم تحفيز قرارنا من خلال أحد أعمال البحث عن النص التي تقترح فيها بنية PixelLink.
PixelLink للبحث عن النص
جوهر النهج على النحو التالي - دعنا نحل مشكلة تجزئة مثيل مثل هذا:
- لكل بكسل ، سنقوم بحل مشكلة التصنيف الثنائي (نص / لا نص).
- لكل بكسل ، سوف نتوقع 8 روابط (روابط) مع جيرانها. الاتصال يعني أن زوج البكسل هذا ينتمي إلى كائن واحد (مثيل).
- بعد استلام خريطة تجزئة نصية / غير نصية وخرائط مع روابط من الصورة ، نقوم بتجميع رسم بياني تكون فيه الرؤوس بكسلات يتم توقع فئة النص الخاصة بها وتكون الحواف بمثابة روابط.
- نجد مكونات متصلة في هذا الرسم البياني.
- حول كل مكون متصل ، حدد الحد الأدنى للمستطيل المرفق (على سبيل المثال ، باستخدام OpenCV) ، والذي سيكون الكشف النهائي.
هذه العملية موضحة بشكل بياني ، الشكل مأخوذ من المقال الأصلي .

هذا النهج للبحث عن النص يعطي نتائج جيدة إلى حد ما قابلة للمقارنة بأحدث التقنيات.
بكسل صلة للبحث عن الباركود
نعود الآن إلى الباركود. لقد سألنا أنفسنا - هل نحن حقا بحاجة إلى هذه الروابط؟ بعد كل شيء ، الباركود ، على عكس النص ، في الغالبية العظمى من الحالات بعيدة عن بعضها البعض. وبالفعل ، وفقًا للمواصفات ، يجب أن تحتوي أنواع كثيرة من الباركود على فجوة معينة إلى أقرب الكائنات المجاورة.
بشكل عام ، قررنا أننا لا نحتاج إلى روابط بشكل خاص ، وقمنا بتعديل النهج كما يلي:
- نحل مشكلة التجزئة الدلالي - لكل بكسل نحدد فئة الباركود / غير الباركود.
- نبني رسمًا بيانيًا ذي رؤوس بالبكسل يتم تحديد نوع الباركود فيه. كحواف ، بدلاً من البحث عن روابط ، نعتبر أن هناك رابطًا بين أي زوج من وحدات البكسل المجاورة من نوع الباركود.
- نجد مكونات متصلة في هذا الرسم البياني.
- حول كل مكون متصل ، حدد الحد الأدنى للمستطيل المرفق ، والذي سيكون الكشف النهائي.
لذلك ، قررنا على مخطط الحل العام. يمكن اعتبار الفقرات 2-4 تافهة ، ولكن دعونا نناقش كيفية التعامل مع التجزئة الدلالية تمامًا.
هندسة الشبكات للتقسيم الدلالي
قليلا من التاريخ الذي يشيع استخدامه
بشكل عام ، يستمر الفصل الدلالي باستخدام الشبكات العصبية منذ عام 2013 تقريبًا منذ ظهور U-Net. في U-Net ، تم تخفيض الدقة المكانية أولاً في Encoder ، ثم تم زيادتها تدريجياً في Decoder ، وكانت هناك أيضًا تخطي الاتصالات من ميزات Encoder الوسيطة إلى ميزات Decoder الوسيطة. بعد ذلك بقليل ، ظهرت تشققات موسعة (انظر الشكل أدناه) ، مما أسفر عن جودة أفضل ، لكنه يتطلب المزيد من الذاكرة والحسابات للمعالجة. حسنًا ، في النهاية ، كان هناك أسلوب يُعرف باسم Deeplabv3 + ، يجمع بين كل من هذه الأساليب وكونها أحدث ما في الهندسة المعمارية التي صممها الإنسان في وقت كتابة هذا التقرير (في الواقع ، بفضل البحث عن الهندسة المعمارية العصبية ، حلول أكثر فعالية ، على سبيل المثال ).
دعونا نتعمق أكثر في الإلتواء الموسع ، لأن في القرار النهائي ، سوف نعتمد على خصائصه.
الإلتواء الطبيعي يعمل مثل هذا

بينما يظهر الالتواء الموسع أدناه (في الصورة ، يكون العامل الموسع 2)

قد تلاحظ أن الإلتواء التقليدي هو في الواقع حالة خاصة من الإلتواء الموسع (مع عامل التمدد 1).
بشكل عام ، فإن مناقشة حلول التقسيم الدلالي هي موضوع لمقال منفصل كبير ، أردت فقط أن أقدم تذكيرًا بسيطًا يكون فيه أهم شيء هو التعامل مع جهاز الالتواء الموسع. إذا كنت جديدًا على التجزئة الدلالية ، فإليك أفضل مراجعة معروفة للمؤلف ، ومع ذلك ، لفهم ما سيحدث بعد ذلك ، فإن التعرف عليها ليس ضروريًا.
إذا كان كل شيء بسيط جدا ...
الشرط الرئيسي لشبكتنا العصبية ، بالإضافة إلى الجودة ، هو السرعة. في بياناتنا ، هناك رموز شريطية صغيرة جدًا بالنسبة إلى حجم الصورة بحيث يكون الحد الأدنى من الدقة التي من المنطقي عند تشغيلها لشبكة عصبية 512 × 512 على الأقل ، ويفضل أن يكون 1024 × 1024. في الوقت نفسه ، هناك حاجة للعمل على وحدة المعالجة المركزية لما لا يزيد عن 100 مللي ثانية على الصورة (وأيضًا على جوهر واحد!). من حيث مجموعة متطلبات دقة الإدخال ووقت التشغيل الإجمالي ، فإن المهمة ليست تافهة للغاية. مع هذه القيود الشديدة ، لا يمكن استخدام أبنية قوية وعميقة. في الإنصاف ، لم نحقق حتى الآن متطلبات 100 مللي ثانية على جوهر واحد ، لكن الحل النهائي يعمل 40 مللي ثانية على 4 مراكز (Intel Core i5 ، 3.2 جيجا هرتز).
لسوء الحظ ، فإن جميع الهياكل التي نعرفها للتجزئة الدلالية بشكل قاطع لم تنسجم مع هذه القيود. لذلك كان لدينا خيار: إما أنه من غير المعروف كيفية التوصل إلى شيء جديد تمامًا ، أو محاولة تبسيط أكبر قدر ممكن من أحد البنى الشائعة. لم يكن لدينا أي أفكار رائعة ، لذلك اخترنا هذا الأخير.
مستوحاة من شبكة تجميع السياق
تحتوي التلفيفات الموسعة على الخاصية المفيدة التالية - إذا قمت بتطبيقها بالتتابع مع عامل موسّع متزايد الأسي ، فإن الحقل الاستقبالي سينمو بشكل كبير (في حالة التلفيفات العادية فإنه ينمو خطيًا).

يوضح الشكل ( المصدر ) الزيادة الأسية في مجال التقبل في الشبكة العصبية عند تطبيق الإلتواء المتوسع. (أ) يتم الحصول على F1 من F0 عن طريق الالتواء مع الامتداد = 1 ، حقل الاستلام = 3x3 لكل عنصر في F1 (ب) يتم الحصول على F2 من F1 عن طريق الإلتواء مع الامتداد = 2 ، مجال الاستلام = 7x7 لكل عنصر في F2 (c) F3 تم الحصول عليها من F2 باستخدام الإلتواء مع الامتداد = 4 ، حقل الاستلام = 15x15 لكل عنصر في F3
في مقالة "تجميع السياق متعدد النطاقات من خلال ارتفاعات متضخمة" بناءً على هذه الخاصية ، تم اختراع كتلة خاصة (يطلق عليها مؤلفو وحدة السياق) ، والتي تستخدم لجمع المعلومات من سياق البيكسل الحالي. في هذه المقالة ، يتم استخدام هذه الكتلة أعلى شبكة تعرف بالفعل كيفية حل مشكلة التجزئة لتحسين هذه التنبؤات باستخدام معلومات السياق.
قررنا استخدام وحدة السياق هذه ، ولكن لا نستخدمها لتحسين التنبؤات بنموذج جيد موجود ، ولكن كجزء رئيسي من شبكة الالتفاف ، والتي ستحل هذه المشكلة. بشكل عام ، يتم ترتيب الهندسة المعمارية لدينا على النحو التالي (انظر الجدول):
- وحدة المستوى الأدنى - الإلتواء الأولي لاستخراج أبسط الميزات وتقليل الدقة.
- وحدة السياق هي في الأساس مجموعة من التلفيفات الموسعة التي ستزيد بسرعة من حقل الاستلام ، وبالتالي تجمع السمات من سياق أكبر.
- الطبقة النهائية (الالتفاف 1 × 1) ، التي تتلقى خريطة احتمالية للتجزئة الدلالية للباركود / غير الباركود. وأيضًا ، إذا أردنا التمييز بين نوع الباركود المكتشف ، يتم توقع قنوات N أيضًا (انظر أدناه).

أي أنه في البنية الناتجة ، يتم استخدام عدد صغير ثابت من C = 24 قناة في كل طبقة ، وتقلل الثلاثة الأولى من الدقة من الدقة ، وتزيد التلفيفات اللاحقة (وحدة السياق) من حقل الاستلام لكل عنصر من عناصر خريطة المعالم.
يشير جدول معلمات هندسة العمارة ، من بين أشياء أخرى ، إلى ما إذا كان الالتفاف على الطبقة الحالية قابل للفصل. تشابك منفصلة يمكن نظريا إعطاء تسريع لترتيب k ^ 2 مرات بالمقارنة مع الالتفاف التقليدية ، حيث k هو حجم المرشح. في الممارسة العملية ، يمكن أن يكون التسارع أقل بكثير (كل هذا يتوقف على دقة الصورة ، وعدد مرشحات الإدخال والإخراج).
في البداية ، حاولنا جعل كل التلفيات قابلة للفصل ، ولكن هذا أدى إلى انخفاض الجودة كثيرًا. بعد ذلك ، قررنا جعل ملفات التلفاز الثلاثة الأولى قابلة للفصل فقط ، والتي تعمل بدقة أعلى للصور ، وبالتالي ، تتطلب حسابات أكثر من التوابع اللاحقة. في الوقت نفسه ، انخفضت جودة هذا البديل بالفعل بشكل طفيف. إجمالي بسبب الانفصال ، تسارع الشبكة العصبية بنسبة 20 ٪ أخرى.
تبقى اللحظة الأخيرة غير المفسرة - ماذا يعني الرقم N في الطبقة الأخيرة. N مسؤول عن عدد الأنواع المختلفة من الكائنات (في حالتنا ، الرموز الشريطية) التي نريد تمييزها. إذا كنا نفكر في أبسط الحالات - عندما تحتاج فقط إلى العثور على كائنات ، ولا تحتاج إلى تحديد نوعها (هذا رمز شريطي وبغض النظر عن) - يمكنك التفكير في N = 0. إذا كنا لا نزال نرغب في التمييز بين أنواع الرموز الشريطية (هذا رمز شريطي من النوع [مثل هذا]) ، فيتم إضافة قنوات الطبقة N الأخيرة والتي يتم فيها التنبؤ باحتمالات وجود نوع معين. الآن ، بعد تلقي الكشف في شكل المستطيل الذي يوجد به الرمز الشريطي ، يمكننا أن نحسب الاحتمالات للفئات داخل هذا المستطيل الموجود ، والتي يمكننا من خلالها معرفة نوع الباركود الموجود.
النتائج
بعد تلقي الحل ، يجب أن تنظر دائمًا حولك ومقارنة جودة الحل مع الدراسات السابقة. بشكل عام ، مهمة البحث عن الباركود ليست شائعة جدًا ، فعلى مدار السنوات العشر الماضية ، تم نشر 1-2 مقالات فقط كل عام (كما تعلم ، فإن أبسط طريقة للتغلب على أحدث ما في الأمر هي العثور على المهمة التي لا تحظى بشعبية ، والتي نجحنا في النهاية .. ) .. يقارن الجدول أدناه مع الأساليب الأخرى في مجموعتي بيانات ، حقق أحدهما نتائج أفضل.

التميز ، بالطبع ، ليس رائعًا للغاية ، لكنه لا يزال حاضرًا. ومع ذلك ، فإن الميزة الرئيسية للحل الموجود ليست بالضبط ، ولكن في السرعة - مقارنة بنفس YOLO على نفس GPU (GTX 1080) ، وبدقة وضوح أعلى للصورة ، تعمل طريقتنا بشكل أسرع بمقدار 3.5 مرات.

بالإضافة إلى ميزة السرعة ، هناك ميزة في وزن النموذج النهائي. يحتوي الكاشف على ما يقرب من 30 ألف مقياس ، في حين أن الغالبية العظمى من شبكات الالتفاف الحديثة (حتى شحذ للأجهزة المحمولة) لديها الملايين من المعلمات. يزن الحل النهائي أقل من LeNet ، والذي يحتوي على حوالي 60 ألف معلمة.
استنتاج
في الواقع ، يستند هذا العمل إلى فكرتين بسيطتين:
- الكشف من خلال التجزئة الدلالي.
- باستخدام سلسلة من الإلتواء المتوسع مع عدد صغير من القنوات لتحقيق أسرع نمو ممكن للحقل الاستقبالي.
كانت النتيجة بنية خفيفة وسريعة للغاية ، والتي أظهرت مع ذلك نتائج جيدة (وفازت حتى SOTA في المهمة غير الشعبية المتمثلة في العثور على الرموز الشريطية). بالإضافة إلى ذلك ، لا يقتصر تطبيق هذا النهج على الرموز الشريطية. استخدمنا نفس البنية للعثور على النص ، والبحث عن بطاقات العمل وجوازات السفر ، والحصول على نتائج جيدة لهذه المهام.
ومع ذلك ، تجدر الإشارة إلى أن هذا النهج في هذا النموذج له قيود. إذا كان هناك كائنان من نفس النوع قريبان جدًا ، فسيتمسكان معًا في واحد. ربما في السلسلة التالية ، سنخبرك بكيفية التعامل مع هذه المشكلة.
استنادًا إلى نتائج تجارب الباركود ، كتبنا مقالًا سيتم تقديمه في ICDAR2019 في سيدني.
أدب
- مقال مع نتائج تجاربنا وعدد كبير من التفاصيل. الباركود العالمي للكشف عن طريق الدلالي تجزئة
- مقال مراجعة ممتازة على تطوير أبنية للتقسيم الدلالي. صلة
- PixelLink: اكتشاف نص المشهد عبر تجزئة مثيل
- تتناول هذه المقالة استخدام الإلتواء الموسع لتحسين التنبؤات من خلال جمع المعلومات من السياق. تجميع السياق متعدد النطاقات من خلال التخفيفات المتسعة
مجموعة أبحاث رؤية الكمبيوتر