فهرست مطالب:
- مرحله 1: Sipeed MAix: AI at the Edge
- مرحله 2: محیط خود را آماده کنید
- مرحله 3: کد را کامپایل کنید
- مرحله 4: بارگذاری فایل.bin
- مرحله 5: اتصال به آردوینو
- مرحله 6: اتصال به Raspberry Pi
- مرحله 7: نتیجه گیری
تصویری: دوربین AI برای رزبری پای/آردوینو: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
اگر اخبار را به تازگی دنبال کرده اید ، انفجاری از استارت آپ ها در حال توسعه تراشه هایی برای تسریع در استنتاج و آموزش الگوریتم های ML (یادگیری ماشینی) بود. با این حال ، اکثر این تراشه ها هنوز در حال توسعه هستند و در واقع چیزی نیست که سازندگان معمولی شما بتوانند به آن دست پیدا کنند. تنها استثناء قابل توجه تا کنون Intel Movidius Neural Compute Stick بود که برای خرید در دسترس است و دارای SDK خوب است. این دارای چند معایب مهم است - یعنی قیمت (حدود 100 دلار) و این واقعیت که در قالب USB stick عرضه می شود. اگر می خواهید از آن با لپ تاپ یا Raspberry PI استفاده کنید بسیار عالی است ، اما اگر می خواهید برخی پروژه های تشخیص تصویر را با آردوینو انجام دهید چطور؟ یا رزبری پای صفر؟
مرحله 1: Sipeed MAix: AI at the Edge
چندی پیش ، بورد توسعه Sipeed M1w K210 را در دست گرفتم که دارای پردازنده دو هسته ای RISC-V 64bit است و دارای KPU داخلی (پردازنده شبکه عصبی) است که به طور خاص برای سرعت بخشیدن به CNN برای پردازش تصویر طراحی شده است. در اینجا می توانید جزئیات بیشتر را بخوانید.
قیمت این تخته صادقانه من را شوکه کرد ، این فقط 19 دلار برای تخته توسعه کامل AI-on-the-edge با پشتیبانی Wi-Fi است! هر چند یک هشدار وجود دارد (البته وجود دارد): سیستم عامل micropython برای برد هنوز در حال توسعه است و به طور کلی در حال حاضر چندان کاربر پسند نیست. تنها راه دسترسی به همه عملکردهای آن این است که کد C خود را بنویسید یا تعدادی نسخه نمایشی موجود را تغییر دهید.
این آموزش نحوه استفاده از مدل تشخیص کلاس Mobilenet 20 برای تشخیص اشیاء و ارسال کد شیء شناسایی شده از طریق UART ، از آنجا که می تواند توسط Arduino/Raspberry Pi دریافت شود را توضیح می دهد.
اکنون ، این آموزش فرض می کند که شما با لینوکس و اصول کامپایل کد C آشنا هستید. اگر شنیدن این عبارت کمی شما را گیج کرد:) فقط به مرحله 4 بروید ، جایی که فایل باینری از پیش ساخته شده من را در Sipeed M1 بارگذاری می کنید و از کامپایل آن صرف نظر می کنید.
مرحله 2: محیط خود را آماده کنید
من از اوبونتو 16.04 برای کامپایل و بارگذاری کد C استفاده کردم. انجام این کار در ویندوز امکان پذیر است ، اما من خودم آن را امتحان نکردم.
RISC-V GNU Compiler Toolchain را بارگیری کنید ، همه وابستگی های لازم را نصب کنید.
git clone-بازگشتی
sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-basic bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
زنجیره ابزار بارگیری شده را در فهرست /opt انتخاب کنید. پس از آن دستورات زیر را اجرا کنید
./configure --prefix =/opt/kendryte-toolchain --with-cmodel = medany
بساز
اکنون/opt/kendryte-toolchain/bin را به PATH خود اضافه کنید.
اکنون آماده اید کد را کامپایل کنید!
مرحله 3: کد را کامپایل کنید
کد را از مخزن github من بارگیری کنید.
SDK مستقل Kendryte K210 را بارگیری کنید
پوشه /kpu را از مخزن github من در پوشه /src در SDK کپی کنید.
دستورات زیر را در پوشه SDK (پوشه not /src!) اجرا کنید
mkdir build && cd build
cmake.. -DPROJ = project_name -DTOOLCHAIN =/opt/kendryte -toolchain/bin && make
جایی که project_name نام پروژه شماست (بستگی به شما دارد) و -DTOOLCHAIN = باید به محل ابزارک risc -v شما اشاره کند (آن را در مرحله اول بارگیری کرده اید ، به خاطر دارید؟)
عالی! اکنون امیدوارم کامپایل بدون خطا به پایان برسد و یک فایل.bin دارید که می توانید بارگذاری کنید.
مرحله 4: بارگذاری فایل.bin
حالا Sipeed M1 خود را به کامپیوتر وصل کنید و از پوشه /build دستور زیر را اجرا کنید
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu.bin
جایی که kpu.bin نام فایل.bin شما است
بارگذاری معمولاً 2-3 دقیقه طول می کشد ، پس از اتمام کار ، هیئت مدیره 20 کلاس تشخیص را مشاهده می کنید. آخرین مرحله برای ما این است که آن را به Arduino mega یا Raspberry Pi متصل کنیم.
!!! اگر به تازگی از مرحله 2 آمده اید !
دستور زیر را از پوشه ای که مخزن github من را در آن کلون کرده اید اجرا کنید
sudo python3 isp_auto.py -d /dev /ttyUSB0 -b 200000 kpu_bin.bin
بارگذاری معمولاً 2-3 دقیقه طول می کشد ، پس از اتمام کار ، هیئت مدیره 20 کلاس تشخیص را مشاهده می کنید. آخرین مرحله برای ما این است که آن را به Arduino mega یا Raspberry Pi متصل کنیم.
مرحله 5: اتصال به آردوینو
من از Arduino Mega با Seeed Studio Mega Shield استفاده کردم ، به همین دلیل است که یک کانکتور Grove را به برد Sipeed M1 لحیم کردم. با این حال ، فقط می توانید از سیم های جامپر استفاده کنید و Sipeed M1 را مستقیماً به Arduino Mega وصل کنید ، پس از این نمودار سیم کشی.
پس از آن طرح camera.ino را بارگذاری کرده و Serial monitor را باز کنید. وقتی دوربین را به اشیاء مختلف نشان می دهید (لیست 20 کلاس در طرح وجود دارد) باید نام کلاس را در مانیتور سریال نشان دهد!
تبریک می گویم! شما در حال حاضر ماژول تشخیص تصویر برای Arduino خود دارید!
مرحله 6: اتصال به Raspberry Pi
من از کلاه Grove Pi+ برای Raspberry Pi 2B استفاده کردم ، اما باز هم ، مانند آردوینو ، می توانید Sipeed M1 را مستقیماً به رابط UART رزبری پای زیر این نمودار سیم کشی متصل کنید.
پس از راه اندازی camera_speak.py و نشان دادن دوربین به اشیاء مختلف ، ترمینال متن زیر را "من فکر می کنم اینطور است" نشان می دهد و همچنین اگر بلندگوها را وصل کرده باشید ، این عبارت را با صدای بلند بیان می کند. خیلی باحاله ، نه؟
مرحله 7: نتیجه گیری
این زمانهای بسیار مهمی است که ما در آن زندگی می کنیم ، با هوش مصنوعی و یادگیری ماشین در همه زمینه های زندگی ما نفوذ کرده است. من بی صبرانه منتظر پیشرفت در این زمینه هستم. من با تیم Sipeed در ارتباط هستم و می دانم که آنها به طور فعال برای همه عملکردهای لازم ، از جمله شتاب CNN ، روکش میکروپایتون را توسعه می دهند.
وقتی آماده شد ، به احتمال زیاد دستورالعمل های بیشتری در مورد نحوه استفاده از مدل های CNN خود با میکروپایتون منتشر خواهم کرد. به همه برنامه های هیجان انگیزی که می توانید برای تخته ای داشته باشید که بتواند شبکه عصبی پردازش تصویر خود را با این قیمت و با این ردپا اجرا کند ، فکر کنید!
توصیه شده:
کنترل کننده خوراک دوربین مدار بسته - رزبری پای: 3 مرحله
کنترل کننده تغذیه دوربین مداربسته - تمشک پای: سلام به همگی ، به دستورالعمل دیگری توسط Scientify Inc. خوش آمدید! این پروژه با استفاده از حسگر حرکت ساخته شده با استفاده از تفاوت میانگین ریشه مربع (RMS) تفاوت بین دو تصویر متوالی ، آنچه دوربین مداربسته ثبت می کند را بهینه می کند. این به تهیه خوراک دوربین مدار بسته کمک می کند
دوربین سنجش رزبری پای در محوطه Flightlight: 3 مرحله
Raspberry Pi Motion Sensing Camera در Floodlight Housing: من مدتی است که با Raspberry Pi کار می کنم و از آنها برای موارد کوچکی استفاده می کنم ، اما عمدتاً به عنوان یک دوربین مدار بسته برای نظارت بر خانه من در حالی که قادر به مشاهده از راه دور جریان زنده نیستم ، اما همچنین ایمیلی از عکس های فوری دریافت کنید
محفظه ضد آب رزبری پای دوربین: 3 مرحله
محفظه ضد آب دوربین رزبری پای: اینها دستورالعمل های مرحله به مرحله برای ساخت محفظه ضد آب برای برد دوربین رزبری پای (v2) هستند. نسخه های تجاری محصول (با و بدون برد دوربین رزبری پای) و در وب سایت In Nature Robotics موجود است
گرمکن شبنم رزبری پای برای دوربین همه آسمان: 7 مرحله
Raspberry Pi Dew Heater for All-Sky Camera: [برای تغییر رله مورد استفاده به مرحله 7 نگاه کنید] این یک ارتقاء از دوربین تمام آسمان است که من به دنبال راهنمای عالی توماس ژاکین (دوربین بی سیم همه آسمان) ساخته ام. به نظر دوربین های آسمان (و تلسکوپ ها نیز می رسد) این است که شبنم با هم
دوربین UNICORN - رزبری پای Zero W NoIR دوربین 8 مگاپیکسل: 7 مرحله (همراه با تصاویر)
UNICORN CAMERA - Raspberry Pi Zero W NoIR 8MP Camera Build: Pi Zero W NoIR 8MP Camera Build این دستورالعمل برای کمک به هر کسی که می خواهد یک دوربین مادون قرمز یا یک دوربین قابل حمل واقعاً جالب یا یک دوربین رزبری پای قابل حمل داشته باشد یا فقط می خواهد سرگرم شود ، کمک می کند. به این مقرون به صرفه ترین و قابل تنظیم است