هوش مصنوعی خودتان را در اسکرچ با افزونه یاد دادن تصاویر آموزش دهید
مدل تشخیص تصویر خود را در اسکرچ با استفاده از حرکات دست یا اشیا آموزش دهید، سپس از فرمانهای آموزشدادهشده برای کنترل پیشی و گرفتن موش استفاده کنید.
سطح
متوسط
زمان تقریبی
۴۰ تا ۵۰ دقیقه
افزونه
IMAGE TRAINER
📖 چه چیزی یاد میگیرید
- چطور برچسبهای (label) Image Trainer رو بسازی و نامگذاری کنی
- چطور یک مدل هوش مصنوعی رو با نمونههای خودت آموزش بدی
- چطور از حرکات دست یا اشیاء بهعنوان دستورهای تصویری استفاده کنی
- اینکه نمونههای مختلف آموزشی چطور روی تشخیص تأثیر میذارن
- چطور از برچسبهای تشخیصدادهشده برای کنترل یک اسپرایت در اسکرچ استفاده کنی
- چطور وقتی یک دستور نیاز به بهبود داره، آموزش بیشتری اضافه کنی
- چطور مدل آموزشدیدهت رو ریست، ذخیره و لود کنی
- چپ
- راست
- بالا
- پایین
- بدون دستور
🧰 چه چیزهایی لازم دارید
- یک کامپیوتر یا لپتاپ با دوربین
- Pishi.ai در اسکرچ (پروژه جدید ایجاد کنید)
- اکستنشن Image Trainer (راهنمای آن را مشاهده کنید)
- اسپرایت پیشی
- اسپرایت موش
- یک حرکت دست یا شیء برای هر دستور
همچنین از این متغیرها استفاده میکنی:
- score (امتیاز)
- time (زمان)
- train done (آموزش تمام شد)
- counter (شمارنده)
- number of trains (تعداد آموزشها)
برای آموزش بهتر، از نور مناسب و پسزمینه ساده استفاده کن.
🛠️ پروژه خود را بسازید
۱. تنظیم پنج برچسب هوش مصنوعی
وقتی پرچم سبز کلیک شد، اول بررسی کن که آیا پیشی قبلاً آموزش دیده یا نه.
اگر train done برابر با ۰ بود، آموزش رو معرفی کن:
«سلام! قبل از اینکه بازی کنیم، باید دستورهای خودت رو به من یاد بدی.»
«من پنج دستور یاد میگیرم: چپ، راست، بالا، پایین و بدون دستور.»
بعد پنج برچسب Image Trainer رو نامگذاری کن:
- Label 1: چپ
- Label 2: راست
- Label 3: بالا
- Label 4: پایین
- label 5: بدون دستور
در طول آموزش، پروژه چند نکتهٔ مفید هم نشون میده:
- دستور رو کاملاً واضح جلوی دوربین نگه دار
- از نور مناسب و پسزمینه ساده استفاده کن
- یا از حرکت دست استفاده کن یا از یک شیء
- اشیاء اضافی یا بدنت رو از دید دوربین دور نگه دار
- دستور رو در دید دوربین جابهجا کن
- در فاصلههای مختلف از دوربین نشونش بده
این تفاوتها کمک میکنن هوش مصنوعی، دستور رو در موقعیتها و اندازههای مختلف یاد بگیره.
۲. آموزش هر پنج دستور
counter رو صفر کن، بعد پنج بار تکرار کن:
- counter رو یک واحد افزایش بده
- بلوک train label (counter) رو اجرا کن
این کار همهٔ پنج برچسب رو یکی پس از دیگری آموزش میده.
بلوک سفارشی train label (number) اول بررسی میکنه که آیا آن برچسب قبلاً دادهی آموزشی داره یا نه.
اگر داشت، پیشی هشدار میده:
«این برچسب قبلاً دادهی آموزشی داره. برای شروع دوباره، کلید R رو بزن و تأیید کن تا همهٔ برچسبهای آموزشدیده ریست بشن.»
در غیر این صورت، پیشی دستور فعلی رو اعلام میکنه:
«یادم بده: (نام برچسب)»
بعد از یک شمارش معکوس کوتاه، پروژه ۲۰ نمونهٔ آموزشی جمعآوری میکنه.
از نکات آموزشی مرحلهٔ قبل، همونطور که پیشی نمونهها رو جمعآوری میکنه، استفاده کن.
برای «بدون دستور»، کافیه حرکت یا شیء رو برداری و دید عادی دوربین رو نشون بدی.
بعد از پایان هر برچسب، پیشی میگه:
«یاد گرفتم: (نام برچسب)»
وقتی هر پنج برچسب کامل شدن:
«عالی! آموزش تموم شد.»
بعد:
train done رو برابر با ۱ کن
۳. شروع بازی
بعد از آموزش، تنظیم کن:
time روی ۰
و پیام رو منتشر کن:
Start Game
اگر پیشی قبلاً آموزش دیده باشه، پروژه از چرخهٔ اصلی آموزش صرفنظر میکنه و میگه:
«من قبلاً دستورهات رو بلدم. بریم موش رو بگیریم!»
همچنین به بازیکن یادآوری میکنه:
«برای آموزش دوبارهی من، کلید R رو بزن و تأیید کن تا همهٔ برچسبهای آموزشدیده ریست بشن.»
این کار به بازیکن اجازه میده بدون آموزش دوباره در هر بار، مستقیم به بازی برگرده.
۴. کنترل پیشی با هوش مصنوعی آموزشدیدهت
در طول بازی، Image Trainer بهطور مداوم دوربین رو بررسی میکنه و مقدار فعلی رو گزارش میده: detected label name
از اون برای کنترل پیشی استفاده کن:
- Left: مقدار x را به اندازه ۱۰- تغییر بده
- Right: مقدار x را به اندازه ۱۰ تغییر بده
- Up: مقدار y را به اندازه ۱۰ تغییر بده
- Down: مقدار y را به اندازه ۱۰- تغییر بده
- No command: بدون حرکت
بهجای فشار دادن کلیدهای صفحهکلید، بازیکن حالا پیشی رو با دستورهای تصویریای که خودش آموزش داده حرکت میده.
۵. گرفتن موش
وقتی موش پیام Start Game رو دریافت کنه:
- مقدار score را روی 0 قرار دهید.
- به یک موقعیت تصادفی حرکت کنه
- زمانسنج را صفر کنید.
بازی به مدت ۲۰ ثانیه ادامه پیدا میکنه.
هر وقت پیشی به موش برخورد کنه:
- امتیاز را ۱ واحد افزایش دهید.
- یک صدا پخش بشه
- موش به موقعیت تصادفی دیگری حرکت کنه
- موش دائماً به سمت پیشی اشاره میکنه، در حالی که مقدار تایمر داخل متغیر time کپی میشه.
وقتی تایمر به ۲۰ ثانیه رسید:
- time روی FINISH تنظیم بشه
- صدای پایان پخش بشه
پیشی از حرکت میایسته، به موقعیت اولیهش برمیگرده و میگه:
“Time’s up!”
۶. بهبود، ریست، ذخیره یا لود مدل
The first training cycle gives every label 20 samples, but some commands may still need extra examples.
For this, create the custom block: train one sample (number)
Connect it to these keys:
Left Arrow for Label 1, Right Arrow for Label 2, Up Arrow for Label 3, Down Arrow for Label 4, and the 0 key for Label 5
اگر یک دستور بهطور قابلاعتماد تشخیص داده نمیشه، اون دستور رو واضح نشون بده و چند بار کلیدش رو بزن تا نمونههای آموزشی بیشتری اضافه بشه.
همچنین میتونی کل مدل آموزشدیده رو مدیریت کنی:
- R: ریست همهٔ برچسبها و آموزش دوباره در اجرای بعدی
- S: ذخیرهٔ دادههای آموزشی
- L: بارگذاری دادههای آموزشی ذخیرهشدهٔ قبلی
این کار بهت اجازه میده مدل رو فقط وقتی لازمه بهبود بدی، بهجای تکرار کل چرخهٔ آموزش.
🚀 پروژه خود را امتحان کنید!
روی پرچم سبز کلیک کن و اجازهٔ دسترسی به دوربین رو بده.
انتخاب کن چطور میخوای هر دستور رو نمایش بدی.
میتونی از اینها استفاده کنی:
- حرکات دست مختلف
- کارتهای رنگی
- اشیاء کوچک
- نمادهای چاپشده
چپ، راست، بالا، پایین و بدون دستور رو آموزش بده.
وقتی آموزش تموم شد، از دستورهات برای حرکت دادن پیشی روی صحنه و گرفتن هرچه بیشتر موش، قبل از تموم شدن تایمر ۲۰ ثانیهای، استفاده کن.
اگه یک دستور بهسختی تشخیص داده میشه، چند نمونهٔ اضافی اضافه کن و دوباره امتحان کن.
🤖 این پروژه چگونه کار میکند؟
معمولاً یک برنامهٔ اسکرچ ممکنه بگه:
اگر کلید فلش چپ فشرده شد: به چپ حرکت کن.
اما در این پروژه، تو مستقیم به اسکرچ نمیگی که یک دستور چپ چه شکلیه.
در عوض، چند نمونه به هوش مصنوعی نشون میدی.
روند کار اینطوریه:
نمونهها رو نشون بده
↓
برچسبها رو آموزش بده
↓
یک تصویر جدید از دوربین نشون بده
↓
Image Trainer نزدیکترین برچسب رو پیشبینی میکنه
↓
اسکرچ برچسب تشخیصدادهشده رو میخونه
↓
پیشی حرکت میکنه
یعنی رفتار پروژه نهفقط به کد اسکرچ، بلکه به دادههای آموزشیای که تو ارائه میدی هم بستگی داره.
این یکی از ایدههای اصلی پشت یادگیری ماشین است.
💡 پروژه را بهتر کنید!
- کنترلر بصری خودت را طراحی و بساز
کنترلکنندهٔ هوش مصنوعی را شخصیسازی کن و فرمانهای اصلی را با حرکات، اشیا یا برچسبهای اضافی خودت جایگزین کن.برای مثال، میتوانی از کارتهای رنگی برای فرمانهای حرکتی استفاده کنی یا عملکردهای جدیدی مثل پرش (Jump)، توقف (Stop)، چرخش (Spin)، انتقال سریع (Teleport) یا افزایش سرعت (Speed up) اضافه کنی.
سپس هر برچسب آموزشدیده را به عملکردی که میخواهی Pishi انجام دهد، متصل کن.
- با دادههای آموزشی آزمایش کن
مثالهایی که به هوش مصنوعی میدهی، روی میزان دقت آن در تشخیص فرمانها تأثیر میگذارند.
سعی کن یک فرمان یکسان را به دو روش متفاوت آموزش بدهی:
ابتدا مثالهای خیلی مشابه استفاده کن؛ یعنی دست یا شیء را در همان موقعیت و با همان فاصله نگه دار.
سپس مدل را دوباره تنظیم کن و این بار با مثالهای متنوعتر آموزش بده:- آن را در قسمتهای مختلف تصویر دوربین قرار بده.
- آن را نزدیکتر و دورتر از دوربین نشان بده.
- زاویهٔ آن را کمی تغییر بده.
سپس هر دو مدل را آزمایش کن و مقایسه کن که کدامیک فرمان را با اطمینان و دقت بیشتری تشخیص میدهد.
این موضوع به شما کمک میکند یک مفهوم مهم در یادگیری ماشین را درک کنید:
نمونههای آموزشی بهتر و متنوعتر میتوانند به یک مدل هوش مصنوعی کمک کنند تا موقعیتهای جدید را تشخیص دهد. - موانع اضافه کن
یک شخصیت یا شیء دیگر اضافه کن که بازیکن باید از آن دوری کند.
برای مثال:- موش: +۱ امتیاز
- گربه: −۱ امتیاز
حالا بازیکن باید با دقت بیشتری از کنترلکنندهٔ هوش مصنوعی استفاده کند.
- یک بازی دیگر با کنترل هوش مصنوعی بساز
میتوانی از همین ایده برای ساخت بازیهای مختلف استفاده کنی، مثل:- بازی مسابقهای
- هزارتو
- کنترلر سفینهٔ فضایی
- بازی پینگپنگ
- چالش ربات
وقتی یاد بگیری چگونه برچسبها را آموزش بدهی و از نام برچسب تشخیصدادهشده استفاده کنی، میتوانی از Image Trainer بهعنوان یک کنترلکنندهٔ تصویری سفارشی برای پروژههای مختلف Scratch استفاده کنی.
🔗 ساختهی خود را به اشتراک بگذارید
پروژهت رو تموم کردی؟
دادههای آموزشیت رو ذخیره کن، پروژهٔ اسکرچ رو ریمیکس کن، یا با دستورهای تصویری کاملاً متفاوتی بازی خودت رو بساز.
پروژه رو به یک دوست بده و ببین میتونه کنترلر هوش مصنوعی خودش رو آموزش بده یا نه.
