نقشه راه (Roadmap) بینایی کامپیوتر چیست ؟ __ مراحل ایجاد سیستم بینایی کامپیوتری

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

آموزش بینایی کامپیوتر با پایتون و OpenCV ___ بسته جامع

 
 
 
مقدمه
​​​​​​​​ ‏امروزه یکی از کاربردهای اصلی هوش مصنوعی، بینایی کامپیوتری (‏CV) است.
(‏به عنوان مثال بازشناسی تصویر، ردیابی شی، طبقه‌بندی چندگانه)
در این مقاله، برخی از مراحل اصلی ایجاد یک سیستم بینایی کامپیوتری را برای شما شرح می‌دهم.
یک نمایش استاندارد از جریان کار یک سیستم بینایی کامپیوتری عبارت است از:
​​​​​​​​ مجموعه‌ای از تصاویر که وارد سیستم می‌شوند.
​​​​​​​​یک استخراج‌کننده ویژگی به منظور پیش پردازش و استخراج ویژگی‌ها از این تصاویر مورد استفاده قرار می‌گیرد.
​​​​​​​​یک سیستم یادگیری ماشین از ویژگی­‌های استخراج‌شده به منظور آموزش مدل و پیش‌بینی استفاده می‌کند. ​
به طور خلاصه به توضیح این سه مرحله­‌ی اساسی در جریان کار یک سیستم بینایی کامپیوتری می­پردازیم.
 
 
تصاویری که وارد سیستم می‌شوند
​​​​​​​​ برای پیاده‌سازی یک سیستم CV، باید دو جز اصلی را در نظر بگیریم: سخت‌افزار اخذ تصویر و نرم‌افزار پردازش تصویر.
یکی از نیازهای اصلی که باید به منظور استقرار یک سیستم CV برآورده شود، آزمایش کارایی آن است. در واقع، سیستم ما باید قادر باشد تا نسبت به تغییرات محیطی (‏مانند تغییرات روشنایی، جهت‌گیری و مقیاس بندی)‏ تغییر ناپذیر باشد. و قادر باشد وظیفه‌ی خود را در لحظه انجام دهد. به منظور برآورده کردن این الزامات، ممکن است لازم باشد که نوعی از محدودیت‌ها را در سخت‌افزار یا نرم‌افزار سیستم خود اعمال کنیم (‏به عنوان مثال کنترل از راه دور نور محیط روشنایی)‏. ​
هنگامی که یک تصویر بوسیله­‌ی یک دستگاه سخت‌افزاری تولید می­‌شود، روش‌های زیادی برای نشان دادن رنگ‌ها (‏فضاهای رنگی) ‏در یک سیستم نرم‌افزاری وجود دارد. دو مورد از مشهورترین فضاهای رنگی، RGB (‏قرمز، سبز، آبی) ‏و HSV (‏Hue، اشباع، مقدار)‏ هستند. یکی از مزایای اصلی استفاده از فضای رنگی HSV این است که تنها با در نظر گرفتن مولفه‌های HS می‌توانیم روشنایی سیستم خود را ثابت نگهداریم.(‏شکل ۱)
 

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

اپراتورهای گروهی
در این مورد، گروهی از نقاط را از تصویر اصلی در نظر می‌گیریم تا یک نقطه‌ی واحد، در نسخه‌ی تبدیل یافته‌ی تصویر ایجاد کنیم. این نوع عملیات معمولا با استفاده از کانولوشن انجام می‌شود. انواع مختلف کرنل‌ها را می‌توان برای به دست آوردن نتایج مختلف به کار برد (‏شکل ۲)‏. ​​​​​​​
برخی از مثال‌ها عبارتند از:
میانگین‌گیری مستقیم، میانگین‌گیری گاوسی و فیلتر میانه. اعمال یک عملیات کانولوشن به یک تصویر می‌تواند میزان نویز در تصویر را کاهش داده و هموارسازی را بهبود بخشد (‏اگرچه این کار می‌تواند به تدریج تصویر را تار کند)‏. از آنجا که ما از گروهی از نقاط به منظور ایجاد یک نقطه‌ی جدید در تصویر استفاده می‌کنیم، ابعاد تصویر جدید لزوما کوچک‌تر از تصویر اصلی خواهد بود.
یک راه‌حل برای رفع این مشکل، کاور تصویر با مقادیر صفر است (‏اضافه کردن پیکسل‌های جدید با مقادیر صفر به حاشیه­‌ی تصویر جدید خواهد بود)‏. یا استفاده از کرنل‌های کوچک‌تر در حاشیه‌ی تصویر است. یکی از محدودیت‌های اصلی استفاده از کانولوشن، سرعت کند آن در کرنل‌های بزرگ است، یک راه‌حل ممکن برای رفع این مشکل استفاده از تبدیل فوریه است.
پس از پیش‌پردازش یک تصویر، می‌توانیم تکنیک‌های پیشرفته‌تری را بکارگیریم تا با استفاده از روش‌هایی مانند تشخیص لبه‌ی مرتبه‌ی اول (‏به عنوان مثال: اپراتور Prewitt، اپراتور Sobel، تشخیص لبه‌ی Canny)‏ و تبدیل‌های Hough، لبه‌ها و اشکال موجود در تصویر را استخراج کنیم.
 

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

