مدل هوش مصنوعی YOLO

yolo مدل هوش مصنوعی

YOLO چیست؟( تشخیص هم‌زمان چند شیء)

وقتی می‌خواهیم چندین شیء را هم‌زمان در تصویر ربات پیدا کنیم (مثلاً چند مانع، چند جعبه یا چند برچسب)، از مدل‌های خانواده YOLO استفاده می‌کنیم.


YOLO مخفف You Only Look Once (فقط یک‌بار نگاه کن) است، یک مدل هوش مصنوعی است که برای تشخیص اشیا در تصاویر و ویدیوها استفاده می‌شود. این مدل به جای این که تصویر را بخش‌بخش بررسی کند، کل تصویر را یک‌باره پردازش می‌کند، به همین دلیل سریع و دقیق است.

یک سیستم پیشرفته تشخیص اشیا در زمان واقعی است که برخلاف روشهای سنتی (مثل R-CNN یا Fast R-CNN)، کل فرآیند تشخیص را در یک مرحله انجام میدهد. این مدل به‌دلیل سرعت بالا و دقت قابل‌قبول، به‌ویژه در سیستم‌های بلادرنگ (Real-Time) مانند خودروهای خودران، دوربین‌های نظارتی و ربات‌ها محبوبیت گسترده‌ای دارد.

 


نسخه‌های اصلی YOLO

نسخهسال انتشارویژگیهای کلیدی
YOLOv12016معرفی معماری تک‌مرحله‌ای و تقسیم تصویر به شبکه 7×7.
YOLOv22017افزودن Anchor Boxes و بهبود دقت با استفاده از Darknet-19.
YOLOv32018استفاده از Darknet-53، افزودن Feature Pyramid Network (FPN) و Multi-Label Classification.
YOLOv42020بهینه‌سازی با CSPDarknet53، PANet و تکنیک‌های Data Augmentation پیشرفته.
YOLOv52020نسخه غیررسمی مبتنی بر PyTorch با تمرکز بر سادگی استقرار.
YOLOv6-82022-2023بهبود سرعت و دقت با RepVGG Backbone، Task-Aligned Assigner و Distillation.
YOLO-NAS2023توسعه با Neural Architecture Search (NAS) توسط شرکت Deci برای بهینه‌سازی خودکار.

نحوه کار YOLO

  1. تقسیم تصویر به صورت شبکه‌ای(Grid):
    تصویر ورودی به یک شبکه (مثلاً 13×13 یا 19×19) تقسیم میشود. هر سلول شبکه مسئول تشخیص اشیایی است که مرکز آنها در آن سلول قرار دارد.

  2. پیش‌بینی Bounding Box و کلاس:
    هر سلول شبکه:

    • مختصات جعبه مرزی (x, y, width, height).

    • امتیاز اطمینان (Confidence Score) که نشان‌دهنده احتمال وجود شی در جعبه است.

    • احتمالات کلاس (Class Probabilities) برای دسته‌بندی شی (مثلاً انسان، ماشین، …).

  3. فیلترسازی با Non-Max Suppression (NMS):
    جعبه‌های تکراری یا با اطمینان پایین حذف می‌شوند تا تنها بهترین پیش‌بینی‌ها باقی بمانند.

  4. تابع زیان (Loss Function):
    ترکیبی از سه جزء:

    • خطای موقعیت جعبه (MSE برای x, y, width, height).

    • خطای اطمینان (Binary Cross-Entropy برای Confidence Score).

    • خطای طبقه‌بندی (Cross-Entropy برای Class Probabilities).

YOLO توسط چه شرکت یا شخصی ساخته شد؟

مدل YOLO اولین بار در سال ۲۰۱۵ توسط Joseph Redmon و تیم او معرفی شد. او یک پژوهشگر در زمینه هوش مصنوعی و بینایی کامپیوتری بود که در دانشگاه واشنگتن کار می‌کرد. مدل اولیه در مقاله‌ای با عنوان “You Only Look Once: Unified, Real-Time Object Detection” منتشر شد.

بعد از نسخه‌های اول، تیم‌های دیگر از جمله Ultralytics مدل‌های جدیدتری مانند YOLOv8 را توسعه دادند. امروزه YOLO یکی از محبوب‌ترین مدل‌های تشخیص اشیا در سراسر جهان است و در شرکت‌های مختلف استفاده می‌شود.

برخی موارد کاربرد مدل هوش مصنوعی YOLO


موارد استفاده YOLO با مثال

YOLO در زمینه‌های زیادی استفاده می‌شود. در اینجا برخی از مهم‌ترین کاربردهای آن را همراه با مثال توضیح می‌دهیم.

۱. خودروهای خودران 🚗

کاربرد: تشخیص موانع، عابران پیاده، وسایل نقلیه دیگر، علائم راهنمایی و رانندگی
مثال: خودروهای خودران شرکت تسلا (Tesla) از مدل‌های مشابه YOLO برای تحلیل تصاویر دوربین‌های خودرو استفاده می‌کنند تا مسیر را شناسایی کنند و از تصادف جلوگیری کنند.

۲. دوربین‌های امنیتی و نظارت 📷

کاربرد: تشخیص ورود افراد غیرمجاز، شناسایی چهره، جلوگیری از سرقت
مثال: دوربین‌های امنیتی هوشمند مانند Google Nest Cam می‌توانند با استفاده از YOLO حضور افراد را تشخیص دهند و هشدار ارسال کنند.

۳. تحلیل بازی‌های ورزشی ⚽

کاربرد: بررسی حرکات بازیکنان، توپ، داور و تاکتیک‌های بازی
مثال: در مسابقات فوتبال، YOLO می‌تواند حرکت بازیکنان و توپ را ردیابی کند و اطلاعات مفیدی برای مربیان ارائه دهد.

