تشخیص علائم (Sign Detection)

تشخیص علائم (Sign Detection)با ربات هوش مصنوعی

در این راهنما یاد می‌گیری که چطور آواتار آموزشی CarBot را تبدیل به یک خودروی کوچک «هوشمند» کنی که تابلوهای راهنما را می‌بیند، معنی آن‌ها را می‌فهمد و بر اساسشان تصمیم می‌گیرد. همه چیز با یک گوشی موبایل، چند برگه چاپی و کمی کدنویسی انجام می‌شود؛ اما ایده‌ها همان ایده‌های خودروهای خودران واقعی هستند.

چرا تشخیص علائم برای ربات‌ها مهم است؟

هر ماشینی که قرار است در دنیای واقعی حرکت کند، باید قوانین فضا را بفهمد؛ تابلوهای «ایست»، «محدودیت سرعت» یا «مسیر بسته» دقیقا همین کار را برای انسان انجام می‌دهند. وقتی ربات بتواند علائم را بخواند، می‌تواند:

  • در چهارراه‌ها متوقف شود و بعد از بررسی ادامه مسیر بدهد.
  • در مناطق خطرناک سرعت خود را کم کند.
  • در صورت بسته بودن مسیر، راه جایگزین پیدا کند.
  • در محیط‌های صنعتی، فرمان‌های ایمنی را رعایت کند.

پروژه‌ی تشخیص علائم با CarBot، نسخه‌ی ساده و آموزشی همین مفهوم در خودروهای خودران و سیستم‌های ADAS است.

مروری کوتاه بر تاریخچه‌ی تشخیص علائم ترافیکی

در نسل‌های قدیمی‌تر سیستم‌های کمکی خودرو، دوربین جلو فقط تصویر را ذخیره می‌کرد. مهندسان به‌تدریج فهمیدند اگر الگوریتم‌های پردازش تصویر روی همین تصویر اجرا شود، می‌توان شکل‌ها و نمادهای ترافیکی را هم تشخیص داد.

مسیر تاریخی این حوزه را می‌توان در چند مرحله خلاصه کرد:

  • روش‌های کلاسیک (دهه‌ ۹۰ و اوایل ۲۰۰۰): استفاده از فیلترهای لبه‌یابی، تشخیص دایره و مثلث، تبدیل هاف و تطبیق الگو برای یافتن شکل تابلوها.
  • دوره‌ی SVM و ویژگی‌های دستی: استخراج ویژگی‌های مثل HOG، رنگ و بافت، سپس استفاده از طبقه‌بندهایی مثل SVM برای تشخیص نوع تابلو.
  • انقلاب یادگیری عمیق: با ظهور شبکه‌های CNN و مدل‌هایی مثل YOLO، SSD و Faster R-CNN امکان تشخیص هم‌زمان چندین تابلو در تصویر فراهم شد.
  • پیاده‌سازی روی سخت‌افزارهای کوچک: پروژه‌هایی مانندCarBot نشان می‌دهند که می‌توان همین ایده‌ها را روی گوشی‌های موبایل، ربات‌های کوچک و حتی پلتفرم‌های آموزشی اجرا کرد.

CarBot این مسیر را در قالبی کوچک، ساده و قابل لمس برای کلاس درس و کارگاه دنبال می‌کند.

چطور انسان علائم را می‌بیند و ربات باید چه‌کار کند؟

وقتی در خیابان رانندگی می‌کنی، مغز تو در کمتر از یک ثانیه تابلو را می‌بیند، شکل آن را تشخیص می‌دهد و معنی‌اش را به دستور تبدیل می‌کند: «ایست → ترمز»، «پیچ به راست → چرخش فرمان»، «محدودیت سرعت → کم کردن گاز».

