تشخیص شی در سال ۲۰۲۴: راهنمای قطعی
این مقاله در ابتدا تشخیص اشیا را معرفی کرده و ادامه به مرور پیشرفته ترین الگوریتم های تشخیص اشیا در بینایی کامپیوتری می پردازد. تشخیص...
این مقاله در ابتدا تشخیص اشیا را معرفی کرده و ادامه به مرور پیشرفته ترین الگوریتم های تشخیص اشیا در بینایی کامپیوتری می پردازد. تشخیص اشیا یک حوزه کلیدی در هوش مصنوعی است که به سیستمهای کامپیوتری اجازه میدهد تا با تشخیص اشیاء در تصاویر و سیستم های بصری محیط خود را ببینند.
در این مقاله شما در مورد موارد زیر خواهید آموخت:
- تشخیص شی چیست و چگونه در ۲۰ سال گذشته تکامل یافته است.
- انواع مختلف روشهای بینایی کامپیوتر تشخیص شی
- در این مقاله ما به مثالها، موارد استفاده و برنامههای تشخیص شی اشاره می کنیم.
- محبوب ترین الگوریتم های تشخیص اشیا که امروزه مورد استفاده قرار می گیرند.
- الگوریتم های جدید تشخیص اشیا با یادگیری عمیق
تشخیص شی در یادگیری عمیق چیست؟
تشخیص اشیاء یک وظیفه بینایی کامپیوتری مهم است که برای شناسایی نمونههایی از اشیاء بصری کلاسهای خاص (مثلاً انسانها، حیوانات، اتومبیلها یا ساختمانها) در تصاویر دیجیتالی مانند عکسها یا فریمهای ویدیو استفاده میشود. هدف از تشخیص اشیا، توسعه مدلهای محاسباتی است که به حیاتی ترین نیاز برنامههای بینایی کامپیوتری پاسخ می دهد : «چه اشیایی کجا هستند؟».

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

چرا یادگیری عمیق تشخیص شی مهم است؟
تشخیص اشیا یکی از چالش های اساسی بینایی کامپیوتر است. این موضوع امری بنیادی برای بسیاری از وظایف بینایی کامپیوتری دیگر نیز می باشد. به عنوان مثال می توان به نمونه و بخش بندی تصویر، شرح تصویر، ردیابی اشیا، و موارد دیگر اشاره کرد. کاربردهای خاص تشخیص اشیاء شامل تشخیص عابر پیاده، تشخیص حیوانات، تشخیص وسیله نقلیه، شمارش افراد، تشخیص چهره، تشخیص متن، تخمین وضعیت یا تشخیص پلاک می باشد.
با بلوغ بینایی کامپیوتر، جایگاه فناوری از مرحله “Slope of Enlightenment” به “Plateau of Productivity” در چرخه هایپ گارتنر تغییر کرده است. با پیشرفت تکنولوژی و استفاده گسترده تر از آن در صنایع از جمله تشخیص اشیا، بینایی کامپیوتری در حال ورود به مرحله ثبات و یکپارچگی گسترده است. اکنون تمرکز از مراحل آزمایشی به پالایش و بهینهسازی کاربردهای موجود تغییر میکند که گامی مهم به سوی تحقق کامل و تأثیر آن بر شرکتها در بخشهای مختلف است.

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

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

