پردازش تصویر برای کارهایی مانند تشخیص پلاک خودرو را می توان با استفاده از تنظیمات مختلف بسته به نیازهای خاص، منابع و محدودیت های پروژه به دست آورد. در اینجا چند سیستم و تنظیمات بالقوه وجود دارد:
Edge computing: این شامل انجام پردازش تصویر به طور مستقیم بر روی دستگاهی است که تصاویر را می گیرد (به عنوان مثال، خود دوربین یا یک دستگاه لبه متصل). این اغلب زمانی انجام می شود که کاهش تأخیر حیاتی است، یا زمانی که پهنای باند شبکه محدود یا غیرقابل اعتماد است. همچنین یک رویکرد خوب برای حفظ حریم خصوصی است، زیرا تصاویر هرگز نیازی به ترک دستگاه محلی ندارند.
برای پیادهسازی محاسبات لبه، ممکن است از سختافزار تخصصی مانند رایانه تک بردی (مانند Raspberry Pi) یا یک دستگاه هوش مصنوعی لبه (مانند سری Nvidia Jetson، Google Coral) استفاده کنید. این دستگاه ها اغلب می توانند شبکه های عصبی سبک وزن را برای کارهایی مانند تشخیص اشیا با YOLO اجرا کنند.
رایانش ابری: در این تنظیمات، دستگاهی که تصاویر را می گیرد، آنها را برای پردازش به یک سرور متمرکز یا ابر می فرستد. این ممکن است زمانی ضروری باشد که وظیفه پردازش به منابع محاسباتی قابل توجهی نیاز دارد، یا زمانی که نتایج پردازش نیاز به ادغام با داده های دیگر در فضای ابری دارد.برای محاسبات ابری، ممکن است از یک ارائه دهنده خدمات ابری مانند خدمات وب آمازون (AWS)، Google Cloud یا Microsoft Azure استفاده کنید. این سرویسها اغلب نمونههای GPU قدرتمندی را ارائه میکنند که میتوانند شبکههای عصبی پیچیده را مدیریت کرده و حجم بالایی از داده را پردازش کنند. همچنین میتوانید از پلتفرمهای یادگیری ماشینی آنها (به عنوان مثال، Google AI Platform، Amazon SageMaker) برای آموزش و استقرار مدلهای خود استفاده کنید.
سیستم های ترکیبی: همچنین ممکن است از ترکیبی از محاسبات لبه و ابری استفاده کنید. برای مثال، ممکن است برخی از پردازش های اولیه را روی دستگاه لبه انجام دهید (به عنوان مثال، فیلتر کردن یا فشرده سازی اولیه)، سپس نتیجه را برای پردازش بیشتر به ابر ارسال کنید.
در همه موارد، تشخیص پلاکها از طریق فید ویدیوی بلادرنگ احتمالاً با استفاده از یک مدل یادگیری ماشینی مانند YOLO (شما فقط یک بار نگاه میکنید)، که برای تشخیص پلاکها آموزش دیده است، به دست میآید. بسته به تنظیمات سیستم شما، این مدل می تواند بر روی دستگاه لبه یا سرور ابری اجرا شود.به یاد داشته باشید، انتخاب بین این سیستم ها به شدت به نیازهای خاص پروژه شما بستگی دارد، از جمله ملاحظات تاخیر، پهنای باند، حریم خصوصی، هزینه و قابلیت اطمینان. همچنین شایان ذکر است که تکنولوژی در این زمینه به سرعت در حال تکامل است، بنابراین بهترین راه حل امروزی ممکن است بهترین راه حل در چند سال آینده نباشد.
بردهای Nvidia Jetson برای کاربردهای هوش مصنوعی لبهای طراحی شدهاند و کاملاً قادر به اجرای کارهایی مانند تشخیص اشیا با استفاده از YOLO در زمان واقعی هستند. نرخ فریم دقیقی که می توانید بدست آورید به عوامل مختلفی بستگی دارد، از جمله:
پیچیدگی مدل: یک مدل ساده تر یا کوچکتر سریعتر از یک مدل بزرگتر و پیچیده تر اجرا می شود. برای مثال، ممکن است با YOLOv3-tiny (نسخه کوچکتر YOLOv3) نسبت به مدل کامل YOLOv3 عملکرد بهتری داشته باشید.
وضوح ورودی: پردازش تصاویر کوچکتر سریعتر از پردازش تصاویر بزرگتر است. بنابراین، ممکن است برای دستیابی به نرخ فریم بالاتر، نیاز به کاهش وضوح تصاویر ورودی خود داشته باشید.
بهینهسازیها: استفاده از کتابخانههای نرمافزاری طراحیشده برای سختافزار Jetson، مانند TensorRT انویدیا، میتواند زمان استنتاج را به میزان قابل توجهی افزایش دهد. در مورد نرخ فریم دقیق، ارائه یک عدد مشخص بدون دانستن بیشتر در مورد مدل، وضوح ورودی و سایر عوامل دشوار است. با این حال، به طور کلی، ممکن است انتظار داشته باشید که به نرخ فریم در محدوده چند تا چند ده فریم در ثانیه دست یابید. برای جبران تاخیر در پردازش، ممکن است استراتژی های زیر را در نظر بگیرید:
پردازش ناهمزمان: شما می توانید تصاویر را در یک رشته ضبط کنید در حالی که تصاویر را در رشته دیگر پردازش می کنید. این به شما امکان می دهد زمان های ضبط و پردازش را با هم همپوشانی کنید و به طور موثر نرخ فریم را افزایش دهید.
پردازش دسته ای: اگر مدل شما از آن پشتیبانی می کند، می توانید چندین تصویر را همزمان پردازش کنید. این می تواند کارآمدتر از پردازش تصاویر در یک زمان باشد.
هرس یا کوانتیزاسیون مدل: این تکنیکها پیچیدگی مدل شما را کاهش میدهند و در عین حال بیشتر دقت آن را حفظ میکنند. این می تواند زمان استنتاج را سرعت بخشد.
از محاسبات با دقت کمتر استفاده کنید: انجام محاسبات به صورت نیمه دقیق (FP16) به جای تک دقیق (FP32) می تواند سرعت محاسبات شما را بدون کاهش قابل توجهی در دقت دو برابر کند. به یاد داشته باشید، کلید پردازش بلادرنگ تعادل سرعت و دقت است. در بسیاری از موارد، ممکن است بهتر باشد که نتیجه ای کمی دقیق تر داشته باشیم که فوراً در دسترس باشد تا نتیجه ای بسیار دقیق که خیلی دیر به دست می آید تا مفید باشد.