برای ربات نیز همین اتفاق می‌افتد، اما در چند گام مشخص:

  • دوربین موبایل روی CarBot تصویر جلوی ربات را می‌بیند.
  • مدل تشخیص شیء، تابلوها را در تصویر پیدا و نوع آن‌ها را تشخیص می‌دهد.
  • برنامه‌ی کنترل ربات، خروجی مدل را می‌خواند و آن را به دستور حرکتی تبدیل می‌کند.

معماری سیستم تشخیص علائم در ربات CarBot

اجزای سخت‌افزاری

  • یک ربات چرخ‌دار CarBot با شاسی ساده و قابل حمل.
  • یک گوشی موبایل که روی ربات نصب می‌شود و وظیفه‌ی «مغز بینایی» را دارد.
  • تابلوهای چاپی ساده روی مقوای ضخیم؛ مثلا «STOP»، «RIGHT ONLY»، «NO ENTRY» و …
  • در صورت نیاز، سنسور فاصله‌سنج (التراسونیک یا ToF) برای ترکیب اطلاعات فاصله با تابلوها.

جریان داده از تصویر تا فرمان

  • ویدئو از دوربین موبایل خوانده می‌شود.
  • هر فریم به مدل تشخیص شیء داده می‌شود تا تابلوها پیدا شوند.
  • برای هر تابلو، نوع (کلاس) و موقعیت آن روی تصویر استخراج می‌شود.
  • یک «قانون تصمیم‌گیری» ساده، کلاس تابلو را به رفتار تبدیل می‌کند؛ مثلا اگر STOP دیده شد، سرعت صفر و اگر TURN_RIGHT دیده شد، چرخش به راست.

طراحی و آماده‌سازی تابلوها برای CarBot

یکی از جذاب‌ترین بخش‌های این پروژه این است که خودِ دانش‌آموز تابلوها را طراحی می‌کند. برای ساخت دیتاست مناسب:

  • ۳ تا ۶ نوع تابلو ساده انتخاب کنید؛ بیشتر از این، پروژه آموزشی را پیچیده می‌کند.
  • برای هر تابلو، ۳۰–۵۰ عکس در شرایط نوری و زاویه‌های مختلف بگیرید.
  • از پس‌زمینه‌های متنوع (کلاس، کارگاه، راهرو) استفاده کنید تا مدل روی یک محیط خاص قفل نشود.
  • با ابزارهایی مثل LabelImg یا Roboflow، روی هر تصویر تابلو را برچسب‌گذاری (annotate) کنید.

نتیجه‌ی این کار یک دیتاست کوچک اما واقعی است که دانش‌آموز از صفر خودش ساخته است.

انتخاب و آموزش مدل تشخیص علائم

۱. استفاده از مدل‌های آماده

برای شروع، می‌توان از مدل‌های آماده‌ی تشخیص شیء مانند YOLOv5، YOLOv8 یا مدل‌های سبک‌تر موبایلی استفاده کرد. مزیت این روش:

  • زمان راه‌اندازی خیلی کم است.
  • نیازی به قدرت پردازشی زیاد یا دیتاست بزرگ نیست.
  • می‌توانید به‌جای آموزش از صفر، فقط مدل را روی تعداد کمی تصویر ریزتنظیم (fine-tune) کنید.

۲. آموزش مدل اختصاصی برای تابلوهای کلاس

در سطح پیشرفته‌تر، می‌توان یک مدل کوچک را از ابتدا یا با ریزتنظیم، مخصوص تابلوهای کلاس آموزش داد:

  • وارد محیط آموزشی مدل (مثلا Google Colab) شوید.
  • تصاویر برچسب‌گذاری‌شده‌ی خود را آپلود کنید.
  • یک اسکریپت ساده آموزش بنویسید که کلاس‌های شما را بشناسد.
  • پس از پایان آموزش، مدل خروجی را به گوشی موبایل منتقل کنید.

این مرحله تجربه‌ی واقعی «چرخه‌ی آموزش مدل» را به دانش‌آموز می‌دهد و او می‌بیند که داده‌هایی که خودش جمع کرده، واقعا رفتار ربات را تغییر می‌دهند.

