فهرست مطالب:

نسخه نمایشی Sipeed MaiX Bit OpenMV - چشم انداز کامپیوتر: 3 مرحله
نسخه نمایشی Sipeed MaiX Bit OpenMV - چشم انداز کامپیوتر: 3 مرحله

تصویری: نسخه نمایشی Sipeed MaiX Bit OpenMV - چشم انداز کامپیوتر: 3 مرحله

تصویری: نسخه نمایشی Sipeed MaiX Bit OpenMV - چشم انداز کامپیوتر: 3 مرحله
تصویری: نحوه راه اندازی L4D2 2024, جولای
Anonim
Image
Image

این دومین مقاله از سری در مورد هوش مصنوعی 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

به MaiX Bit متصل شوید
به MaiX Bit متصل شوید

اول از همه ما باید سیستم عامل 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 تماس بگیرید. حالا ، ببخشید ، من می روم چند روبات بسازم!

توصیه شده: