زمان تخمینی مطالعه: 16 دقیقه

این مقاله مقدمه‌ای بر تشخیص اشیا و مروری بر پیشرفته‌ترین الگوریتم‌های تشخیص اشیا در بینایی کامپیوتری ارائه می‌دهد. تشخیص اشیا یک زمینه کلیدی در هوش مصنوعی است که به سیستم‌های کامپیوتری اجازه می‌دهد تا با تشخیص اشیاء در تصاویر یا ویدئوهای بصری، محیط خود را ببینند. در این مقاله به طور خاص، با موارد زیر آشنا خواهید شد:

تشخیص اشیاء مبتنی بر یادگیری عمیق چیست؟

تشخیص اشیاء یک کار بینایی کامپیوتری مهم است که برای شناسایی نمونه‌هایی از اشیاء بصری کلاس‌های خاص (مثلاً انسان‌ها، حیوانات، اتومبیل‌ها یا ساختمان‌ها) در تصاویر دیجیتالی مانند عکس‌ها یا فریم‌های ویدیو استفاده می‌شود. هدف از تشخیص اشیاء، توسعه مدل‌های محاسباتی است که بنیادی‌ترین اطلاعات مورد نیاز برنامه‌های بینایی کامپیوتری را ارائه می‌دهد:در واقع در این مفهوم هدف جواب به این است که « کدام شی کجای تصویر است؟».

تشخیص اشیا یک کار اساسی بینایی کامپیوتر برای شناسایی و بومی‌سازی اشیاء در تصاویر و ویدئو است

– تشخیص شخص

تشخیص شخص گونه‌ای از تشخیص اشیاء است که برای تشخیص یک کلاس اولیه «شخص» در تصاویر یا فریم‌های ویدیویی استفاده می‌شود. شناسایی افراد در جریان‌های ویدئویی یک کار مهم در سیستم‌های نظارت تصویری مدرن است. الگوریتم‌های یادگیری عمیق اخیر نتایج قوی تشخیص فرد را ارائه می‌دهند. بیشتر تکنیک‌های آشکارساز شخص مدرن بر روی نماهای جلویی و نامتقارن آموزش داده می‌شوند. با این حال، مدل‌های یادگیری عمیق مانند YOLO که برای تشخیص فرد در مجموعه داده‌های نمای جلویی آموزش داده شده‌اند، هنوز نتایج خوبی را در هنگام اعمال شمارش افراد نمای بالای سر ارائه می‌کنند (TPR 95٪، FPR تا 0.2٪).

– چرا یادگیری عمیق در Object Detection مهم است؟

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

همانطوری که بینایی کامپیوتر در حال رشد و بلوغ است، از “شیب تند روشنگری” به “فلات بهره وری” در چرخه هایپ گارتنر(Gartner Hype Cycle) تغییر کرده است. با پیشرفت تکنولوژی، افزایش پذیرش و کاربردهای عملی در صنایع، بینایی کامپیوتر، از جمله تشخیص اشیا، در حال ورود به مرحله ثبات و یکپارچگی گسترده است. اکنون تمرکز از مراحل آزمایشی به پالایش و بهینه‌سازی برنامه‌های کاربردی موجود تغییر کرده و گامی مهم به سوی تحقق کامل و تأثیر آن بر شرکت‌ها در بخش‌های مختلف است.

تشخیص اشیاء و یادگیری عمیق

در چند سال گذشته، پیشرفت‌های سریع در تکنیک‌های یادگیری عمیق، شتاب زیادی در فناوری تشخیص اشیاء ایجاد کرده است. با شبکه‌های تشخیص اشیاء مبتنی بر یادگیری عمیق و قدرت محاسباتی پردازنده‌های گرافیکی، عملکرد آشکارسازها و ردیاب‌های شی بسیار بهبود یافته است و به پیشرفت‌های قابل توجهی در تشخیص اشیاء دست یافته است.

سیستم هوش مصنوعی کاربردی بر اساس الگوریتم YOLOv7 آموزش دیده برای تشخیص هواپیما

یادگیری ماشینی (ML) شاخه‌ای از هوش مصنوعی (AI) است و اساساً شامل یادگیری الگوهایی از نمونه‌ها یا داده‌های نمونه می‌شود، زیرا ماشین به داده‌ها دسترسی پیدا می‌کند و می‌تواند از آن یاد بگیرد (یادگیری نظارت شده بر روی تصاویر حاشیه‌نویسی). یادگیری عمیق یک شکل تخصصی از یادگیری ماشینی است که شامل یادگیری در مراحل مختلف می‌شود. برای کسب اطلاعات بیشتر در مورد پیشینه فناوری، مقاله‌های ما را بررسی کنید: یادگیری ماشینی و یادگیری عمیق چیست؟

– آخرین پیشرفت‌های تکنولوژیک در بینایی کامپیوتر

