.
یادگیری عمیق و هوش مصنوعی در سالهای گذشته تاثیر چشمگیری بر حوزههای مختلف فناوری داشته است. یکی از مباحث داغ و بهروز در این حوزه، بینایی ماشین است. بینایی ماشین به معنای توانایی رایانهها برای مشاهده و تفسیر دنیای اطرافشان است. پردازش تصویر (Image Processing) به مجموعه کارهایی اشاره دارد که انجام میدهیم تا رایانه تصاویر و محتوای ویدیویی را بتواند مشاهده کرده، درک کرده و تفسیر کند. ماشینهای خودران، دوربینهای کنترل جرایم رانندگی، سامانههای تشخیص چهره و غیره برای اینکه بهدرستی کار کنند، به فناوری بینایی ماشین متکی هستند. در این مقاله به واکاوی این موضوع خواهیم پرداخت که پردازش تصویر چیست، چه کاربردهایی دارد و چه تاثیری بر دنیای فناوری خواهد داشت.
تصویر چیست؟
قبل از پرداختن به مبحث پردازش تصویر، ابتدا اجازه دهید به بررسی این موضوع بپردازیم که چه چیزی یک تصویر را شکل میدهد. در دنیای کامپیوترها یک تصویر با ابعاد آن (طول و عرض) و تعداد پیکسلها تعریف و نشان داده میشود. بهطور مثال، اگر ابعاد یک تصویر 500 در 400 باشد، مجموع پیکسلهای آن تصویر برابر با 200 هزار عدد است. پیکسل، نقطهای روی تصویر است که سایه، تیرگی یا رنگ خاص خود را دارد و بازه رنگی آن در یکی از چهار گروه زیر قرار میگیرد:
دودیی (سیاه و سفید): تصاویری که در آنها هر پیکسل تنها دو مقدار منحصربهفرد سیاه و سفید دارد. چنین تصاویری اغلب برای برجسته کردن بخش متمایزی از یک تصویر رنگی استفاده میشوند یا در بارکدها مورد استفاده قرار میگیرند.
خاکستری: یک عدد صحیح با مقدار بین 0 تا 255 است که 0 کاملا سیاه و 255 کاملا سفید است.
رنگی (قرمز، سبز و آبی): یک پیکسل از 3 عدد صحیح بین 0 تا 255 تشکیل شده است که هر یک از این رنگها بازه 0 تا 255 دارند که طیفهای رنگی مختلف را ایجاد میکنند.
RGBA: در سیستم RGB با افزودن یک فیلد آلفا بهوجود میآید و میزان شفاف بودن تصویر را نشان میدهد.
پردازش تصویر چیست؟
به مجموعه عملیاتی گفته میشود که روی هر پیکسل از تصویر اجرا میشوند و هدفشان دستکاری یا بهبود تصاویر است. پردازش تصویر بهشکل متوالی و روی هر یک از پیکسلهای تصاویر انجام میشود، به این معنا که الگوریتمها روی ویژگیهای منحصربهفرد پیکسلها کار میکنند. به بیان دقیقتر، مجموعهای از توابع به ترتیب بر هر پیکسل از یک تصویر اعمال میشوند و تنها هنگامی که یک تابع عملیاتی بهطور کامل انجام شد، برنامه، شروع تابع دوم، سوم و غیره را اجرا میکند. علاوه بر آن، در پردازش تصویر اغلب از الگوریتمهای یادگیری ماشین استفاده میشود (شکل 1).
.
تصاویر در کامپیوترها در قالب ماتریسهای دو یا سه بعدی توسط کامپیوتر تفسیر میشوند. مقدار درایه (هر یک از عناصر درون ماتریس) در هر ماتریس نشاندهنده دامنه رنگی آن پیکسل است که شدت پیکسل نام دارد. بهطور معمول، در اغلب موارد با تصاویر 8 بیتی در ارتباط هستیم که در آن مقدار دامنه از 0 تا 255 (مقدار کد رنگ قابل قبول هر پیکسل) متغیر است. همچنین، در پردازش تصویر از روشهای پردازش سیگنال نیز کمک گرفته میشود. در این روشها، همه تصاویر بهعنوان سیگنالهای دوبعدی یا همان موقعیت مکانی پیکسل براساس محورهای x و y در نظر گرفته میشوند.
انواع پردازش تصویر
بهطور کلی پنج نوع اصلی پردازش تصویر بهشرح زیر وجود دارد:
مصورسازی(Visualization): یافتن اشیایی که در تصویر قابل مشاهده نیستند.
تشخیص (Recognition): تشخیص اشیاء در تصویر.
اصلاح و بازیابی (Sharpening and restoration): ایجاد یک تصویر بهبودیافته و پیشرفتهتر از روی تصویر اصلی.
تشخیص الگو (Pattern recognition): شناسایی، گروهبندی و اندازهگیری الگوهای مختلف موجود در تصویر.
بازیابی (Retrieval): مرور و جستوجوی تصاویر از یک پایگاه داده بزرگ شامل تصاویر دیجیتالی که مشابه تصویر اصلی است.
مولفههای پردازش تصویر
اصلیترین مولفه در پردازش تصویر کامپیوترها هستند. کامپیوترها ممکن است یک سیستم کامپیوتر شخصی یا یک ابر کامپیوتر باشند که قادر به انجام محاسبات سطح بالا هستند. گاهیاوقات در بحث پردازش تصویر از کامپیوترهای خاصی استفاده میشود که مجهز به دو یا چند کارت گرافیک هستند که قادر به انجام پردازشهای پیشرفته و سنگین هستند. بهطور کلی مولفههای مورد استفاده در پردازش تصویر نرمافزارها و سختافزارها هستند. نرمافزار پردازش تصویر شامل کدهای ازقبلنوشتهشده و ماژولهای آماده است که کار خاصی را انجام میدهند. سختافزار پردازش تصویر نیز اغلب از یک واحد منطق حسابی (ALU) تشکیل میشود که قادر به انجام عملیات حسابی و منطقی همزمان روی تصاویر است.
فضای ذخیرهسازی
یکی از مولفههای کلیدی موردنیاز برنامههای پردازش تصویر، مکانی است که تصاویر پردازششده در آن ذخیرهسازی شود. سه نوع اصلی مکانیزم ذخیرهسازی دیجیتال برای برنامههای پردازش تصویر ذخیرهسازی کوتاهمدت، ذخیرهسازی آنلاین برای فراخوانی سریع و ذخیرهسازی آرشیوشده که حجم زیادی از اطلاعات فشردهشده را نگهداری میکند، نام دارند.
حسگرهای دوربین
وظیفه اصلی حسگر تصویر، جمعآوری نور ورودی، تبدیل آن به سیگنال الکتریکی، اندازهگیری سیگنال و ارائه خروجی است. ورودی یک آرایه دو بعدی از مولفههای حساس به نور است که فوتونها را به الکترون تبدیل میکند. تصاویر توسط تجهیزاتی مانند دوربینهای دیجیتال با استفاده از حسگرهای تصویر مانند CCD و CMOS دریافت میشوند. برای جمعآوری تصاویر دیجیتال اغلب به دو مولفه در حسگرهای تصویر نیاز است که اولی حسگری است که میتواند انرژی ساطعشده از جسمی را که میخواهید از آن عکس بگیرید تشخیص دهد. دومی مبدل دیجیتال است که خروجی دستگاه حسگر فیزیکی را به مدل دیجیتالی تبدیل میکند (شکل 2).
.
تجهیزات چاپی
چاپگرهای لیزری، دوربینهای ضبط فیلم، تجهیزات حساس به حرارت، چاپگرهای جوهرافشان و تجهیزات دیجیتالی مانند دیسکهای نوری و CDROM تنها چند نمونه از ابزارهای مورد استفاده برای ضبط تصاویر هستند.
شبکهای با پهنای باند کافی
شبکه برای ارسال دادههای بصری از طریق کامپیوتر اهمیت زیادی دارد. در اینجا پهنای باند حائز اهمیت است، زیرا برنامههای کاربردی پردازش تصویر مقادیر زیادی داده دریافت و ارسال میکنند. از اینرو، شبکه باید پهنای باند کافی داشته باشد تا بتواند این اطلاعات را در زمان مناسب انتقال دهد.
مراحل پایه پردازش تصویر
همانگونه که اشاره کردیم، پردازش تصویر شامل مراحل مختلف و مجموعهای از عملیات مختلف است که روی پیکسلهای تصویر انجام میشوند. برخی از مراحل اصلی بهشرح زیر هستند:
تهیه تصویر
دریافت تصویر اولین گام در پردازش تصویر است. این مرحله بهعنوان پیشپردازش شناخته میشود و شامل دریافت تصویر از یک منبع سختافزاری است.
بهبود کیفیت عکس
بهبود کیفیت تصویر شامل یافتن و برجسته کردن برخی از ویژگیهای کلیدی درون تصویر است که در حالت عادی مبهم است که تغییر روشنایی، کنتراست و غیره از جمله این ویژگیهای کلیدی هستند.
بازیابی تصویر
بازیابی تصویر به معنای بهبود ظاهر یک تصویر خراب، نصفه و پاره است. با این حال، بر خلاف بهبود تصویر، بازیابی تصویر با استفاده از مدلهای ریاضی یا احتمالی انجام میشود تا بتوان بخشهای آسیبدیده تصویر را احیا کرد.
تقسیمبندی
تفکیک و شکستن یک تصویر به مولفهها یا اشیاء تشکیلدهنده آن است و بهنام مرحله پیشپردازش تشخیص اشیاء از آن یاد میشود. یکی از رایجترین روشها استفاده از آستانهگذاری دودویی است که در آن هر پیکسل سیاه یا سفید است. مقدار آستانه بهگونهای انتخاب میشود که تمام پیکسلهایی که سطح روشنایی آنها کمتر از آستانه است، سیاه شوند و پیکسلهایی که سطح روشنایی بالاتر از آستانه دارند، سفید شوند. رویکرد فوق باعث میشود اشیاء در تصویر تقسیمبندی شوند، زیرا با مناطق سیاه و سفید متمایز نشان داده میشوند.
تشخیص
شامل پردازش تصویر رنگی، پردازش تصویر دودویی و غیره است. این پردازشها مبتنی بر برخی تکنیکهای مدلسازی در یک حوزه دیجیتال هستند. این مرحله بهدلیل استفاده قابل توجه از تصاویر دیجیتال در اینترنت، اهمیت زیادی پیدا کرده است.
فشردهسازی
فشردهسازی با هدف کاهش فضای ذخیرهسازی مورد نیاز برای ذخیره یک تصویر یا پهنای باند مورد نیاز برای انتقال استفاده میشود. این کار بهویژه زمانی حائز اهمیت است که قرار است تصاویر را از طریق اینترنت ارسال و دریافت کنید. روشهای مدرن و امروزی برای فشردهسازی تصویر از یادگیری عمیق برای کدگذاری تصاویر و کاهش ابعاد استفاده میکنند و سپس این کدها در سمت دریافتکننده با استفاده از شبکه کدگشایی دوباره تصویر را بازیابی کرده و به اندازه اصلی تبدیل میکند. اینگونه مدلها «کدگذار خودکار» (Autoencoder) نام دارند.
ترجمه تصویر به تصویر
به مجموعه فرآیند و روشهایی اشاره دارد که با هدف شناسایی مشکلات بصری و گرافیکی انجام میشود و همچنین سعی میکنند بر مبنای الگوی ریاضی، تطابق بین تصویر دادهشده و تصویر خروجی را از طریق مکانیزم همطرازی ارزیابی کنند.
دستکاری تصویر
تغییر تصویر برای تغییر ظاهر آن است و به دلایل مختلفی مثل حذف یک شیء ناخواسته از یک تصویر یا افزودن یک شیء که در تصویر وجود ندارد، انجام میشود. طراحان گرافیک اغلب این کار را برای ساخت پوستر، فیلم و غیره انجام میدهند. نمونهای دیگر، انتقال سبک نقاشان مطرح به تصویر است که مدلهای یادگیری عمیق از آن استفاده میکنند.
پردازش ریختشناسی
پردازش ریختشناسی مجموعهای از عملیات پردازشی برای شکل دادن به تصاویر ناقص است.
تولید تصویر
دریافت تصویر خروجی بعد تکمیل شدن تمامی مراحل یادشده است (شکل 3).
.
دانش پایه
این دانش ممکن است بهسادگی تشخیص مختصات و ابعاد جسم مورد نظری که برچسبی هم به آن تخصیص شده باشد، هر چیزی که به حل مشکلات مربوط به یک وظیفه خاص بهکار بیاید میتواند بهشکل کد وارد دانش پایه شود.
برگردانسازی/ همگشت (Deconvolution) تصویر
برگردانسازی یکی از روشهای پراستفاده در پردازش تصویر است تا تصاویری که در طول مسیر انتقال با مشکل روبهرو شدهاند، دچار نویز شدهاند یا بهدلیل فشردهسازی کیفیت خود از دست دادهاند، بهدرستی بازیابی شوند. به بیان دقیقتر، برگردانسازی برای بازسازی تصاویری که بهدلیل فرآیندهای پیچیدهای مانند فیلتر کردن با فیلترهای نامناسب یا تغییر اندازه با مشکل روبهرو شدهاند، دومرتبه قابل استفاده باشند. در این روش، ماتریس اصلی تصویر به یک سری فیلتر تبدیل شده و پس از انجام محاسبات به حالت اصلی خود باز میگردد. برای این کار از روشهای متفاوتی مانند تبدیل موجک (Wavelet Transform)، رگرسیون، شبکههای عصبی و ماشین بردار پشتیبان استفاده میشود. استفاده از تکنیک فوق در پردازش تصویر میتواند بهبود قابل توجه کیفیت تصویر و تفکیک جزئیات از نویزها را به همراه داشته باشد.
فاز در پردازش تصویر
فاز (Phase) در پردازش تصویر به معنای فاصله زمانی یا فاصله فازی بین دو سیگنال یا دو تصویر است. در پردازش تصویر، فاز معمولا با تحلیل فرکانسی تصویر مرتبط است و با استفاده از تبدیل فوریه تصویر بهدست میآید.
در تحلیل فرکانسی، سیگنال یا تصویر به یک سری از موجهای فرکانسی تجزیه میشود. هر یک از این موجها دارای فرکانس و فاز مشخصی هستند. برای بازسازی تصویر، فاز مهم است، زیرا اطلاعات مرتبط با موقعیت مکانی تصویر را نشان میدهد. به عبارت دیگر، فاز میتواند بهعنوان یک شاخص برای توضیح موقعیت مکانی مولفههای تصویر در فضای فرکانسی استفاده شود. استفاده از فاز در پردازش تصویر بهعنوان یک ویژگی معمولا در الگوریتمهای پردازش تصویر مانند تشخیص چهره، تشخیص الگو و بازیابی تصویر مورد استفاده قرار میگیرد.
کاربردهای پردازش تصویر
همانگونه که اشاره کردیم، پردازش تصویر یک مرحله ضروری و پیشنیاز بینایی ماشین است و در بسیاری از برنامهها مانند تشخیص چهره، تشخیص اشیاء و فشردهسازی تصویر مورد استفاده قرار میگیرد. پردازش تصویر برای بهبود تصویر موجود یا حذف اطلاعات مهم از آن انجام میشود. همچنین، پیشپردازش انجامشده میتواند عملکرد یک مدل بینایی ماشین را بهشکل چشمگیری افزایش دهد. بد نیست بدانید که دستکاری تصاویر مانند افزودن یا حذف اشیاء به تصاویر یکی از کاربردهای پردازش تصویر در صنعت سرگرمی است. اکنون اجازه دهید چند مورد از کاربردهای پردازش تصویر را مورد بررسی قرار دهیم.
بازیابی تصویر پزشکی
پردازش تصویر بهشکل گستردهای در تحقیقات پزشکی مورد استفاده قرار میگیرد و برنامههای درمانی را کارآمدتر و دقیقتر میکند. بهعنوان مثال، میتوان از پردازش تصویر برای تشخیص زودهنگام سرطان سینه استفاده کرد. با توجه به اینکه علم پزشکی علمی بسیار حساس است با سلامت و حفظ جان انسانها در ارتباط است، پردازش تصویر در این حوزه از طریق سیستمهای گرانقیمت و با دقت بالا انجام میشود.
فناوریهای سنجش ترافیک
در مورد حسگرهای ترافیک، از سیستم پردازش تصویر ویدیویی (VIPS) استفاده میشود. این زیرساخت شامل یک سیستم تصویربرداری، یک سیستم مخابراتی و یک سیستم پردازش تصویر میشود. هنگام ضبط ویدیو، یک VIPS دارای چند ناحیه تشخیص است که هر زمان وسیله نقلیه وارد آن منطقه میشود سیگنال روشن و هر زمان که وسیله نقلیه از منطقه تشخیص خارج میشود، سیگنال خاموش میشود. همچنین، از این نواحی تشخیص میتوان برای شناسایی میزان ترافیک در یک نقطه خاص استفاده کرد. علاوه بر آن، پردازش تصویر میتواند پلاک خودرو را بهصورت خودکار ضبط کند، نوع وسیله نقلیه را تشخیص دهد و سرعت راننده را در بزرگراه کنترل کند.
بازسازی تصویر
از پردازش تصویر میتوان برای بازیابی و پرکردن بخشهای خرابشده یک تصویر استفاده کرد. بهطوری که سیستم پردازش تصویر بر مبنای مجموعه دادههای موجود در تصاویر الگوهای ازدسترفته را تحلیل و ایجاد میکند و به این شکل تصاویر خرابشده را دومرتبه به مدل اصلی خود تبدیل میکند.
شناسایی چهره
یکی از کاربردهای مهم و امروزی پردازش تصویر، تشخیص چهره است. تشخیص چهره بر مبنای الگوریتمهای یادگیری عمیق ویژگیهای خاص صورت انسان مانند شکل صورت، فاصله بین چشمها، دماغ، چانه، ابروها و غیره را محاسبه میکند، اطلاعات موجود را با تصاویری که در پایگاه داده دارد ارزیابی و نتیجه را اعلام میکند. تشخیص چهره ابزاری حیاتی است که این روزها در حوزه امنیت، بیومتریک و باز کردن قفل تجهیزاتی مثل دوربینهای هوشمند، گوشیهای هوشمند و برنامههای رسانه اجتماعی مورد استفاده قرار میگیرد.
کتابخانهها و ابزارهای مورد استفاده در پردازش تصویر
در پردازش تصویر، برای پیادهسازی الگوریتمها و روشهای مختلف، از کتابخانههای متنوعی استفاده میشود. در زیر به برخی از معروفترین کتابخانههای پردازش تصویر اشاره میکنیم:
OpenCV
یکی از معروفترین کتابخانههای پردازش تصویر است که به زبان سیپلاسپلاس و پایتون نوشته شده است. این کتابخانه قابلیت انجام تعداد زیادی از وظایف پردازش تصویر مانند تشخیص شیء، تشخیص چهره، تشخیص حرکت و غیره را دارد.
TensorFlow
یکی از قدرتمندترین کتابخانههای شبکههای عصبی است که به زبان پایتون نوشته شده است. این کتابخانه قابلیت پشتیبانی از شبکههای عصبی پیچیده و عمیق را دارد.
PyTorch
یک کتابخانه پردازش تصویر و یادگیری عمیق است که به زبان پایتون نوشته شده است. این کتابخانه در مقایسه با تنسورفلو توانایی ساخت و پیادهسازی سریعتر شبکههای عصبی را دارد.
Scikit-image
یک کتابخانه پردازش تصویر است که به زبان پایتون نوشته شده و ابزارهای پیشرفتهای برای پردازش تصاویر ارائه میکند.
MATLAB Image Processing Toolbox
کتابخانه پردازش تصویر نوشتهشده به زبان متلب است و ابزارهای متنوعی برای پردازش تصاویر، تشخیص و شناسایی الگو در اختیار متخصصان قرار میدهد.
بهطور کلی، استفاده از کتابخانههای پردازش تصویر به توسعهدهندگان کمک میکند تا بهسرعت الگوریتمهای پردازش تصویر را پیادهسازی کنند و با دقت بیشتری پردازش تصاویر را انجام دهند.