در عصر صنعت ۴.۰، حاشیه خطا در خطوط مونتاژ پرسرعت عملاً صفر است. سیستمهای بینایی سنتی مبتنی بر قوانین اغلب در مواجهه با عیوب پیچیده مانند ترکهای میکروسکوپی، تغییر رنگهای جزئی یا عدم همراستایی، به ویژه زمانی که سرعت خط از ۱۰۰ واحد در دقیقه فراتر میرود، با چالش مواجه میشوند. ادغام یادگیری عمیق این منظره را دگرگون کرده است و در حال حاضر، معماری You Only Look Once نسخه ۸ (YOLOv8) به عنوان استاندارد طلایی برای تعادل بین دقت و سرعت استنتاج شناخته میشود. این پست بررسی میکند که چگونه میتوان معماریهای سفارشی YOLOv8 را برای تشخیص عیوب در لحظه تطبیق داد تا ارسال بدون عیب را تضمین کند، در حالی که میزان تولید حفظ میشود.
چالش بازرسی با سرعت بالا
پایپلاینهای سنتی تشخیص اشیاء اغلب شامل مراحل متوالی متعددی هستند: کسب تصویر، پیشپردازش، استخراج ویژگی و طبقهبندی. در یک خط پرسرعت، تاخیر ناشی از این پایپلاین میتواند منجر به از دست رفتن عیوب یا نیاز به کاهش سرعت خط شود. معماریهای سفارشی YOLOv8 با ادغام این مراحل در یک مدل یکپارچه و تماممشتقپذیر، این چالش را حل میکنند. با این حال، معماری پیشفرض ارائه شده توسط Ultralytics اغلب برای دستگاههای لبه سنگین است یا برای تشخیص اشیاء عمومی بهینه شده است تا برای ظرافتهای خاص قطعات صنعتی.
چالش اصلی در بهینهسازی مدل برای اشیاء کوچک و کلاسهای نادر عیب نهفته است. یک مدل استاندارد YOLOv8 ممکن است برای خودروها یا عابران پیاده تنظیم شده باشد، اما یک خط تولید نیاز به تشخیص یک خطخوردگی ۲ میلیمتری روی سطح فلزی دارد. این امر نیازمند تغییرات معماری، به ویژه در بخشهای بکبون (Backbone) و هد (Head) است تا جزئیات ریزدانه بدون قربانی کردن نرخ استنتاج در لحظه مورد نیاز برای سرعت نوار نقاله، ثبت شوند.
سفارشیسازی معماری برای ظرافتهای صنعتی
برای دستیابی به عملکرد بهینه، باید فراتر از پیشفرضهای استاندارد ultralytics حرکت کنیم. سفارشیسازی معمولاً شامل اصلاح فایل پیکربندی YAML برای تنظیم ضریب عمق و عرض، تغییر جعبههای انکوره (Anchor Boxes) برای تناسب با نسبتهای ابعادی خاص محصولات شما، و ادغام یک نسخه PANet (شبکه تجمیع مسیر) است که بر ادغام ویژگی در سطوح رزولوشن پایینتر تأکید دارد.
برای مثال، اگر عیوب شما بسیار کوچک هستند، ممکن است یک هد تشخیص اختصاصی برای لایه P2 (که مربوط به نقشههای ویژگی با بالاترین رزولوشن است) اضافه کنید. این کار لایهای از هزینه محاسباتی را اضافه میکند اما به طور قابل توجهی فراخوانی (Recall) برای ناهنجاریهای بسیار کوچک را بهبود میبخشد. مثال زیر نحوه تعریف یک پیکربندی YOLOv8 سفارشی را نشان میدهد که شامل یک هد تشخیص تخصصی برای اشیاء کوچک است:
# custom_industrial_yolov8.yaml
# Base: ultralytics/cfg/models/8/yolov8.yaml
nc: 5 # تعداد کلاسها (0: بدون عیب، 1-4: انواع خاص عیب)
# افزایش عمق برای استخراج ویژگی بهتر روی بافتهای پیچیده
depth_multiple: 1.0
width_multiple: 0.75
# بکبونهای سفارشی
backbone:
[[-1, 1, C2f, [256, 3, False]],
[-1, 1, Conv, [512, 3, 2]],
[[-1, 1], 1, C2f, [512, 512]],
[-1, 1, Conv, [1024, 3, 2]],
[[-1, 1], 1, C2f, [1024, 1024]],
[-1, 1, Conv, [512, 3, 2]],
[[-1, 1], 1, C2f, [512, 512]]]
# هدها با لایه اضافی P2 برای عیوب کوچک
head:
[[[-1, 1, Conv, [128, 1, 1]],
[-2, 1, Upsample, [1, 2, 'nearest']],
[[-1, -3], 1, Concat, [1]],
[-1, 1, C2f, [256]],
[-1, 1, Conv, [256, 3, 2]],
[[-1, -3], 1, Concat, [1]],
[-1, 1, C2f, [512]],
[-1, 1, Conv, [512, 3, 2]],
[[-1, -3], 1, Concat, [1]],
[-1, 1, C2f, [1024]]
],
[[-1, 1, Conv, [128, 1, 1]],
[-2, 1, Upsample, [1, 2, 'nearest']],
[[-1, -3], 1, Concat, [1]],
[-1, 1, C2f, [256]],
[-1, 1, Conv, [256, 3, 2]],
[[-1, -3], 1, Concat, [1]],
[-1, 1, C2f, [512]]
],
[[-1, 1, Conv, [128, 1, 1]],
[-2, 1, Upsample, [1, 2, 'nearest']],
[[-1, -3], 1, Concat, [1]],
[-1, 1, C2f, [256]]
]]
بهینهسازی متمرکز بر داده و استراتژیهای آموزش
تغییرات معماری تنها نیمی از نبرد است؛ تشخیص عیب صنعتی به شدت به کیفیت دادهها وابسته است. مجموعههای داده عیب ذاتاً نامتوازن هستند، با نمونههای «بدون عیب» که به طور فاحشی نمونههای «عیب حیاتی» را از نظر تعداد پشت سر میگذارند. برای مقابله با این موضوع، ما از استراتژیهای پیشرفته افزایش داده (Augmentation) در حین آموزش استفاده میکنیم. تکنیکهایی مانند افزایش داده Mosaic برای زمینه مفید هستند، اما برای خطوط پرسرعت، باید بر افزایش داده کپی-پیست برای عیوب نادر و افزایش دادههای هندسی سختگیرانه مانند چرخش و مقیاسدهی برای شبیهسازی جهتهای متنوع قطعات روی نوار تمرکز کنیم.
هنگام آموزش، از API پایتون ultralytics برای بارگذاری مدل سفارشی و اعمال این پیکربندیها استفاده میکنیم:
from ultralytics import YOLO
# بارگذاری پیکربندی مدل سفارشی
model = YOLO('custom_industrial_yolov8.yaml')
# آموزش با پارامترهای هایپرخاص بهینهشده برای اشیاء کوچک
results = model.train(
data='industrial_defect_dataset.yaml',
epochs=100,
batch=16,
imgsz=640, # اگر سختافزار اجازه میدهد برای رزولوشن بهتر اشیاء کوچک به 1280 افزایش دهید
patience=50,
workers=8,
# فعالسازی افزایش داده کپی-پیست برای عیوب نادر
augment=True,
# استفاده از نرخ یادگیری (LR) کوچکتر برای تنظیم ظریف اگر از بکبون از پیش آموزشدیده استفاده میشود
lr0=0.001
)
استقرار روی دستگاههای لبه
آزمون نهایی یک معماری سفارشی، استقرار آن در یک محیط تولید است. خطوط مونتاژ پرسرعت اغلب به NVIDIA Jetson Orin یا GPUهای لبه مشابه برای به حداقل رساندن تاخیر متکی هستند. پس از آموزش، مدل باید به فرمت TensorRT یا OpenVINO تبدیل شود. این فرآیند شامل کوانتیزاسیون است، که معمولاً دقت را از FP32 به FP16 یا INT8 کاهش میدهد و میتواند اندازه مدل را ۴ برابر با کاهش ناچیز دقت کاهش دهد و همزمان سرعت استنتاج را دو برابر کند.
پایپلاین استقرار باید با PLC (کنترلگر منطقی برنامهپذیر) از طریق TCP/IP یا ROS یکپارچه شود. زمانی که مدل عیبی را تشخیص میدهد، امتیاز اطمینان باید از یک آستانه سختگیرانه (مثلاً ۰.۸۵) فراتر رود تا مکانیزم رد کردن را فعال کند. استنتاج کمتاخیر YOLOv8، که معمولاً ۳۰ تا ۶۰ فریم بر ثانیه را روی سختافزار لبه به دست میآورد، تضمین میکند که سیستم میتواند با نوارهای نقالهای که با سرعت بیش از ۱ متر در ثانیه حرکت میکنند، همگام باشد.
نتیجهگیری
پیادهسازی تشخیص عیب در لحظه با استفاده از معماریهای سفارشی YOLOv8، استراتژی قدرتمندی برای مدرنسازی فرآیندهای تولید است. با شخصیسازی بکبون برای ثبت ویژگیهای کوچک، افزایش داده برای مقابله با عدم تعادل کلاسها و بهینهسازی برای استقرار لبه، توسعهدهندگان میتوانند سیستمهای مستحکمی ایجاد کنند که به طور قابل توجهی ضایعات را کاهش داده و کنترل کیفیت را بهبود میبخشند. انعطافپذیری YOLOv8 امکان تکرار مداوم را فراهم میکند و آن را به انتخابی ایدهآل برای نیازهای در حال تحول بازرسی صنعتی تبدیل میکند. با پیشرفت فناوری بینایی ماشین، مرز بین بازرسی خودکار و انسانی به طور فزایندهای محو خواهد شد، با هوش مصنوعی که در تضمین دقت پیشرو خواهد بود.