ویژگی‌های مبتنی بر شبکه یا بلوک
تصویر به بلوک‌های مختلف تقسیم می‌شود و ویژگی‌ها از هر یک از بلوک‌های مختلف استخراج می‌شوند. یکی از تکنیک‌های اصلی برای استخراج ویژگی‌ها از بلوک‌های یک تصویر، Dense SIFT (‏Scale Invariant Feature Transform) ‏است. این نوع ویژگی‌ها معمولا برای آموزش مدل‌های یادگیری ماشینی مورد استفاده قرار می‌گیرند. ​
 
ویژگی‌های مبتنی بر ناحیه
تصویر به نواحی مختلف تقسیم می‌شود.
(‏به عنوان مثال، با استفاده از تکنیک‌هایی مانند آستانه گذاری یا خوشه‌بندی K – Means نواحی جدا می­‌شوند و سپس نواحی با استفاده از اجزاء متصل به یکدیگر وصل می­‌شوند)‏
یک ویژگی از هر یک از این نواحی استخراج می‌شود. ویژگی‌ها را می‌توان با استفاده از تکنیک‌های توصیف ناحیه و مرز مانند Moments و Chain Codes استخراج کرد.

ویژگی‌های محلی
چندین نقطه‌ی مورد نظر در تصویر شناسایی و ویژگی‌ها با تجزیه و تحلیل پیکسل‌های مجاور نقاط مورد نظر استخراج می‌شوند. دو نوع اصلی از نقاط مورد علاقه که می‌توان از یک تصویر استخراج کرد، گوشه‌ها و حباب‌ها هستند. که می‌توان آن‌ها را با استفاده از روش‌هایی مانند آشکارساز Harris & Stephens و لاپلاسین گاوسی استخراج کرد. در نهایت ویژگی‌ها را می‌توان با استفاده از تکنیک‌هایی مانند SIFT (‏Scale Invariant Feature Transform)‏ از نقاط مورد نظر شناسایی‌شده استخراج کرد. ویژگی‌های محلی معمولا به منظور مطابقت تصاویر برای ایجاد بازسازی پانوراما /سه‌بعدی یا بازیابی تصاویر از یک پایگاه‌داده مورد استفاده قرار می‌گیرند. ​
هنگامی که مجموعه‌ای از ویژگی‌های متمایز کننده را استخراج کردیم، می‌توانیم از آن‌ها برای آموزش یک مدل یادگیری ماشین برای استنتاج استفاده کنیم. توصیف‌گر‌های ویژگی را می‌توان به سادگی در پایتون با استفاده از کتابخانه‌هایی مانند OpenCV به کار برد. ​
 
یاد‌گیری ماشین
​​​​​​​​یکی از مفاهیم اصلی مورد استفاده در بینایی کامپیوتری برای طبقه‌بندی یک تصویر، بسته­‌ی کلمات بصری (‏BoVW) ‏است. قبل از هر چیز به منظور ساخت یک بسته­‌ی کلمات بصری، ما ابتدا نیاز داریم که با استخراج تمام ویژگی‌ها از مجموعه‌­ای از تصاویر (‏به عنوان مثال، استفاده از ویژگی‌های مبتنی بر شبکه یا ویژگی‌های محلی)‏ یک واژه‌­نامه ایجاد کنیم.
 
 
 
هم رویش منتشر کرده است:

آموزش GEP (برنامه سازی بیان ژنی) برای تابع یابی با هوش مصنوعی

 
 
 
سپس می‌توانیم تعداد دفعاتی که یک ویژگی در تصویر ظاهر می‌شود را بشماریم و یک هیستوگرام فرکانسی از نتایج بسازیم. با استفاده از هیستوگرام فرکانسی به عنوان یک الگوی پایه، در نهایت می‌توانیم با مقایسه هیستوگرام‌های تصاویر، طبقه بندی کنیم که آیا یک تصویر متعلق به همان کلاس است یا خیر. (‏شکل ۳)‏.
 
