جستجو برای:
  • دوره‌های آموزشی
  • وبلاگ
  • آموزش‌های رایگان
    • آموزش پایتون رایگان
    • آموزش یادگیری ماشین رایگان
    • آموزش یادگیری عمیق رایگان
    • آموزش pytorch رایگان
    • آموزش رایگان matplotlib
    • آموزش گوگل کولب
  • نقشه راه AI
  • کلاس خصوصی
  • همکاری با ما💚
  • حساب کاربری
  • اساتید
  • درباره ما
     
    • 0902-546-9248
    • howsam.mail@gmail.com
    آکادمی هوش مصنوعی هوسم
    • دوره‌های آموزشی
    • آموزش‌های رایگان
      • آموزش پایتون
      • آموزش یادگیری ماشین رایگان
      • آموزش یادگیری عمیق رایگان
      • آموزش pytorch رایگان
      • آموزش گوگل کولب
    • نقشه راه AI
    • وبلاگ
    • درباره ما
      • اساتید
      • پشتیبانی
    0
    ورود / عضویت

    بلاگ

    آکادمی هوش مصنوعی هوسم وبلاگ پردازش تصویر پردازش تصویر چیست؟

    پردازش تصویر چیست؟

    2026/03/19
    ارسال شده توسط سید سجاد اشرفی
    پردازش تصویر
    281 بازدید

    پردازش تصویر چیست؟ تلفیق هنر و علم در کار با تصاویر دیجیتال است؛ همان تصاویری که هر روز می‌بینیم و با موبایل‌هایمان ثبت می‌کنیم. در واقع، پردازش تصویر دریچه ورود به دنیای جذاب و دلبر بینایی کامپیوتر است. اگر می‌خواهید از زبان کسی که سال‌ها تجربه عملی در دانشگاه و صنعت دارد با دنیای پردازش تصویر آشنا شوید، پیشنهاد می‌کنم این پست را دقیق و عمیق بخوانید.

    فهرست مطالب نمایش
    1. پردازش تصویر چیست؟
    2. تصویر دیجیتال چیست؟
    3. الگوریتم پردازش تصویر
    3.1. عملیات نقطه‌ای در پردازش تصویر (Point Operations)
    3.2. تبدیلات هندسی (Geometric Transformation)
    3.3. فیلترینگ در پردازش تصویر (Filtering)
    3.4. عملیات مورفولوژی (Morphology)
    4. کتابخانه پردازش تصویر
    5. پردازش تصویر و بینایی کامپیوتر
    6. پردازش تصویر پیش‌نیاز بینایی کامپیوتر
    6.1. قانون GIGO (زباله ورودی، زباله خروجی)
    6.2. شکار پشه با توپ جنگی (سخت‌افزار و سرعت)
    6.3. سندوم جعبه سیاه در برابر کنترل مطلق
    6.4. کمبود داده (Data Starvation)
    7. نقشه راه پردازش تصویر و بینایی کامپیوتر

    پردازش تصویر چیست؟

    پردازش تصویر ترجمه مستقیم عبارت Image Processing است. اما اگر بخواهیم دقیق‌تر و علمی‌تر صحبت کنیم، نام کامل این حوزه پردازش تصویر دیجیتال (Digital Image Processing) است. البته، به اختصار به این حوزه DIP هم گفته می‌شود.

    همان‌طور که از نام آن پیداست، ما در این علم با تصاویر «دیجیتال» سروکار داریم. شاید کلمه دیجیتال در نگاه اول کمی مبهم به نظر برسد؛ اما نگران نباشید، در ادامه این ابهام برطرف خواهد شد. برای شروع، در همین حد بدانید که در گذشته تصاویر به‌صورت آنالوگ و نوری (مثل چاپ عکس در تاریک‌خانه‌های عکاسی) ثبت می‌شد؛ اما امروزه تصاویر دیجیتال، همان داده‌هایی هستند که توسط سنسورها (دوربین موبایل، دوربین‌های صنعتی خطوط تولید یا دستگاه‌های پزشکی) ثبت می‌شوند.

    اما به‌صورت مشخص و دقیق، پردازش تصویر چیست؟ اجازه دهید یک تعریف ساده اما مهندسی از آن ارائه دهم؛ پردازش تصویر یعنی:

    اعمال الگوریتم‌ها/تکنیک‌های مختلف برای بهبود یا دستکاری تصویر

    همین تعریف کوتاه، حاوی نکات مهمی است و پایه‌های اصلی علم پردازش تصویر را به ما نشان می‌دهد:

    • ضرورت شناخت تصویر: ما روی داده‌های تصویری کار می‌کنیم. بنابراین، باید شناخت خوب و عمیقی نسبت به تصویر داشته باشیم.
    • الگوریتم‌ها/تکنیک‌ها مبتنی بر ریاضیات: طبیعتا، علاوه‌بر الگوریتم‌ها/تکنیک‌های پردازشی مبتنی بر ریاضی، تصویر هم مبتنی بر اعداد و ریاضیات باید باشد.
    • بهبود و دستکاری تصویر: دو هدف مهم و غایی در پردازش تصویر.
    • بهبود (Enhancement): ارتقای کیفیت بصری برای درک بهتر انسان (مثلا حذف نویز یا تنظیم روشنایی/کنتراست).
    • دستکاری و آماده‌سازی (Manipuplaton/Preprocessing): تغییر ساختار تصویر برای درک بهتر ماشین (مثلا برجسته کردن لبه‌ها برای تشخیص چهره).
    پردازش تصویر
    یک تصویر نمادین از کاری که پردازش تصویر انجام می‌دهد. بهبود تصویر یکی از مهم‌ترین وظایف پردازش تصویر است. ببینید چگونه تصویر خروجی کنتراست بهتری نسبت به تصویر ورودی دارد.

    اساس کار در پردازش تصویر، برپایه تصویر تصویر دیجیتال است. بنابراین، ضروری است که در اولین گام تصویر دیجیتال به‌خوبی درک شود.

    تصویر دیجیتال چیست؟

    همه ما هر روز با تصاویر دیجیتال (از عکس‌های سلفی تا تصاویر ماهواره‌ای) تعامل داریم. به تصویر زیر (تصویر راست) نگاه کنید؛ در نگاه اول، جز یکسری نواحی رنگی پیوسته چیزی مشاهده نمی‌کنیم. اما بیایید عینک مهندسی به چشم بزنیم و به لایه‌های زیرین یک عکس نگاه کنیم.

    اگر با نرم‌افزاری مثل Paint یا Paint 3D در ویندوز روی یک تصویر زوم کنید، مجموعه‌ای مربع رنگی بسیار کوچک مشاهده می‌کنید که با نظم و ترتیب در کنار و زیر هم قرار گرفته‌اند (تصویر وسط). به این مربع‌های رنگی کوچک، پیکسل (Pixel) گفته می‌شود؛ واژه‌ای که از ترکیب دو کلمه Picture Element (عنصر/المان تصویر) ساخته شده است. اما بازهم این مربع‌های رنگی به‌کار ما نمی‌آید. کامپیوتر و الگوریتم‌های ریاضی ما فقط عدد می‌فهمند، نه رنگ!

    پشت هر مربع رنگی (پیکسل)، یک یا چند عدد مخفی شده است. در تصاویر استاندارد، این اعداد معمولا در بازه [۰ تا ۲۵۵] هستند؛ جایی که عدد ۰ نشان‌دهنده سیاه مطلق و ۲۵۵ نشان‌دهنده سفید مطلق است. بنابراین، یک تصویر دیجیتال برای کامپیوتر و الگوریتم‌های ما، چیزی جز یک ماتریس (جدول دوبعدی) از اعداد نیست.

    تصویر دیجیتال و پردازش تصویر
    نمونه تصویر دیجیتال ساختگی؛ تصویر راست: تصویر دیجیتال، تصویر وسط: پیکسل‌های کنار و زیر هم قرارگرفته، تصویر چپ: مقادیر عددی پیکسل‌ها در بازه [۰ تا ۲۵۵]
    بنابراین، وقتی ما از بهبود و دستکاری تصویر دیجیتال به کمک الگوریتم/تکنیک‌های پردازش تصویر صحبت می‌کنیم، درواقع درحال انجام عملیات مبتنی بر ریاضی روی این ماتریس‌های عددی هستیم.

    این اعداد چگونه پدید می‌آیند؟ پاسخ این سوال بسیار مفصل است و باید ساعت‌ها درباره نحوه تشکیل تصویر در دوربین صحبت کرد. به نظرم، برای شمایی که فعلا این پست «پردازش تصویر چیست؟» را می‌خوانید، ضرورتی ندارد نحوه تشکیل تصویر را بدانید. در مراحل بعدی یاد می‌گیرید!

    اما چگونه در یک تصویر نمونه این اعداد را ببینیم؟ کافی است از کتابخانه‌های پردازش تصویر و بینایی کامپیوتر در پایتون استفاده کنید. به‌عنوان نمونه، با استفاده از OpenCV می‌توانید تصویر با فرمت‌های مختلف را بخوانید و ماتریس اعداد آن را در یک متغیر ذخیره کنید. در کد زیر با استفاده از دستور imread، یک تصویر خوانده شده و ماتریس اعداد آن نمایش داده شده است:

    import cv2
    
    img = cv2.imread("watermelon.bmp")
    print(img)

    بخشی از اعداد موجود در ماتریس را در زیر نشان داده‌ام. نمی‌شد همه اعداد رو نشان داد، چون بسیار زیاد هست.

    [[[255 255 255] 
    [255 255 255] 
    [255 255 255]
    ...
    [255 255 255]
    [255 255 255]
    [255 255 255]]]

    بسیارخب، برای تصویر دیجیتال همین اندازه کافی است. نمی‌خواهم با جزئیات بیشتر از نیاز، از مسیر اصلی این پست دور شویم.

    الگوریتم پردازش تصویر

    الگوریتم پردازش تصویر، در واقع همان توابع و فرمول‌های ریاضی هستند که روی تصویر دیجیتال (همان ماتریس اعداد) اعمال می‌شوند تا یک ماتریس جدید (تصویر خروجی) به ما بدهند. تصویر خروجی، نسخه بهبودیافته یا دستکاری‌شده تصویر ورودی است. به‌طور کلی، در دنیای پردازش تصویر، الگوریتم‌ها را می‌توان به چند دسته کاربردی تقسیم کرد. بیایید بدون درگیر شدن با فرمول‌های پیچیده و ریاضیات، نگاهی به مهم‌ترین آن‌ها بیندازیم.

    عملیات نقطه‌ای در پردازش تصویر (Point Operations)

    عملیات نقطه‌ای ساده‌ترین نوع پردازش است. در این الگوریتم‌ها، ما با هر پیکسل (عدد در ماتریس) به‌صورت کاملا مستقل برخورد می‌کنیم و کاری به پیکسل‌های کناری هر پیکسل نداریم. از رایج‌ترین عملیات نقطه‌ای در پردازش تصویر می‌توان به تنظیم میزان روشنایی، کنتراست و آستانه‌گذاری تصویر اشاره کرد.

    به‌عنوان نمونه، با استفاده از یک رابطه ریاضی ساده ضرب و جمع، به‌راحتی می‌توان روشنایی و کنتراست تصویر را تنظیم کرد. نمونه‌هایی از این عملیات در تصویر زیر نشان داده شده است.

    پردازش تصویر دیجیتال
    ببینید چگونه با استفاده از یک رابطه ریاضی ساده (ضرب و جمع)، با مقادیر متفاوت آلفا و بتا، خروجی‌های متفاوتی به‌دست آمده است. انتخاب مناسب می‌تواند ما را به خروجی خوبی مثل تصویر پایین برساند.

     

    تبدیلات هندسی (Geometric Transformation)

    با تبدیلات هندسی می‌توان جایگاه پیکسل‌ها در تصویر را تغییر داد! یعنی، مشابه با نرم‌افزارهای ویرایش تصویر، می‌توان بزرگ‌کردن/کوچک‌کردن، برش، چرخش، اصلاح پرسپکتیو انجام داد.

    به‌عنوان نمونه، اصلاح پرسپکتیو، یکی از شاخص‌ترین کاربردهای تبدیلات هندسی است. مثلا، وقتی با اپلیکیشن‌های اسکنر موبایل، از یک برگه کج عکس می‌گیرید، نرم‌افزار آن را کاملا صاف می‌کند. در حقیقت، این نرم‌افزار در حال استفاده از تبدیلات هندسی است. در تصویر زیر، یک نمونه اصلاح پرسپکتیو مشاهده می‌کنید که من در دوره آموزش OpenCV انجام دادم.

    اصلاح پرسپکتیو با پردازش تصویر
    اصلاح پرسپکتیو کاری جذاب و آسان هست که با OpenCV به‌راحتی انجام می‌شود. مشاهده می‌کنید که چگونه تصویر سمت چپ با زاویه مایل، به تصویر سمت راست با زاویه مقابل تبدیل شده است.

    فیلترینگ در پردازش تصویر (Filtering)

    اغراق نیست، اگر بگوییم که فیلترینگ در پردازش تصویر، قلب تپنده علم پردازش تصویر است. عملیاتی جذاب که کاربردهای بسیار زیادی دارد. فیلترینگ در پردازش تصویر به دو شکل مکانی و فرکانسی می‌تواند انجام شود. اما، برای اینکه کار شما را در آشنایی سخت نکنم، فقط درباره فیلترینگ مکانی توضیح می‌دهم. در فیلترینگ مکانی، برای تغییر دادن یک پیکسل، به پیکسل‌های همسایه‌اش (پیکسل‌های دور و بر) هم نگاه می‌کنیم. این کار معمولا با تکنیک بسیار مهمی به نام کانولوشن (Convolution) انجام می‌شود. عملیات فیلترینگ مکانی را با عملیات نقطه‌ای مقایسه کنیم:

    • در عملیات نقطه‌ای، هر پیکسل جداگانه و مستقل از سایر پیکسل‌ها پردازش می‌شود.
    • در عملیات فیلترینگ، هر پیکسل همراه با پیکسل‌های همسایه پردازش می‌شود.
    فیلترینگ مکانی در پردازش تصویر
    فیلترینگ مکانی در پردازش تصویر؛ برای اجرای عملیات ریاضی روی یک پیکسل (x)، از پیکسل‌های همسایه هم کمک گرفته می‌شود.

    یکی از دستاوردهای فیلترینگ، حذف نویز تصویر است. با اجرای عملیات فیلترینگ میانه (Median)، روی اعداد پیکسل‌های مجاور یک پیکسل، می‌توانیم نویزها (نقطه‌های مزاحم) را در تصویر از بین ببریم.

    حذف نویز با استفاده از پردازش تصویر
    حذف نویز با استفاده از فیلتر غیرخطی میانه؛ این تصویر از من نیست و منبع آن کتاب پردازش تصویر دیجیتال گونزالس هست.

    تشخیص لبه (Edge Detection) یکی از شاه‌کارهای پردازش تصویر است. لبه‌ها، خطوط مرزی بین نواحی مختلف در تصویر هستند. الگوریتم‌هایی مثل فیلتر Canny یا Sobel با بررسی اختلاف شدید بین اعداد مجاور در ماتریس، متوجه می‌شوند که در آن نقطه یک مرز یا لبه وجود دارد.

    تشخیص لبه در پردازش تصویر
    ببینید چگونه با فیلترهای مختلف، لبه‌های تصویر شکار شده‌اند. منظور از لبه، مرز بین نواحی با تفاوت رنگی زیاد است. مثلا، مرز بین ناحیه خاکستری و سفید یا خاکستری و سیاه.

    عملیات مورفولوژی (Morphology)

    عملیات مورفولوژی (Morphology)، به مجموعه‌ای عملیات کلیدی برای پردازش و تحلیل اشکال در تصاویر باینری اشاره دارد. در زبان فارسی، معمولا مورفولوژی را با عنوان ریخت‌شناسی می‌شناسند. عملیات مورفولوژی دو کاربرد مهم دارد:

    • پردازش اشکال در تصویر باینری: حذف/تقویت اتصالات، پر کردن حفره‌ها و …
    • تحلیل اشکال در تصویر باینری: شمارش اشکال خاص، محاسبه مساحت/محیط یک ناحیه سفید، میزان دایروی بودن یک ناحیه و …

    یکی از مهم‌ترین کاربردهای عملیات مورفولوژی، باینری‌سازی اسناد (Document Binarization) است. به تصویر زیر نگاه کنید؛ به کمک عملیات مورفولوژی، پس‌زمینه تصویر و سایه‌ها به خوبی حذف شده‌اند. درحالی‌که متن اصلی و جداول به‌خوبی حفظ شده‌اند.

    عملیات مورفولوژی در پردازش تصویر
    باینری‌سازی اسناد به کمک عملیات مورفولوژی؛ یکی از حوزه‌های تحقیقاتی قدیمی در پردازش تصویر است.

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

    کتابخانه پردازش تصویر

    تا اینجای کار متوجه شدید که پردازش تصویر پر از مفاهیم و الگوریتم‌های جذاب ریاضی (مثل فیلترها و ماتریس‌ها) است. ریاضی و جذابیت؟! 😬 راستش، برای من جذاب هست! اما خبر خوب این است که در دنیای واقعی، قرار نیست برای هر پروژه چرخ را از ابتدا اختراع کنیم و الگوریتم‌ها را خودمان پیاده‌سازی کنیم. خوشبختانه کتابخانه‌های قدرتمندی توسعه داده شده که کار ما را در پیاده‌سازی الگوریتم‌ها و انجام پروژه بسیار راحت می‌کنند.

    در دنیای پایتون (Python) و سی‌پلاس‌پلاس (++C)، چند کتابخانه معروف برای پردازش تصویر وجود دارد:

    • کتابخانه Pillow (PIL): یک کتابخانه ساده و سبک در پایتون که بیشتر برای کارهای ابتدایی مثل خواندن تصویر، تغییر فرمت، برش (Crop) و تغییر اندازه استفاده می‌شود.
    • کتابخانه Scikit-Image: یک کتابخانه علمی و پایتونیک که الگوریتم‌های پردازش تصویر را با سینتکسی بسیار تمیز و خوانا ارائه می‌دهد و بیشتر در محیط‌های آموزشی، دانشگاهی و تحقیقاتی محبوب است. من این کتابخانه را خیلی خیلی دوست دارم. در دوره OpenCV هم به این کتابخانه پرداخته‌ام.
    • پادشاه بلامنازع کتابخانه OpenCV: اگر می‌خواهید پردازش تصویر را برای ورود به صنعت و بازار کار یاد بگیرید، OpenCV (Open Source Computer Vision Library) تنها نامی است که باید به خاطر بسپارید. این کتابخانه بیش از ۲۵۰۰ الگوریتم بهینه‌شده دارد. هسته اصلی OpenCV به زبان ++C نوشته شده که باعث می‌شود سرعت اجرای فوق‌العاده بالایی (Real-time) داشته باشد. در عین حال، رابط (Wrapper) پایتون آن، کدنویسی را برای ما بی‌نهایت ساده کرده است. چون کدنویسی با ++C برای بسیاری از افراد مشکل و عذابی دردناک است! یاد عذاب‌های خودم افتادم! 😅 در پروژه‌های صنعتی، از دوربین‌های کنترل ترافیک گرفته تا خطوط تولید کارخانه‌ها، OpenCV استاندارد بی‌رقیب است.

    اما، حدس می‌زنم عده‌ای سوالات مهمی برایشان ایجاد شده باشد؛ اینکه، آیا پردازش تصویر فقط همین است؟ پس، الگوریتم‌های تشخیص اشیا، ردیابی اهداف و این موارد پیشرفته کجا هستند؟ اصلا کتابخانه پایتورچ یا تنسورفلو یا کراس که همه می‌گویند کجاست؟ جواب، این سوال را در بخش بعدی داده‌ام. بریم سراغ بخش پردازش تصویر و بینایی کامپیوتر!

    این مقاله را حتما بخوانید
    آموزش OpenCV
    ←

    پردازش تصویر و بینایی کامپیوتر

    در بخش قبل، با الگوریتم‌های معروف پردازش تصویر آشنا شدید و دیدید که چگونه می‌توان ماتریس اعداد یک تصویر را دستکاری کرد. اما احتمالا یک سوال مهم برایتان ایجاد شده است: پس الگوریتم‌های تشخیص چهره، ردیابی خودروها، خواندن پلاک و این قبیل کارهای هوشمندانه کجا هستند؟ چرا به آن‌ها اشاره‌ای نشد؟

    پاسخ کوتاه این است: عملیات پیشرفته‌ای که به کامپیوتر قدرت درک و تحلیل می‌دهند، در قلمروی بینایی کامپیوتر (Computer Vision) قرار می‌گیرند، نه پردازش تصویر صِرف!

    برای اینکه مرز بین این دو حوزه را دقیق‌تر بشناسید، بیایید ابتدا یک تعریف استاندارد از هر کدام داشته باشیم:

    • پردازش تصویر (Image Processing): علم بهبود و دستکاری تصویر است. در این حوزه، ورودی ما یک تصویر است و خروجی نهایی الگوریتم هم یک تصویر است (تصویری که نویز آن گرفته شده، روشن‌تر شده یا لبه‌هایش مشخص شده است).
    • بینایی کامپیوتر (Computer Vision): شاخه‌ای جذاب از هوش مصنوعی است. در اینجا، ورودی ما یک تصویر (یا ویدئو) است، اما خروجی نهایی یک تصمیم، درک یا اطلاعات استخراج‌شده است. بینایی کامپیوتر تلاش می‌کند تا به کامپیوترها قابلیت دیدن و تحلیل کردن جهان پیرامون را دقیقا مشابه چشم و مغز انسان بدهد.

    اما تشابه و تفاوت‌های این دو چیست؟ پیشنهاد می‌کنم، اول خودتان به این موضوع فکر کنید و بعد ادامه متن را بخوانید.

    • تشابه: واضح است؛ هر دو حوزه با تصاویر دیجیتال سروکار دارند.
    • تفاوت: پردازش تصویر بر عملیات پردازشی سطح پایین تمرکز دارد. اما بینایی کامپیوتر، بر عملیات پردازشی سنگین و سطح بالا تمرکز دارد. بینایی کامپیوتر تلاش دارد که به کامپیوتر (مانند انسان‌ها) قابلیت دیدن، تحلیل کردن، درک و استخراج اطلاعات از داده‌های بصری (تصویر و ویدئو) را بدهد. مثلا، پلاک همه خودروهای ردشده از جلوی دوربین را تشخیص دهد. این کار دیگر یک عملیات بهبود تصویر ساده نیست. فراتر از اینهاست.

    با خواندن تعاریف بالا، ممکن است بسیاری از افراد فورا نتیجه بگیرند که: آهان! پس پردازش تصویر یک زیرمجموعه کوچک از بینایی کامپیوتر است. اگر بخواهم آکادمیک و علمی به این سوال پاسخ دهم، باید بگویم که خیر! این یک سوتفاهم بزرگ است. مباحثی مانند فشرده‌سازی تصویر (Image Compression) تماما در حوزه پردازش تصوی جای می‌گیرند و ارتباطی با بینایی کامپیوتر و هوش مصنوعی ندارند. بنابراین، پردازش تصویر زیرمجموعه بینایی کامپیوتر نیست؛ اما این دو علم هم‌پوشانی بسیار زیادی دارند.

    پردازش تصویر و بینایی کامپیوتر
    هم‌پوشانی بسیار زیادی بین پردازش تصویر و بینایی کامپیوتر وجود دارد. اما، یکی نیستند. همچنین، نمی‌توان گفت که پردازش تصویر زیرمجموعه بینایی کامپیوتر است.

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

    1. گام اول (پردازش تصویر): دوربین صنعتی یک تصویر از خط تولید می‌گیرد. این تصویر خام، پر از نویز (نقاط مزاحم) است و نور مناسبی هم ندارد. ما از الگوریتم‌هایی که در بخش قبل معرفی کردیم استفاده می‌کنیم. مثلا، با یک عملیات نقطه‌ای کنتراست را بالا می‌بریم، سپس با یک فیلتر نویزها را حذف می‌کنیم و در نهایت با آستانه‌گذاری (Thresholding) ناحیه پیچ را از پس‌زمینه جدا می‌کنیم. خروجی این مرحله هنوز یک تصویر است، اما یک تصویر تمیز و آماده برای تحلیل ماشین.
    2. گام دوم (بینایی کامپیوتر): حالا نوبت به درک تصویر می‌رسد. روی تصویر پیش‌پردازش‌شده، الگوریتم‌های استخراج ویژگی را اجرا می‌کنیم تا مشخصات هندسی پیچ (مثل تعداد لبه‌ها یا مساحت شیار) را به صورت عدد استخراج کنیم. سپس یک الگوریتم تصمیم‌گیرنده، بررسی می‌کند که آیا این اعداد با استاندارد یک پیچ سالم هم‌خوانی دارد یا خیر. خروجی این مرحله یک فرمان است: این پیچ معیوب است، آن را از خط خارج کن!

    با خواندن این بخش، احتمال دارد این سوال برای شما ایجاد شود که، خب پردازش تصویر آنقدرها هم مهم نیست؛ چرا پردازش تصویر یاد بگیرم، بهتر نیست مستقیم سراغ بینایی کامپیوتر بروم؟! پاسخ به این سوال، مرز بین یک کدنویس آماتور و یک مهندس حرفه‌ای را مشخص می‌کند. جواب این سوال را در بخش بعدی داده‌ام…

    پردازش تصویر پیش‌نیاز بینایی کامپیوتر

    همان‌طور که در انتهای بخش قبل قول دادم، بیایید به یک سوال بسیار رایج و البته خطرناک پاسخ دهیم: در عصر شبکه‌های عصبی عمیق (Deep Learning) و هوش مصنوعی، چرا باید وقتم را صرف یادگیری الگوریتم‌های کلاسیک و سطح پایین پردازش تصویر کنم؟ آیا بهتر نیست مستقیما سراغ بینایی کامپیوتر و یادگیری عمیق بروم؟

    راستش را بخواهید، این وسوسه‌ای است که بسیاری از افراد تازه‌کار درگیر آن می‌شوند. آن‌ها با چند خط کد آماده، یک مدل تشخیص اشیای YOLO را اجرا می‌کنند و احساس می‌کنند بینایی کامپیوتر همین است! اما وقتی همین افراد وارد پروژه‌های واقعی می‌شوند، به شدت زمین می‌خورند. چرا؟ چون پریدن از روی پایه‌های پردازش تصویر و ورود مستقیم به بینایی کامپیوتر، تفاوت بین یک اپراتورِ کدهای آماده و یک مهندس حل‌مسئله را رقم می‌زند. یک فرد حرفه‌ای هرگز پردازش تصویر را نادیده نمی‌گیرد، و دلایل بسیار محکمی برای این کار دارد که در ادامه مفصل توضیح می‌دهم.

    قانون GIGO (زباله ورودی، زباله خروجی)

    مدل‌های آماده بینایی کامپیوتر و یادگیری عمیق جادوگر نیستند! در صنعت معروف است که می‌گویند: Garbage In, Garbage Out. یعنی اگر داده بدی به سیستم بدهید، خروجی بدی می‌گیرید!

    فرض کنید یک هوش مصنوعی بسیار قدرتمند برای تشخیص پلاک خودرو آموزش داده‌اید. اگر در یک روز بارانی یا در تاریکی شب دوربین عکسی بگیرد که پر از نویز، بازتاب نور و تاری باشد، مدل آماده شما کاملا فلج می‌شود. اما یک مهندس واقعی، قبل از اینکه تصویر را به مدل بدهد، با استفاده از الگوریتم‌های کلاسیک پردازش تصویر (مثل تنظیم هیستوگرام، فیلترهای حذف نویز و مورفولوژی) تصویر را تمیز و خوانا می‌کند. بدون پیش‌پردازش کلاسیک، مدل‌های آماده یادگیری عمیق بسیار شکننده هستند.

    شکار پشه با توپ جنگی (سخت‌افزار و سرعت)

    یکی از بزرگترین اشتباهات افراد مبتدی این است که می‌خواهند هر مسئله‌ای را با الگوریتم‌های پیشرفته بینایی کامپیوتر (مثلا شبکه‌های عصبی عمیق) حل کنند. فرض کنید در یک خط تولید، می‌خواهیم تشخیص دهیم که داخل قوطی چند قاشق وجود دارد (0، 1 یا 2). یک فرد ناوارد پیشنهاد استفاده از شبکه عصبی عمیق را می‌دهد که نیازمند کارت گرافیک‌های گران‌قیمت (GPU) و زمان پردازش بالاست. اما یک مهندس حرفه‌ای می‌داند که الگوریتم‌های کلاسیک هم می‌توانند این کار را با دقت بالا، در کسری از ثانیه و روی یک پردازنده بسیار ارزان‌قیمت و ضعیف (مثل Raspberry Pi) انجام دهند. پردازش تصویر کلاسیک، کلید ساخت سیستم‌های ارزان، سریع و بلادرنگ (Real-time) است.

    سیستم پردازش تصویر
    سیستم پردازش تصویر برای تفکیک قوطی‌ها براساس 0 یا 1 یا 2 قاشق در قوطی؛

    چالش اگر پردازش تصویر بلدید، در کامنت‌ها بگویید که راه حل شما برای حل این مسئله چیست؟

    این پروژه‌ای بود که به عنوان چالش با جایزه نقدی در دوره پردازش تصویر مطرح کردم. یکی از دانشجویان دوره توانست با همان تکنیک‌های پردازش تصویر این مسئله را حل کند. جایزه‌اش را هم گرفت! 😊

    سندوم جعبه سیاه در برابر کنترل مطلق

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

    کمبود داده (Data Starvation)

    روش‌های پیشرفته بینایی کامپیوتر برای یادگیری به هزاران تصویر برچسب‌گذاری‌شده نیاز دارند. اما در صنعت، شما همیشه این حجم از داده را ندارید! مثل همان چالشی که من برای دانشجویان دوره OpenCV مطرح کردم و کمتر از 10 تصویر به آنها داده بودم. اینجا فقط مهارت شما در استفاده از الگوریتم‌های پردازش تصویر و بینایی کامپیوتر کلاسیک است که می‌تواند پروژه را نجات دهد.

    امیدوارم، اهمیت پردازش تصویر برای علاقه‌مندان حوزه تصویر به‌خوبی مشخص شده باشد. اما، مسیر درست یادگیری در حوزه تصویر چیست؟ در بخش بعدی به این سوال پاسخ می‌دهم.

    نقشه راه پردازش تصویر و بینایی کامپیوتر

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

    ابتدا پردازش تصویر، سپس بینایی کامپیوتر!

    ما در هوسم، با سابقه بیش از 10 سال فعالیت در حوزه آموزش هوش مصنوعی، دو دوره جامع و اصولی برای پردازش تصویر و بینایی کامپیوتر ساخته‌ایم. روی دو فاکتور تئوری/ریاضیات و عملی/کدنویسی تاکید کرده‌ایم. سعی کرده‌ایم تمامی مطالب مهم و کلیدی در حوزه تصویر را با توضیحاتی ساده و روان برای مخاطب جا بیندازیم؛ سپس همان مطالب را به‌صورت عملی پیاده کنیم تا مخاطب به درکی عمیق در مباحث برسد. دوره 106 ساعته آموزش پردازش تصویر با OpenCV و دوره 80 ساعته بینایی کامپیوتر مدرن را به شما برای کسب مهارت و تخصص در حوزه ویژن پیشنهاد می‌کنیم.

    آموزش OpenCV: از پردازش تا بینایی
    دوره آموزش OpenCV: از پردازش تا بینایی (برای مشاهده جزئیات و دموهای دوره کلیک کنید!)
    اشتراک گذاری:

    مطالب زیر را حتما مطالعه کنید

    آموزش اتصال به وبکم با OpenCV
    در این پست یک آموزش جذاب داریم؛ آموزش اتصال به وبکم با OpenCV. در پایان...
    تصویر دیجیتال چیست؟
    تصویر دیجیتال ، یکی از انواع داده‌های مهم و کلیدی است که هرروز حجم بالایی...
    آموزش OpenCV
    به‌نام خدا، ســــــــلام... خوشحالم که یک وبلاگ دیگر را شروع کردم. در این پست طولانی...

    دیدگاهتان را بنویسید لغو پاسخ

    جستجو برای:
    دوره‌های جامع هوسم
    • مسابقه Kaggle: تحلیل و پیش‌بینی رفتار با داده‌های چندحسگری سری زمانی
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    درباره هوسم

    آکادمی هوش مصنوعی هوسم با آموزش‌های تخصصی در حوزه هوش مصنوعی در خدمت شماست. روی کمک هوسم حساب کنید…

    • گیلان- شهرستان رودسر- شهرک انصاری- کوچه لاله 9
    • 09025469248
    • howsam.mail@gmail.com
    دسترسی سریع
    • صفحه اصلی
    • وبلاگ
    • حساب کاربری
    • سبد خرید
    شبکه‌های اجتماعی

     

    logo-samandehi
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      ورود
      استفاده از موبایل
      استفاده از آدرس ایمیل
      آیا هنوز عضو نیستید؟ اکنون عضو شوید
      بازنشانی رمز عبور
      استفاده از موبایل
      استفاده از آدرس ایمیل
      عضویت
      استفاده از موبایل
      استفاده از ایمیل
      قبلا عضو شدید؟ اکنون وارد شوید

      ورود

      رمز عبور را فراموش کرده اید؟

      هنوز عضو نشده اید؟ عضویت در سایت