تاریخچهای کوتاه در ارتباط با بینایی ماشین
تا همین چند دهه قبل، بیشتر مردم بر این باور بودند که بینایی ماشین محدود به داستانهای علمی تخیلی است. با اینحال، در یک دهه گذشته، بینایی ماشین به یکی از حوزههای روبهرشد هوش مصنوعی تبدیل شده است. پژوهشهای زیربنایی که توسط دانشمندان پیشرو در حوزه بینایی ماشین انجام شده، باعث شده تا این فناوری به شکل ملموس در حوزههای مهمی نظیر روباتیک استفاده شود. چرا فناوری بینایی ماشین مهم است؟ بینایی ماشین به این دلیل مورد توجه شرکتهای تجاری و صنعتی قرار گرفته که به برنامههای کامپیوتری اجازه میدهد تا وظایف و کاربردهای خود را به شکل خودکار انجام دهند، وظایفی که پیش از این برای انجام آنها به ناظر انسانی (Human Supervisor) نیاز بود. البته برنامههایی برای کنترل ابزارها و تجهیزات صنعتی نوشته میشوند. بینایی ماشین به عنوان یک ابزار مهندسی در ابزارهای دیجیتال و در شبکههای رایانهای برای کنترل ابزارهای صنعتی دیگر از قبیل کنترل بازوهای روباتی یا خارج کردن تجهیزات معیوب استفاده میشود. بر همین اساس بینایی ماشین را باید شاخهای از علم مهندسی توصیف کرد که با رشتههای علوم کامپیوتر، علم نورشناسی، مهندسی مکانیک و خودکارسازی صنعتی در تعامل است. یکی از پر استفادهترین کاربردهای این فناوری در بازبینی و بررسی کالاهای صنعتی نظیر نیمههادیها است. همانند نیروی انسانی که با چشم غیرمسلح در خط تولید کالاها را برای تعیین کیفیت و نوع ساخت آنها بازبینی میکنند، بینایی ماشین از دوربینهای دیجیتال و هوشمند و نرمافزارهای پردازش تصویر برای این کار استفاده میکند. در همین ارتباط از دستگاههای مجهز به بینایی ماشین برای انجام وظایف خاص نظیر شمارش اشیاء، خواندن شماره سریال کالاها و جستوجوی کالاهای معیوب استفاده میشود. در حال حاضر دنیای تجارت به شکل گستردهای از سامانههای مبتنی بر بینایی ماشین برای شناسایی اجسام و پیادهسازی بازوهای روباتیک هوشمند که قرار است 24 ساعته کار کنند و محاسبات با حجم بالا را انجام دهند استفاده میکند. درست است که عامل انسانی در شناسایی خطاها در بازههای زمانی کوتاهمدت عملکرد بهتری دارد، اما با توجه به ویژگیهای متعددی که بینایی ماشین دارد در بلندمدت دستگاههای مجهز به این فناوری جای انسانها را خواهند گرفت، زیرا در شرایط سخت و پر فشار ضریب خطای دستگاههای هوشمند در مقایسه با انسانها کمتر است. وظایفی نظیر بازشناسی قطعات در خط تولید (Assembly Line Part Recognition) بازشناسی چهره (Face Recognition) و کاربردهای عملیاتی نظیر هدایت هوشمند هواپیماهای بدون سرنشین (Unmanned Aerial Vehicles) و وسایل نقلیه بدون سرنشین (Unmanned Automobiles) از جمله نقشهای تعریف شده برای سامانههای بینایی ماشین هستند.
دانشمندان چه کاربردهای خلاقانهای برای بینایی ماشین تعریف کنند؟
هدف فعلی سامانههای بینایی ماشین، پیادهسازی چارچوبی کلی برای حل مسائل حل نشده و در ادامه پیادهسازی یک سامانه عملیاتی و کاربردی در حوزه روباتیک است. با اینحال، دستیابی به این اهداف کار سادهای نیست. یکی از چالشهای بزرگ در پیادهسازی این سامانهها، عدم وجود یک فرآیند جامع و فراگیر برای ساخت مولفههای مدلسازی سه بعدی تشخیص اشیا است. امروزه بینایی ماشین در سامانههای مبتنی بر این فناوری به دو گروه بینایی فعال (Active Vision) و بینایی منفعل (Passive Vision) تقسیم میشوند. در حوزه بینایی فعال، سامانه به شکل مستقیم با محیط پیرامون در تعامل است و به دریافت اطلاعات محیطی میپردازد. راهحلهایی نظیر SONAR، LIDAR و RADAR سیگنالهای صوتی، نوری یا امواج رادیویی ساطع میکنند که از طریق گوش کردن به سیگنال منعکس شده تلاش میکنند الگوی تصویری خاصی را دریافت و مدلسازی کنند. اگر مقاله یادگیری ماشین آنلاین را مطالعه کرده باشید، احتمالا حدس زدهاید که بینایی فعال خود در زیرمجموعه یادگیری ماشین آنلاین قرار میگیرد، زیرا اطلاعات به شکل لحظهای دریافت شده و پردازش میشوند. رویکرد دوم که بینایی غیرفعال نام دارد بر مبنای این مکانیزم کار میکند که نور را از محیط عملیاتی دریافت میکند (شبیه به کاری که چشم انسان انجام میدهد) و بدون آنکه موجهای ناهنجاری در محیط به وجود آورد تصویری از یک شی را ایجاد میکند. علاوه بر این، دسترسی به سختافزارهای موردنیاز برای پیادهسازی این مدل سامانهها در مقایسه با نمونه اول مقرون به صرفهتر است.
نکته مهمی که باید به آن دقت کنید این است که سامانههای مبتنی بر بینایی ماشین به شکلی متفاوت از انسان اجسام را مشاهده میکنند. در شرایطی که انسان میتواند بر استنباط و فرضیات اتکا کند، تجهیزات هوشمند باید از طریق آزمودن و تجزیه و تحلیل تکبهتک پیکسلها و تلاش برای نتیجهگیری با توجه به پشتوانه اطلاعاتی و روشهایی مانند شناسایی الگو تصویری از یک شی یا انسان را ایجاد کنند. البته برخی الگوریتمهای بینایی ماشین با تقلید از بینایی انسان تا حدودی به نمونههای زیستی نزدیک شدهاند، اما الگوریتمهای محدودی در ارتباط با تحلیل و شناسایی ویژگیهای مرتبط با تصاویر به شکل کارآمد توسعه پیدا کردهاند. در مجموع باید بگوییم که اهدف اصلی سامانههای بینایی ماشین پیادهسازی سامانههای خودکار بازسازی صحنه (Scene Reconstruction) و بازشناسی اشیا (Object Recognition) است.
بینایی ماشین و بینایی کامپیوتر چه تفاوتی با یکدیگر دارند؟
برخی از مردم بر این باور هستند که بینایی ماشین و بینایی کامپیوتر دو اصطلاح مترادف هم هستند، در حالی که به لحاظ فنی این دو مفهوم تفاوتهای زیادی با یکدیگر دارند. بهطور معمول، سامانههای بینایی ماشین میتوانند به شکل ثابت تصاویر را تجزیه و تحلیل کنند، اما پردازش تصویر مبتنی بر کامپیوترها (بینایی کامپیوتر) به صورت کلی برای انجام کارهای تکراری طراحی شده است. به بیان دقیقتر بینایی کامپیوتر به فرآیند خودکارسازی دریافت و تحلیل تصاویر اشاره دارد. تمرکز سامانههای بینایی کامپیوتر بیشتر روی قابلیتهای تحلیل تصاویر، استخراج اطلاعات مهم از آنها و درک و فهم اشیا یا موجودیتهای درون تصاویر است. در بینایی ماشین سامانهها سعی میکنند از تکنیکهای بینایی کامپیوتر در کاربردهای صنعتی و عملی استفاده کنند. با وجود پیشرفتهای انجام گرفته در هر دو حوزه، هیچ سامانه بینایی ماشین و بینایی کامپیوتر نمیتواند با برخی از ویژگیهای زیستی چشم انسان در ارتباط با درک تصویر، تحمل تغییرات نور، تضعیف قدرت تصویر و سایر جنبههای بصری رقابت کند. در چند سال گذشته، مرز میان سامانههای بینایی ماشین و کامپیوتر کمرنگ شده و به تدریج دو فناوری در حال ادغام شدن هستند. به همین دلیل است که امروزه از اصطلاح بینایی ماشین در محیطهای صنعتی و غیر صنعتی نظیر زیستپزشکی استفاده میشود. علاوه بر این، زمانی که قرار باشد قابلیتهای موتورهای جستوجو و خدمات بازشناسی مبتنی بر تصویر در جستوجوها را توصیف کرد از اصطلاح بینایی ماشین استفاده میشود.
مولفههای یک سیستم بینایی ماشین چیست؟
بهطور معمول، مولفههای اولیه موردنیاز برای توسعه سامانههای بینایی کامپیوتر و بینایی ماشین شبیه به هم هستند. یک سامانه مبتنی بر بینایی ماشین از مولفههای زیر ساخته شده است:
- یک دستگاه تصویربرداری یا دریافت تصویر: این دستگاه میتواند یک یا چند دوربین دیجیتال باشد که مجهز به یک حسگر تصویر و یک لنز با خواص نوری مناسب برای گرفتن عکس است.
- رابطی که عکسها را برای پردازش آماده میکند: این مولفه زمانی نیاز است که از دوربین آنالوگ برای تهیه تصاویر استفاده میشود و باید از رابطی نظیر یک کارت که برای دریافت سیگنال تصویری و فرستادن آن به کامپیوتر استفاده میشود بهره برد.
- یک سامانه کامپیوتری یا پردازنده (توکار) که وظیفه پردازش سیگنالها را بر عهده دارد: به دلیل اینکه سامانههای تصویربرداری امروزی نظیر دوربینهای هوشمند به پردازندههای اختصاصی تجهیز شدهاند، فرآیند پردازش و تحلیل تصاویر درون دستگاه تصویربرداری انجام میشود و نیاز چندانی به این سامانه نیست.
- نرمافزار بینایی ماشین (برنامه پردازش تصویر): برنامهای که وظیفه آن ارائه تصویر یا اطلاعاتی ساختیافته و قابل درک برای انسانها است. بهطور معمول، این برنامهها به زبان پایتون یا متلب نوشته میشوند.
- سختافزار ورودی/خروجی: ابزارهایی نظیر کارتهای شبکه با هدف ارسال یا دریافت گزارشهای آماده شده برای واحدهای مربوطه استفاده میشوند.
- منابع و شرایط نوری مناسب: امکان تعامل با محیط عملیاتی به منظور دریافت تصویر از محیط، تحلیل تصاویر دریافت شده و تولید خروجیهای مطلوب را فراهم کنند.
- حسگر همزمانساز: حسگر فوق برای شناسایی مولفههایی نظیر حسگر نوری یا حسگر مغناطیسی استفاده میشود. حسگر همزمانساز مشخص میکند که چه زمانی یک مولفه در مکان مناسبی قرار دارد. بهطور مثال، ماشین خودرانی که باید فاصله ایمن با خودرو جلویی را حفظ کند.
روشهای پردازش دادهها توسط الگوریتمهای بینایی ماشین
همانند سایر الگوریتمهای دنیای هوش مصنوعی و یادگیری ماشین در دنیای بینایی ماشین از روشهای مختلفی برای پردازش اطلاعات دریافتی استفاده میشود. از جمله این روشها به موارد زیر باید اشاره کرد:
- شمارش پیکسل: در روش فوق تعداد پیکسلهای روشن و تاریک شمارش میشوند.
- تعیین آستانه: تبدیل یک عکس با بخشهای خاکستری به یک عکس سیاه و سفید به این طریق که با قرار دادن آستانهای، پیکسلهای روشنتر به سمت سفید و پیکسلهای تیرهتر به سمت سیاه متمایل میشوند.
- بخشبندی: تبدیل تصویر ورودی به بخشهای مختلف برای موقعیتیابی و شمارش پیکسلها.
- تشخیص و شناسایی لکهها و دستکاری: بررسی یک عکس برای یافتن نقاط گسست از میان پیکسلها. این لکهها به عنوان نشان اختصاصی عکس استفاده میشوند.
- تشخیص و شناسایی توسط مولفههای موجود: استخراج مولفهای خاص از یک تصویر ورودی.
- تشخیص و شناسایی الگو به شکل مقاوم در برابر تغییرات: موقعیت جسمی که ممکن است چرخانده شود یا اندازهاش تغییر کند یا قسمتی از این جسم توسط جسم دیگر پوشانده شود شناسایی میشود.
- خواندن بارکد: شناسایی و تعیین کدهای یک بعدی و دو بعدی پویش شده توسط ماشینها.
- تشخیص و شناسایی کاراکتر نوری: خواندن خودکار یک متن.
- اندازهگیری: اندازهگیری ابعاد یک جسم (بر حسب میلیمتر یا اینچ).
- تشخیص و شناسایی لبهها: این فرآیند به پیدا کردن لبههای یک جسم در یک تصویر اشاره دارد. منظور از لبهها تشخیص انواع خطوط منحنی و صاف در قسمتهای مختلف یک عکس است که ممکن است برخی از لبهها بلند و طولانی و برخی کوتاه باشند.
- تشخیص و شناسایی از طریق تطبیق الگو: پیدا کردن، مطابقت دادن و شمارش اشکال خاص در یک تصویر.
در اکثر موارد یک سامانه دید ماشینی برای بررسی کامل یک تصویر ترکیبی از روشهای فوق را برای پردازش دادهها استفاده میکند.
یک متخصص بینایی ماشین به چه مهارتهایی نیاز دارد؟
اگر با خواندن این مطلب علاقهمند شدهاید به شکل حرفهای به دنیای بینایی ماشین وارد شوید باید بدانید که یک متخصص بینایی ماشین در حالت کلی به چه مهارتهایی نیاز دارد.
شرکتها بسته به نوع سامانهای که در نظر دارند پیادهسازی کرده یا آنرا کامل کنند مهارتهای مختلفی از افراد درخواست میکنند، با اینحال در حالت کلی به عنوان یک متخصص بینایی ماشین باید مهارتهای زیر را داشته باشید:
مهارتهای کلی
- دانش کافی در ارتباط با مباحث بنیادین هوش مصنوعی، الگوهای رایج یادگیری ماشین (با ناظر و بدون ناظر) و یادگیری عمیق.
- دانش کافی در استفاده از چارچوبهای تنسورفلو، پایتورچ و Scikit-learn.
- تسلط بر یک زبان برنامهنویسی قدرتمند در این زمینه نظیر پایتون، آر یا متلب.
- آشنایی با مفاهیم برنامهنویسی شیءگرا.
- آشنایی با گیت برای تعامل با سایر تیمهای توسعه و آشنایی نسبی با سیستمعامل لینوکس.
- توانایی حل مسئله و ارائه راهحلهای خلاقانه.
- توانایی کار تیمی.
مهارتهای مختص به بینایی ماشین
- آشنایی با مبانی پردازش تصویر و ویدئو.
- آشنایی با کتابخانه OpenCV.
- آشنایی با مفاهیم تشخیص و شناسایی چهره، تشخیص اشیاء و فعالیت، بازشناسی متن.
- پردازش گفتار که شامل آشنایی با مبانی پردازش صوت و گفتار است.
- آشنایی با روشهای بازشناسی گفتار.
- آشنایی با احراز هویت از طریق صوت.
- آشنایی با چگونگی استفاده از یادگیری عمیق در حوزه صوت.
مهارتهای مرتبط با حوزه دادهکاوی
- آشنایی با یادگیری تقویتی.
- آشنایی با سیستمهای پیشنهاددهنده.
- آشنایی با آمار و تستهای آماری.
- آشنایی با مفاهیم پردازش بزرگدادهها.
- آشنایی با مفاهیم بصریسازی دادهها و تولید گزارشهای مناسب.
در کنار مهارتهایی که به آنها اشاره شد، برخی شرکتها از متخصصان انتظار دارند در زمینه تسلط بر الگوریتمهای پردازش تصویر و بینایی ماشین مانند ردیابی شیء، حذف پسزمینه و تصحیح پرسپکتیو، تسلط بر چارچوبهای یادگیری ماشین نظیر کراس و تسلط بر معماری شبکههای Res، Faster-Rcnn، Inception، YOLO Algorithm و OpenPose صاحب دانش باشند.
یک متخصص بینایی ماشین چقدر حقوق دریافت میکند؟
معمولا مهمترین انگیزه برای ورود به دنیای بینایی ماشین میزان حقوقی است که افراد دریافت میکنند. میزان دریافتی به شرکتی بستگی دارد که قصد ورود به آنرا دارید. بهطور مثال، یک متخصص بینایی ماشین مجرب با چند سال تجربه کاری حرفهای و انجام پروژههای موفق در شرکتی نظیر فیسبوک سالانه 140 هزار دلار دستمزد دریافت میکند، با اینحال، متوسط حقوق دریافتی این افراد در سال 89 هزار دلار است. در ایران شرکتها از همان جمله کلیشهای توافقی استفاده میکنند، با اینحال، اگر در نظر دارید به عنوان یک متخصص بینایی ماشین در شرکتی استخدام شوید، حداقل پیشنهادی که باید ارائه دهید 8 میلیون تومان است (اگر تجربه کار عملی یا مقاله تحقیقاتی منتشر شده در مجلات ISI ندارید.). اگر در این زمینه سابقه کار دارید، حداقل پیشنهادی که باید ارائه کنید بهتر است کمتر از 12 میلیون تومان نباشد.
کاربردهای بینایی ماشین
بینایی ماشین فناوری روبهرشدی است و انتظار میرود تا سالهای آتی به صنایع و حوزههای مختلف وارد شود. از مهمترین کاربردهای بینایی ماشین که بازار کار خوبی برای متخصصان فراهم میکند به موارد زیر باید اشاره کرد:
خودکارسازی صنعتی
- پیادهسازی سامانههای ایمنی که باید در محیطهای صنعتی استفاده شوند. بررسی مواد اولیه تولید، کنترل موجودی انبار و سامانههای مدیریتی (شمارش، بارکد خواندن و ذخیره اطلاعات در سامانههای دیجیتال) و پیادهسازی روباتهای تعقیب الگوی خطی که برای حمل بار در کارخانههای صنعتی استفاده میشوند از حوزههای مهم مرتبط با خودکارسازی صنعتی هستند. علاوه بر این سامانههای بینایی ماشین بهطور گسترده در صنعت تولید نیمرساناها کاربرد دارند. بدون وجود این سامانهها تولید تجهیزات کامپیوتری روند کندی دارد.
پلاکخوان
- تشخیص شماره پلاک از جمله کاربردهای گسترده بینایی ماشین است که امروزه توسط نهادهایی نظیر راهنمایی و رانندگی استفاده میشود. فناوری فوق اجازه میدهد پلاک ماشینها به درستی خوانده شود. این سامانهها را میتوان در پارکینگهای هوشمند، ورودی و خروجی سازمانها و مجتمعهای بزرگ جهت کنترل تردد به کار گرفت. علاوه بر اینها در جادهها نیز این فناوری کاربردهای زیادی دارد.
سرعتسنج
- با استفاده از تصویر دو دوربین میتوان عمق تصویر را بهدست آورد و به این شکل سرعت یک ماشین را محاسبه کرد. مزیت این سامانهها نسبت به نمونههای لیزری در انفعالی بودن آنها است. انفعالی به این معنا که این تجهیزات امواجی از خود صادر نمیکنند و به همین علت استفاده از اختلالگر یا ردیاب برای جلوگیری از ثبت تخلف کارایی ندارد.
ثبت تخلفات درون شهری
- پردازش تصاویر دوربینهای نصب شده در تقاطعها این امکان را فراهم میکند تا زمان، سرعت، جهت حرکت و پلاک خودروها را بهدست آورد و عبور از چراغ قرمز، توقف روی خط عابر پیاده، گردش به چپ و راست و تخطی از سرعت مجاز هنگام عبور از تقاطع را ثبت کرد.
کلام آخر
سامانههای بینایی ماشین بر مبنای اصلاح و بهینهسازی راهحلهای موجود یا ترکیب روشهای در دسترس با سایر تکنیکها این امکان را فراهم میکنند تا برخی کارهای پیچیده یا طاقتفرسا برای انسانها را خودکارسازی کرد. البته دانشمندان به دنبال بررسی این موضوع هستند که این امکان وجود دارد که به جای دوربینهای گرانقیمت از تعداد زیادی دوربین با کیفیت پایین برای تطابق تصاویر و ارزیابی عملکرد آنها با سامانههایی که از دو دوربین با کیفیت بهره میبرند استفاده کرد یا خیر. علاوه بر این دانشمندان به دنبال آن هستند تا به شکل بهینهتری از واحد پردازش گرافیکی برای انجام فرآیندهای بینایی ماشین استفاده کنند، بنابراین انتظار میرود در آینده پیکسلهای سه بعدی با دقت بیشتری در این حوزه استفاده شوند که دسترسی به جزییات بیشتر را فراهم میکنند. در مجموع باید گفت سرمایهگذاری روی یادگیری بینایی ماشین موقعیتهای شغلی خوبی برای شما به وجود میآورد
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