بهگفتهی پاول گراهام دانشمند کامپیوتر، کارآفرین و سرمایهگذاری اقتصادی:
همانطور که حرف میزنی، بنویس.
با درنظرگرفتن این نقلقول میتوان به تعریف بینایی ماشین پرداخت. در این مقاله فرض میشود مخاطب چیزی در این مورد نمیداند. TechCrunch باتوجهبه این مسئله این تعریف را ارائه میکند:
شخصی در اتاق یک توپ را به سمت شما پرتاب میکند و شما آن را میگیرید. ساده است، نه؟ اما این فرایند یکی از پیچیدهترین فرآیندهایی است که برای درک آن تلاش میکنیم.
و حالا یک نگاه فوری به ویکیپدیا بیندازید:
بینایی ماشین یک زمینهی میانرشتهای است که با نحوهی ساخت کامپیوترها برای دستیابی به درک سطح بالایی از تصاویر دیجیتالی یا ویدئوها سروکار دارد. بینایی ماشین دقیقا همانطور است که به نظر میرسد (کامپیوتر یا ماشین اشیا را میبینند) و تفاوتهای اندکی با زمینههای مرتبط خود دارد.
براساس ویکیپدیا، بینایی ماشین عبارت است از:
باز کردن اطلاعات سمبلیک دادههای تصویری با استفاده از مدلهایی که به کمک هندسه، فیزیک، آمار و نظریهی یادگیری ساخته شدهاند.
تاریخچهی پرماجرا و طولانی بینایی ماشین
درست در زمان مرگ والت دیزنی و تولد مخترع ویکیپدیا، مردم در تلاش بودند نعمت بینایی را به کامپیوتر هدیه کنند. متن زیر برنامهریزی برای ساخت یک سیستم بصری را نشان میدهد. براساس این متن ساخت هر بخش از این سیستم بر عهدهی گروههای مختلف است و این پروژه به یک نقطهی شاخص در توسعهی تشخیص الگو تبدیل میشود.
در این متن اشاره شده است که هدف اصلی این پروژه، ساخت سیستمی برای طبقهبندی اشیا و پسزمینه در یک تصویر است. پیشرفتهای قرن بیستویک در زمینهی محاسبات، ریاضی و زمینههای مرتبط، زمینهای را برای این پیشرفتها فراهم کرده است.
پردازش تصویر دیجیتال
بینایی ماشین بهشدت به نمودارهای ون در پردازش تصویر دیجیتال وابسته است. وظایف زیر در حوزهی پردازش تصویر دیجیتال قرار میگیرند:
روشهایی برای تجزیهی یک شیء سهبعدی به دو بعد: عمل پردازش تصویر
تشخیص الگوی وابسته به الگوریتم، امکان یافتن خودکار نقاط کلیدی یک تصویر مانند گوشهها و یالها را فراهم میکند. با مقایسهی موقعیت تقریبی نقاط بین فریمهای ویدئوی برای مثال میتوانید جابهجایی محور X و Y را خنثی کنید و لرزش را از بین ببرید. همچنین میتوانید این کار را بهسادگی در پایتون با کد متنباز انجام دهید.
شاید بتوان گفت، تحلیل سیگنال چندمقیاسی یکی از سنگینترین عملیات پردازش تصویر باشد، اما در سطح بالا، همانطور که از نام آن پیداست بهمعنی تحلیل سیگنال روی مقیاسهای متعدد یا از زاویههای مختلف است. فتوشاپ در ابزار shaprening خود از تحلیل چندمقیاسی استفاده میکند.
گاهی اوقات برای افزایش شفافیت یک تصویر، در ابتدا آن را بلور میکنند تا لبههای تصویر آشکار شود
یک روش جالب برای تجزیهی یک تصویر بهدستآوردن مشتق آن است. این روش به یافتن لبههای تصویر و درنتیجه تفکیک بخشهای تصویر به اشیای مجزا کمک میکند. با این روش میتوان برچسبهایی مثل سگ، انسان، پلنگ، توپ ورزشی و ... را به اشیا تخصیص داد. این فرایند اغلب روی مقیاسهای مختلف انجام میشود.
درخشش در سطح پیکسلی. تصاویر مانند آرایههای numpy (افزونهی برنامهنویسی پایتون) به نظر میرسند.
تصویر بالا، تصویر آبراهام لینکلن است. رزولوشن پائین آن بهاندازهای است که بتوان پیکسلهای مستقل را دید. ازآنجاکه کار در طیف خاکستری یا grayscale هشت بیتی اجرا شده است، اعداد هر واحد، درخشش پیکسلی را روی طیف ۰ تا ۲۵۵ نمایش میدهند.
با بهدستآوردن مشتق گسستهی هر پیکسل در راستای محور x میتوان آن پیکسل را با پیکسلهای چپ و راست خود مقایسه کرد، نتیجهی این مقایسه تخمین نسبت تغییر لحظهای بین مقادیر درخشندگی (brightness) است. میتوانید مشتق گسستهی همان پیکسل را هم در راستای محور y به دست آورید (ستون آن) و سپس با ترکیب این دو بخش، وجود پیکسل روی لبهها را بررسی کنید.
تصور کنید، x موقعیت پیکسلی را در سطر گسستهای از پیکسلها نمایش میدهد و y مقدار درخشندگی آن است. نمیتوانید مشتق آن را از گراف میلهای به دست آورید، بلکه میتوانید آن را از منحنی بهترین تناسب تخمین بزنید.
تغییر نسبت لحظهای لبهها بین مقادیر رنگ و درخشندگی معمولا بیشتر است. برای مثال لبهی ریش آبه کنتراست بالایی دارد. در فیلم ذیل یک پیشنمایش از آخرین فناوری آشکارسازی شیء ارائه شده است که بسیاری از این روشها را ترکیب میکند.
الگوریتم کشف شیء YOLOv3 ژوزف ردمون و همکاران.
بینایی ماشین در مقابل بینایی ماشین
حالا این سؤال مطرح میشود که چه عاملی بینایی ماشین را از پردازش تصویر دیجیتالی متمایز میکند؟ همپوشانیهای زیادی بین این دو وجود دارد اما بینایی ماشین معمولا گستردهتر است: بینایی ماشین به ورودیهایی مثل فرضیهها نیاز دارد و هدف آن دستیابی به یک خروجی از تصمیمهای قابل ردیابی است.
برای درک این تفاوت، این مثال را در نظر بگیرید: فرض کنید یک ربات ساده مجهز به چتر نجات و دوربین را از هواپیما پرتاب کنید. اگر این ربات در حین سقوط تنها عمل پردازش تصویر دیجیتالی را انجام دهد، صرفا میتواند ورودی دوربین خود را برای شناسایی سوژههای زیر خود مثل زمین و دریا تحلیل کند اما از ماهیت زمین یا دریا آگاه نیست یا نمیداند چه وظیفهای را در مورد آنها انجام دهد.
با بینایی ماشین، میتوان پیشفرضهایی را به ربات داد برای مثال: «آب و گدازههای داغ محل بدی برای فرود هستند» یا «آب و گدازهی داغ چه ویژگیهایی دارند». در مرحلهی بعد ربات میتواند از پردازش تصویر دیجیتالی برای تحلیل ورودیهای دوربین خود استفاده کند و نواحی اطراف از جمله زمین، دریا یا گدازهی آتشفشانی داغ را دستهبندی کند و براساس فرضیههای قبلی برای محل فرود تصمیمگیری کند.
این مثال یک نمونه از بینایی ماشین است که یک زیرمجموعهی مهندسی از بینایی ماشین است. یک کاربرد واقعگرایانهتر از بینایی ماشین میتواند خودکارسازی یا تسریع وظایف بصری QC روی خط مونتاژ باشد. بنابراین میتوان گفت بینایی ماشین بیشتر با عناصر علمی و نظری سروکار دارد (نه کمک به فرود ایمن ربات).
از طرفی، بسیاری با این تعاریف مخالف هستند. بعضی میگویند هدف پردازش تصویر دیجیتال، صرفا تبدیل تصاویر است و بینایی ماشین هم صرفا کار تشخیص و تحلیل الگو را انجام میدهد. هنوز بر سر این تعاریف اختلاف وجود دارد.
آینده: خوب یا بد
بینایی ماشین به پیشرفتهای قابلتوجهی رسیده است. در آینده سیستمهایی توسعه خواهند یافت که امکان درک مشاهدات و پاسخگویی متناسب را به کامپیوترها میدهند.
سیستمهای اینچنینی در آینده به یک ضرورت برای عملکرد ایمن خودروهای اتوماتیک تبدیل میشوند. این سیستمها به کاهش هزینهها در پردازش تصویر پزشکی هم کمک میکنند. بینایی ماشین در اقدامات بشردوستانه هم خواهد درخشید؛ اما بهطورکلی باید به یک نکته توجه کرد: افرادی که از استثمار، جنگ و دیگر اقدامات شرورانه سود میبرند هم از این ابزار استفاده خواهند کرد. به نقل از گیزمودو:
در منطقهی مشهور پیکادیلی لندن یک صفحهی نمایش ترسناک و بزرگ قرار دارد که میتواند وسایل نقلیه، سن و حتی احساسات افراد نزدیک به خود را شناسایی کند و با تبلیغات هدفمند به آنها واکنش نشان دهد.
پیشرفتهای یادگیری ماشین و پردازش تصویر دیجیتال در حال همگرا شدن هستند. شاید روزی برسد که برای مثال آچاری را به سمت یک ربات کارگر پرتاب کنید، آن ربات منظور شما را تشخیص دهد و آچار را بگیرد.