معرفی و تعریف
آمادهسازی و برچسبگذاری دادههای بینایی ماشین یعنی تبدیل تصاویر و ویدئوهای خام به دادهای قابلاعتماد برای آموزش و ارزیابی مدل. این کار میتواند شامل تعریف کلاسها و قواعد برچسبگذاری (Annotation)، حذف نمونههای نامناسب، ثبت جعبه محدودکننده، ماسک، نقطه کلیدی یا شناسه شیء و در نهایت کنترل کیفیت برچسبها باشد.
هدف فقط تولید فایل برچسب نیست. باید مطمئن شوید برچسبها با مسئله اصلی پروژه هماهنگ هستند، تصاویر تکراری یا مبهم بهدرستی مدیریت شدهاند و دادههای آموزش، اعتبارسنجی و آزمون طوری از هم جدا شدهاند که نمونههای بسیار مشابه در چند بخش قرار نگیرند.
مهندسان بینایی ماشین، تیمهای داده و شرکتهای فعال در حوزههایی مانند نظارت تصویری، کنترل کیفیت صنعتی، خردهفروشی و حملونقل از این مهارت استفاده میکنند.
در پروژههای کوچک، مهندس بینایی ماشین ممکن است خودش داده را آماده و برچسبگذاری کند. در پروژههای بزرگتر، این کار معمولا بین برچسبگذار، تیم داده و مسئول کنترل کیفیت تقسیم میشود.
این مهارت را با نامهای دیگری نیز میشناسند:
- برچسبگذاری دادههای تصویری
- آمادهسازی دیتاست بینایی ماشین
- برچسبگذاری تصاویر برای یادگیری ماشین
- Computer Vision Data Annotation
- Computer Vision Dataset Preparation
- Image Annotation
- Visual Data Labeling
اهمیت و کاربردها
چرا این مهارت مهم است؟
کیفیت داده و برچسبها یکی از عوامل اصلی عملکرد مدل بینایی ماشین است. اگر مدل با برچسبهای ناسازگار، نمونههای تکراری یا تقسیمبندی نادرست داده آموزش ببیند، ممکن است در ارزیابی داخلی نتیجه خوبی بگیرد اما روی تصاویر واقعی عملکرد ضعیفتری داشته باشد.
برای مهندس بینایی ماشین، آمادهسازی داده مکمل مدلسازی است. پیش از اینکه معماری مدل را تغییر دهید یا ابرپارامترها را تنظیم کنید، باید مطمئن شوید مشکل از کیفیت داده، تعریف کلاسها یا برچسبها نیست.
در پروژههایی که داده اختصاصی از دوربین، خط تولید، اسناد یا محصولات واقعی جمعآوری میشود، ساخت دیتاستی که منشأ نمونهها و تغییرات آن مشخص باشد، بخش مهمی از حل مسئله است.
این مهارت برای مهندس یادگیری ماشین و مهندس هوش مصنوعی هم کاربرد دارد، اما در نقش مهندس بینایی ماشین اهمیت بیشتری پیدا میکند.
در تیمهای کوچک، مهندس ممکن است دستورالعمل برچسبگذاری را بنویسد، نمونهها را بازبینی کند و درباره جمعآوری یا اصلاح داده تصمیم بگیرد. در تیمهای بزرگتر، این مسئولیتها بین افراد مختلف تقسیم میشوند و مهندس بینایی ماشین باید بتواند کیفیت خروجی نهایی را برای آموزش مدل ارزیابی کند.
کاربردها
-
تشخیص عیب در خط تولید
تعریف کلاسهای عیب، مشخصکردن مرز قطعه یا ناحیه آسیبدیده و برچسبگذاری نمونههای سالم و معیوب برای آموزش مدل کنترل کیفیت.
-
شمارش و رهگیری خودرو
برچسبگذاری خودروها در فریمهای ویدئو، حفظ شناسه هر خودرو در فریمهای متوالی و جلوگیری از قرارگرفتن فریمهای بسیار نزدیک یک صحنه در مجموعههای متفاوت.
-
خواندن متن و اسناد
آمادهسازی تصاویر اسناد، مشخصکردن ناحیه متن یا فیلدهای مهم و ثبت برچسبهایی که با هدف تشخیص متن یا استخراج اطلاعات هماهنگ باشند.
-
تشخیص کالا در خردهفروشی
برچسبگذاری نوع کالا، قفسه و محصولاتی که بخشی از آنها پوشیده شده یا روی هم قرار گرفتهاند، برای ساخت مدلهای تشخیص کالا یا بررسی چیدمان.
-
تحلیل تصاویر پزشکی
ساماندهی تصاویر و مشخصکردن ناحیههای موردنظر بر اساس دستورالعمل متخصص حوزه، همراه با رعایت محدودیتهای دسترسی و حذف اطلاعات هویتی در صورت نیاز.
-
سامانههای ایمنی و نظارت تصویری
تعریف اشیا یا رویدادهای هدف مانند کلاه ایمنی، ورود به محدوده ممنوعه یا ازدحام و جمعآوری نمونه از شرایط مختلف نور، زاویه و محیط.
ابزارهای مرتبط
پیشنیازها
پیش از شروع، بهتر است با موارد زیر آشنا باشید.
- مهارت بینایی ماشین Computer Vision
- مهارت برنامهنویسی پایتون Python Programming
- مهارت پاکسازی و آمادهسازی داده Data Cleaning and Preparation
- توانایی کار با فایلها و پوشههای تصویری در سیستمعامل
- دسترسی قانونی و مجاز به دادههای پروژه
مسیر یادگیری آمادهسازی و برچسبگذاری دادههای بینایی ماشین
-
۱۰ ساعت
مسئله بینایی ماشین را به نوع برچسب تبدیل کنید.
ابتدا تفاوت میان طبقهبندی تصویر، تشخیص شیء، قطعهبندی معنایی و نمونهای، تخمین نقاط کلیدی و رهگیری شیء را یاد بگیرید.
برای هر پروژه مشخص کنید خروجی مدل دقیقا چیست و هر تصویر یا فریم باید چه اطلاعاتی داشته باشد.
برای مثال، در تشخیص خودرو معمولا به جعبه محدودکننده و کلاس نیاز دارید. در رهگیری خودرو در ویدئو، علاوه بر این موارد باید شناسه هر خودرو در فریمهای متوالی نیز حفظ شود.
-
۱۲ ساعت
دستورالعمل برچسبگذاری قابل اجرا بنویسید
برای برچسبگذار یک راهنمای روشن تهیه کنید. در این راهنما باید تعریف هر کلاس، نمونههای مثبت و منفی و نحوه برخورد با اشیای پوشیده، تار، کوچک یا مبهم مشخص شود.
برای موارد مرزی نیز نمونه تصویری و تصمیم نهایی را ثبت کنید.
دستورالعمل مناسب باید باعث شود افراد مختلف در شرایط مشابه تصمیمهای نزدیک به هم بگیرند. عبارتهای مبهمی مانند «هر چیزی که شبیه خودرو است» برای پروژه واقعی کافی نیستند.
-
۱۴ ساعت
داده خام را بررسی و ساماندهی کنید.
ابعاد و فرمت تصاویر، فایلهای خراب، تصاویر تکراری، کیفیت نور، زاویه دوربین و پوشش کلاسها را بررسی کنید.
ساختار پوشهها، نام فایلها و فراداده را طوری تنظیم کنید که بتوان منشأ هر نمونه و نسخه دیتاست را پیگیری کرد.
با Python، NumPy، Pandas و OpenCV میتوانید فهرست فایلها را بررسی کنید، تصاویر خراب را پیدا کنید و اطلاعات اولیهای مانند ابعاد تصاویر را استخراج کنید.
برای ثبت بررسیها و تحلیل داده میتوانید از Jupyter Notebook استفاده کنید. فایلهای دستورالعمل، فهرست داده و اسکریپتهای بررسی را نیز با Git مدیریت کنید تا تغییرات قابل پیگیری باشند.
-
۱۸ ساعت
برچسبهای تصویری و ویدئویی دقیق تولید کنید.
ابزاری مانند CVAT را انتخاب کنید که از نوع برچسب و قالب خروجی موردنیاز پروژه پشتیبانی کند.
تصاویر یا ویدئوها را وارد کنید، کلاسها و ویژگیهای هر کلاس را بر اساس دستورالعمل تعریف کنید و سپس فرایند برچسبگذاری را آغاز کنید.
رسم جعبه محدودکننده، چندضلعی و ماسک را تمرین کنید و مطمئن شوید مختصات برچسبها با تصویر هماهنگ هستند.
خروجی را در قالب موردنیاز پروژه، مانند COCO یا YOLO، دریافت کنید و با یک اسکریپت ساده شناسه کلاسها، اندازه تصویر و مختصات را بررسی کنید.
چند نمونه از خروجی را نیز همراه تصویر نمایش دهید تا خطاهای تبدیل قالب یا مختصات پنهان نمانند.
در پروژههای ویدئویی، باید مدیریت ورود و خروج شیء و حفظ شناسه آن در فریمهای متوالی را نیز تمرین کنید.
-
۱۲ ساعت
کیفیت برچسبگذاری را اندازهگیری و اصلاح کنید.
پیش از شروع بازبینی، مشخص کنید چه نوع خطاهایی برای پروژه مهمتر هستند.
بخشی از داده را بهصورت تصادفی و بخشی را از نمونههای دشوار انتخاب کنید. کلاسهای کمنمونه، اشیای کوچک، تصاویر کمنور و موارد مرزی معمولا به بررسی بیشتری نیاز دارند.
در بازبینی، نوع خطا را ثبت کنید. برای مثال:
کلاس اشتباه
شیء فراموششده
جعبه بیش از حد بزرگ یا کوچک
ماسک ناقص
برای بخشی از داده میتوانید برچسبگذاری را توسط دو نفر انجام دهید و اختلافها را بررسی کنید. هدف فقط کمکردن اختلاف نیست، بلکه باید مشخص شود آیا بخشی از دستورالعمل یا تعریف مسئله مبهم بوده است.
میزان سختگیری در کنترل کیفیت نیز به نوع پروژه بستگی دارد. در کاربردهای حساس مانند پزشکی یا ایمنی، معمولا بازبینی بیشتری لازم است.
نتایج کنترل کیفیت و اصلاحات انجامشده را ثبت کنید تا بعدا مشخص باشد هر تغییر چرا انجام شده است.
-
۱۴ ساعت
دیتاست را بدون نشت تقسیم و برای آموزش آماده کنید.
داده را به مجموعههای آموزش، اعتبارسنجی و آزمون تقسیم کنید، اما فقط تقسیم تصادفی کافی نیست.
فریمهای یک ویدئو، تصاویر یک فرد، نمونههای یک محصول یا تصاویر بسیار مشابه از یک صحنه نباید بدون بررسی در مجموعههای مختلف پخش شوند. این کار میتواند باعث شود نتیجه ارزیابی بهتر از عملکرد واقعی مدل به نظر برسد.
توزیع کلاسها را نیز در هر بخش بررسی کنید. اگر کلاسها نامتوازن هستند، راهکار مناسب را بر اساس مسئله انتخاب کنید.
افزایش داده را فقط روی داده آموزش انجام دهید و در پایان چند نمونه تصویر و برچسب را پس از تبدیلها کنار هم نمایش دهید تا مطمئن شوید خط پردازش بهدرستی کار میکند.
مدت یادگیری این مهارت برای همه یکسان نیست. پیشزمینه شما در Python، بینایی ماشین، کار با داده و میزان تمرین روی پروژه واقعی بر سرعت پیشرفت اثر میگذارد. بهتر است بهجای تعداد ساعت، توانایی انجام مراحل بالا روی یک دیتاست واقعی را معیار پیشرفت قرار دهید.
زمان تقریبی یادگیری
برآورد مجموع زمان آموزش، مطالعه و تمرین تا رسیدن به سطح کاربردی؛ بسته به پیشزمینه شما میتواند کمتر یا بیشتر باشد.
پروژههای تمرینی
موارد زیر تصویری کلی از این بخش برای این مهارت ارائه میکنند.
-
دیتاست تشخیص تجهیزات ایمنی
توضیح پروژه: توضیح پروژه: مجموعهای از تصاویر عمومی دارای افراد را از یک منبع مجاز انتخاب کنید. برای کلاه و جلیقه ایمنی دستورالعمل برچسبگذاری بنویسید، جعبه محدودکننده رسم کنید، نمونهها را بازبینی کنید و تقسیم داده را بر اساس صحنه یا منبع تصویر انجام دهید.
-
ممیزی یک دیتاست برچسبخورده
توضیح پروژه: توضیح پروژه: یک دیتاست عمومی تشخیص شیء را انتخاب کنید. بخشی از نمونهها را بررسی کنید، خطاهای برچسب یا ناسازگاریها را ثبت کنید و گزارشی از نوع خطا، شدت آن، نمونه تصویری و پیشنهاد اصلاح تهیه کنید.
-
تقسیمبندی بدون نشت برای ویدئوی ترافیک
توضیح پروژه: توضیح پروژه: فریمهای چند ویدئوی ترافیکی را به آموزش، اعتبارسنجی و آزمون تقسیم کنید. توضیح دهید چرا فریمهای یک ویدئو در بیش از یک بخش قرار نگرفتهاند و توزیع کلاس خودروها را در هر بخش بررسی کنید.
-
نمایشگر کنترل برچسب
توضیح پروژه: توضیح پروژه: با Python و OpenCV اسکریپتی بسازید که تصویر را همراه جعبهها یا ماسکهای برچسبخورده نمایش دهد و خطاهایی مانند مختصات خارج از تصویر، کلاس ناشناخته یا جعبه با عرض و ارتفاع نامعتبر را گزارش کند.
پرسشهای پرتکرار
در این بخش، به تعدادی از پرسشهای رایج درباره این مهارت پاسخ داده شده است.
آیا برای برچسبگذاری دادههای بینایی ماشین باید برنامهنویسی بلد باشم؟
برای رسم برچسبهای ساده لزوما نه. اما اگر قرار است دیتاست را آماده کنید، خطاها را بررسی کنید، قالبها را تبدیل کنید یا کنترل کیفیت بسازید، آشنایی با Python بسیار مفید است. مهندس بینایی ماشین معمولا باید بتواند بخشی از این کارها را با اسکریپت انجام دهد.
جعبه محدودکننده بهتر است یا ماسک؟
به مسئله بستگی دارد. اگر فقط مکان تقریبی شیء مهم باشد، جعبه محدودکننده معمولا سادهتر و کمهزینهتر است. اگر مرز دقیق شیء اهمیت دارد، مانند اندازهگیری سطح عیب یا جداسازی دقیق یک ناحیه، ماسک مناسبتر است.
نشت داده در پروژه بینایی ماشین چیست؟
نشت داده زمانی رخ میدهد که اطلاعات یا نمونههایی بسیار مشابه میان داده آموزش و ارزیابی مشترک باشند. برای مثال، اگر فریمهای نزدیک یک ویدئو یا تصاویر بسیار مشابه از یک فرد در آموزش و آزمون قرار بگیرند، مدل ممکن است بهجای یادگیری الگوی عمومی، همان صحنه یا نمونه را به خاطر بسپارد و نتیجه ارزیابی بیش از حد خوب به نظر برسد.
با کلاسهای کمنمونه چه کار کنم؟
ابتدا بررسی کنید آیا میتوان داده واقعی بیشتری از همان شرایط جمعآوری کرد. در ادامه میتوانید روشهایی مانند نمونهگیری، وزندهی در آموزش یا افزایش داده را بررسی کنید. افزایش داده مفید است، اما جای نمونه واقعی از شرایط متنوع را نمیگیرد.
چگونه کیفیت برچسبها را ارزیابی کنم؟
بخشی از داده را بهصورت تصادفی و بخشی را از نمونههای دشوار انتخاب کنید. نوع خطا را ثبت کنید و برای نمونههای حساستر، برچسبگذاری توسط بیش از یک نفر و بررسی اختلافها را در نظر بگیرید. سطح پذیرش نیز باید با ریسک پروژه هماهنگ باشد. پروژههای پزشکی، ایمنی یا تصمیمگیری حساس معمولا به بازبینی دقیقتری نیاز دارند.
آیا میتوان از دادههای اینترنتی برای پروژه تمرینی استفاده کرد؟
برای تمرین، بهتر است از دیتاستهای عمومی با مجوز استفاده روشن استفاده کنید. برای پروژه تجاری، پیش از جمعآوری یا استفاده از تصاویر باید مجوز استفاده، حریم خصوصی افراد، حق نشر و شرایط انتقال داده را بررسی کنید.
آموزشهای مرتبط در فرادرس
-
آموزش تجزیه و تحلیل و آماده سازی داده ها با پایتون Python + گواهینامه
-
آموزش کتابخانه های NumPy و Matplotlib در پایتون، تحلیل داده تا رسم نمودار + گواهینامه
-
آموزش کتابخانه های پایتون برای یادگیری ماشین و یادگیری عمیق (رایگان) + گواهینامه
-
آموزش برنامه نویسی پایتون Python، مقدماتی + گواهینامه
-
بخش بندی تصویر چیست؟، توضیح Image Segmentation به زبان ساده