تشخیص تصویر YOLOv8 فوقالعاده است، اما آموزش مدل وظیفه مهمی است که نباید از آن غافل شوید.
YOLOv8 یک الگوریتم تشخیص اشیا در زمان واقعی است که به طور گسترده در زمینه تشخیص اشیا استفاده می شود. این بخشی از سری You Only Look Once (YOLO) است که توسط Ultralytics ساخته شده است. این الگوریتم موارد را ردیابی، شناسایی، تقسیم بندی، وضعیت را تخمین زده و اشیاء را در تصاویر و ویدئوها طبقه بندی می کند. هدف آن این است که سریعتر و دقیق تر از الگوریتم های قبلی خود باشد.
استفاده از YOLOv8 در مجموعه داده های آزمایشی مانند CIFAR-10 و CIFAR-100 اغلب برای پروژه های اثبات مفهوم (POC) آسان تر از مجموعه داده های دنیای واقعی است که به مجموعه داده های سفارشی شده نیاز دارند.
این آموزش شما را از طریق مراحل مربوط به آموزش YOLOv8 بر روی داده های سفارشی راهنمایی می کند.
راه اندازی محیط پایتون
با دنبال کردن دستورالعمل های زیر، با نصب محیط توسعه برای پروژه شروع کنید.
- به ترمینال بروید و یک دایرکتوری جدید به نام yolov8project ایجاد کنید: mkdir yolov8project
- به دایرکتوری پروژه بروید و یک محیط مجازی ایجاد کنید: cd yolov8projectpython -m venv env
- سپس محیط مجازی را فعال کنید. # در Windowsenv/Scripts/activate# در لینوکس / macOSsource env/bin/activate برای اجرای کد خود، باید Ultralytics را نصب کنید، کتابخانه ای برای تشخیص اشیا و تقسیم بندی تصویر. همچنین یک وابستگی به YOLOv8 است. با اجرای دستور زیر آن را با استفاده از pip نصب کنید. pip install ultralytics
- این دستور مدل از پیش آموزش دیده YOLOv8، yolov8n.pt را نصب می کند. مدل را با اجرای دستورات زیر آزمایش کنید تا به ترتیب با استفاده از YOLOv8 روی تصویر یا ویدیوی انتخابی خود با وزنه های از پیش آموزش دیده تشخیص دهید. #image detectionyolo task=detec mode=predict model=yolov8n.pt source=”path/to/image.png” #video detectionyolo task=detect mode=predict model=yolov8n.pt source=”path/to/video.mp4″ اگر همه چیز به خوبی کار کند، نتایج در دایرکتوری yolov8project در زیر شاخه runs/detect/exp در دسترس خواهند بود.
mkdir yolov8project
cd yolov8project
python -m venv env
# On Windows
env/Scripts/activate
# On Linux / macOS
source env/bin/activate
pip install ultralytics
#image detection
yolo task=detect mode=predict model=yolov8n.pt source="path/to/image.png"
#video detection
yolo task=detect mode=predict model=yolov8n.pt source="path/to/video.mp4"
آماده کردن مجموعه داده سفارشی شما
مراحل آماده سازی مجموعه داده سفارشی شما شامل جمع آوری داده ها، برچسب گذاری داده ها، و تقسیم داده ها (آموزش، آزمایش، اعتبار سنجی) است.
جمع آوری داده ها
این فرآیند جمع آوری مجموعه ای از تصاویر است که دارای اشیایی است که می خواهید شناسایی کنید. مطمئن شوید که از تصاویر با کیفیت بالا، در فوکوس استفاده می کنید و اشیا به وضوح قابل مشاهده هستند. برای جمع آوری تصاویر می توانید از ابزارهای مختلفی مانند Google Images، Flickr یا دوربین خود استفاده کنید. اگر مجموعه داده تصویری ندارید، از مجموعه داده پایگاه داده openimages استفاده کنید. این مقاله از مجموعه داده های تصویر ایمنی سایت ساخت و ساز از Kaggle استفاده می کند.
برچسب گذاری داده ها
پس از جمع آوری تصاویر خود، باید آنها را برچسب گذاری کنید. این به معنای شناسایی اشیاء در هر تصویر و جعبه های مرزی آنها است. ابزارهای مختلفی مانند LabelImg، CVAT، و Roboflow برای کمک به شما در برچسب گذاری داده ها وجود دارد. استفاده از این ابزارها همگی رایگان است.
تقسیم داده ها
برای آموزش مدل های یادگیری ماشینی، باید داده های خود را به مجموعه های آموزشی و آزمایشی تقسیم کنید. سعی کنید از نسبت تقسیم 70% -30% هنگام استفاده از مقادیر زیاد داده استفاده کنید. در غیر این صورت، 80٪ -20٪ را حفظ کنید تا از برازش یا عدم تناسب مدل خود جلوگیری کنید.
برای تقسیم تصادفی داده های خود به مجموعه های قطار، تست و اعتبارسنجی با نسبت تقسیم دلخواه خود از پوشه های تقسیم استفاده کنید.
پیکربندی YOLOv8 برای مجموعه داده شما
پس از برچسب گذاری داده های خود، به پیکربندی YOLOv8 برای مجموعه داده سفارشی خود ادامه دهید. این شامل ایجاد یک فایل پیکربندی است که موارد زیر را مشخص می کند:
- مسیر داده های آموزشی شما
- مسیر داده های اعتبارسنجی شما.
- تعداد کلاس هایی که می خواهید شناسایی کنید.
یک فایل config.yaml برای ذخیره تنظیمات ایجاد کنید:
path: (dataset directory path)
train: (train dataset folder path)
test: (test dataset folder path)
valid: (validation dataset folder path)
# Classes
nc: 5 # replace based on your dataset's number of classes
# Class names
# replace all class names with your own classes' names
names: ['class1', 'class2', 'class3', 'class4', 'class5']
ایجاد فایل پیکربندی یک راه مفید برای ساختار و ذخیره پارامترهای مهم برای مدل بینایی کامپیوتر شما است. مطمئن شوید که فایل config.yaml را با توجه به ماهیت و ساختار مجموعه داده خود به روز کنید.
مطمئن شوید که از مسیرهای صحیح برای مجموعه داده های خود استفاده می کنید زیرا آموزش مدل کاملاً بر روی فایل تنظیمات متکی است.
آموزش YOLOv8 در مورد داده های سفارشی
پس از ایجاد فایل پیکربندی، آموزش YOLOv8 را شروع کنید. از ابزار خط فرمان YOLOv8 برای آموزش مدل خود استفاده کنید. ابزار خط فرمان چندین پارامتر مانند مسیر فایل پیکربندی، تعداد دورهها و اندازه تصویر را به شرح زیر میگیرد:
yolo task=detect mode=train model=yolov8n.pt data=path/to/config.yaml epochs=10 imgsz=640
این دستور بخش های مختلفی دارد.
task نوع کار را تعیین می کند: شناسایی، بخش بندی یا طبقه بندی. حالت یک عمل را نشان می دهد: قطار، پیش بینی، val، صادرات، مسیر یا معیار. مدل مدلی است که در این مورد از yolov8n.pt استفاده می شود. همچنین می توانید از yolov8s/yolov8l/yolov8x استفاده کنید.
epochs تعداد دورهای آموزشی را نشان می دهد (10). imgsz اندازه تصویر (640) را نشان می دهد. اندازه تصویر همیشه باید مضربی از 32 تنظیم شود.
در اینجا نمونه ای از خروجی است که می توانید انتظار داشته باشید:
زمان مورد استفاده برای آموزش به اندازه مجموعه داده شما، تعداد دورهها و تعداد کلاسهایی که میخواهید شناسایی کنید بستگی دارد. پس از تکمیل فرآیند آموزش، یک مدل YOLOv8 آموزش دیده خواهید داشت که از آن برای تشخیص اشیاء در تصاویر و ویدیوها استفاده خواهید کرد.
پس از اتمام تمرین، استنباط با وزنه های جدید، best.pt انجام دهید
yolo task=detect mode=predict model="runs/train/weights/best.pt" source="image.png"
برای دسترسی به وزنه های سفارشی آموزش داده شده، به دایرکتوری runs/train/exp/weights/best.pt بروید. YOLOv8 تصویر پیشبینیشده را در فهرست فرعی runs/detect/exp ذخیره میکند.
ارزیابی عملکرد مدل
می توانید عملکرد مدل YOLOv8 را با استفاده از دستور زیر ارزیابی کنید که مدل را روی مجموعه ای از تصاویر آزمایشی ارزیابی می کند:
yolo val model=yolov8n.pt data=path/to/config.yaml batch=1 imgsz=640
نتایج مورد انتظار به شرح زیر است:
فرآیند ارزیابی معیارهای مختلفی مانند دقت، یادآوری و امتیاز F1 را ایجاد می کند. متریک دقیق درصد اجسامی را که به درستی شناسایی شده اند اندازه گیری می کند. متریک فراخوان درصد اشیایی را که YOLOv8 شناسایی می کند اندازه گیری می کند. امتیاز F1 میانگین وزنی معیارهای دقت و یادآوری است.
استقرار مدل YOLOv8 سفارشی شما
عملکرد مدل YOLOv8 خود را تست کنید.
yolo detect predict model=path/to/best.pt source='path/to/image.jpg'
خروجی به صورت زیر است:
سپس وزن های مدل را در یک فایل ذخیره کنید.
yolo export model=path/to/best.pt format=onnx
از فایل برای بارگذاری مدل در برنامه خود استفاده کنید و از آن برای شناسایی اشیاء در زمان واقعی استفاده کنید. اگر مدل را در یک سرویس ابری مستقر می کنید، از سرویس ابری برای شناسایی اشیاء در تصاویر و ویدیوهایی که در این سرویس هستند استفاده کنید.
غذای آماده YOLOv8
تیم Ultralytics به طور مداوم مدل های سری YOLO را بهبود بخشیده است. این باعث شده است که آنها در فناوری تشخیص اشیا و زمینه بینایی رایانه پیشرو صنعت باشند.
YOLOv8 یک مدل بهبود یافته است که می توانید از آن برای انجام بسیاری از پروژه های بینایی کامپیوتری استفاده کنید.