في عالم تطوير Android، فإن الاستفادة الكاملة من أدوات اليوم تصنع الفارق بين التطبيق الوظيفي والتطبيق المتطور حقًا. أحد المكونات الأكثر تنوعًا هو الماسح الضوئي المستند إلى ML Kit، القادر على تحويل الطريقة التي يتفاعل بها التطبيق مع بيئته من خلال الكاميرا. من قراءة الباركود ورموز الاستجابة السريعة إلى اكتشاف الكائنات أو التعرف على النصوص والوجوه، فإن الاحتمالات لا حصر لها تقريبًا مع النهج الصحيح.
يلتزم العديد من المطورين بالأساسيات، مما يؤدي إلى فشلهم في استغلال إمكانيات ML Kit على Android بشكل كامل. لا يقتصر دمجها بشكل صحيح على تضمين التبعيات وأمثلة الاختبار فحسب؛ والمفتاح هو تحسين الأداء، وتكوين كل معلمة لحالات محددة، وفهم جميع الخيارات والحيل التي توفرها الوثائق الرسمية وخبرة المحترفين الآخرين. في هذه المقالة، سنستعرض خطوة بخطوة وبالتفصيل كل ما تحتاج إلى معرفته لتحقيق أقصى استفادة من ماسح ML Kit على Android، بدءًا من التثبيت وحتى الإعدادات الأكثر تقدمًا، بما في ذلك تحليل الصور وإدارة الإحداثيات والنصائح الأساسية للعمل في الوقت الفعلي.
ما هو ML Kit ولماذا أحدث ثورة في المسح الضوئي على Android
ML Kit عبارة عن مجموعة أدوات تطوير برمجيات طورتها Google تعمل على دمج تقنيات الذكاء الاصطناعي القوية لمهام الرؤية الحاسوبية على الأجهزة المحمولة. فهو لا يسمح فقط بالتطبيق السهل لتقنيات التعلم الآلي، بل يفعل ذلك أيضًا على الجهاز نفسه، دون الحاجة إلى اتصال بالإنترنت. وهذا يجعلها أداة موثوقة وسريعة ومفيدة للتطبيقات التي تتطلب مسح التعليمات البرمجية، أو التعرف على الوجه، أو قراءة النص، أو التعرف على الكائنات.
يوفر التصميم المعياري لـ ML Kit المرونة لأولئك الذين يتطلعون إلى تضمين الأساسيات أو التخصيص حتى أصغر التفاصيل. يمكنك الاختيار بين النماذج المجمعة (أكبر حجمًا، ومتاحة منذ البداية) أو النماذج التي يتم تنزيلها ديناميكيًا (والتي توفر مساحة في التطبيق ولكنها تتطلب تنزيلًا أوليًا). تتيح لك هذه الثنائية تحديد أولوية حجم التطبيق أو مدى سرعة الاستخدام اعتمادًا على احتياجات المشروع.
دمج مجموعة ML Kit مع CameraX: التركيبة الفائزة
إذا كنت تبحث عن تكامل قوي بين كاميرا Android وإمكانيات ML Kit، فإن CameraX هو حليفك الأفضل. تسهل هذه المكتبة بشكل كبير الوصول إلى أجهزة الكاميرا وإدارة تدفق الصور، كما تسمح أيضًا بتراكب عناصر الواجهة ونتائج التعلم الآلي على معاينة الكاميرا.
من خلال الفصل محلل مجموعة التعلم الآلييمكنك توصيل مخرجات CameraX بأجهزة الكشف والمحللات الخاصة بمجموعة ML Kit. يقوم هذا المحلل بتنفيذ الواجهة محلل الصور، إدارة دقة الصورة وتحويلات الإحداثيات وتسليم النتائج بكفاءة، مما يبسط إلى حد كبير تطوير وظائف المسح المتقدمة.
يؤدي استخدام CameraController وPreviewView إلى تبسيط عرض الواجهة واستقبال النتائج. عند دمج ML Kit Analyzer، كل ما عليك فعله هو تحديد نوع الكاشف الذي تريده (على سبيل المثال، الرمز الشريطي) وكيفية رغبتك في تلقي النتائج. بالإضافة إلى ذلك، يهتم CameraX بالتفاصيل مثل تدوير الصورة ونسبة العرض إلى الارتفاع، مما يتجنب الأخطاء الشائعة في التطورات اليدوية.
كشف وفك تشفير الباركود: ما وراء المثال الأساسي
El مسح الباركود إنها إحدى حالات الاستخدام المميزة لـ ML Kit على Android. الشيء المثير للاهتمام هو أن واجهة برمجة التطبيقات الخاصة به تسمح لك بالذهاب إلى ما هو أبعد من اكتشاف رمز الاستجابة السريعة النموذجي. من GS1 وEAN-13 وPDF417 إلى Data Matrix أو Aztec، فإن التنوع يصل إلى الحد الأقصى، مما يفتح الباب أمام التطبيقات في مجال الخدمات اللوجستية والتجارة وتحديد المنتجات وغير ذلك الكثير.
عند تكوين الكاشف، يمكنك تقييده بالتنسيقات التي تحتاجها فعليًا، مما يؤدي إلى زيادة السرعة وانخفاض استهلاك الموارد. من خلال تقييد البحث، تصبح المعالجة أكثر كفاءة وتستجيب بشكل أفضل في الوقت الفعلي.
ومن بين الخيارات المميزة:
- تمكين جميع الرموز الشريطية المحتملة (): إنه يسمح لك باكتشاف جميع الرموز المحتملة الموجودة في الصورة، حتى لو لم تتمكن من فك تشفير بعضها بعد. يعد هذا مفيدًا عندما يحتاج المستخدم إلى تكبير الصورة أو التركيز عليها بشكل أفضل.
- تعيين خيارات اقتراح التكبير (): تمكين التكبير التلقائي، حتى يتمكن التطبيق من اقتراح مقدار التكبير الذي يجب أن تقوم به الكاميرا تلقائيًا لتحقيق أقصى قدر من قابلية قراءة الكود المكتشف.
يعد الاقتراح التلقائي في Zoom ميزة جديدة رئيسية مما يعمل على تحسين تجربة المستخدم، خاصة في السياقات التي تختلف فيها المسافة أو حجم الرموز بشكل كبير. يمكنك تنفيذ ما تريد بنفسك رد لضبط معلمات التكبير وفقًا لتوصيات كاشف ML Kit.
إعداد الصور المدخلة بشكل صحيح
أحد أهم العوامل المؤثرة على أداء ماسح ML Kit هو جودة وحجم الصور المدخلة. تضع الوثائق الرسمية التركيز الكبير على وحدات البكسل والدقة الكافية، حيث تعتمد دقة الاكتشاف بشكل مباشر على تمثيل البيانات في الصورة.
على سبيل المثال، بالنسبة لرموز EAN-13، يجب أن يكون عرض الأشرطة والمسافات 2 بكسل على الأقل؛ يجب ألا يقل عرض الكود بأكمله عن 190 بكسل. بالنسبة للتنسيقات الأكثر تعقيدًا مثل PDF417، تكون الأبعاد المطلوبة أكبر، حيث تصل إلى 1156 بكسل عرضًا لسطر واحد.
التركيز والقرار أمران حاسمان. إذا قام المستخدم بالتقاط صورة ضبابية أو منخفضة الدقة، فقد تكون النتائج غير منتظمة. تتمثل الممارسة الجيدة في اقتراح صور بدقة 1280 × 720 أو 1920 × 1080، طالما يسمح أداء الجهاز بذلك. إذا كان زمن الوصول يمثل مشكلة، فيمكنك تقليل الدقة، ولكن تأكد من أن الكود يشغل أكبر قدر ممكن من الصورة.
تتيح لك واجهة برمجة التطبيقات الخاصة بـ ML Kit تحويل مصادر الصور التي تتلقاها من الكاميرا إلى صورة الإدخال. يمكنك بناء هذا الكائن من:
- وسائط خاصة بالكاميرا.صورة.
- خريطة نقطية أو ByteBuffer أو ByteArray.
- ملف URI (مفيد لتحميل الصور من المعرض).
في حالة CameraX، يتم حل العديد من هذه التحويلات تلقائيًا.، وخاصة فيما يتعلق بتدوير الصورة وتسليم الإطار في الوقت الحقيقي. يؤدي هذا إلى إزالة قدر كبير من الوزن عن المطور ويضمن أن الصورة المعالجة صحيحة دائمًا.
معالجة الصور وإدارة النتائج
بمجرد إعداد صورة الإدخال، يقوم كاشف ML Kit بمعالجة الصورة وإرجاع قائمة بالنتائج. بالنسبة للرموز الشريطية، سوف تتلقى الكائنات الباركود التي تسمح لك بالوصول إلى الإحداثيات في الصورة، والقيمة المفكوكة، ونوع البيانات (عنوان URL، جهة الاتصال، النص، وما إلى ذلك)، وحتى السمات الإضافية إذا كانت متاحة.
إدارة هذه النتائج مرنة. يمكنك تراكب المعلومات على الصورة، والتفاعل مع المستخدم (على سبيل المثال، عن طريق فتح رابط ويب إذا كان رمز QR)، أو حفظ القيم المكتشفة في قاعدة بيانات. بفضل استخدام المستمعينيمكنك إدارة كل من النجاحات والأخطاء أو أحداث الصور غير المعترف بها.
في التكامل مع CameraX، من الضروري إغلاق كل منها بشكل صحيح إيماج بروكسي بعد معالجتها، لتجنب تسرب الذاكرة والحفاظ على سيولة التحليل في الوقت الحقيقي.
التحسين للتحليل في الوقت الحقيقي
يتم إطلاق العنان للإمكانات الكاملة لـ ML Kit عند معالجة الصور في الوقت الفعلي، على سبيل المثال، من بث فيديو. للحفاظ على تجربة سلسة وخالية من التأخير، هناك العديد من النصائح الأساسية:
- لا تستخدم أقصى دقة أصلية للكاميرا إلا إذا كان ذلك ضروريًا للغاية. في كثير من الحالات، تكون الصور بدقة 2 ميجا بكسل أكثر من كافية وتعمل على تحسين سرعة المعالجة.
- تقليل الدقة إذا كانت السرعة هي الأولوية، ولكن الحفاظ على الحد الأدنى الضروري للترميز الدقيق.
- في تدفقات الفيديو، قد يعطي الكاشف نتائج مختلفة بين الإطارات المتتالية. من المستحسن الانتظار على الأقل عدة اكتشافات متطابقة متتالية قبل اعتبار النتيجة صالحة.
- يحدد عدد المكالمات إلى جهاز الكشف. على سبيل المثال، إذا كانت الصورة قيد المعالجة بالفعل، فتجاهل الإطارات اللاحقة حتى تنتهي.
- إذا كنت تستخدم CameraX، فتأكد من ضبط الاستراتيجية تحليل الصورة.استراتيجية_الاحتفاظ_بالأحدث_فقط لتقديم أحدث صورة دائمًا والحفاظ على مرونة التطبيق.
- لتراكب الرسومات على الصورة (على سبيل المثال، المربعات المحددة)، يقوم البرنامج أولاً بمعالجة الصورة ثم يقوم بعرض كل من الصورة والتراكب في تمريرة واحدة، مما يؤدي إلى تحسين كمية عمل الرسومات لكل إطار.
نوع تنسيق الصورة مهم أيضًا. إذا كنت تستخدم Camera2، فاختر YUV_420_888؛ بالنسبة لواجهات برمجة التطبيقات القديمة، NV21 يضمن التوافق والسرعة.
اكتشاف الكائنات وتتبعها في ML Kit
لا تقتصر إمكانات ماسح ML Kit على الباركود فحسب: حيث يعد اكتشاف الكائنات وتتبعها ميزة رئيسية أخرى. تتيح لك واجهة برمجة التطبيقات هذه تحديد ما يصل إلى خمسة كائنات في صورة أو إطار، والحصول على موقعها، بالإضافة إلى تعيين معرف تتبع فريد لكل منها. عند العمل مع الفيديو في الوقت الفعلي، يمكنك تتبع حركة الكائن عبر الإطارات المتعاقبة بدقة كاملة.
تتيح لك إعدادات اكتشاف الكائنات ما يلي:
- اختر بين وضع الإرسال (وضع التدفق)، مُحسَّن لتحقيق زمن انتقال منخفض والتتبع، ووضع الصورة الفردية (وضع الصورة الفردية).
- قم بتشغيل أو إيقاف تصنيف الكائنات إلى فئات واسعة (الأزياء، الطعام، المنزل، الأماكن، النباتات، الغرباء).
- قم بتعيين ما إذا كنت تريد معالجة كائنات متعددة في وقت واحد أو الكائن الأكثر بروزًا فقط.
تتراوح التطبيقات من التعرف على المنتجات في المتاجر، وتحليل النباتات أو الحيوانات في التطبيقات التعليمية، إلى أنظمة المساعدة اللوجستية والمستودعات المتقدمة.
تتبع عملية إعداد الصورة وإدارة الدوران نفس المبادئ المذكورة في مسح الكود، وينصح باستخدام صورة الإدخال تم إنشاؤه مباشرة من التنسيقات المدعومة لتحقيق أقصى قدر من الأداء.
التعرف على النص والكشف عن الوجه
يعد التعرف على النص (OCR) وتحليل الوجه في الوقت الفعلي من الركائز الأساسية الأخرى لمجموعة ML Kit. تتمتع واجهة برمجة التطبيقات النصية بالقدرة على تحديد موقع الكتل والخطوط والعناصر داخل الصورة، وإرجاع موقعها الدقيق والمحتوى المعترف به، حتى بالنسبة للأحرف المعقدة أو اللغات المتنوعة.
تضيف خاصية التعرف على الوجه القدرة على تحديد الخطوط العريضة والميزات المحددة (العينين والفم والأنف وما إلى ذلك)، وإنشاء الاحتمالات المرتبطة بالإيماءات (مثل الابتسام أو الرمش)، والرسم على الصورة لتصور النتائج. من خلال دمج الفئات المخصصة، يمكنك، على سبيل المثال، تراكب المربعات أو النقاط على كل وجه تم اكتشافه وعرض معلومات مختلفة للمستخدم.
يتطلب هذا النوع من التنفيذ بعض الإدارة الإضافية من حيث التمثيل الرسومي.، ولكن التكامل مع CameraX و تراكب رسومي يجعل العملية أسهل. يمكن للمطورين تخصيص الواجهة بالكامل وتكييف نتائج التحليل التلقائي مع النمط المرئي المطلوب.
نصائح للحصول على تجربة مستخدم مثالية
لا يعتمد نجاح ميزة المسح المتقدمة على الخوارزميات فقط؛ ومن المهم أيضًا الاهتمام بتجربة المستخدم. وفيما يلي بعض الإرشادات المفيدة:
- تأكد من أن الكائنات التي تريد اكتشافها بارزة بدرجة كافية وتتمتع بتفاصيل مرئية. قد تتطلب العناصر ذات التباين المنخفض أو التفاصيل الغامضة من المستخدم تحريكها بالقرب من الكاميرا.
- عند استخدام تصنيف الكائنات، كن مستعدًا للتعامل مع الكائنات غير المعروفة أو الغامضة، مع تقديم ملاحظات واضحة للمستخدم.
- قم بتضمين إشارات مرئية أو نصية في الواجهة لمساعدة المستخدم على التركيز بشكل صحيح، وتجنب الإحباط بسبب النتائج الخاطئة.
- إذا تم اكتشاف عدة كائنات، ففكر في الخيارات المتاحة للمستخدم لتحديد النتيجة ذات الصلة (على سبيل المثال، في التطبيقات التعليمية أو تطبيقات الجرد).
- تذكر أن تقوم بتكييف واجهتك ورسائل الخطأ الخاصة بك مع السياقات غير المتصلة بالإنترنت، وخاصةً إذا كنت تستخدم نماذج تم تنزيلها ديناميكيًا.
تحليل النتائج والأمثلة العملية
قدرات مجموعة ML إنها تسمح لنا بتقديم معلومات غنية ومنظمة للغاية للمستخدم النهائي. بالنسبة لكل من اكتشاف الكائنات ومسح الباركود، لديك مواضع وقيم وأنواع ومستويات ثقة. يتيح هذا إمكانية عرض الجداول أو الملخصات أو تنفيذ إجراءات تلقائية (مثل فتح الروابط أو تخزين المعلومات في الخلفية).
على سبيل المثال، في حالة اكتشاف الكائن، يمكنك تقديم الفئة المحددة للمستخدم مع مستوى الثقة الخاص بها، ومعرف التتبع لمقارنة نفس الكائن عبر إطارات متعددة، وحدود المنطقة المكتشفة. لذا، في تطبيق المخزون، من السهل تسليط الضوء على الكائن الرئيسي ومتابعته إطارًا تلو الآخر لمعالجة الإجراءات أو تشغيل الأتمتة.
يتيح لك التكامل بين وحدات ML Kit المختلفة الجمع بين الوظائف:تخيل قراءة الرمز الشريطي على كائن تم اكتشافه، والحصول على قيمته وتصنيفه، كل ذلك في الوقت الحقيقي وعلى صورة الكاميرا. لا يمكن تحقيق هذه الأنواع من التآزر إلا من خلال التكوين المتقدم والإتقان الكامل لجميع الخيارات المتاحة.
كيفية الحفاظ على كل شيء محدثًا وتجنب المشاكل
معدل تحديث مكتبات ML Kit مرتفع ومن المهم أيضًا البقاء على اطلاع بكل إصدار جديد، حيث يتم تقديم تحسينات في الأداء والتوافق والميزات الجديدة بشكل متكرر.
تحقق دائمًا من التبعيات في ملفك بناء وتأكد من أن الحد الأدنى لمستوى SDK محدد بشكل صحيح (عادةً API 21 أو أعلى). قم أيضًا بمراجعة طرق التهيئة، حيث قامت الإصدارات الأحدث بتحسين بعض العمليات وتقديم ميزات جديدة، مثل تنزيلات النماذج التلقائية عند تثبيت التطبيق.
توصية أخرى هي استشارة تطبيقات العينة ومواد التدريس المتوفرة في كل من وثائق Google الرسمية ومستودعات المصدر المفتوح. تتضمن هذه الموارد غالبًا ما يلي: اختبارات الأداء، وأمثلة التكامل مع واجهات متقدمة، وحلول للأخطاء الشائعة.
الحفاظ على التوافق والتحسين عبر الأجهزة المتنوعة
أحد تحديات تطوير تطبيقات Android هو التنوع الكبير في الأجهزة والدقة والكاميرات المتوفرة في السوق. تم تحسين ML Kit لمجموعة واسعة من الأجهزة، ولكن من الأفضل دائمًا اختبار التطبيق على أجهزة متعددة، سواء كانت عالية الجودة أو منخفضة الجودة، للتأكد من أن جودة المعالجة والجودة المرئية مناسبة في جميع الحالات.
إذا كان جمهورك يستخدم في المقام الأول أجهزة منخفضة الطاقة، فقم بإعطاء الأولوية للكفاءة والسرعة، والتضحية بالدقة أو نطاق الوظائف إذا لزم الأمر لتجنب المساس بتجربة المستخدم.
نختتم بنظرة عامة تجدد النقاط الرئيسية لتحقيق أقصى استفادة من ماسح ML Kit على Android: اختر أفضل استراتيجية للتكامل بين CameraX وML Kit، وقم بإعداد صور الإدخال الخاصة بك بشكل جيد، وإدارة التنسيقات والدقة بشكل صحيح وفقًا لاستخدامك، وقم بتخصيص واجهتك وسير العمل لتوفير تجربة قوية ومتقدمة قدر الإمكان لكل من المستخدمين والمطورين.