فهرست مطالب:
- مرحله 1: نرم افزار Flash Micropython
- مرحله 2: به MaiX Bit متصل شوید
- مرحله 3: نسخه ی نمایشی را اجرا کنید
تصویری: نسخه نمایشی Sipeed MaiX Bit OpenMV - چشم انداز کامپیوتر: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
این دومین مقاله از سری در مورد هوش مصنوعی Sipeed در بستر میکروکنترلر Edge است. این بار من در مورد MaiX Bit (پیوند به Seeed Studio Shop) ، یک تخته توسعه کوچک تر و آماده برای نان ، می نویسم. مشخصات آن بسیار شبیه به MaiX Dock است ، تخته ای که من در آخرین آموزش استفاده کردم ، زیرا آنها از تراشه مشابه Kendryte K210 استفاده می کنند.
ما از سیستم عامل micropython برای آزمایش برخی از نسخه های نمایشی OpenMV استفاده می کنیم. در اینجا توضیحات مربوط به صفحه اصلی OpenMV آمده است:
پروژه OpenMV در مورد ایجاد ماژولهای بینایی ماشین ارزان قیمت ، قابل توسعه ، با پایتون و هدف آن تبدیل به "Arduino of Machine Vision" است.… پایتون کار با الگوریتم های دید ماشین را بسیار آسان می کند. به عنوان مثال ، متد find_blobs () در کد ، حباب های رنگی را پیدا می کند و لیستی از اشیاء با ارزش 8 را نشان می دهد که نمایانگر هر لکه رنگی است. در پایتون تکرار لیست اشیایی که توسط find_blobs () بازگردانده می شوند و کشیدن یک مستطیل در اطراف هر لکه رنگ به راحتی تنها در دو خط کد انجام می شود.
بنابراین ، با وجود ویژگی های MaiX Bit شتاب دهنده اختصاصی شبکه عصبی ، گاهی اوقات استفاده از الگوریتم های سخت کدگذاری OpenMV برای انجام کار یا استفاده از آنها در کنار یکدیگر آسان تر می شود.
برخی موارد استفاده که به ذهن من می رسد عبارتند از:
1) تشخیص خط برای ربات دنبال کننده خط
2) تشخیص چراغ های راهنمایی با تشخیص دایره و رنگ
3) استفاده از تشخیص چهره برای یافتن چهره ها برای تشخیص چهره (با DNN)
مخزن Github برای این مقاله
مرحله 1: نرم افزار Flash Micropython
اول از همه ما باید سیستم عامل micropython را روی برد خود فلش کنیم. یک فایل باینری از پیش تنظیم شده در مخزن github برای این مقاله همراه با kflash.py (یک ابزار فلش) موجود است. اگر می خواهید سیستم عامل را از کد منبع کامپایل کنید ، فقط کد منبع را از https://github.com/sipeed/MaixPy بارگیری کنید ، زنجیره ابزار را نصب کرده و کد منبع را در فایل maixpy.bin کامپایل کنید. دستورالعمل های دقیق ساخت را می توانید در اینجا پیدا کنید.
فایل باینری را با فلش کنید
sudo python3 kflash.py kpu.bin
پس از چشمک زدن موفقیت آمیز ، مرحله بعدی را دنبال کنید.
مرحله 2: به MaiX Bit متصل شوید
در حال حاضر MaiX Bit ما باید از طریق اتصال سریال USB با baudrate 115200 قابل دسترسی باشد. شما می توانید از نرم افزار مورد علاقه خود برای ارتباط سریال یا فقط دستورات cat و echo ، هرچه که نیاز شما است ، استفاده کنید. من از صفحه برای ارتباط سریال استفاده می کردم و به نظرم بسیار راحت بود.
دستور ایجاد یک جلسه ارتباط سریالی با صفحه نمایش است
sudo screen /dev /ttyUSB0 115200
where /dev /ttyUSB0 آدرس دستگاه شما است.
برای مشاهده پیام تبریک و درخواست مترجم پایتون ، ممکن است لازم باشد دکمه بازنشانی را روی میکروکنترلر خود فشار دهید.
مرحله 3: نسخه ی نمایشی را اجرا کنید
اکنون می توانید با فشردن Ctrl+E به حالت کپی دسترسی پیدا کرده و کدهای نمایشی را کپی و جایگذاری کنید. برای اجرای آنها Ctrl+D را در حالت کپی فشار دهید.
اگر نمی خواهید فیلم ها را ضبط کنید ، باید خطوط ضبط ویدئو را کامنت کنید. در غیر اینصورت اگر کارت SD درج نشده باشد ، کد یک استثنا را ایجاد می کند
در اینجا توضیحات کوتاهی از هر نسخه نمایشی آمده است:
یافتن حلقه ها - از عملکرد find_circles از OpenMV استفاده می کند. برای برنامه خاص خود ، به ویژه آستانه ، تنظیمات بیشتری نیاز دارد (کنترل می کند که چه دایره هایی از تغییر شکل تشخیص داده می شوند. فقط دایره هایی با قدر بزرگتر یا برابر آستانه بازگردانده می شوند) و r_min ، r_max.
یافتن مستطیل ها - از تابع find_rects در OpenMV استفاده می کند. می توانید با مقدار آستانه بازی کنید ، اما مقداری که در نسخه ی نمایشی دارم برای یافتن مستطیل ها بسیار خوب عمل می کند.
یافتن چهره ، یافتن چشم - از عملکرد find_features با Haar Cascades برای تشخیص چشم ها و صورت جلویی در تصویر استفاده می کند. شما می توانید با مقادیر آستانه و مقیاس بازی کنید تا بتوانید سرعت و دقت مناسب را انجام دهید.
خطوط بی نهایت را بیابید - از تابع find_lines برای یافتن تمام خطوط بی نهایت در تصویر با استفاده از تبدیل hough استفاده می کند.
تشخیص رنگ - از تابع get_statistics برای بدست آوردن شیء صدک استفاده می کند و سپس میانگین مقادیر LAB tuple را به مقدار RGB تبدیل می کند. من این مثال را خودم نوشتم و بسیار خوب کار می کند ، اما به خاطر داشته باشید که نتایج تشخیص رنگ تحت تأثیر شرایط نور محیط قرار می گیرد.
می توانید نسخه های نمایشی جالب دیگری را در مخزن OpenMV github پیدا کنید! آنها بیشتر با ریزپایتون MaiX Bit سازگار هستند ، تنها چیزی که باید به خاطر داشته باشید این است که پس از تنظیم pixformat و فریم سایز ، sensor.run (1) را اضافه کنید.
آزمایش خوشحال کننده با کد OpenMV. اگر سوالی دارید یا می خواهید برخی از نتایج جالب خود را به اشتراک بگذارید ، دریغ نکنید که با من در Youtube یا LinkedIn تماس بگیرید. حالا ، ببخشید ، من می روم چند روبات بسازم!
توصیه شده:
نسخه ی نمایشی کم هزینه بازی MR: 9 مرحله
نمایشی از بازی کم هزینه MR: http://www.bilibili.com/video/av7937721/ (آدرس ویدئویی در سرزمین اصلی چین) Over View: تصویر علامت را روی دارنده دو محور تنظیم کنید , کاربر با مقوا نگاه کند , می توانید هیولا را روی آن ببینید علامت گذاری کنید ، آنها در دنیای بازی به یکدیگر شلیک می کنند. برای تشخیص شرط زاویه از AR استفاده کنید
نسخه نمایشی انرژی دوچرخه (دستورالعمل های عملیاتی): 4 مرحله
نسخه نمایشی انرژی دوچرخه (دستورالعمل های عملیاتی): این دستورالعمل دستورالعمل عملکرد نمایشی انرژی دوچرخه است. پیوند ساخت در زیر آمده است: https: //www.instructables.com/id/Bicycle-Energy-Demo-Build
نسخه نمایشی انرژی دوچرخه (ساخت): 7 مرحله
نسخه نمایشی انرژی دوچرخه (ساخت): هدف از این دستورالعمل ایجاد یک نمایش تعاملی انرژی دوچرخه برای جلب توجه بچه ها به مهندسی بود. این پروژه به شرح زیر عمل می کند ، وقتی بچه ای دوچرخه را سریعتر رکاب می زند ، می تواند چراغ های بیشتری را روی صفحه نمایش فعال کند
نسخه نمایشی بهره برداری از صفحه کلید آردوینو (HID) و پیشگیری: 4 مرحله (همراه با تصاویر)
نسخه نمایشی بهره برداری از صفحه کلید Arduino (HID) و پیشگیری: در این پروژه ما قصد داریم از arduino leonardo برای شبیه سازی حمله احتمالی USB با استفاده از HID (دستگاه رابط humain) استفاده کنیم. من این آموزش را نه برای کمک به هکرها بلکه برای نشان دادن خطرات واقعی و نحوه محافظت از خود در برابر این خطرات ایجاد کرده ام
آزمایشگاه 1 - نسخه ی نمایشی سریال: 5 مرحله
آزمایشگاه 1 - نمایشی سریال: این مثال نحوه استفاده از ورودی سریال برای کنترل LED ها را نشان می دهد