چرا بینایی ماشین یا machine vision مهم است؟
با پیشرفت تکنولوژی ، شاهد پیشرفت علم در هر زمینه و استفاده بسیار زیاد از کامپیوترها برای افزایش راحتی و رفاه انسان ها هستیم.ولی کامپیوتر ها برای هوشمندی نیاز به هوش مصنوعی ، یادگیری ماشین و یادگیری عمیق و …. دارند که انسان این ابزارها را برای کامپیوترها فراهم میکنند
عصر فناوری و هوش مصنوعی به سرعت در حال پیشرفت است و باعث شده تا تکنولوژیهایی مانند “بینایی ماشین” یا “Machine Vision” به یکی از مهمترین و حیاتیترین زمینهها در صنعت تبدیل شوند. بررسی بینایی ماشین به ماهیت بشری برای تشخیص و تفسیر تصاویر و ویدئوها مجهز است و این امکان را به ما میدهد تا با اطمینان بالا بر روی دادههای بصری مورد آزمایش و تحلیل قرار دهیم.
بسیاری از شرکت های حوزه هوش مصنوعی مثل Open ai و Deep mind با سرمایه گذاری روی بینایی ماشین، محصولات بسیار جذاب و استراتژیک طراحی کرده اند.
بنابراین ما در این مقاله بینایی ماشین-صفر تا صد machine vision را بررسی کردیم.
معرفی کامل شرکت DeepMind
معرفی کامل شرکت OpenAI
اهمیت بینایی ماشین
اهمیت بررسی بینایی ماشین در انواع صنایع زیادی احساس میشود.
- در صنعت خودروسازی، بررسی بینایی ماشین میتواند به طور خودکار مواد و کیفیت قطعات را بررسی کند، خطاها را تشخیص دهد و محصولات نهایی را کنترل کند. در صنعت الکترونیک، قطعات مختلفی که بسیار کوچک و پیچیده هستند، با استفاده از بررسی بینایی ماشین به طور دقیق بررسی میشوند.
- در صنایع داروسازی و غذایی، این تکنولوژی میتواند کمک کند تا محصولات معیوب، آلوده یا ناسالم را شناسایی کند و از تولیدات بدون خطا و با کیفیت بالا اطمینان حاصل شود.
ضرورت بررسی بینایی ماشین در دنیای امروز بسیار بیشتر از قبل است. حجم بزرگ دادهها و اطلاعات بصری، که روز به روز در حال افزایش است، نیازمند راهکارهای قدرتمندی است که به طور موثر بتوانند این اطلاعات را تجزیه و تحلیل کنند. با توجه به اینکه انسان قادر به پردازش و تحلیل این حجم از داده نیست
مفهوم بینایی ماشین چیست؟
بینایی ماشین، به استفاده از یک یا چند دوربین و حسگرها و یک سیستم تحلیل سیگنال دیجیتال برای تفسیر اشیا و عوامل موجود در جهان پیرامون و تشکیل یک تصویر قابل قبول براساس این سیگنال ها اطلاق میشود.
در حقیقت بینایی ماشین بر تحلیل و بررسی تصاویر و استخراج اطلاعات تصاویر و فهم اشیا موجود پیرامون تاکید میکند.
بینایی ماشین کاربردهای مختلفی در صنایع دارد و با رشته های مختلفی مانند علوم رایانه ای ، مهندسی مکانیک ، برق و الکترونیک ارتباط دارد و برای اتوماتیک کردن کارهایی که برای انسان خسته کننده است نیز استفاده میشود.
چگونگی عملکرد عملکرد بینایی ماشین
همانطور که پیش تر اشاره شد بینایی ماشین شامل دوربین های سیاه و سفید یا رنگی برای ضبط تصاویر ، حسگر و پردازنده است.
دستگاه منبع نور در بینایی ماشین به منظور روشنایی و بهبود کیفیت تصاویر بسیار مهم است که معمولا از LED با اندازه و طراحی مناسب استفاده میشود.در صورت آنالوگ بودن دوربین ها نیاز به مبدل آنالوگ به دیجیتال نیز هست.
دوربین عکس را به شکل نور به حسگر می فرستد. حسگر در دوربین این نور را به عکسی دیجیتالی تبدیل میکند و به سمت پردازنده مجهز به دید ماشینی ارسال میکند و پس از آن برای فرایند تحلیل استفاده میشود.
سیستم برای تحلیل تصاویر از الگوریتمهایی استفاده میکند که تصویر را بررسی کرده و اطلاعات لازم را استخراج میکند و پس از آن تصمیم لازم را میگیرد.
روند کلی کارکرد بینایی ماشین
به طور کلی روند کارکرد بینایی ماشین شامل موارد زیر می شود:
- تصویربرداری
- پردازش تصویر
- یادگیری ماشین، یادگیری عمیق و شبکه های عصبی
- تشخیص الگو و خواندن اطلاعات
- تشخیص کاراکترها و سنجش ها
- نتیجه گیری
اگر به استفاده از بینایی ماشین علاقه دارید مقاله های زیر برای شماست:
معرفی الگوریتم یولو +کد و دیتاست
الگوریتم Knn + کد و دیتاست
بررسی سطوح پردازش در بینایی ماشین
سطوح پردازش در بینایی ماشین یا Machine Vision از مراحل مختلفی تشکیل شده است که هر کدام وظایف و عملکردهای مشخصی را در تجزیه و تحلیل تصاویر و ویدئوها انجام میدهند. در ادامه به توضیح این سطوح پردازش میپردازم:
سطح پیشپردازش (Preprocessing Level):
در این سطح، تصاویر ورودی قبل از ورود به مراحل پیچیدهتر پردازش، تمیز میشوند و مقداری از نویزها و اشکالات موجود در تصاویر برطرف میشوند. مراحلی مانند تراشهبندی (Thresholding)، تقویت رنگ (Color Enhancement) و حذف نویز (Noise Removal) از جمله فعالیتهای این سطح هستند.
سطح تشخیص (Detection Level):
در این سطح، اجسام و ویژگیهای مورد نظر در تصاویر شناسایی و تشخیص داده میشوند. الگوریتمهای تشخیص لبهها، تشخیص شکلها، تشخیص چهره، تشخیص شیئهای مشخص و سایر تشخیصهای مشابه، در این سطح به کار میروند.
سطح استخراج ویژگی (Feature Extraction Level):
در این سطح، ویژگیهای مهم و اطلاعات بصری از تصاویر استخراج میشوند. این ویژگیها میتوانند شامل خطوط، نقاط کلیدی، رنگها و الگوهای دیگر باشند. استخراج ویژگیها از تصاویر به منظور تمثیل دادههای بصری به صورت اعداد قابل پردازش توسط الگوریتمهای ماشینی است.
سطح تفسیر (Interpretation Level):
در این سطح، تصاویر تجزیه و تحلیل شده و با استفاده از الگوریتمهای یادگیری ماشینی و هوش مصنوعی، تفسیر میشوند. این سطح امکان تشخیص الگوهای پیچیدهتر، تشخیص شیوههای عملکردی و ارتباطات بین اجسام را فراهم میکند.
هر سطح از پردازش در بینایی ماشین نقش مهمی در تجزیه و تحلیل تصاویر ایفا میکند و با ترکیب این سطوح، ماشین قادر به درک دقیق تصاویر و اطلاعات بصری میشود و براساس آنها تصمیمهای خود را میگیرد.
کتاب زندگی در عصر هوش مصنوعی
کتاب “زندگی در عصر هوش مصنوعی”
پلی میان دانش پیچیده و نیازهای روزمره
—
هوش مصنوعی را از ترس به فرصت تبدیل کنید!
آیا میدانید ۷۰% کسب وکارهای ایرانی هنوز از هوش مصنوعی استفاده نمیکنند؟
نه به دلیل ناتوانی، بلکه به دلیل ترس از ناشناختهها و باورهای غلط!
این کتاب شما را از “نمیدانم از کجا شروع کنم” به “میدانم چطور هوش مصنوعی را اجرا کنم” میرساند.
دوره جعبه ابزار هوش مصنوعی
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام دوره معرفی دوره جعبه ابزار…
دوره جامع هوش مصنوعی
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام معرفی دوره هوش مصنوعی دیگر…
دوره کسب درآمد از هوش مصنوعی
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام معرفی دوره همانطور که یادگیری…
دوره پردازش زبان طبیعی
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام معرفی دوره ما انسان ها…
دوره بینایی ماشین
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام معرفی دوره ما انسان ها…
دوره یادگیری عمیق
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام معرفی دوره یادگیری عمیق زیرشاخهای…
دوره یادگیری ماشین
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام معرفی دوره اگر بخواهیم به…
دوره پایتون و ریاضیات هوش مصنوعی
معرفی دوره چرا این دوره؟ پس از پایان دوره چرا اسمارتک سوالات متداول ثبت نام معرفی دوره این دوره 30…
وبینار هوش مصنوعی و هوش طبیعی
هوش مصنوعی و هوش طبیعی: یه عالمه فرصت و چالش!
همیشه دوست داشتی بدونی هوش مصنوعی چیه و چطوری کار میکنه؟تو این وبینار، با هوش مصنوعی و هوش طبیعی آشنا میشی و میفهمی که چه جوری میتونن زندگی و کارمون رو تغییر بدن.از فرصتهای جذاب هوش مصنوعی میشنوی و با چالشهای پیش روی اون آشنا میشی.پس یه فرصت به خودت بده و تو این وبینار شرکت کن!مطمئنم که پشیمون نمیشی
مینی دوره پایتون
تفاوت بینایی ماشین و بینایی کامپیوتر یکی از مباحث جذاب در حوزه فناوری و هوش مصنوعی است. در ادامه، به توضیح این تفاوتها خواهیم پرداخت:
1. هدف و کاربرد:
بینایی کامپیوتر به دنبال تحلیل تصاویر و ویدئوها با استفاده از الگوریتمهای رایانهای است. این الگوریتمها معمولاً برای تشخیص و شناسایی الگوها، اشیاء و ویژگیهای مختلف در تصاویر به کار میروند. بینایی کامپیوتر بیشتر در زمینههای صنعتی و تجاری مورد استفاده قرار میگیرد، مانند کنترل کیفیت، رباتیک، خودروهای خودران و سیستمهای حفاظتی.
بینایی ماشین، به عنوان یک زیرشاخه از بینایی کامپیوتر، به بررسی و تحلیل تصاویر با هدف درک و تفسیر محتوا و معنای تصاویر میپردازد. برخلاف بینایی کامپیوتر که بیشتر تمرکز خود را بر روی تشخیص و شناسایی موارد خاص میگذارد، بینایی ماشین تلاش میکند تا به سطح بالاتری از درک تصاویر بپردازد و برای انجام وظایفی مانند توصیف تصاویر، تفسیر رویدادها و تعامل با محیط اطراف انسانی، استفاده شود. بینایی ماشین در زمینههایی مانند رباتیک پیشرفته، خانه هوشمند، تجربه کاربری و پزشکی مورد استفاده قرار میگیرد.
2. پیچیدگی و قابلیتها:
بینایی کامپیوتر معمولاً از الگوریتمها و روشهای سادهتری برای تحلیل تصاویر استفاده میکند. معمولاً
تمرکز بیشتری بر روی تشخیص ویژگیهای سطحی مانند خطوط، لبهها و الگوها قرار دارد. این الگوریتمها بر اساس قوانین و قواعد مشخص کار میکنند و برای وظایف خاص طراحی شدهاند.
بینایی ماشین، به دلیل هدف درک و تفسیر تصاویر، قابلیتهای پیچیدهتری دارد. از الگوریتمهای یادگیری ماشینی مانند شبکههای عصبی عمیق استفاده میکند تا بتواند الگوها و ویژگیهای پیچیدهتر را شناسایی و تفسیر کند. این الگوریتمها با استفاده از دادههای آموزشی، قادر به یادگیری و بهبود عملکرد خود هستند.
3. ارتباط با انسان:
بینایی ماشین به دنبال تفاهم و درک مطلبی است که به انسان مشخص میشود. برای مثال، توانایی درک صحنهها، توصیف تصاویر و تعامل با انسان را دارد. این قابلیت به طور گسترده در زمینههایی مانند رباتیک اجتماعی، خانه هوشمند و رابط کاربری هوشمند مورد استفاده قرار میگیرد.
بینایی کامپیوتر بیشتر بر تشخیص الگوها و موارد خاص تمرکز دارد و قابلیت تفاهم و تعامل با انسان را ندارد. عموماً به عنوان یک ابزار برای تحلیل تصاویر و استخراج اطلاعات مورد استفاده قرار میگیرد.
با این تفاوتها، هر دو بینایی ماشین و بینایی کامپیوتر به طرزی مهم و حیاتی در حوزههای مختلف فناوری و صنعتی مورد استفاده قرار میگیرند و به توسعه و بهبود سیستمهای هوشمند و خودکار کمک میکنند.
کاربردهای مهم بینایی ماشین
بینایی ماشین کاربردهای بسیاری درحوزه های مختلف دارد که در ادامه به معرفی برخی از آنها می پردازیم:
اتوماسیون صنعتی
از بینایی ماشین در صنعت برای موارد زیادی استفاده میشود از جمله:
- مدیریت ایمنی موجود در محیط صنعتی
- بررسی مواد اولیه برای کنترل کیفیت
- کنترل موجودی انبار
- کنترل ربات های خطی حمل بار در کارخانه ها
- کنترل کیفیت محصولات و بهبود کیفیت
- تولید صنعتی در مقیاس بزرگ
پزشکی
تشخیص بیماری براساس تصاویر پزشکی
به کمک بینایی ماشین میتوان تصاویر پزشکی را به صورت دقیق و سریع بررسی کرد و نوع بیماری و محل آن را تعیین کرد که باعث میشوند روند تشخیص سریع شود و احتمال خطا کاهش یابد.
عمل های جراحی با بینایی ماشین
بینایی ماشین در عمل های جراحی باعث کاهش خطا و افزایش میزان موفقیت میشود. همچنین پزشکان را قبل از عمل جراحی برای روش های جراحی تهاجمی آماده میکند تا احتمال عوارض را به حداقل برساند.
کمک به معلولین
بینایی ماشین به افراد معلول به ویژه نابینایان کمک میکند تا به محیط اطرافشان دسترسی بهتری داشته باشند و به نوعی محیط اطرافشان را مشاهده کنند.
حمل و نقل
از موارد استفاده بینایی ماشین در حوزه حمل ونقل میتوان به گزینه های زیر اشاره کرد:
- پلاک خوان ها برای پارکینگ های هوشمند ،ورودی و خروجی سازمان ها برای کنترل تردد و ثبت تخلف
- سرعت سنج
- ایمنی رانندگی برای کمک به رانندگان در جهت حفظ هشیاری و دقت
امنیت
بینایی ماشین در حوزه امنیت، کاربردهای بسیار مهمی دارد و بهبود قابل توجهی در امنیت و حفاظت اطلاعات و جان افراد به ارمغان میآورد. در زیر به برخی از کاربردهای بینایی ماشین در حوزه امنیت اشاره میکنم:
- تشخیص چهره و شناسایی افراد:
با استفاده از بینایی ماشین و الگوریتمهای تشخیص چهره، میتوان افراد را شناسایی کرده و در سیستمهای امنیتی و نظارتی به کار برد. این تکنولوژی میتواند در شناسایی ورود غیرمجاز، تشخیص افراد مشکوک و همچنین در پیگیری و شناسایی جنایتکاران مورد استفاده قرار گیرد. - تشخیص تخلف و رفتار مشکوک:
با استفاده از تکنولوژی بینایی ماشین، میتوان به تشخیص رفتارهای مشکوک و تخلف در محیطهای عمومی پرداخت. این شامل تشخیص سرقت، تروریسم، خرابکاری و هر نوع فعالیت غیرمجاز دیگری است. این سیستمها میتوانند به صورت زنده و در زمان واقعی رخدادهای مشکوک را تشخیص داده و اعلام کنند. - پیشگیری در محیطهای خطرناک:
بینایی ماشین بهبود قابل توجهی را در محیطهای خطرناک مانند فرودگاهها، ایستگاههای راهآهن، بانکها و اماکن عمومی دیگر به ارمغان میآورد. با استفاده از این تکنولوژی، میتوان به صورت هوشمند و سریع درخطرهای احتمالی از قبیل انفجارها، آتشسوزیها و تهدیدهای دیگر پیشگیری کرد.
کشاورزی
- تشخیص موقعیت صحیح محصولات برای درو محصولات بدون صدمه به آنها
- تشخیص بیماری های گیاهان
- بررسی زمین و تخمین خسارت های وارده
- تشخیص علف های هرز
- بررسی سلامت خاک
هواشناسی
بینایی ماشین در حوزه هواشناسی نقش مهمی را ایفا میکند و کاربردهای جذاب و کلیدی دارد. در زیر به برخی از این کاربردها اشاره میکنم:
- پیشبینی آب و هوا: با استفاده از بینایی ماشین و تحلیل تصاویر از نقشههای هوایی، ابرها، وضعیت اقلیم و سایر پارامترهای هواشناسی، میتوان پیشبینی دقیقتری از شرایط آب و هوا ارائه داد. این اطلاعات برای پیشبینی سریعتر و دقیقتر آب و هوا، برنامهریزی سفرها، کشاورزی، حمل و نقل و سایر صنایع مرتبط با هواشناسی بسیار ارزشمند است.
- تشخیص الگوهای هواشناسی: بینایی ماشین قادر است الگوهای هواشناسی مختلف را شناسایی کند، مانند شناسایی ابرها، بارش باران، برف و آب و هوای مه آلود. این اطلاعات میتوانند در تحلیل و بررسی الگوهای هواشناسی و تغییرات آب و هوا به کار گرفته شده و به مدیران هواشناسی کمک کنند تا تصمیمات مبتنی بر دادههای دقیقتر بگیرند.
- پیشگیری از آب و هوای نامطلوب: با استفاده از بینایی ماشین، میتوان در زمان واقعی نشانهها و الگوهایی را که به وقوع حوادث آب و هوایی نامطلوب مثل تندباد، طوفان و رعد و برق اشاره میکنند، تشخیص داد. این اطلاعات به مردم و مسئولان امکان میدهد تا به سرعت اقدامات احتیاطی و پیشگیرانه را انجام دهند و از خطرات ناشی از شرایط هواشناسی نامطلوب جلوگیری کنند.
- مدیریت اضطراب و بحران هواشناسی: در صورت وقوع حوادث هواشناسی ناگوار مانند سیل، زلزله یا توفان، بینایی ماشین میتواند در تحلیل و بررسی آسیبها و ارائه اطلاعات دقیق به تیمهای امداد و نجات و سایر مراکز مدیریت بحران کمک کند. این اطلاعات میتوانند در تصمیمگیریهای سریع و هدفمند برای حفظ امنیت و کاهش خسارتها ناشی از حوادث هواشناسی مورد استفاده قرار گیرد
نرم افزارهای بینایی ماشین
Halcon
یک نرم افزار استاندارد جامع برای بینایی ماشین با محیط توسعه یکپارچه و بسیار تعاملی است که معماری انعطاف پذیر Halcon توسعه هر نوع کاربرد بینایی ماشین را تسهیل میکند.
این نرم افزار از پلتفرم های چند هسته ای و شتابدهنده GPU پشتیبانی میکند.
Adaptive vision
Adaptive Vision Studio نرم افزار مبتنی بر جریان داده است که برای مهندسین بینایی ماشین طراحی شده است.
این برنامه به هیچ مهارت برنامه نویسی نیاز ندارد، اما آنقدر قدرتمند است که حتی با راه حل های مبتنی بر کتابخانه های برنامه نویسی سطح پایین نیز می تواند حائق شود و تضمین می کند که کاربران می توانند به راحتی از محصول استفاده کنند.
نرم افزار CVAT
یک ابزار رایگان ،متن باز، مبتنی بر وب و حاشیه نویسی تصویر و ویدیو است که برای برچسب زدن داده ها برای الگوریتم های بینایی ماشین استفاده میشود.
از وظایف اصلی یادگیری ماشین با نظارت پشتیبانی میکند مانند تشخیص اشیا ، طبقه بندی تصویر و تقسیم بندی تصویر.
ابزار و کتابخانه های بینایی ماشین
ابزارها و کتابخانه های بسیاری برای تقویت بینایی ماشین ساخته شده است که در زیر به بررسی برخی از آنها میپردازیم:
openCV
مجموعه ای از کتابخانههای برنامهنویسی پردازش تصویر و یادگیری ماشین است؛ در ابتدا توسط اینتل ساخته و پشتیبانی میشد و هماکنون توسط Willow Garage و Itseez پشتیبانی میگردد.
این مجموعه توسط سیستم عاملهای ویندوز، لینوکس،MacOs ، ios و اندروید پشتیبانی میشود. همچنین دارای رابط برنامهنویسی به زبانهای سی، سی++، پایتون، جاوا و متلب میباشد.
از کاربردهای OpenCV میتوان به فیلتر تصویر ، سیستم تشخیص چهره، تشخیص و درک حرکت اشاره کرد.
OpenVINO
اینتل تولکیت OpenVINO خود را در روز ۱۶ مِه ۲۰۱۸ روانه بازار کرد. این تولکیت با زبان برنامهنویسی C++ و پایتون نوشته شده است. VINO خلاصه شدۀ عبارت «استنتاج بصری و بهینهسازی شبکه عصبی» است. این تولکیت به بهینهسازی مدل آموزش دیده پرداخته و میتواند بطور مستقیم ابزارهایی را برای استفاده از آن مدل فراهم نماید تا استنتاج بصری به سرعت انجام پذیرد.
موارد کاربرد این تول کیت عبارتند از:
- بهینه سازی الگوریتم ها
- استفاده آسان از الگوریتم ها در هر پلتفرمی
- استفاده از Model zoo با هدف به کارگیری مدلی که بهترین عملکرد را در مسئله مورد نظر کاربر داشته باشد.
- استفاده از موتور استنتاج
- بهینه سازی قابلیت های پردازش تصویر با استفاده از OpenCV
پلتفرم های سرویس ابری
از جمله پلتفرم های سرویس ابری میتوان به visionAI گوگل اشاره کرد که دو محصول AutoML Vision و Vision API را دربرمیگیرد. آمازون نیز ابزاری با نام Amazon Rekognition و مایکروسافت خدمات ابری Azure را ارائه کرده است.
همه راهحلهای ابری به این جهت ایجاد شدهاند که کاربران بتوانند به راحتی مدلهای بینایی ماشین را توسعه داده و به کار گیرند؛ بدون اینکه تخصص فنی بالایی در این زمینه داشته باشند.
میز کار بینایی ناسا
ناسا نیاز زیادی به کتابخانههای پردازش تصویر دارد و شاید در این راستا به استفاده از کتابخانه خاص خودش روی آورد. بنابراین، بخش “سیستمهای هوشمند مرکز تحقیقات Ames” طراحی و توسعه کتابخانه “میز کار بینایی” را بر عهده داشت. این کتابخانه به زبان C++ نوشته شده است. برخلاف سایر کتابخانهها، VWB توان بالایی برای ارائه مدلهایی با عملکرد نوین ندارد. VWB به منظور تجزیه و تحلیل تصاویر فضایی ساخته شده است. این کتابخانه در پیشبرد اهداف تحقیقاتی و رباتیک نقش بسزایی خواهد داشت.
کتابخانه VWB در امور زیر کاربرد دارد:
- افزایش کیفیت تصاویر
- تبدیلات هندسی و فضایی برای تجسم تصاویر
- ایجاد مدل های مختصر و فشرده برای به کارگیری در موتورهای رباتیک فضایی
- تحلیل تصاویر
سخن آخر
بینایی ماشین کاربردهای زیادی در زندگی روزمره ما دارد .این حوزه بخش بسیار مهمی در هوش مصنوعی است و گاهی اوقات بهتر از انسان ها عمل کرده است با وجود این برای رسیدن به پای انسان مسیر طولانی را در پیش دارد.
منابع
https://www.stemmer-imaging.com/en-nl/products/series/mvtec-halco
https://en.wikipedia.org/wiki/Computer_Vision_Annot ation_Tool
https://en.wikipedia.org/wiki/OpenCV
https://hooshio.com/%D8%A8%DB%8C%D9%86%D8%A7%DB%8C%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%DA%86%DB%8C%D8%B3%D8%AA/
https://www.zebra.com/us/en/resource-library/faq/general-technology/what-is-the-difference-between-machine-vision-computer-vision.html