بازشناسی تصویر در اپلیکیشن iOS — از صفر تا صد

۲۰ بازدید
آخرین به‌روزرسانی: ۰۴ مهر ۱۴۰۲
زمان مطالعه: ۳ دقیقه
بازشناسی تصویر در اپلیکیشن iOS — از صفر تا صد

این روزها عملاً ناممکن، ممکن شده است. دست کم در مورد موضوع این مقاله یعنی بازشناسی تصویر در اپلیکیشن iOS چنین است. در این راهنمای کوتاه با شیوه ساخت یک مدل CoreML با استفاده از Microsoft Custom Vision آشنا می‌شویم. این مدل می‌تواند اشیا را در یک عکس شناسایی کند و شیوه استفاده از آن در یک اپلیکیشن iOS را مورد بررسی قرار می‌دهیم. به منظور مطالعه این راهنما شما باید درکی مقدماتی از مفاهیم توسعه iOS و زبان سوئیفت داشته باشید. با ما همراه باشید تا با روش پیاده‌سازی بازشناسی تصویر در اپلیکیشن iOS آشنا شویم.

ابتدا باید یک مدل CoreML ایجاد کنیم. کار خود را با بررسی شیوه استفاده از Microsoft Custom Vision آغاز می‌کنیم. ابتدا وارد وب‌سایت customvision.ai (+) شوید و یک پروژه جدید ایجاد کنید. نام و توضیحات پروژه را وارد کرده و نوع پروژه را روی classification قرار دهید. نوع classification را روی multilabel قرار دهید و domain را نیز روی general تنظیم کنید. دلیل انتخاب general این است که می‌خواهیم مدل را در اپلیکیشن iOS جاسازی کنیم. همه این موارد را می‌توانید در ادامه تغییر دهید:

بازشناسی تصویر در اپلیکیشن iOS

گام بعدی آپلود کردن تصاویر اشیایی است که می‌خواهیم بازشناسی کرده و با نام پروژه تگ‌گذاری کنیم. با انتخاب multilabel می‌توانیم از تگ‌های چندگانه روی یک تصویر استفاده کنیم. زمانی که تعداد مناسبی از تصاویر داشته باشید، می‌توانید شروع به آموزش دادن مدل بکنید. همچنین می‌توانید با استفاده از دکمه quick test و آپلود برخی تصاویر برای تست بررسی کنید آیا مدل به خوبی کار می‌کند یا نه و آیا با مدلی که آموزش داده‌اید تطبیق دارد یا نه.

بازشناسی تصویر در اپلیکیشن iOS

دریافت مدل CoreML

زمانی که کار آموزش دادن مدل پایان یافت، باید آن را دانلود کرده و در پروژه Xcode ایمپورت کنیم. برای دانلود مدل باید به زبانه performance برویم تا در قالب CoreML اکسپورت کنیم. سپس می‌توانید فایل را به پوشه پروژه Xcode اضافه کنید. در آنجا یک کلاس به طور خودکار برای استفاده آتی تولید می‌شود.

راه‌اندازی دوربین دستگاه و View

کار خود را با ایجاد یک UIViewController آغاز می‌کنیم. این نما (View) جایی است که باید بازخورد را از دوربین iPhone ثبت کنیم. برای این که بتوانید ویدئوی زنده در خروجی ارائه کنید باید پروتکل زیر را اضافه کنید:

AVCaptureVideoDataOutputSampleBufferDelegate

زمانی که نما بارگذاری شد یک AVCaptureSession اضافه می‌کنیم و دستگاهی برای وارد کردن داده‌ها به session تعریف می‌کنیم. در این مثال ما دستگاه پیش‌فرض را برای ویدئو انتخاب می‌کنیم. همچنین یک AVCaptureVideoDataOutput ایجاد می‌کنیم که از روی آن captureSession اقدام به دریافت فریم‌های ویدئو می‌کند و در متد captureOutput ارائه خواهد شد. آخرین کاری که باید انجام دهیم این است که یک AVCaptureVideoPreviewLayer ایجاد کنیم به طوری که بتوانیم خروجی دوربین را در اپلیکیشن خود تماشا کنیم. سپس لایه پیش‌نمایش به صورت یک زیرلایه به نمای اصلی ما اضافه می‌شود که کل فریم را می‌پوشاند.

بازشناسی تصویر در اپلیکیشن iOS

دریافت خروجی ویدئو

برای مدیریت خروجی و اجرای طبقه‌بندی تصویر باید متد captureOutput را پیاده‌سازی کنیم که از سوی پروتکل AVCaptureVideoDataOutputSampleBufferDelegate تعریف می‌شود. برای این که بتوانیم تصاویر را از خروجی آنالیز کنیم، CVPixelBuffer را از CMSampleBuffer دریافت می‌کنیم.

سپس باید درخواست تحلیل تصویر تعیین کنیم که برای هر فریم اجرا می‌شود. ابتدا باید یک VNCoreMLModel با کلاس CoreML آموزش یافته که از Custom Vision دانلود کردیم ایجاد کنیم. توجه کنید که نام کلاس شما از نام ‎_92ed7d5fe39f4438b1ef3e98e3ce80c3_1 متفاوت است:

بازشناسی تصویر در اپلیکیشن iOS

برای هر نتیجه بررسی می‌کنیم آیا نتیجه نرخ اطمینان به قدر کفایت بالایی دارد و همچنین آیا یک شناسه دارد یا نه. در این مثال یک شناسه خاص را بررسی می‌کنیم. این شناسه تگ‌های اضافه شده به تصاویر در CustomVision هستند. اگر اطمینان به قدر کافی بالا داشته باشیم، می‌توانیم کاملاً مطمئن باشیم که شناسه از نوع صحیح است و سپس دریافت ویدئو را موقف کرده و نتیجه را به نخ اصلی ارسال می‌کنیم. در این مورد یک پنجره info ساده با یک پیام به این منظور ایجاد کرده‌ایم.

سخن پایانی

در این مقاله به بررسی یک روش ساده برای پیاده‌سازی باز‌شناسی اشیا در اپلیکیشن iOS پرداختیم. همه کدهای مورد نیاز برای پیاده‌سازی یک دوربین، پیش‌نمایش و بازشناسی اشیا در اپلیکیشن iOS نیز ارائه شده‌اند و شما اینک می‌توانید زمانی که شیئی در جلوی دوربین بازشناسی می‌شود، به آن واکنش نشان دهید.

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
capgemini-norway
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *