بذار داستان رو از اول و یهکم خودمونی برات تعریف کنم! فرض کن توی کارخونه دارن این فیلمهای پلیمری رو (همون لایههای پلاستیکی که مصارف مختلف دارن) با دستگاههای مخصوص تولید میکنن. حالا این وسط، گاهی به خاطر اشکالات توی فرآیند یا یه اشتباه کوچیک، یهسری آسیب و عیب خیلی ریز یعنی همون micro-defect به سطح این فیلما اضافه میشه که واقعاً میتونه کیفیت محصول رو بریزه بهم!
خب تا امروز معمولاً با هوش مصنوعیهای قدیمی یا سیستمهای یادگیری ماشینی (یعنی الگوریتمایی که داده میگیرن و خودشون کمکم یاد میگیرن عیب هارو تشخیص بدن)، سراغ این تشخیص عیبها میرفتن. ولی این روشا هم خیلی ماجرا دارن: یا دقتشون پایین بود، یا وقتی شرایط محیط یا شکل فیلما تغییر میکرد، کلاً میزدن به خطا! تازه کلی باید با پارامترها ور میرفتی تا شاید یه نتیجهی آبرومند بگیری، و خب زیاد هم قابل اطمینان نبودن.
حالا یه تیم اومده و گفته بسه دیگه! ما یه نسخه ارتقا یافته از YOLOv8 آوردیم که حسابی به درد اینجور کارا میخوره. (YOLO یعنی “You Only Look Once”، یه مدل فوق سریع شناسایی اشیا توی عکس که واقعاً توی دنیای یادگیری ماشین معروفه.) اینا تو این روش جدید، چندتا خلاقیت اضافه کردن که هر کدومش واقعاً کاربردیه:
■ اولیش اینکه یه چیزی به اسم CBAM یا همون “mechanism توجه برای شبکههای عصبی” رو اضافه کردن. این CBAM رو راحت بگم: مثل فیلترهای اینستاگرامی که بعضی قسمتای مهم تصویر رو برجستهتر میکنن – اینم تو دیتاهای کم و هدفای کوچیک، کمک میکنه ویژگیهای مهم بهتر دیده بشن و گیج نشن.
■ دوماً، مشکل اصلی اینجا اینه که کلی عکس برچسبخورده لازم داری تا مدل خوب آموزش ببینه، ولی جمعکردن این جور داده واقعاً سخته و زمانبره، مخصوصاً برای عیبای ریز! برای همین اومدن سراغ یه روش نیمهنظارتی یا semi-supervised به اسم Mean Teacher. این یعنی چه؟ یعنی مدل با تعداد کم دادهی برچسبخورده هم میتونه یاد بگیره و با بقیهی دادههای بدون برچسب هم خودش تمرین میکنه، جوری که انگار یه معلم داره هی راهنماییش میکنه.
■ برای اینکه شبکه توی آموزش دچار اختلال نشه – مثلاً اندازۀ عیبها مختلفن، و این میتونه باعث بشه مدل قاطی کنه – یه loss function جدید طراحی کردن که بر اساس Normalized Wasserstein Distance (NWD) کار میکنه. (جازب تعریف: آبوارشتاین یه روش ریاضی برای سنجش فرقداشتن بین دو مجموعه دادهست، اینجا هم باعث میشه مدل پایدارتری داشته باشیم.) خلاصه کمک میکنه مدل با تغییرات اندازهها قاطی نکنه و همیشه رو فرم بمونه.
■ در نهایت، برای اینکه بتونن دور این عیبای ریز رو دقیقاً توی تصویر بکشن و ویژگیهای بیشتری ازش دربیارن، یه الگوریتم segmentation چندمرحلۀ جدید هم تعریف کردن. segmentation یعنی بریدن و جداکردن اون بخش آسیب دیده از تصویر کل.
حالا بیایم سراغ اصل داستان و نتیجۀ آزمایشها:
نتایجشون نشون داد که برخلاف مدلای قبلی، این YOLOv8 پیشرفته تا ۸.۲۶٪ دقت بیشتری توی تشخیص عیبای خیلی ریز داره (این درصد واقعاً توی دنیای یادگیری ماشین رقم بزرگیه). حتی موقعی که عکسها سایزاشون فرق داشت، یا نور محیط عوض شد و حتی اگر یه کم کثیفی یا آلودگی تصویر بود، باز هم توانست دقت بالای ۹۵٪ رو حفظ کنه! یعنی کاملاً به درد صنعت و تولید انبوه میخوره.
نکتۀ جذاب دیگه هم اینه که مدل کلی شرایط عجیب و پیچیده رو توی دنیای واقعی بهتر هندل میکنه و اون مشکلات مدلای سنتی رو نداره، چون حسابی همهجوره تستش کردن.
در آخر، قراره توی پژوهشای آینده، بازم روش کار کنن تا هم دقتش بره بالاتر، هم قویتر بشه و دقیقتر کارای خودش رو انجام بده. خلاصه اگر کارخونهای بخواد کیفیت فیلمهای پلیمریش رو تضمین کنه و نخواد حتی کوچیکترین عیب از زیر دستش در بره، این روش جدید حسابی میتونه کمکش کنه!
منبع: +