تشخیص و ردیابی اشیاء مبتنی بر یادگیری عمیق پایه اساسی طیف گسترده‌ای از برنامه‌های بینایی کامپیوتری مدرن است. به عنوان مثال، تشخیص اشیاء هوشمند در نظارت و مراقبت‌های بهداشتی، رانندگی خودکار، نظارت تصویری هوشمند، تشخیص ناهنجاری، بینایی ربات و بسیاری موارد دیگر را امکان پذیر می‌کند. هر برنامه بینایی مبتنی بر AI معمولاً به ترکیبی از الگوریتم‌های مختلف نیاز دارد که یک جریان (خط لوله) از مراحل پردازش چندگانه را تشکیل می‌دهد. فناوری تصویربرداری مبتنی بر هوش مصنوعی در سال‌های اخیر پیشرفت زیادی کرده است. طیف گسترده‌ای از دوربین‌ها از جمله دوربین‌های امنیتی تجاری و دوربین‌های مدار بسته را می‌توان استفاده کرد.

– معایب و مزایای تشخیص اشیاء

آشکارسازهای اشیاء فوق العاده انعطاف‌پذیر هستند و می‌توانند برای طیف گسترده‌ای از وظایف و برنامه‌های کاربردی سفارشی و با هدف خاص آموزش ببینند. شناسایی خودکار اشیا، افراد و صحنه‌ها می‌تواند اطلاعات مفیدی را برای خودکارسازی وظایف (شمارش، بازرسی، تأیید و غیره) در زنجیره‌های ارزش کسب‌وکار فراهم کند. با این حال، نقطه ضعف اصلی الگوریتم‌های Object Detection این است که از نظر محاسباتی بسیار گران هستند و به قدرت پردازش قابل توجهی نیاز دارند. به خصوص، زمانی که مدل‌های تشخیص اشیاء در مقیاس بزرگ به کار گرفته می‌شوند، هزینه‌های عملیاتی می‌تواند به سرعت افزایش یابد و قابلیت اقتصادی موارد استفاده تجاری را به چالش بکشد.

الگوریتم تشخیص اشیاء مبتنبی بر یادگیری عمیق چگونه کار می‌کند؟

تشخیص اشیاء را می‌توان با استفاده از تکنیک‌های سنتی پردازش تصویر یا شبکه‌های یادگیری عمیق مدرن انجام داد.

  1. تکنیک‌های مبتنی بر پردازش تصویر معمولاً به داده‌های تاریخی برای آموزش نیاز ندارند و ماهیت آن‌ها بدون نظارت است. OpenCV یک ابزار محبوب برای کارهای پردازش تصویر است. از مزایای آن می‌توان بیان کرد که این در این مورد به تصاویر حاشیه نویسی نیاز نیست، زیرا انسان ها داده‌ها را به صورت دستی (برای آموزش تحت نظارت) برچسب‌گذاری می‌کنند. و اما از معایب آن می‌توان گفت که این تکنیک‌ها به عوامل متعددی محدود می‌شوند، مانند سناریوهای پیچیده (بدون پس‌زمینه تک رنگ)، انسداد (اشیاء تا حدی پنهان)، روشنایی و سایه‌ها، و جلوه‌های بهم ریختگی.
  2. روش‌های مبتنی بر یادگیری عمیق معمولاً به یادگیری تحت نظارت یا بدون نظارت بستگی دارند، اما روش‌های نظارت شده به استانداردی در وظایف بینایی رایانه بدل شده است. عملکرد این نوع الگوریتم‌ها توسط قدرت محاسباتی GPUها که سال به سال به سرعت در حال افزایش است، محدود می‌شود.

امروزه، تشخیص اشیاء مبتنی بر یادگیری عمیق به طور گسترده توسط محققان پذیرفته شده است و توسط شرکت‌های بینایی ماشین برای ساخت محصولات تجاری پذیرفته شده است.

تشخیص اشیاء مبتنی بر یادگیری عمیق برای وسایل نقلیه (ماشین، کامیون، دوچرخه و غیره). یک فریم نمونه از یک برنامه کاربردی تجاری بلادرنگ با تشخیص اشیاء مبتنی بر یادگیری عمیق.

بهترین الگوریتم تشخیص تصویر امروز

