هر آنچه باید درباره تفاوت بین بینایی ماشین و پردازش تصویر بدانیم

 

 

مقدمه

 

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

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

 

 

پردازش تصویر چیست؟

 

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

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

شکل 1- عملیات بینایی ماشین بر روی تصاویر

 

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

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

حال که ما تعریفی از پردازش تصویر داریم، باید بدانیم که به بینایی ماشین چه ارتباطی میتواند داشته باشد؟

 

 

بینایی ماشین چیست؟

 

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

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

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

 

شکل 2- پردازش تصویر بر روی یک تصویر بدون حرکت

 

دنباله‌ای از تصاویر

 

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

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

 

شکل 3- دنباله پردازش تصاویر رخداد یکسانی که حرکت خودرو در آن را تعیین میکند.

 

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

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

 

 

یادگیری عمیق و تصویرهای دیجیتال

 

با ظهور یادگیری عمیق در سالهای اخیر، یکی از حوزه‌هایی که به طور گسترده‌ از آن استفاده شده است، تصویر دیجیتال است. دو قالب یادگیری عمیق شناخته‌شده عبارتند از شبکه عصبی در هم تنیده (CNN) و شبکه عصبی مصنوعی بازگشتی (RNN). اگرچه بحث بیشتر در این مورد خارج از اهداف این مقاله است، ذکر این موضوع مفید است که CNN در انواع مختلفی از پردازشهای مربوط به تصویر دیجیتال استفاده شده است. این موارد شامل تشخیص و شناسایی چهره، آنالیز تصویر پزشکی، شناسایی تصویر و تحلیل ویدئو میشود. یک نمونه AlexNet است که نوعی CNN میباشد و از زمانی که در سال ۲۰۱۲ برنده مسابقه  Large Scale Visual Recognition شده است، بسیار مورد توجه قرار گرفته است.

 

 

یادگیری عمیق برای پردازش تصویر

 

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

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

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

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

 

 

شکل 4- مثال تشخیص لبه در تشخیص پلاک خودرو

 

یادگیری عمیق و بینایی ماشین

 

بدون شک، شناسایی ویژگی‌ها و طبقه‌بندی تصاویر ابزارهای مهمی برای درک محتوای یک عکس هستند. به این ترتیب، شبکه CNN یک ابزار ارزشمند در دسترس برای استفاده توسط سیستم‌های بینایی ماشین است. اما در مورد محتوای عکس چطور؟ آیا ماشین به شما نزدیک‌تر می‌شود، یا در حال دور شدن است؟ بدون در نظر گرفتن یک سری از تصاویر و روابط زمانی بین آن‌ها، هیچ راهی برای تشیخص قطعی این موضوع وجود ندارد. در بینایی ماشین، بینش عمیقتری نسبت به رویدادها ضروری است.

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

 

شکل 5- مثالی از زیرنویس گذاری تصویر

 

برای یک تصویر دیجیتال، یکی از کاربردهایی که RNN در آن استفاده میشود، تحت عنوان زیرنویس گذاری تصویر (Image Captioning) شناخته میشود. در اینجا به یک تصویر به طور خودکار عنوانی براساس آنچه که در تصویر وجود دارد، داده می‌شود، مانند ” وسیله نقلیه یک خودرو است”  یا ” درب خودرو باز است “. واضح است که این سطح از درک محتوای تصویر مزایای زیادی در سیستمهای بینایی ماشین دارد. علاوه بر این، قدرت LTSM را می توان در یک سری از تصاویر نیز مورد استفاده قرار داد.

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

در عمل، سیستم‌های ترکیبیCNN و RNN برای کارهای پیچیده تر استفاده می‌شوند. یکی از این سیستمهای ترکیبی به نام DanQ توسط سیستم DeepSea به عنوان پایه و اساس آن ایجاد شد هر چند که DeepSea خود یک CNN تنها است و شامل RNN نمیشود. آزمایشها نشان داده‌است که سیستم ترکیبی نسبت به نمونه‌های قبلی خود بهتر عمل می‌کند زیرا RNN تنها داده‌های انتزاعی‌تر را که قبلا فیلتر شده‌اند، در نظر می‌گیرد و کشف روابط بلند مدت را آسان‌تر می‌کند. با این حال این امر وابسته به نحوه پیاده‌سازی است و خود بحث جداگانه‌ای را میطلبد.

 

 

نتیجه‌گیری

 

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

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

 

 

 

 

 

منبع: https://blog.exxactcorp.com