فناوری تصویربرداری هوش مصنوعی در سال های اخیر پیشرفت زیادی کرده است. طیف گسترده ای از دوربین ها از جمله دوربین های امنیتی تجاری و دوربین های مدار بسته را می توان استفاده کرد. با استفاده از یک پلتفرم نرم افزاری متقابل هوش مصنوعی مانند Viso Suite، نیازی به خرید دوربین های هوش مصنوعی با قابلیت تشخیص تصویر داخلی نیست، زیرا جریان ویدئوی دیجیتال اساساً هر دوربین فیلمبرداری را می توان با استفاده از مدل های تشخیص اشیا آنالیز کرد.
در نتیجه، برنامهها انعطافپذیرتر میشوند زیرا دیگر به حسگرهای سفارشی شده، نصب گران قیمت و سیستمهای سختافزاری تعبیهشده که باید هر ۳ تا ۵ سال یکبار تعویض شوند، وابسته نیستند.
پیشرفت های سخت افزاری بینایی کامپیوتر
در همین حال، قدرت محاسباتی به طور چشمگیری افزایش یافته است و بسیار کارآمدتر می شود. در سالهای گذشته، پلتفرمهای محاسباتی از طریق پردازش چند هستهای، واحدهای پردازش گرافیکی (GPU) و شتابدهندههای هوش مصنوعی مانند واحدهای پردازش تانسور (TPU) به سمت موازیسازی حرکت کردند.
چنین توانایی سخت افزاری ای این امکان را فراهم می کند تا از بینایی کامپیوتری برای تشخیص و ردیابی اشیا در محیط های تقریبا بلادرنگ استفاده شود. از این رو، توسعه سریع در شبکههای عصبی کانولوشنال عمیق (CNN) و قدرت محاسباتی پیشرفته GPU، محرکهای اصلی پیشرفت در تشخیص اشیاء مبتنی بر بینایی کامپیوتری هستند.
این پیشرفت ها یک قابلیت کلیدی معماری به نام هوش مصنوعی لبه را فعال کرده است. به این مفهوم لبه هوشمند یا لبه توزیع شده نیز می گویند. این قابلیت بارهای سنگین هوش مصنوعی را از ابر به منبع داده نزدیکتر کرده و منجر به ایجاد سیستمهای توزیعشده، مقیاسپذیر و بسیار کارآمدتر میشود که امکان استفاده از بینایی کامپیوتری را در سیستمهای تجاری و حیاتی را فراهم می کند.
هوش مصنوعی لبه شامل IoT یا AIoT، یادگیری ماشین روی دستگاه با دستگاه های Edge است و به زیرساخت های پیچیده نیاز دارد.
معایب و مزایای تشخیص اشیا
فرایند تشخیص شی بسیار انعطاف پذیر است و می توانند برای طیف مختلفی از وظایف و برنامه های کاربردی سفارشی و با هدف خاص آموزش ببینند. شناسایی خودکار اشیا، افراد و صحنهها میتواند اطلاعات مفیدی را برای خودکارسازی وظایف (شمارش، بازرسی، تأیید و غیره) در زنجیرههای ارزش کسبوکار فراهم کند.
با این حال، نقطه ضعف اصلی تشخیص شی این است که هزینه محاسباتی زیادی داشته و به قدرت پردازش قابل توجهی نیز نیاز دارد. به خصوص، زمانی که مدلهای تشخیص شی باید در مقیاس گسترده به کار گرفته شوند هزینههای عملیاتی میتواند به سرعت افزایش یابد و قابلیت مقرون به صرفه بودن موارد تجاری را به چالش بکشد.
تشخیص اشیاء با بهره گیری از یادگیری عمیق در مقابل تشخیص شی با بهره گیری از یادگیری عمیق
با وجود شباهت هایی که بین این دو وجود دارد شناسایی اشیا (Object Recognition) و تشخیص اشیا (Object Detection) دو وظیفه متفاوت بینایی کامپیوتری هستند. شناسایی شیء که به آن کلاسبندی تصویر نیز گفته می شود، شامل شناسایی کلاس یک شی موجود در یک تصویر است. برخلاف تشخیص مستقیم شی، شناسایی شی اطلاعات مکان یابی را ارائه نمی دهد.
الگوریتمهای شناسایی شیء، برچسبهای کلاسی را تولید میکنند که اشیاء موجود در تصویر را نشان میدهند. معمولاً از این الگوریتم ها برای کاربرد هایی مانند برچسب گذاری تصویر، بازیابی تصویر مبتنی بر محتوا و موتورهای جستجوی بصری استفاده می شود.