​​​​​​​این فرآیند را می‌توان در چند مرحله زیر خلاصه کرد:
​​​​​ ابتدا با استفاده از الگوریتم‌های استخراج ویژگی مانند SIFT و Dense SIFT، ویژگی­‌های تصاویر را استخراج، و یک واژه­نامه ایجاد می‌کنیم. ​
سپس، تمام ویژگی‌های موجود در واژه­نامه­‌ی را با استفاده از الگوریتم‌هایی مانند K – Means یا DBSCAN خوشه‌بندی کرده و از مراکز خوشه به منظور خلاصه کردن توزیع داده‌ی خود استفاده می‌کنیم. ​
در نهایت، می‌توانیم با شمارش تعداد دفعات ظاهر شدن ویژگی‌های مختلف واژگان در تصویر، یک هیستوگرام فرکانسی از هر تصویر بسازیم.
سپس می‌توان تصاویر جدید را با تکرار همین فرآیند طبقه‌بندی کنیم. و سپس با استفاده از هر الگوریتم طبقه‌بندی دریابیم که کدام تصویر در واژه­نامه­ بیش‌ترین شباهت را به تصویر آزمایشی دارد.
 
بسته‌ی کلمات بصری 
امروزه، به لطف ایجاد معماری‌ شبکه‌های عصبی مصنوعی مانند شبکه‌های عصبی کانولوشن (‏CNNs)‏ و شبکه‌های عصبی مصنوعی بازگشتی (‏RCNNs)‏، امکان ایده پردازی برای یک جریان کار جایگزین برای بینایی کامپیوتری (‏شکل ۴)‏ وجود دارد. ​
 
جریان کار بینایی کامپیوتری 
در این مورد، الگوریتم یادگیری عمیق شامل هر دو مرحله‌ی استخراج ویژگی و طبقه‌بندی برای جریان کار بینایی کامپیوتری است. هنگام استفاده از شبکه‌های عصبی کانولوشن، قبل از ارائه‌ی بردارهای ویژگی به طبقه‌بندی کننده، هر لایه از شبکه عصبی، تکنیک‌های مختلف استخراج ویژگی را در توصیف خود به کار می‌گیرد (‏به عنوان مثال: لایه ۱ لبه‌ها را شناسایی می‌کند، لایه ۲ اشکالی را در یک تصویر پیدا می‌کند، لایه ۳ تصویر را تقسیم‌بندی می‌کند، و غیره)‏.
کاربردهای بیشتر یادگیری ماشین در بینایی کامپیوتری شامل حوزه‌هایی مانند طبقه‌بندی چندگانه و تشخیص شی است. در طبقه‌بندی چندگانه، هدف ما ساخت مدلی است که بتواند به درستی تعداد اشیا موجود در تصویر و کلاسی که آن‌ها به آن تعلق دارند را شناسایی کند. در عوض، در تشخیص شی، هدف ما این است که این مفهوم را با شناسایی موقعیت اشیا مختلف در تصویر، یک گام به جلور حرکت دهیم.
 
کلیدواژگان
نقشه راه بینایی کامپیوتر – نقشه راه بینایی کامپیوتر چیست – نقشه راه بینایی کامپیوتر چیست؟ – بینایی ماشین و پردازش تصویر – بینایی ماشین چیست – مقاله بینایی ماشین – بینایی کامپیوتر – computer vision چیست – بینایی کامپیوتر چیست – بینایی کامپیوتری – computer vision – سیستم بینایی کامپیوتر – سیستم بینایی کامپیوتری – بینایی ماشین – machine vision چیست – بینایی ماشین چیست – بینایی ماشینی – پردازش تصویر و بینایی ماشین چیست – machine vision – مراحل بینایی کامپیوتر – مراحل بینایی کامپیوتر چیست – مراحل ایجاد سیستم بینایی کامپیوتر – مراحل سیستم بینایی کامپیوتر – نقشه راه بینایی کامپیوتر – یادگیری ماشین – یادگیری ماشین چیست – ماشین لرنینگ – ماشین لرنینگ چیست – یادگیری هوش مصنوعی – مراحل یادگیری ماشین – یادگیری عمیق چیست – یادگیری ماشین در بینایی کامپیوتر 
 
منبع
Roadmap to Computer Vision
دوره های آموزشی مرتبط

آموزش YOLO – تشخیص اشیا با پایتون در OpenCV

۳۲.۰۰۰ تومان

آموزش پانداس PANDAS پروژه محور __ تحلیل داده با پایتون (پروژه سفر به ماه)

۳۲.۰۰۰ تومان

مقاله نقشه راه (Roadmap) بینایی کامپیوتر چیست ؟ __ مراحل ایجاد سیستم بینایی کامپیوتری اولین بار در هم رویش. انتشار یافته است.