۴. سیستم‌های پزشکی و تشخیص بیماری 🏥

کاربرد: شناسایی تومورها، بررسی تصاویر پزشکی مانند MRI و X-ray
مثال: برخی بیمارستان‌ها از YOLO برای تشخیص سرطان از روی تصاویر سی‌تی اسکن استفاده می‌کنند.

۵. روباتیک و هوش مصنوعی 🤖

کاربرد: کمک به ربات‌ها برای دیدن محیط اطراف و انجام وظایف
مثال: در کارخانه‌های آمازون (Amazon)، ربات‌های خودکار از YOLO برای تشخیص محصولات و بسته‌بندی کالاها استفاده می‌کنند.

۶. فروشگاه‌های هوشمند 🛒

کاربرد: شناسایی محصولات بدون نیاز به اسکن دستی، تجربه خرید بدون صندوق
مثال: در فروشگاه‌های Amazon Go، YOLO کمک می‌کند تا مشتریان بتوانند بدون نیاز به پرداخت دستی خرید کنند؛ دوربین‌ها اجناس برداشته شده را شناسایی می‌کنند.

۷. کمک به نابینایان 🦯

کاربرد: تشخیص موانع، خواندن تابلوهای خیابان، شناسایی افراد
مثال: برخی اپلیکیشن‌ها مانند Seeing AI از مایکروسافت، از مدل‌هایی مانند YOLO برای توصیف محیط برای افراد نابینا استفاده می‌کنند.

مزایا و معایب مدل هوش مصنوعی YOLO

مزایای YOLO

  • سرعت بالا: قادر به پردازش 30-60 فریم بر ثانیه (FPS) حتی روی GPUهای متوسط.

  • سادگی استقرار: پیاده‌سازی آسان با کتابخانه‌هایی مانند PyTorch، TensorFlow یا OpenCV.

  • بهینه برای دستگاه‌های لبه: نسخههای سبک (مثل YOLO-Tiny) روی رزبری‌پای یا موبایل اجرا می‌شوند.

  • پشتیبانی از چندین کلاس: قابلیت تشخیص هم‌زمان ده‌ها تا هزاران شی (بسته به تنظیمات آموزش).


معایب YOLO

  • دقت پایینتر در اشیا کوچک: به‌دلیل تقسیم تصویر به شبکه‌های درشت.

  • مشکل در تشخیص اشیا با هم‌پوشانی بالا: ممکن است جعبه‌های مرزی را به‌درستی تفکیک نکند.

  • وابستگی به تنظیم Anchor Boxes: در نسخه‌های قدیمی، نیاز به تنظیم دستی دارد.


چگونه از YOLO استفاده کنیم؟

برای این کار، باید برنامه‌ای بنویسیم که تصویر یا ویدیو را پردازش کند و اشیای داخل آن را تشخیص دهد. این کار معمولاً با زبان پایتون انجام می‌شود.

۱. نصب کتابخانه‌های لازم

ابتدا باید OpenCV و YOLO را نصب کنیم:

مقایسه YOLO با مدلهای مشابه

مدلسرعت (FPS)دقت (mAP)معماریکاربرد اصلی
YOLOv86553.9تک مرحله‌ایسیستم‌های بلادرنگ
Faster R-CNN770.4دومرحله‌ایدقت بالا (غیربلادرنگ)
SSD2246.5تک مرحله‌ایموبایل و IoT
RetinaNet1459.1تک مرحله‌ای 

مثال ساده از به کارگیری مدل yolo

 

استفاده از مدل از پیش آموزش‌دیده:

# با استفاده از کتابخانه Ultralytics (YOLOv8)
from ultralytics import YOLO
model = YOLO('yolov8n.pt')  # نسخه Nano
results = model('image.jpg')
results.show()

استفاده از YOLO برای تشخیص اشیا

در این مثال، ما از YOLOv8 برای تشخیص اشیا در یک تصویر استفاده می‌کنیم.

from ultralytics import YOLO
import cv2

# مدل YOLO را بارگیری می‌کنیم

model = YOLO("yolov8n.pt") # مدل از قبل آموزش دیده
# تصویر مورد نظر را بارگذاری می‌کنیم
image_path = "image.jpg"
image = cv2.imread(image_path)
# پردازش تصویر و تشخیص اشیا
results = model(image)
# نمایش نتیجه
results.show()

۳. استفاده در ویدیو (دوربین زنده)

اگر بخواهید از دوربین لپ‌تاپ یا یک ویدیو استفاده کنید:

cap = cv2.VideoCapture(0) # 0 یعنی دوربین لپ‌تاپ
model = YOLO("yolov8n.pt")
while True:
ret, frame = cap.read()
if not ret:
break

results = model(frame)
results.show()

if cv2.waitKey(1) & 0xFF == ord('q'):
break

cap.release()
cv2.destroyAllWindows()

جمع‌بندی

YOLO به‌دلیل معماری تک‌مرحله‌ای و سرعت بی‌نظیر، به استانداردی برای تشخیص اشیا در زمان واقعی تبدیل شده است. با وجود چالش‌هایی مثل دقت محدود در اشیا کوچک، نسخه‌های جدید (مانند YOLOv8 و YOLO-NAS) با بهره‌گیری از تکنیک‌های NAS و بهینه‌سازی Backbone، عملکرد آن را به‌طور مداوم بهبود بخشیده‌اند. این مدل برای توسعه‌دهنده‌گانی که نیاز به تعادل بین سرعت، دقت و مصرف منابع دارند، گزینه‌ای ایده‌آل است.

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سبد خرید
  • سبد خریدتان خالی است.
پیمایش به بالا