خانه تکنولوژی

معرفی تکنولوژی روز دنیا

خانه تکنولوژی

معرفی تکنولوژی روز دنیا

نقشه راه برای دید رایانه ای

نقشه راه برای دید رایانه ای

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

عکس توسط Ennio Dybeli در مورد Unsplash

مقدمه

دید کامپیوتر (CV) امروزه یکی از کاربردهای اصلی هوش مصنوعی است (به عنوان مثال تشخیص تصویر ، ردیابی اشیاء ، طبقه بندی چند برچسب). در این مقاله ، برخی از مراحل اصلی تشکیل دهنده یک سیستم بینایی رایانه ای را برای شما شرح می دهم. تصاویر وارد سیستم می شوند. از Extractor Feature برای پیش پردازش و استخراج ویژگی ها از این تصاویر استفاده می شود. یک سیستم یادگیری ماشین از ویژگی استخراج شده به ترتیب استفاده می کند. برای آموزش مدل و پیش بینی.

اکنون ما به طور مختصر برخی از فرایندهای اصلی را که ممکن است داده های ما در هر یک از این سه مرحله مختلف طی کنند ، مرور می کنیم.

تصاویر وارد سیستم < /h1>

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

هنگامی که تصویری از دستگاه سخت افزاری ، روشهای زیادی برای نمایش عددی رنگها (Color Spaces) در یک سیستم نرم افزاری وجود دارد. دو مورد از مشهورترین فضاهای رنگی RGB (قرمز ، سبز ، آبی) و HSV (رنگ ، اشباع ، ارزش) هستند. یکی از مزایای اصلی استفاده از فضای رنگی HSV این است که فقط با گرفتن اجزای HS می توانیم روشنایی سیستم خود را ثابت نگه داریم (شکل 1).

شکل 1: فضاهای رنگی RGB در مقابل HSV [1]

استخراج کننده ویژگی

پیش پردازش تصویر

هنگامی که تصویری وارد سیستم می شود و با استفاده از یک فضای رنگی نمایش داده می شود ، می توانیم عملگرهای مختلف را بر روی تصویر اعمال کنیم تا نمای آن بهبود یابد:

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

پس از پردازش یک تصویر ، می توانیم تکنیک های پیشرفته تری را برای استخراج با استفاده از روش هایی مانند تشخیص درجه اول لبه (به عنوان مثال اپراتور Prewitt ، اپراتور Sobel ، Canny Edge Detector) و Hough Transforms ، لبه ها و اشکال درون یک تصویر را مشاهده می کنید.

استخراج ویژگی

یکبار قبل -پردازش یک تصویر ، 4 نوع اصلی مورفولوژی ویژگی وجود دارد که می توان با استفاده از Feature Extractor از یک تصویر استخراج کرد: از استخراج کننده ویژگی یک مثال ساده از یک ویژگی جهانی می تواند یک هیستوگرام از مقادیر پیکسل های ذخیره شده باشد. ویژگی های شبکه ای یا مبتنی بر بلوک: تصویر به بلوک های مختلف تقسیم می شود و ویژگی ها از هر یک از بلوک های مختلف استخراج می شوند. یکی از تکنیک های اصلی برای استخراج ویژگی ها از بلوک های یک تصویر ، DIFF Dense (تغییر ویژگی تغییر اندازه مقیاس) است. این نوع ویژگی ها به طور شایع برای آموزش مدل های یادگیری ماشین استفاده می شود. ویژگی های مبتنی بر منطقه: تصویر به مناطق مختلف تقسیم می شود (به عنوان مثال با استفاده از تکنیک هایی مانند آستانه گذاری یا خوشه بندی K-Means و سپس اتصال آنها به بخش هایی با استفاده از قطعات متصل) و یک ویژگی از هر یک از این مناطق استخراج می شود. ویژگی ها را می توان با استفاده از تکنیک های توصیف منطقه و محدوده مانند Moments و Chain Codes استخراج کرد. ویژگی های محلی: چندین نقطه مورد علاقه در تصویر تشخیص داده می شود و ویژگی ها با تجزیه و تحلیل پیکسل های مجاور نقاط مورد علاقه استخراج می شوند. به دو نوع اصلی از نقاط مورد علاقه که می توان از یک تصویر استخراج کرد گوشه ها و حباب ها هستند ، این نقاط را می توان با استفاده از روش هایی مانند Harris & Stephens Detector و Laplacian of Gaussians استخراج کرد. با استفاده از تکنیک هایی مانند SIFT (Scale Invariant Feature Transform) می توان ویژگی ها را در نهایت از نقاط مورد علاقه شناسایی شده استخراج کرد. ویژگیهای محلی معمولاً به منظور تطبیق تصاویر برای ایجاد بازسازی پانوراما/سه بعدی یا بازیابی تصاویر از پایگاه داده استفاده می شود.

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

این فرایند را می توان در چند مرحله زیر خلاصه کرد:

ما ابتدا با استخراج ویژگی های مختلف از مجموعه داده های تصاویر با استفاده از الگوریتم های استخراج ویژگی مانند SIFT و DIFT Sense ، واژگانی را ایجاد می کنیم. در مرحله دوم ، همه ویژگی های واژگان خود را دسته بندی می کنیم. با استفاده از الگوریتم هایی مانند K-Means یا DBSCAN و استفاده از مرکز خوشه ها به منظور جمع بندی توزیع داده های ما. در نهایت ، ما می توانیم با شمارش تعداد دفعات مختلف ویژگی های متفاوت ، یک هیستوگرام فرکانس از هر تصویر بسازیم. واژگان در تصویر ظاهر می شوند.

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

شکل 3: کیف واژه های بصری [2]

امروزه به لطف ایجاد معماری شبکه های عصبی مصنوعی مانند Convolutional شبکه های عصبی (CNNs) و شبکه های عصبی مصنوعی مکرر (RCNNs) ، امکان ایجاد یک گردش کار جایگزین برای دید رایانه ای (شکل 4) وجود دارد.

شکل 4: گردش کار بینایی کامپیوتر [3]

در این حالت ، الگوریتم یادگیری عمیق هر دو مرحله استخراج ویژگی و طبقه بندی رایانه را در بر می گیرد. گردش کار بینایی هنگام استفاده از شبکه های عصبی کانولوشن ، هر لایه از شبکه عصبی تکنیک های مختلف استخراج ویژگی را در توضیحات خود اعمال می کند (به عنوان مثال ، لایه 1 لبه ها را تشخیص می دهد ، لایه 2 شکل هایی را در یک تصویر پیدا می کند ، لایه 3 تصویر را تقسیم می کند ، و غیره ...) قبل از ارائه ویژگی بردارهای طبقه بندی لایه متراکم.

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

Linkedin وبلاگ شخصی وب سایت شخصی نمایه متوسط ​​ GitHub Kaggle

کتابشناسی

[1] ربات مدولار که به عنوان پاک کننده ساحل استفاده می شود ، Felippe Roza. دروازه تحقیق. قابل دسترسی در: https://www.researchgate.net/figure/RGB-left-and-HSV-right-color-spaces_fig1_310474598

[2] مجموعه ای از کلمات بصری در گروه OpenCV ، Vision & Graphics. یان کوندراک. قابل دسترسی در: https://vgg.fiit.stuba.sk/2015-02/bag-of-visual-words-in-opencv/

[3] Deep Learning Vs. دید رایانه ای سنتی. Haritha Thilakarathne ، NaadiSpeaks. قابل دسترسی در: https://naadispeaks.wordpress.com/2018/08/12/deep-learning-vs-traditional-computer-vision/