اتصال خروجی مدل به رفتار ربات CarBot

حالا که مدل روی گوشی در حال اجراست، باید بین «خروجی مدل» و «فرمان‌های حرکتی ربات» یک پل ایجاد کنیم. این پل معمولا با کدی شبیه شبه‌کد زیر پیاده می‌شود:

// اگر تابلو STOP دیده شد
if (sign == "STOP") {
    setSpeed(0);
    playSound("stop");
}

// اگر تابلو TURN_RIGHT دیده شد
if (sign == "TURN_RIGHT") {
    setSpeed(slow);
    turnRight(90);
}

// اگر تابلو SPEED_LIMIT دیده شد
if (sign == "SPEED_LIMIT_20") {
    setSpeed(20);
}

همین چند خط کد ساده نشان می‌دهد که چطور «دانش» مدل هوش مصنوعی به «رفتار فیزیکی» ربات روی زمین تبدیل می‌شود.

سناریوهای آموزشی پیشنهادی برای کلاس و کارگاه

  • سناریو چهارراه: در وسط کلاس، یک چهارراه با نوارچسب بسازید و در هر گوشه یک تابلو متفاوت قرار دهید. ربات باید براساس تابلو هر گوشه رفتار مناسب را انجام دهد.
  • مسیر مدرسه‌ای: مسیری شبیه راهروی مدرسه طراحی کنید که در آن تابلوهای «سرعت کم»، «مسیر بسته» و «پیچ» وجود دارد. هدف این است که ربات بدون خطا مسیر را طی کند.
  • چالش زمان واکنش: فاصله‌ی تشخیص تا ترمز ربات را در تابلو «ایست» اندازه بگیرید و آن را با واکنش انسان مقایسه کنید.

خطاهای رایج و نکات آموزشی مهم

  • اگر تابلو خیلی کوچک یا خیلی دور باشد، مدل ممکن است آن را نبیند؛ پس اندازه‌ی تابلو را هوشمندانه انتخاب کنید.
  • نور شدید از پشت یا انعکاس روی تابلو می‌تواند دقت مدل را کاهش دهد؛ بهتر است سناریو را در نور یکنواخت اجرا کنید.
  • اگر دانش‌آموزان فقط تصاویر «تمیز» بگیرند، مدل در دنیای واقعی ضعیف عمل می‌کند؛ همیشه چند تصویر با زاویه‌ و نور بد هم به دیتاست اضافه کنید.
  • هنگام اتصال مدل به حرکت، حتما محدودیت سرعت و توقف اضطراری تعریف کنید تا ربات در محیط کلاس ایمن باشد.

جمع‌بندی؛ از یک تابلو ساده تا درک عمیق هوش مصنوعی

پروژه‌ی تشخیص علائم با CarBot، فقط یک بازی با تابلوهای چاپی نیست. دانش‌آموز در این مسیر:

  • با مفاهیم پایه‌ی بینایی ماشین و تشخیص شیء آشنا می‌شود.
  • چرخه‌ی کامل «طراحی داده → برچسب‌گذاری → آموزش مدل → استقرار روی ربات» را تجربه می‌کند.
  • یاد می‌گیرد که چگونه می‌توان از یک گوشی ساده به عنوان مغز هوشمند یک ربات استفاده کرد.
  • رابطه‌ی بین قوانین دنیای واقعی (تابلوها) و تصمیم‌های الگوریتمیک را لمس می‌کند.

این تجربه، پلی است بین کلاس درس، پروژه‌های دانش‌آموزی و دنیای واقعی خودروهای خودران و ربات‌های صنعتی. هر زمان آماده بودید، می‌توانید همین ایده را با علائم صنعتی، تابلوهای داخل کارخانه یا حتی علائم داخل مدرسه گسترش دهید و CarBot را یک قدم دیگر به دنیای حرفه‌ای رباتیک نزدیک کنید.

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

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

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