حوزه تشخیص اشیاء آنقدرها هم که به نظر می رسد جدید نیست. در واقع، تشخیص اشیا در طول 20 سال گذشته تکامل یافته است. پیشرفت Object Detection معمولاً به دو دوره تاریخی جداگانه (قبل و بعد از معرفی Deep Learning) تقسیم می‌شود:

  1. تشخیص اشیاء قبل از سال 2014 – دوره سنتی تشخیص اشیاء
    • آشکارساز Viola-Jones سال 2001: یکی از پیشگامانی که توسعه روش‌های سنتی Object Detection را آغاز کرد.
    • آشکارساز HOG سال 2006: توصیفگر ویژگی محبوب برای تشخیص اشیاء در بینایی کامپیوتری و پردازش تصویر.
    • مدل DPM در سال 2008 که با اولین معرفی رگرسیون جعبه مرزی(bounding box regression) ایجاد شد.
  2. تشخیص اشیاء پس از سال 2014 – دوره تشخیص مبتنی بر یادگیری عمیق
    • الگوریتم‌های دو مرحله‌ای تشخیص اشیاء شامل RCNN و SPPNet معرفی شده در سال 2014، الگوریتم‌های RCNN سریع و RCNN سریعتر در سال 2015، الگوریتم ماسک R-CNN معرفی شده در سال 2017، الگوریتم شبکه‌های هرمی/FPN در سال 2017 و G-RCNN معرفی شده در سال 2021
    • مهمترین الگوریتم‌های تشخیص اشیاء یک مرحله‌ای شامل YOLO معرفی شده در سال 2016، SSD سال 2016، RetinaNet معرفی در سال 2017، YOLOv3 معرفی شده در سال 2018 و YOLOv4سال 2020، YOLOR معرفی در سال 2021، مدل YOLOv7 سال 2022 و YOLOv8 معرفی شده در سال 2023

الگوریتم YOLOv8 در سال 2023 منتشر شده است، اما این نسخه توسط سازندگان الگوریتم‌های اصلی YOLO منتشر نشده است. توجه به این نکته مهم است که YOLOv8 تحت مجوز AGPL-3.0 منتشر شده است، یک مجوز کپی‌لفت قوی که استفاده تجاری را محدود می‌کند. برای درک اینکه کدام الگوریتم برای یک مورد خاص بهترین است، درک ویژگی‌های اصلی مهم است. ابتدا، قبل از بحث در مورد الگوریتم‌های جداگانه، تفاوت‌های کلیدی بین الگوریتم‌های شناسایی تصویر مربوطه برای تشخیص اشیاء را بررسی خواهیم کرد.

– تشخیص اشیاء مبتنی بر یادگیری عمیق یک مرحله‌ای در مقابل دو مرحله‌ای

همانطور که در بخش بالا مشاهده کردید، روش‌های پیشرفته تشخیص اشیاء را می‌توان به دو نوع اصلی طبقه‌بندی کرد: تشخیص یک مرحله‌ای در مقابل دو مرحله‌ای. به طور کلی، Object Detection مبتنی بر یادگیری عمیق، ویژگی‌هایی را از تصویر ورودی یا فریم ویدیو استخراج می‌کنند. یک الگوریتم تشخیص شی دو وظیفه متوالی را انجام می‌دهد:

برای ساده کردن فرآیند، می‌توان آن وظایف را به دو مرحله تقسیم کرد. روش‌های دیگر هر دو کار را در یک مرحله (آشکارسازهای تک مرحله‌ای) ترکیب می‌کنند تا با هزینه‌ کرد دقت، به عملکرد بالاتری دست یابند.

تشخیص دهنده‌های دو مرحله‌ای: در تشخیص شی دو مرحله‌ای، مناطق تقریبی شی با استفاده از ویژگی‌های عمیق قبل از استفاده از این ویژگی‌ها برای طبقه‌بندی تصویر و رگرسیون جعبه مرزی برای کاندیدای شی پیشنهاد می‌شوند.

تشخیص دهنده‌های یک مرحله‌ای: تشخیص دهنده‌های یک مرحله‌ای جعبه‌های مرزی را روی تصاویر بدون مرحله پیشنهاد منطقه پیش‌بینی می‌کنند. این فرآیند زمان کمتری مصرف می‌کند و بنابراین می‌تواند در برنامه‌های بلادرنگ استفاده شود.

کاربردهای تشخیص اشیاء

موارد استفاده تشخیص اشیاء بسیار متنوع است. روش‌های تقریباً نامحدودی وجود دارد تا رایانه‌ها را شبیه انسان ببینند تا کارهای دستی را خودکار کنند یا محصولات و خدمات جدید با هوش مصنوعی ایجاد کنند. این در کاربردهای بینایی رایانه‌ای که برای طیف وسیعی از کاربردها، از تولید ورزشی گرفته تا تجزیه و تحلیل بهره‌وری استفاده می‌شوند، پیاده‌سازی شده است. امروزه، تشخیص اشیاء با یادگیری عمیق هسته اصلی اکثر نرم افزارها و برنامه‌های هوش مصنوعی مبتنی بر بینایی است. تشخیص اشیاء نقش مهمی در درک صحنه ایفا می‌کند که در موارد امنیتی، ساخت و ساز، حمل و نقل، پزشکی و نظامی کاربرد آن رایج است.در ادامه برخی از کاربردهای Object Detection آورده شده است:

محبوب‌ترین الگوریتم‌های Object Detection

الگوریتم‌های محبوبی که برای انجام تشخیص اشیاء استفاده می‌شوند عبارتند از شبکه‌های عصبی کانولوشن (R-CNN، شبکه‌های عصبی کانولوشن مبتنی بر منطقه)، R-CNN سریع و YOLO (شما فقط یک بار نگاه می‌کنید). R-CNN ها از خانواده R-CNN هستند، در حالی که YOLO بخشی از خانواده تشخیص دهنده‌های تک مرحله‌ای است.

نگاهی به الگوریتم‌های تشخیص اشیاء محبوب

– YOLO

YOLO مخفف “You Only Look Once” است، یکی از انواع محبوب الگوریتم تشخیص اشیاء در زمان واقعی است که در بسیاری از محصولات تجاری توسط بزرگترین شرکت‌های فناوری که از بینایی کامپیوتر استفاده می‌کنند استفاده می‌شود. YOLO برای اولین بار در سال 2016 عرضه شد و معماری جدید به طور قابل توجهی سریعتر از هر تشخیص دهنده دیگری بود.

– SSD – Single-Shot Detector

SSD یک تشخیص دهنده یک مرحله‌ای محبوب است که می‌تواند چندین کلاس را پیش‌بینی کند. این روش اشیاء را در تصاویر با استفاده از یک شبکه عصبی عمیق با گسسته کردن فضای خروجی جعبه‌های مرزی در مجموعه‌ای از جعبه‌های پیش‌فرض در نسبت‌ها و مقیاس‌های مختلف در هر مکان نقشه مشخصه شناسایی می‌کند.

– R-CNN – شبکه‌های عصبی کانولوشن مبتنی بر منطقه

شبکه‌های عصبی کانولوشنال مبتنی بر منطقه یا مناطق با ویژگی‌های CNN (R-CNN) رویکردهای پیشگامی هستند که مدل‌های عمیق را برای تشخیص اشیا اعمال می‌کنند. مدل‌های R-CNN ابتدا چندین ناحیه پیشنهادی را از یک تصویر انتخاب می‌کنند (به عنوان مثال، جعبه‌های لنگر یکی از انواع روش‌های انتخاب هستند) و سپس دسته‌ها و جعبه‌های مرزی آن‌ها را برچسب‌گذاری می‌کنند (مثلاً، آفست). این برچسب‌ها بر اساس کلاس‌های از پیش تعریف شده داده شده به برنامه ایجاد می‌شوند. سپس از یک شبکه عصبی کانولوشن (CNN) برای انجام محاسبات رو به جلو برای استخراج ویژگی‌ها از هر ناحیه پیشنهادی استفاده می‌کنند.

– ماسک R-CNN

Mask R-CNN پیشرفت Fast R-CNN است. تفاوت بین این دو در این است که Mask R-CNN یک شاخه برای پیش‌بینی یک ماسک شی به موازات شاخه موجود برای تشخیص جعبه مرزی اضافه کرد. آموزش ماسک R-CNN ساده است و فقط مقدار کمی به R-CNN سریعتر اضافه می‌کند.

مثال ماسک R-CNN با تقسیم‌بندی تصویر و تشخیص اشیاء تصویر

– SqueezeDet

SqueezeDet نام یک شبکه عصبی عمیق برای بینایی کامپیوتری است که در سال 2016 منتشر شد. SqueezeDet به طور خاص برای رانندگی خودکار توسعه یافته است، جایی که تشخیص اشیا را با استفاده از تکنیک‌های بینایی کامپیوتری انجام می‌دهد. این الگوریتم مانند YOLO یک الگوریتم آشکارساز تک شات است.

– MobileNet

MobileNet یک شبکه تشخیص چند جعبه تک شات است که برای اجرای وظایف تشخیص اشیا استفاده می‌شود. این مدل با استفاده از چارچوب Caffe پیاده سازی شده است. خروجی مدل یک بردار معمولی است که شامل داده‌های شی ردیابی شده است.

– YOLOR

YOLOR یک تشخیص دهنده شی جدید است که در سال 2021 معرفی شد. این الگوریتم دانش ضمنی و صریح را در آموزش مدل به طور همزمان اعمال می‌کند. بنابراین، YOLOR می‌تواند یک نمایش کلی را بیاموزد و چندین کار را از طریق این نمایش کلی انجام دهد. دانش ضمنی از طریق هم‌ترازی فضای هسته، اصلاح پیش‌بینی و یادگیری چند وظیفه‌ای در دانش صریح ادغام می‌شود. از طریق این روش، YOLOR به نتایج بسیار بهبود یافته عملکرد Object Detection دست می‌یابد.

دیدگاهتان را بنویسید

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