+بینایی ماشین و هوش مصنوعی
از پردازش تصویر تا هوش مصنوعی
هوش مصنوعی اساس به وجود آمدن بسیاری از تکنولوژیهای امروزی است که قرار است در آیندهای نزدیک دنیا را متحول کند. پردازش ماشین یکی از همین تکنولوژیهای جدید است که علاوه بر داشتن کاربردهای زیاد، باعث به وجود آمدند فناوریهای جدیدی مانند تشخیص چهره، بینایی کامپیوتری، بینایی ماشین و… شده است. بینایی کامپیوتری و بینایی ماشین فناوریهایی هستند که به کامپیوترها و ماشینهای اطراف ما توانایی دیدن میدهند. قبلا در مورد بینایی کامپیوتری و کاربردهای آن صحبت کردهایم. امروز میخواهیم به آموزش بینایی ماشین بپردازیم و ببینیم که چه کاربردهایی دارد و تفاوتها آن با بینایی کامپیوتری را متوجه شویم. در ادامه با ما همراه باشید. پردازش تصویر چیست؟پردازش تصویر که با نام Image Processing نیز شناخته می شود، یکی از شاخه های بسیار پرکاربرد در هوش مصنوعی است. این علم یک ماشین را قادر می سازد که با اعمال فیلترهایی روی تصاویر دیجیتالی که به سیستم داده شده است، وضوح آن ها را افزایش دهد، آن ها را محو کند، لبه های موجود در تصاویر را نمایان تر کند، به فشرده سازی تصاویر کمک کند، عکس ها را کد گذاری نماید و حتی یک شی یا ویژگی خاص را در تصاویر مختلف شناسایی کند! برای پردازش تصاویر، بر خلاف تکنیک های بینایی ماشین ، ماشین الزاما نیازی به دوربین ندارد و می تواند تصاویر ورودی را از طریق اسکنر یا هر شیوه دیگری نیز به دست آورد. کاربردهای پردازش تصویرپردازش تصویر دارای کاربردهای بسیار زیادی است. برای مثال:
ماشین ویژن چیست؟بینایی ماشین، ماشین ویژن یا Machine vision علمی است که برای تفسیر اشیا و عوامل موجود در جهان که به صورت سه بعدی پیرامون ماشین قرار گرفته است، به کار می رود. در حقیقت ماشین ویژن از پردازش تصویر به عنوان ابزاری استفاده می کند که با کمک آن و البته با بهره گیری از دوربین های نصب شده روی ماشین، می تواند به شناخت کامل و دقیقی از محیط بپردازد. برای ایجاد توانایی دیدن در یک ماشین، از دوربین ها و حسگرهایی استفاده می شود که قادر به دریافت سیگنال های الکترونیکی و تشکیل دادن یک تصویر قابل قبول، براساس این سیگنال ها هستند. چگونگی عملکرد بینایی ماشینهمانطور که پیش تر اشاره کردیم، ماشین ویژن برای تفسیر اطلاعات به دست آمده، از ابزار پردازش تصویر استفاده می نماید. در واقع یک ماشین برای کسب توانایی دیدن به تجهیزات نرم افزاری و سخت افزاری متفاوتی نیاز دارد. یکی از این امکانات، یک یا چند دوربین سیاه و سفید یا رنگی است. همچنین در صورتی که دوربین های استفاده شده آنالوگ باشند، یک واسطه نیاز است تا، تصاویر را به فرمت دیجیتالی تبدیل نماید. در ادامه برای ایجاد امکان بینایی ماشین، از الگوریتم های پردازش تصویر استفاده می شود. بدون این برنامه ها، ماشین تنها قادر به دریافت و ثبت تصاویر خواهد بود و قوه تشخیص نخواهد داشت. همچنین برای بهبود کیفیت تصاویر ممکن است ماشین به منابع نور مانند لامپ های ال ای دی و… نیز مجهز شود. بینایی ماشین یک فناوری بین رشتهای است که از دل علومی مانند رایانه، الکترونیک و برق، صنایع، مکانیک و حتی پزشکی بیرون آمده است و ارتباط تنگاتنگی با رشته هوش مصنوعی و تکنولوژی پردازش تصویر دارد. بینایی ماشین تلاش میکند تا فناوریهای موجود را به صوتی یکپارچه دربیاورد تا به روشهای جدیدی از آنها استفاده کند. نحوه کارکرد بینایی ماشین به این صورت است که پس از پردازشهایی که بر روی تصاویر دریافتی انجام میدهد یک سری اطلاعات را به صورت سیگنالی ساده برای کاربردهای مختلف به عنوان خروجی ارائه میدهد. این خروجی میتواند برای کاربردهای متفاوتی مانند خودکار سازی و هدایت فرایندها در رباتهای صنعتی، کمک به نهادها برای نظارت امنیتی، هدایت وسیله نقلیه و… کمک کند. پردازشهای بینایی ماشین معمولا به سه سطح دستهبندی میشوند:
بینایی ماشین چه کاربردهایی دارد؟بینایی ماشین دارای کاربردهای متنوع و مختلفی است. در ادامه به برخی از این کاربردها اشاره کوتاهی میشود اما در نظر داشته باشید که کاربردهای آن بسیار وسیعتر و گستردهتر از همین موارد میباشد.
تفاوت بینایی ماشین و بینایی کامپیوتری چیست؟بینایی کامپیوتری فناوری است که تصاویر را دریافت، پردازش و درک میکند و به طور کلی فناوریهایی مانند تشخیص اثر انگشت، خواندن پلاک اتومبیلها و یا شمار تعداد افرادی که در یک نمایشگاه وجود دارند و… از کاربردهای آن است. بینایی ماشین و بینایی کامپیوتری مفهوم بسیار نزدیکی به یکدیگر دارند اما بینایی کامپیوتری بسیار گستردهتر است و به طور کلی به تمامی پردازش و تجزیه و تحلیلهایی که بر روی تصاویر در دستگاهها، اپلیکیشنها و… انجام میگیرد اطلاق میشود در صورتی که بینایی ماشین بیشتر به صورت صنعتی کاربرد دارد. در ادامه تفاوتها این دو را بیشتر بررسی میکنیم:
امروزه در ایران خوشبختانه هوش مصنوعی و تکنولوژیهای مربوط به آن پیشرفتهای بسیاری داشتند که پردازش تصویر از جمله زیر مجموعههای هوش مصنوعی است که بر روی آن بسیار کار شده است. محصول بینایار شرکت عامر اندیش هوشمند نیز یکی از محصولات موجود در بازار امروز ایران است که از تکنیکهای مختلفی برای پردازش تصویر و بینایی کامپیوتری و ماشینی استفاده میکند آیا بینایی ماشین و پردازش تصویر با یکدیگر تفاوت دارند؟
اغلب علاقه مندان به حوزه هوش مصنوعی و رباتیک، کم و بیش با مفاهیمی نظیر پردازش تصویر و بینایی ماشین آشنا هستند و می دانند که از طریق این علوم یک ماشین (یک ماشین می تواند به شکل یک ربات، یک سیستم کامپیوتری و… باشد) توانایی مشاهده تصاویر، ثبت و درک آن ها را به دست خواهد آورد. اما بسیاری از تازه واردان دنیای هوش مصنوعی به اشتباه این دو علم را یکسان می دانند و از کاربردها و تفاوت های ماشین ویژن و پردازش تصویر بی اطلاع هستند. به همین علت تصمیم گرفتیم در این مقاله به زبان ساده، تفاوت های این دو علم را توضیح دهیم. کاربردهای Machine visionماشین ویژن در بسیاری از امور صنعتی و زندگی ما کاربرد دارد. برای مثال:
مهم ترین تفاوت ماشین ویژن و پردازش تصویرعملکرد ماشین ویژن همیشه محدود به استفاده از الگوریتم های پردازش تصویر نیست و حتی بدون استفاده از برنامه های Image Processing هم می توان از Machine Vision استفاده کرد. در واقع می توان اطلاعات ورودی را از طریق سنسورهای گرمایی به دست آورد و تصاویر گرمایی حرکت انسان از پشت یک دیوار را نیز توسط سیستم های دارای ماشین ویژن به ثبت رسانده و از آن ها استفاده کرد. در حالی که پردازش تصویر صرفا با استفاده از عکس ها کار می کند. از سوی دیگر بینایی ماشین در مراحل پیشرفته، قادر به پیشبینی و تشخیص زودهنگام حرکات می باشد. در حالی که پردازش تصویر در این زمینه کاربردی ندارد. تفاوت بینایی ماشین و پردازش تصویربسیاری از افراد، با این که با این دو مفهوم آشنا هستند، از تفاوت بینایی ماشین و پردازش تصویر مطلع نیستند. آیا این دو اساسا یک چیز هستند؟ آیا مستقل از هم کار میکنند و برای اهداف متفاوتی بهکار میروند؟ یا شاید هر دو اعضای فرایندی یکسان هستند؟ ممکن است برای افرادی که در این حوزه کار نکردهاند، یافتن تفاوت بینایی ماشین و پردازش تصویر دشوار باشد. علاوه بر این، ظهور یادگیری عمیق و اثرات آن در کارهای پردازش تصویر، آن را در کجای کار قرار میدهد؟ تعاریفی برای درک بهتر پاسخ این سوال که تفاوت بینایی ماشین و پردازش تصویر چیست، در زیر آمده است؛ اما پیش از آن، شاید بهتر باشد بدانیم چرا این مفاهیم برای برخی افراد سردرگمکننده است. گاهی به طور نادرست فرض میشود که بینایی ماشین زیرمجموعهای از پردازش تصویر است؛ یعنی معتقدند در آن کامپیوتر قادر است تصویری که به آن دسترسی دارد را تفسیر و درک کند و از آن استفاده مناسب نماید. اما در واقع، پردازش تصویر میتواند به عنوان قسمتی از فرایند بینایی ماشین و یا مجزا از آن، در حوزهای متفاوت، استفاده شود. در این مقاله از فنولوژی با مفاهیم پردازش تصویر و بینایی ماشین آشنا میشویم و درکی از این که تفاوت بینایی ماشین و پردازش تصویر چیست، پیدا میکنیم. پردازش تصویر چیست؟پردازش تصویر اصطلاحی جامع است که به توابع گوناگونی اشاره دارد که میتوانند روی یک تصویر ثابت اعمال شوند. با اینکه ورودی آن تنها یک فریم (تصویر) است، خروجی با توجه به تابع یا توابع موردنظر انواع متنوعی دارد. بیشتر توابع پردازش تصویر، تصویر ثانویهی اصلاح شدهای را تحویل میدهند. برای مثال هر فیلتری که یک تصویر را تغییر دهد، یک پردازنده تصویر است؛ چه یک عکس فوری سیاه و سفید را رنگآمیزی کند، پلاک خودرویی را جهت حفظ حریم خصوصی محو کند یا به سر شخصی گوشهای خرگوشی اضافه کند! تمام اینها مثالهایی از تبدیل یک عکس به عکسی دیگر توسط پردازش تصویر هستند. یکی از ابزارهای رایج در پردازش تصویر، نرمافزار فوتوشاپ از کمپانی ادوبی (Adobe) میباشد. استفاده از این محصول برای تغییر یک عکس آنچنان رایج است که وقتی تصویری را با آن ویرایش میکنیم از نتیجه نهایی تحت عنوان «فتوشاپ شده» یاد میشود. در مقابل، پردازش تصویر به روند تحلیل یک عکس، مثلا برای ساخت جملهای که آن را توصیف کند، اشاره ندارد. این کار در حوزه یادگیری ماشین، و در حقیقت، بخشی از بینایی ماشین است. حال که تعریفی از پردازش تصویر داریم، بیایید ببینم چه ارتباطی با بینایی ماشین دارد و تفاوت بینایی ماشین و پردازش تصویر را بهتر درک کنیم. بینایی ماشین چیست؟بینایی ماشین، در یک جمله، قابلیت و رویهی یک کامپیوتر برای درک اطرافش از طریق استفاده از یک یا چند چشم دیجیتال است. بدیهی است که این کار طی یک عمل مستقل رخ نمیدهد؛ بلکه سلسلهای از اقدامات است که ابتدا با دریافت تصویر آغاز گشته و سپس ادراک آن، توسط پردازش تصویر و آنالیز کردن، صورت میپذیرد.
بینایی انسان فرایند پیچیدهای است، و شبیهسازی آن همواره چالشی سخت برای کامپیوترها بوده است. با استفاده از روشهای سنتی یادگیری ماشین، و با ترقیهای حاصل شدهی اخیر در زمینهی یادگیری عمیق، پیشرفت قابلتوجهی در حوزهی کامپیوترهایی رخ داده است که میتوانند نسبت به آنچه «میبینند» عکس العمل نشان داده و آنها را تفسیر کنند. در بررسی تفاوت بینایی ماشین و پردازش تصویر، یک نقطهی تمایز قابل توجه این است که برای حاصل شدن یک بینش صحیح و منطقی ماشین، لازم است چند تصویر حضور داشته باشند؛ درحالی که پردازش تصویر ذاتا تنها با یک تصویر دیجیتال کار میکند، بینایی ماشین روی مجموعهای از تصاویر که با یکدیگر ارتباط زمانی خاصی دارند اعمال میشود.
پردازش تصویر، اجرا شده روی یک عکس ثابت دنبالهی تصاویرارتباط زمانی بین تصاویر اهمیت زیادی دارد؛ چرا که زمینهای را فراهم میآورد که اغلب برای حاصل شدن نتیجهای مناسب و دقیق ضروری است. برای مثال، عکس دیجیتالی را که حاوی یک خودرو است در نظر بگیرید. تحلیل و بررسی یک عکس به تنهایی ممکن است اطلاعات قابلتوجه و مهمی را در مورد خودرو در بر داشته باشد؛ مثلا مدل، رنگ و شماره پلاک آن، حضور سوار یا حتی نشانههایی از نور چراغ که نشاندهنده روشن بودن آن هستند. اما تعیین این که آیا خودرو در حال حرکت است یا نه، در چنین عکسهایی بسیار دشوار است. بدون شک مثالهایی وجود دارند که در آنها میتوان حرکت را تشخیص داد. این مثالها ممکن است شامل عکسهایی شوند که در آنها motion-blur یا تاری حرکت اعمال شده است؛ یا عکسهایی که درست در لحظهی گذر خودرو از یک چالهی آب و در نتیجهی آن، پاشیده شدن آب به بیرون دیده میشود. بنابراین واضح است که عکسهای تکفریمی اطلاعات کافی برای پیبردن به حرکت اجسام در اختیار ما نمیگذارند؛ چه رسد به آن که بخواهیم سرعت حرکت را از روی آنها تشخیص دهیم. بدون این جزئیات، عمق درک ما به طرز چشمگیری کاهش مییابد.
پردازش دنبالهای از عکس ها میتواند تعیین کند که خودرو در حال حرکت کردن است. حال به جای یک عکس تنها، مجموعه از سه عکس را در نظر بگیرید که شامل خوردو یکسانی هستند. همهی آنها از زاویهی یکسانی گرفته شده و متناظر با ترتیب عکسبرداری برچسبهای زمانی خوردهاند. اگر تاخیری بین گرفتهشدن عکسها وجود داشته باشد، میتوان به راحتی آن را از روی تفاضل برچسبهای زمانی عکسها محاسبه کرد. در این حالت، تعیین حرکت در یک بازهی زمانی مشخص بسیار راحتتر است. از منظر ما، ممکن است که خودرو در حال حرکت به چپ یا راست باشد، و با نگاه کردن به ترتیب گرفته شدن عکسها این موضوع روشن خواهد شد. بهطور مشابه، اگر خودرو در حال دور یا نزدیک شدن به دوربین باشد، عکس آن به ترتیب کوچکتر یا بزرگتر خواهد شد. البته در این مثال، حالتی را که جسم به گونهای حرکت کند که به علت فاصلهی زمانی بین هر بار عکسبرداری، جسم به جای اول خود بازگردد را در نظر نگرفتهایم؛ چراکه در این حالت تشخیص حرکت جسم ناممکن است.
یادگیری عمیق و تصاویر دیجیتال – تفاوت بینایی ماشین و پردازش تصویربا ظهور یادگیری عمیق طی سالهای اخیر، یکی از حوزههایی که این فناوری در آن به صورت گسترده مورد استفاده قرار گرفته است، تصویرپردازی دیجیتال (Digital imagery) است. دو چهارچوب (Framework) به خوبی شناختهشدهی یادگیری عمیق، «شبکهی عصبی کانولوشن» (شبکه عصبی کانولوشن چیست؟) و «شبکهی عصبی بازگشتی» (Recurrent Neural Network – RNN) هستند. با اینکه صحبت عمیقتر در این حوزهها خارج از هدف این مقاله است، چندان نامرتبط نیست اگر اشاره کنیم CNN در گسترهای از کارهای تصویربردای استفاده میشود. این کارها شامل تشخیص چهره و سامانههای تشخیصی، آنالیز تصاویر پزشکی، تشخیص تصویر، و تحلیل ویدیوهای تمام متحرک میشوند. در چنین سامانهای AlexNet وجود دارد، که CNNی است که توجهها را هنگامی به خود جلب کرد که برنده جایزه ۲۰۱۲ ImageNet Large Scale Visual Recognition Challenge شد. یادگیری عمیق در پردازش تصویرتکنینکهای یادگیری عمیق با موفقیت در کارهای مرتبط با پردازش تصویر به کار برده شدهاند. یک مثال سر راست استفادهی آن، «تشخیص لبه» است. شناسایی لبهها در یک تصویر دیجیتال بخش غیرپیشپا افتاده و مهمی از پردازش تصویر است. به طور مثال عکسی را که شامل تصویر یک خودرو است در نظر بگیرید. کاری که ماشین باید انجام دهد، اعمال فیلتر محو، به گونهای است که شماره پلاک خودرو نامشخص گردد. اگر قدمهای لازم برای این عمل، که به راحتی قابل تصور است، را در نظر بیاوریم، اولین قدم آن است که پلاک خودرو را بیابیم. شناسایی ویژگیهای ظاهری، مانند چراغ جلو یا پلاک، به «تشخیص ویژگی» معروف است. اما پیش از آنکه بتوانیم ویژگیها را تشخیص دهیم، لازم است که به دنبال لبه یا کنارههای جسم موردنظر بگردیم. بنابراین، تشخیص لبه نقشی اساسی در تشخیص ویژگی دارد، که به نوبه خود لازم است تا بتوان از طریق آن فیلترهای مختلف را بر تصویر اعمال نمود. هنگامی که پلاک تشخیص داده شد، تنها کاری که باقی میماند محو کردن کاراکترهای داخل چهارچوب آن است. نتیجه نهایی تصویر ثانویهای است که از هر نظر مشابه تصویر اولیه است، با این تفاوت که اطلاعات به خصوص شناسانندهی خودرو دیگر قابل تشخیص نیستند. تشخیص لبه، و وظیفه پییچدهتر تشخیص ویژگی، به راحتی توسط CNNها در سیستمهای یادگیری عمیق بهکار میروند. با تشخیص ویژگیها، CNNها میتوانند عکسها را دستهبندی کنند و اقسام دیگری از پیشبینیها را انجام دهند. این، منجر به طرح این سوال میشود که آیا میتوان CNNها را در بینایی ماشین بهکار برد یا خیر. سوالی که پاسخ به آن، ما را به درک تفاوت بینایی ماشین و پردازش تصویر نزدیک میکند.
استفاده از فناوری تشخیص لبهای، برای تشخیص پلاک یک ماشین یادگیری عمیق در بینایی ماشینبدون شک، تشخیص ویژگی و دستهبندی تصاویر ابزار مهمی برای ادراک ویژگیهای یک عکس هستند. به همین دلیل، CNN ابزار باارزشی برای استفاده در سیستمهای بینایی ماشین است. اما محتوای تصاویر چطور؟ آیا خودرو در حال نزدیک شدن به شما است یا دور شدن؟ بدون در نظر گرفتن مجموعهای از عکسها و ارتباط زمانیشان، هیچ راهی برای تشخیص قطعی وجود ندارد. دومین چهارچوب که قبلا برای یادگیری عمیق ذکر شد، RNN است. CNN در پردازش تصویر کاربرد دارد، درحالیکه RNN برای روشنسازی ارتباط زمانی جهت تعیین محتوای تصاویر کاربرد دارد. یک RNN شامل یک مکانیزم فیدبک حلقهای است که اساسا نقش یک حافظه داخلی را ایفا میکند. این مکانزیم که «حافظهی بلندِ کوتاه مدت» (LSTM) نامگذاری شده است، قادر است انواع متنوع و متعددی از ارتباطات را کشف کند؛ از جمله آنانی که تنها هنگامی واضح میشوند که محتوا را در نظر داشته باشیم. این سامانهها به طور مداوم در انجام وظایفی مانند تکمیل خودکار متن به کار میروند؛ هنگامی که پیشبینی یک کلمه به آنچه که پیش از این در جمله رخ داده است بستگی دارد. در تصاویر زیر شمایی از ناحیه بندی به صورت Semantic Segmentation را مشاهده می کنید.
نمونهای از عنوانگذاری تصاویر برای مواردی مانند یک تکعکس، یکی از کاربردهایی که RNN در آن اعمال میشود «عنوانگذاری تصاویر» نام دارد. یعنی به صورت خودکار با توجه به آنچه در عکس وجود دارد، به عکس عنوانی داده شود؛ مثلا «وسیله نقلیه، یک خودرو سواری است»، یا «در راننده باز است». بدیهی است که این سطح از ادراک فواید بسیاری در بینایی ماشین داد. علاوه بر این، قدرت LSTM را میتوان برای استفاده در مجموعهای از تصاویر بهکار گرفت. با در اختیار داشتن مجموعهای از عکسها، RNN هم محتوای عکسها و هم ارتباط زمانی بین آنها را، با در نظر گرفتن برچسب زمانی عکسها، مورد توجه قرار خواهد داد. حال تصور کنید که هر عکس توصیف دقیقی را نیز به همراه خود داشته باشد. همچنین این توصیفها همراه با چند توصیف مشابه دیگر در دستههایی مرتب شده باشند و نتیجه نهایی، پاراگرافی باشد که آنچه را در حال رخ دادن در یک بازهی زمانی به خصوص است بیان میکند. در واقعیت، سامانههای هیبریدی که از هردو چهارچوب RNN و CNN تشکیل شدهاند، در وظایف پیچیدهتری بهکار برده میشوند. یکی از این سامانههای هیبریدی، DanQ نام دارد که از DeepSEA به عنوان بنیان سازنده خود استفاده کرده است. البته DeepSEA یک سامانه CNN تنهاست و از RNN استفاده نمیکند. آزمایشات نشان میدهند که سامانههای هیبریدی از سامانههای دیگر بسیار بهتر عمل میکند؛ چراکه RNN تنها دادههای انتزاعیای را مورد توجه قرار میدهد که قبلا توسط CNN جداسازی شدهاند. با این حال، این کار بستگی به نحوه پیادهسازی الگوریتمها دارد و از محدودهی بحث این مقاله جدا است. تفاوت بینایی ماشین و پردازش تصویر: نتیجه گیریبینایی ماشین و پردازش تصویر وظایفی متمایز، و با این حال مرتبطی در زمینه تصویرپردازی دیجیتال هستند. پردازش تصویر شامل تغییر تصاویر از طریق دستگاههایی مانند فیلترهاست؛ درحالی که هدف سیستمهای بینایی ماشین درک این است که در یک بازهی زمانی که توسط یک چشم الکترونیکی ثبت شدهاست، چه اتفاقی در حال رخ دادن است. پردازش تصویر، با اینکه کاربردهای خاص خودش را نیز دارد دارد، بخش مهمی از یک سامانه بینایی ماشین است. سامانههای یادگیری عمیق، در هر دو زمینهی پردازش تصویر و بینایی ماشین با استفاده از گسترهای از چهارچوبها و پیادهسازیهای هیبریدی با موفقیت اعمال گشتهاند. با پیشرفت الگوریتمهای یادگیری عمیق و افزایش دائمی قدرت رایانش، سیستمهای بینایی ماشین بدون شک بهتر خواهند گشت. از سوی دیگر، فناوریهایی مثل دوربینهای هوشمند و رباتها نیز به پیشرفت خود ادامه خواهند داد، تا جایی که بینایی ماشین را از آزمایشگاهها خارج کرده و به زندگی روزمره وارد خواهند کرد.
لینک کوتاه شده : https://amerandish.com/xo8U8 منبع: EXXACTCORP
|