يحتوي Vision في iOS 11 على كل ما تحتاجه لإنشاء تطبيق يمكنه التعرف على أحرف النص مع حدوث التنفيذ في وقت واحد. لا تحتاج إلى معرفة فنية بالشفرات - التنقل في الميزة بسيط للغاية. علاوة على ذلك ، يكون التنفيذ سلسًا.
إطار الرؤية
يمكّنك إطار الرؤية من تنفيذ أي مهمة تتضمن تفاصيل الكمبيوتر بسهولة. تقوم البنية باكتشاف معالم الوجه والوجه ، والتعرف على الرمز الشريطي ، وتسجيل الصور ، وتتبع الميزات العامة ، واكتشاف النص. تتيح لك Vision أيضًا استخدام نماذج Core ML المخصصة لمهام مثل التصنيف أو اكتشاف الكائنات.
VN DetectTextRectanglesRequest
ال VN DetectTextRectanglesRequest هو طلب تحليل الصورة الذي يبحث عن مناطق النص المرئي في الصورة ؛ تقوم الميزة بإرجاع أحرف نصية كمربع محيط مستطيل بأصل وحجم.
إذا كنت معتادًا على استخدام سريع وتقوم بالبرمجة لفترة ، فمن المحتمل أنك تتساءل عن استخدام Vision عندما تكون هناك ميزات أخرى مثل image و AVFoundation. حسنًا ، الرؤية أكثر دقة وأكثر وضوحًا. الميزة متاحة أيضًا على مجموعة متنوعة من الأنظمة الأساسية. ومع ذلك ، قد يتطلب استخدام Vision مزيدًا من قوة المعالجة ووقت المعالجة.
لاستخدام Vision لاكتشاف النص ، ستحتاج إلى Xcode 9 وجهاز يعمل بنظام iOS 11.
إنشاء كاميرا باستخدام Avcapture
أولاً ، تحتاج إلى إنشاء كاميرا باستخدام AVCapture; هذا عن طريق تهيئة AVcapturesession كائن واحد لأداء الالتقاط في الوقت الحقيقي أو دون اتصال. بعد ذلك ، قم بإجراء الجلسة على اتصال الجهاز.
لتوفير الوقت من إنشاء واجهة مستخدم لتطبيقك ، ضع في اعتبارك أن يكون لديك مشروع مبتدئ ، في البداية ، سيمنحك هذا الوقت للتركيز على تعلم إطار عمل Vision.
- افتح مشروعك المبدئي. يجب أن تكون العروض في لوحة العمل جاهزة ومجهزة لك.
- على ال ViewController.swift ، ابحث عن قسم الكود بالوظائف والمنافذ.
- تحت المنفذ-ImageView ، دeclare جلسة ل AVcapturesession - يتم استخدام هذا متى أردت تنفيذ إجراءات بناءً على بث مباشر.
- تعيين AVcapturesession و ال نوع أفميديا إلى الفيديو لأنك ستجري تصوير الكاميرا لتمكينها من العمل بشكل مستمر
- تحديد جهاز الإخراج والإدخال
- الإدخال هو ما ستراه الكاميرا ، والإخراج هو الفيديو بتنسيق نوع محدد من KCVPixelFormatType_32GRA.
- أخيرًا ، أضف ملف طبقة فرعية يحتوي على مقاطع فيديو لـ imageView وابدأ الجلسة. تُعرف الوظيفة باسم inViewdidload. تحتاج أيضًا إلى ضبط إطار الطبقة.
استدعاء الوظيفة في مشاهدة طريقة.
نظرًا لأن الحدود لم يتم الانتهاء منها بعد ، قم بتجاوز viewDidLayoutSubViews () طريقة لتحديث الطبقات منضم.
بعد إصدار iOS 10 ، يلزم إدخال إضافي في Info.plist ، وهذا يوفر سببًا لاستخدام الكاميرا. يجب عليك أيضًا تعيين وصف استخدام الخصوصية والكاميرا.
كشف النص كيف يعمل إطار الرؤية
هناك ثلاث خطوات لتطبيق Vision على التطبيق.
- معالجات - هذا عندما تريد إطار العمل أن يفعل شيئًا ما بعد استدعاء الطلب.
- ملاحظات - هذا ما تريد أن تفعله بالبيانات المقدمة من قبلك ابتداء من طلب واحد
- الطلبات - هذا عندما تسأل عن إطار عمل الكشف
من الناحية المثالية ، يمكنك إنشاء طلب نصي واحد بتنسيق طلب VNdetecttextrectangles. هذا نوع من VNrequest الذي يحد حول النص. بعد أن يكمل إطار العمل التطبيق ، يمكنك المتابعة للاتصال بـ Dettexthandler وظيفة. ستحتاج أيضًا إلى معرفة الإطار الدقيق الذي تم التعرف عليه ، واضبطه على تقريرالصناديق= صحيح.
بعد ذلك ، حدد الملاحظات التي تحتوي على جميع نتائج طلب VNdetecttextrectangles، تذكر أن تضيف Vision إلى كاميرا الإخراج. نظرًا لأن Vision تكشف عن واجهات برمجة تطبيقات عالية المستوى ، فإن العمل معها آمن.
تتحقق الوظيفة مما إذا كان ملف سمبلبوفير موجود وطرح Avcaptureoutput. يجب عليك بعد ذلك المتابعة لإنشاء متغير واحد خيارات الطلب كنوع قاموس واحد VNimageoption. ال VNmage الخيار هو نوع من البنية التي تحتوي على خصائص وبيانات من الكاميرا. يجب عليك بعد ذلك إنشاء ملف VNimagerequesthandler وتنفيذ الطلب النصي.
تم اكتشاف رسم حدود حول النص
يمكنك أن تبدأ من خلال وجود إطار لرسم مربعين ، واحد لكل حرف يكتشفه والآخر لكل كلمة. الجداول هي مزيج من جميع مربعات الأحرف التي سيجدها طلبك.
- حدد النقاط في وجهة نظرك لمساعدتك في وضع المربعات.
- بعد ذلك ، قم بإنشاء ملف كالايص ؛ استعمال V مراقبة المستطيل لتحديد قيودك ، مما يجعل عملية تحديد المربع أسهل.
لديك الآن جميع وظائفك المحددة.
لتوصيل نقاطك ، ابدأ بتشغيل التعليمات البرمجية بشكل غير متزامن. يجب عليك بعد ذلك التحقق لمعرفة ما إذا كانت المنطقة موجودة ضمن نتائجك من مراقبة VNText.
يمكنك الآن استدعاء وظيفتك ، والتي سترسم مربعًا داخل المنطقة. تحقق لمعرفة ما إذا كانت هناك مربعات أحرف داخل المنطقة ، ثم اتصل بالخدمة التي توفر مربعًا حول كل حرف.
بعد ذلك ، قم بإنشاء متغير طلب خيارات. يمكنك الآن إنشاء ملف VNImageRequestHandler الكائن وتنفيذ طلب النص الذي قمت بإنشائه.
أخيرًا ، تتمثل الخطوة الأخيرة في تشغيل رمز الرؤية الخاص بك مع البث المباشر. ستحتاج إلى إخراج إخراج الفيديو وتحويله إلى سمبلبوفير.
نصائح إضافية
- حاول دائمًا اقتصاص الصورة ومعالجة القسم الذي تحتاجه فقط. سيؤدي ذلك إلى تقليل وقت المعالجة وبصمة الذاكرة
- قم بتشغيل تصحيح اللغة عند التعامل مع الأحرف غير الرقمية ثم قم بإيقاف تشغيله عند التعامل مع حرف رقمي
- قم بتضمين التحقق من صحة سلاسل الأرقام التي تم التعرف عليها لتأكيد الدقة والقضاء على إظهار قيمة خاطئة للمستخدم.
- تعد أداة التحكم في كاميرا المستندات هي أفضل رفيق للتعرف على النص نظرًا لأن جودة الصورة تلعب دورًا مهمًا في التعرف على النص.
- ضع في اعتبارك تعيين حد أدنى لارتفاع النص لزيادة الأداء.
مع Vision ، لديك كل ما تحتاجه للتعرف على النص. نظرًا لأن Vision سهل الاستخدام ويستغرق وقتًا قصيرًا للتنفيذ ، فإن استخدامه يكاد يكون مكافئًا للعب مع Legos. حاول اختبار تطبيقك على كائنات وخطوط وإضاءة وأحجام مختلفة. يمكنك أيضًا إثارة إعجاب نفسك من خلال الجمع بين Vision و Core ML.