برای آنکه بخواهید بدانید که OpenCV چیست، حتماً لازم نیست که یک مهندس کامپیوتر باشید. ممکن است برای انجام یک پروژه و یا برای نصب دوربین روی یک وسیله احتیاج به این برنامه داشته باشید. به زبان ساده OpenCV یا open source computer vision یک کتابخانۀ منبع باز بزرگ برای بینایی کامپیوتر، یادگیری ماشین و پردازش تصویر است که نقش مهمی در پردازش بلادرنگ یا real-time دارد.
کسانی که در زمینۀ هوش مصنوعی (Artificial Intelligence) یا یادگیری ماشین (Machine Learning) فعالیت میکنند، باید بیشتر در مورد آن بیاموزند. پیش از پرداختن به کاربرد OpenCV در پردازش تصویر بیایید نگاهی به معنی اصطلاح بینایی کامپیوتر و پردازش تصویر بیندازیم.
فهرست مطالب
بینایی کامپیوتر computer vision چیست؟
بینایی کامپیوتر به فرایندی اطلاق میشود که فرد را قادر میسازد تا تصاویر و فیلمها، نحوۀ ذخیره سازی آنها و نحوۀ دستکاری و بازیابی دادهها را درک کند. بیشتر اوقات، بینایی کامپیوتری اساس هوش مصنوعی را تشکیل میدهد. امروزه بینایی کامپیوتری نقش مهمی در اتومبیلهای خودران، رباتیک، اپلیکیشنهای تصحیح عکس و پیشگیری از وقوع جرم با پردازش تصویر دارد.
پردازش تصویر چیست؟
پردازش تصویر به تجزیه، تحلیل و تغییر یک تصویر دیجیتالی برای بالا بردن کیفیت آن میگویند. به عبارت دیگر پردازش تصویر شامل کارهایی است که بر روی یک تصویر انجام میشود تا نسخۀ پیشرفتهای از آن به دست آید. یا اینکه اطلاعات مفیدی از آن استخراج شود. معمولاً این عملیاتها شامل مراحل وارد کردن تصویر، تجزیه و تحلیل و تغییر، و در نهایت دریافت یک تصویر در خروجی است که اصلاح شده است؛ یا اینکه گزارشی بر اساس تجزیه و تحلیل تصویر به ما ارائه میشود.
در نتیجه، پردازش تصویر به فعالیتهای دیگری مانند وارد کردن و ذخیرۀ تصاویر (اصطلاحاً خواندن و نوشتن)، تشخیص چهرهها و ویژگیهای آن، تشخیص اشکال مانند دایره، مربع یا مستطیل در یک تصویر (به عنوان مثال تشخیص یک سکه در تصاویر)، تشخیص متن در تصویر (مانند خواندن پلاک خودرو)، تغییر کیفیت تصویر و رنگها و فیلترها (مانند قابلیتهای برنامهای مانند اینستاگرام) کمک میکند. همچنین در توسعۀ برنامههای واقعیت افزوده (Augmented Reality) نقش دارد. برنامۀ واقعیت افزوده یعنی برنامههایی که دنیای واقعی و دنیای مجازی را ترکیب میکند.
OpenCV چیست؟
OpenCV کتابخانهای است که برای پردازش تصاویر استفاده میشود. این کتابخانه، یک کتابخانۀ بزرگ منبع باز است. یعنی دسترسی به اطلاعات آن برای همه آزاد است و برای برنامههای بینایی رایانه، در مواردی که الگوریتمهای هوش مصنوعی یا یادگیری ماشین نقش دارند، استفاده میشود. یا اینکه برای تکمیل کارهایی که نیاز به پردازش تصویر دارند به کار میرود. در نتیجه امروزه نرم افزار اپنسیوی در عملیاتهای بلادرنگ سیستمهای کامپیوتری اهمیت زیادی پیدا کرده است. با استفاده از این نرم افزار میتوان تصاویر و فیلمها را برای شناسایی اشیا، چهرهها و حتی دستخط افراد پردازش کرد.
OpenCV در اصل توسط شرکت اینتل توسعه داده شد. بعدها شرکت Willow Garage و سپس Itseez از آن پشتیبانی کردند و در نهایت مجددا شرکت اینتل آن را خریداری کرد. اولین نسخۀ OpenCV نسخۀ 1.0. بود که تحت لیسانس BSD منتشر شد. پروانۀ توزیع برکلی برای نرمافزارها برای هر دو دستۀ استفادۀ تجاری و دانشگاهی رایگان است.
در زبان برنامه نویسی دارای رابط در چندین برنامه است. در نتیجه میتوان از آن در برنامههای مختلف و محیطهای گوناگون استفاده کرد. در سال 2011 OpenCV با شتاب دهندۀ GPU را برای real-time پیشنهاد داد. همچنین با ادغام در کتابخانههای دیگر مانند NumPy، برنامۀ پایتون نیز توانست از آرایۀ OpenCV برای آنالیز استفاده کند. تشخیص الگوهای تصویر و چندین شاخصۀ دیگر به استفاده از فضای بُرداری و انجام اعمال ریاضی بر این ویژگیها نیاز دارد.
رشد سریع OpenCV، قابلیت هایی فراتر از یک کتابخانه
OpenCV با بیش از دو میلیون دانلود در هفته، محبوبترین کتابخانۀ بینایی کامپیوتری منبع باز در جهان است. این کتابخانه بیش از 2500 الگوریتم بهینهسازی شده را پیاده میکند. روی تمام سیستم عاملهای اصلی و مهم چون ویندوز، مک، لینوکس و اندروید کار میکند. به چندین زبان دسترسی دارد و برای استفادۀ تجاری رایگان است.
OpenCV به سرعت در حال تبدیل شدن به یک مکان واحد برای همۀ منابع بینایی کامپیوتر است. OpenCV.ai یک بازوی انتفاعی برای OpenCV است. این بازو سرویس مشاورۀ هوش مصنوعی برای رایانش لبه (edge) را فراهم کرده است. همچنین یک بازار برای مدلهای هوش مصنوعی فراهم کرده است. در طول 20 سال گذشته، اپنسیوی تلاش خود را معطوف به ساخت بزرگترین کتابخانۀ بینایی کامپیوتری با کارایی بالا اختصاص داده است.
این شرکت از طریق دورههای آموزش بینایی کامپیوتر و یادگیری عمیق به عمومی کردن آموزش هوش مصنوعی کمک کرده است. همچنین شرکت فوق از طریق خبرنامهها و انجمنهای خود به دنبال ایجاد یک جامعه متشکل از یک میلیون توسعه دهندۀ هوش مصنوعی تا پایان سال 2021 بود.
گسترش OpenCV
اکنون، سازمان به سرعت در حال گسترش به فراتر از کتابخانههای شاخص است. سازمان اپنسیوی به دنبال آن است تا از طریق برنامههای آموزشی، سخت افزار، خدمات و نوآوریها در جامعه، به نحو احسن به جامعۀ بینایی کامپیوتری و هوش مصنوعی در جهان خدمت کند. این مجموعه در حال تبدیل شدن به مکانی است که مردم برای آشنایی بیشتر با بهترین منابع بینایی کامپیوتری به آن مراجعه کنند.
کاربرد OpenCV در پردازش تصاویر به کمک دوربین های هوشمند
تصاویر دیجیتالی به چهار دسته تقسیم میشوند: تصاویر رنگی، تصاویر در مقیاس خاکستری، تصاویر باینری (سیاه و سفید) و تصاویر چند طیفی. یک تصویر رنگی شامل اطلاعات رنگ برای هر پیکسل است. تصاویری که در طیف خاکستری هستند، تنها از سایه طیف رنگ خاکستری استفاده میکنند و تصاویر باینری تنها از دو رنگ، سیاه یا سفید و پیکسلهای سیاه و سفید ساخته شدهاند. تصاویر چند طیفی تصاویری هستند که دادههای تصویری را در محدودۀ الکترومغناطیسی در طول موج خاصی ثبت میکنند.
در برنامۀهای کمتر کاربردی مانند تجزیه و تحلیل رنگ، خواندن بارکد، دستگاه حضور و غیاب به کمک چهره، توسعهدهندگان میتوانند از قدرت سنسورهای هوشمند و دوربینهای هوشمند که نور، حسگر تصویر، نرم افزار بینایی و قابلیت 1/0 را یکپارچه میکنند استفاده کنند.
به کمک دوربینهای هوشمند میتوان بدون انتقال تصاویر به رایانۀ شخصی، تنها به کمک یک پردازنده که در دوربین تعبیه شده است، تصاویر را تجزیه و تحلیل کرد. بنابراین این دوربینها در زمان و هزینۀ توسعه دهندگان سیستم صرفه جویی میکند. زیرا در ایستگاه تصویربرداری نهایی به هیچ کامپیوتر میزبانی نیاز نیست. تنها نتایج تجزیه و تحلیل تصاویر به یک کامپیوتر منتقل میشود.
شرکت نوین ایلیا صنعت، یک شرکت در زمینۀ تجهیزات بینایی ماشین است. ما نمایندگی رسمی شرکتهای باسلر و سنسوپارت در ایران هستیم. شرکتهایی که در زمینۀ تولید دوربینهای هوشمند و همچنین استفاده از OpenCV در پردازش تصاویر فعالیت میکنند. برای اطلاعات بیشتر و استفاده از تجهیزات بینایی ماشین در پروژههای خود با کارشناسان ما تماس بگیرید.