سلام به همه!
حتماً اونایی که با هوش مصنوعی و پردازش تصویر سر و کار دارن، YOLO رو میشناسن. YOLO (You Only Look Once) یکی از معروفترین مدلهای تشخیص اشیاء هست که توی خیلی از پروژههای پردازش تصویر کاربرد داره. این مدل به خاطر سرعت و دقت بالاش توی تشخیص اشیاء، خیلی محبوبه و توی زمینههای مختلف استفاده میشه.
حالا بچههایی که با پایتون کار میکنن، کلی کد نمونه برای YOLO دارن و میتونن توی اینترنت پیدا کنن. اما امروز میخوام بهتون یه پروژه تشخیص اشیاء با سیشارپ (C#) رو معرفی کنم که با استفاده از دیتابیس COCO پیادهسازی شده.
مطمئنم که میدونید بیس کار همینه، ولی شما میتونید بر اساس نیازتون مدل رو آموزش بدید و هر چیزی که دوست دارید ازش استخراج کنید.
خب، بریم سراغ پیادهسازی تشخیص اشیاء با YOLO!
مراحل کار رو براتون توضیح میدم و بعد از مطالعه میتونید کد پروژه رو از گیتهاب من بگیرید و ازش استفاده کنید. اگر هم از این پروژه خوشتون اومد و براتون مفید بود، خوشحال میشم بهم ستاره بدید! 😁
مراحل راهاندازی پروژه
-
آمادهسازی مدل YOLOv8 ONNX: اول از همه باید مدل ONNX یولو رو آماده کنید و توی یه مسیر از سیستمتون بذارید تا بتونید آدرسش رو توی کد وارد کنید. اگر نمیدونید چطور مدل ONNX رو از یولو بسازید، یه سرچ کوچیک بزنید، آموزشهای زیادی توی اینترنت پیدا میکنید که خیلی کامل توضیح دادن.
-
نصب کتابخانههای مورد نیاز: برای این پروژه به چند کتابخانه نیاز دارید که از طریق NuGet توی پروژه اضافه میکنید:
- Emgu.CV: یک wrapper برای OpenCV در .NET که برای مدیریت ورودی وبکم و گرفتن فریمها استفاده میشه.
- SkiaSharp: یک API گرافیکی دو بعدی چندپلتفرمی برای .NET که به ترسیم تصاویر و کشیدن باکسهای دور اشیاء شناساییشده کمک میکنه.
- SixLabors.ImageSharp: یک کتابخانه برای پردازش پیشرفته تصاویر که برای تبدیل و تغییر فرمت تصاویر خیلی مفیده.
- YoloDotNet: یک کتابخانه برای .NET که امکان ادغام آسان مدلهای YOLO برای تشخیص اشیاء رو فراهم میکنه.
-
پیادهسازی برنامه: این برنامه مدل YOLOv8 رو با استفاده از
YoloDotNet
مقداردهی اولیه میکنه و فریمها رو از وبکم متصلشده با استفاده ازEmgu.CV
دریافت میکنه. سپس این فریمها برای تشخیص اشیاء پردازش میشن و نتایج با استفاده ازSkiaSharp
روی تصویر ترسیم میشن. اشیاء شناساییشده با باکسهای دور و برچسبها هایلایت میشن.
نگاه سریع به کد پروژه
- WebCamAsync: فریمها رو از وبکم با استفاده از
Emgu.CV
میگیره و بهصورت غیرهمزمان پردازش میکنه. - DrawDetections: از کتابخانه
YoloDotNet
برای اجرای تشخیص اشیاء روی فریمهای دریافتشده استفاده میکنه. - ترسیم تشخیصها: باکسهای دور و برچسبها رو برای اشیاء شناساییشده با استفاده از
SkiaSharp
ترسیم میکنه.
میتونید پروژه کامل رو توی گیتهاب من پیدا کنید و شروع به کار کنید! منتظر نظرات و پیشنهاداتتون هستم!
مقاله هوش مصنوعی پیمان دهقان ۱۴
پیاده سازی object detection با yolov8 و c#
در این مقاله به کمک yolo ورژن هشت میخوام یه پروژه objectDetection ران کنم
۱۴۰۳/۰۶/۲۳
۱۴
پیمان دهقان
معرفی بهترین الگوریتم های پردازش تصویر
تو این مقاله به معرفی بهترین الگوریتم های پردازش تصویر میپردازیم
۱۴۰۳/۰۴/۱۷
۴۵
پیمان دهقان