آموزش OpenCV – قسمت سوم : چه کار هایی را می توان با OpenCV انجام داد؟

آموزش OpenCV – قسمت سوم : چه کار هایی را می توان با OpenCV انجام داد؟

 

با استفاده از OpenCV شما می توانید بسیاری از کار هایی را که در زمینه ی بینایی ماشین فکرش را می کنید، انجام دهید. مسائلی که می خواهید حل کنیم، ما را مجبور می سازند تا فرایند های مختلفی را با هم ترکیب کنیم تا به نتیجه ی مطلوبی برسیم. بنابراین لازم است بفهمیم که به چه توابع و ماژول هایی نیاز داریم تا به نتیجه ی دلخواه دست یابیم.

 

ساختارهای داده درونی و ورودی/خروجی

 

یکی از مزایای OpenCV این است که بسیاری از امکانات اصلی  و اولیه برای مدیریت عملیات های مروبط به پردازش تصویر و بینایی ماشین را فراهم کرده است. اگر شما برنامه ای را بخواهید از ابتدا بنویسید مواردی  مانند Image، Point و Rectangle که برای اکثر الگوریتم های  پردازش تصویر مورد نیازند را باید  تعریف کنید. OpenCV این ساختار های پایه را شامل می شود که در ماژول Core آن تعریف شده اند. دیگر مزیت OpenCV این است که برای سرعت بخشیدن به پردازش و صرفه جویی در مصرف حافظه بهینه سازی شده اند و نیازی نیست که نگران این باشیم که این موارد چگونه انجام می شوند.

ماژول ImgCodecs مربوط به مدیریت خواندن و نوشتن فایل های عکس می باشد. زمانی که شما می خواهید عکس خروجی را با فرمت های مختلف مانند JPG و PNG ذخیره کنید شما با یک دستور ساده می توانید این کار را انجام دهید. ماژول VideoIO دستوراتی را که مربوط به ورودی/خروجی فایل های ویدئو می باشد را مدیریت می کند. شما می توانید ویدئو را از یک فایل با فرمت دلخواه بخوانید یا با وبکم سیستم ارتباط برقرار کنید.

 

فرایند پردازش تصویر

 

وقتی شما یک الگوریتم بینایی ماشین را می نویسید عملیات های پایه ای و اساسی پردازش تصویر را بار ها و بار ها استفاده می کنید. اکثر این توابع در ماژول ImgProc قرار دارد. شما کار هایی مانند اعمال فیلتر به عکس، عملیات های ریخت شناسی، تبدیلات هندسی، تغییر رنگ ها، رسم بر روی تصاویر، تحلیل شکل ها و … را توسط این ماژول می توانید انجام دهید.

 

 

آنالیز ویدئو

 

تحلیل کردن ویدئو شامل تحلیل حرکت بین فریم های متوالی و ردیابی کردن اشیاء مختلف در ویدئو می باشد. OpenCV ماژولی به نام Video دارد که این پردازشات را انجام می دهد. ماژولی دیگر نیز وجود دارد به نام VideoStab یا Video Stabilization  که با تثبیت ویدیو سروکاردارد. مثلا زمانی که دوربین را در دست نگاه داشته‌ایم سخت است که آن را به صور ثابتی نگاه داریم. اگر به ویدئو گرفته شده نگاه کنیم لرزش‌هایی را در آن می‌بینیم. تمام دستگاه‌های امروزی از روش stabilization به منظور پردازش ویدئو قبل از آنکه آن را به کاربر نشان دهند استفاده می‌کنند.

 

باز سازی سه بعدی

 

مبحث باز سازی سه بعدی یک موضوع مهم در بینایی ماشین است که به منظور ساخت یک منظره ی سه بعدی به وسیله ی تعدادی تصویر دو بعدی و با استفاده از الگوریتم های مربوط به آن است. OpenCV دارای الگوریتم هایی است که می تواند رابطه ی بین اشیا مختلف را در عکس دو بعدی تشخیص داده و موقعیت سه بعدی آن ها را بدست آورد. ماژول مورد استفاده برای این کار Calib3D می باشد. این ماژول همچنین می‌تواند کالیبراسیون دوربین را انجام دهد که برای تخمین زدن پارامترهای دوربین ضروری می‌باشد.این پارامتر ها اساسا پارامتر های داخلی هستند که به واسطه آن ها دوربین صحنه گرفته شده را به عکس تبدیل میکند. ما زمانی که الگریتمی را طراحی می‌کنیم نیاز داریم تا این پارامترها را بدانیم در غیر اینصورت ممکن است نتایج غیرمنتظره‌ای بگیریم.

 

 

استخراج ویژگی ها

 

همانطور که قبلا گفته شد، سیستم بینایی انسان تمایل دارد تا ویژگی های برجسته را از صفحه داده شده استخراج کند تا بعدا بتواند آن ها را بازیابی کند. برای تقلید از این روش انسان ها الگوریتم های مختلفی برای استخراج ویژگی ها طراحی کرده اند مانند Sift و Surf و Fast و … . این توابع در ماژول Feature2D می باشند.

البته ماژول دیگری نیز به نام Xfeatures2D وجود دارد که مقدار بیشتری استخراج کننده ویژگی دارد  که بعضی از آن ها هنوز در مرحله ی آزمایشی قرار دارند. البته ماژولی به نام Bioinspired نیز وجود دارد که الگریتم‌های بیولوژیکی الهام گرفته شده از مدل‌های بینایی ماشین را فراهم می‌کند.

 

تشخیص اشیاء

 

شناسایی شی به منظور شناسایی کردن محل یک شی در تصویر داده شده می باشد. این فرایند مربوط به نوع شی نیست. مثلا اگر یک آشکار سازی صندلی (Chair Detector) طراحی کنیم فقط به ما محل صندلی را می گوید نه رنگ صندلی را .

 

آموزش OpenCV - شرکت شهاب

 

OpenCV ماژول بینایی مانند Objdetect و Xobjdetect را برای طراحی آشکار ساز فراهم کرده است.

 

تشخیص چهره و اشیاء

 

تشخیص چهره مربوط به شناسایی فرد در عکس داده شده می باشد. این با آشکار ساز چهره که فقط محل چهره را میگوید، متفاوت است. ماژول Face که با تشخیص چهره سر و کار دارد.

شناسایی و تشخیص متن

شناسایی متن در یک صفحه و تشخیص محتوای آن یک مسئله مهم می باشد. اپلیکیشن هایی مانند Nameplate برای تشخیص علائم جاده برای ماشین های خودکار می باشد. ماژول مربوط به آشکار سازی و شناسایی این موضوع Text نام دارد.

بدون دیدگاه

ارسال یک نظر

نظر
نام
ایمیل
وبسایت