الگوریتم تشخیص اشیاء یادگیری عمیق چگونه کار می کند
تشخیص شی را می توان با استفاده از تکنیک های سنتی پردازش تصویر یا شبکه های یادگیری عمیق مدرن انجام داد.
۱- تکنیکهای پردازش تصویر معمولاً به دادههای پیشین برای آموزش نیاز ندارند و بدون نظارت هستند. OpenCV یک ابزار محبوب برای کارهای پردازش تصویر است.
مزایا: از این رو چنین کارهایی نیازی به تصاویر حاشیه نگاری شده که در آن ها انسان ها داده ها را به صورت دستی (برای آموزش با ناظر) برچسب گذاری می کنند ندارند.
معایب: این تکنیکها محدود به عوامل مختلفی محدود هستند: مانند سناریوهای پیچیده (بدون پسزمینه تک رنگ)، انسداد (اشیاء تا حدی پنهان هستند)، روشنایی و سایهها، و تاثیرات بهم ریختگی.
امروزه، تشخیص اشیا با بهره گیری از یادگیری عمیق به طور گسترده توسط محققان پذیرفته شده است و توسط شرکت های بینایی کامپیوتر نیز برای ساخت محصولات تجاری پذیرفته شده است.
۲- روشهای یادگیری عمیق وابسته به روش های یادگیری با ناظر یا بدون ناظر است. که روشهای با ناظر در بینایی کامپیوتر استاندارد است. کارایی در روش های یادگیری عمیق محدود به توانایی محاسباتی GPU ها بوده که آن ها نیز سال به سال به طور چشمگیری افزایش می یابند.
مزایا: تشخیص اشیا با بهره گیری از یادگیری عمیق به طور قابل توجهی در برابر انسداد، صحنه های پیچیده و روشنایی چالش برانگیز توانایی بیشتری دارد.
معایب: برای یادگیری عمیق میزان زیادی از داده های آموزشی مورد نیاز است. فرآیند حاشیه نگاری تصویر امری فشرده و پرهزینه است. به عنوان مثال، برای برچسب زدن ۵۰۰۰۰۰ تصویر برای آموزش یک الگوریتم تشخیص شی یادگیری عمیق سفارشی یک مجموعه داده کوچک در نظر گرفته می شود. با این حال، بسیاری از مجموعه دادههای بنچمارک (MS COCO، Caltech، KITTI، PASCAL VOC، V5) در دسترس بودن دادههای برچسبگذاری شده را فراهم میکنند.
امروزه، تشخیص اشیا با بهره یادگیری عمیق به طور گسترده توسط محققان و توسط شرکت های بینایی کامپیوتر برای ساخت محصولات تجاری پذیرفته شده است.

بهترین الگوریتم تشخیص تصویر در حال حاضر
حوزه تشخیص اشیا آنقدرها هم که به نظر می رسد حوزه جدیدی نیست. در واقع، تشخیص اشیا در طول 20 سال گذشته تکامل یافته است. پیشرفت تشخیص اشیا معمولاً به دو دوره تاریخی جداگانه (قبل و بعد از معرفی یادگیری عمیق) تقسیم می شود:
تشخیص شی قبل از سال 2014 – دوره سنتی تشخیص شی
- تشخیص دهندهی Viola-Jones (2001)، کار پیشرو ای که توسعه روش های سنتی تشخیص اشیا را آغاز کرد.
- HOG (2006)، یک توصیفگر ویژگی محبوب برای تشخیص اشیا در بینایی کامپیوتری و پردازش تصویر
- DPM (2008) با اولین معرفی رگرسیون کادر محدوده
آشکارساز شی پس از 2014 – دوره تشخیص با بهره گیری از عمیق یادگیری
مهمترین الگوریتم های تشخیص اشیای دو مرحله ای:
- RCNN and SPPNet (2014)
- Fast RCNN and Faster RCNN (2015)
- Mask R-CNN (2017)
- Pyramid Networks/FPN (2017)
- G-RCNN (2021)
مهمترین الگوریتم های تشخیص اشیای تک مرحله ای:
- YOLO (2016)
- SSD (2016)
- RetinaNet (2017)
- YOLOv3 (2018)
- YOLOv4 (2020)
- YOLOR (2021)
- YOLOv7 (2022)
- YOLOv8 (2023)
- YOLOv9 (2024)
سازندگان نسخه اصلی نسخهی YOLO YOLOv8 را منتشر نکردند لازم به ذکر است که این نسخه تحت مجوز AGPL-3.0 منتشر شده است که یک مجوز copyleft قوی است که استفاده تجاری را محدود می کند.
درک ویژگی های اصلی برای درک اینکه کدام مدل برای یک مورد خاص مورد استفاده بهترین انتخاب است امری با اهمیت است. ابتدا و قبل از بحث در مورد مدلهای مختلف، به بیان تفاوتهای کلیدی بین مدلهای تشخیص تصویر مرتبط برای تشخیص اشیا خواهیم پرداخت.
