فهرست مطالب:
- مرحله 1: قبل از شروع
- مرحله 2: ایجاد یک مدل ML سفارشی در Lobe
- مرحله 3: ساخت آن: سخت افزار
- مرحله 4: کد آن: نرم افزار
- مرحله 5: آزمایش کنید: برنامه را اجرا کنید
- مرحله 6: (اختیاری) بسازید: مدار خود را نهایی کنید
- مرحله 7: (اختیاری) آن را بسازید: مورد
- مرحله 8: نصب و استقرار
تصویری: با ML طبقه بندی سطل زباله Pi بسازید!: 8 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:51
پروژه طبقه بندی سطل زباله ، که با محبت به "کجا می رود ؟!" معروف است ، به گونه ای طراحی شده است که دور ریختن وسایل را سریعتر و قابل اطمینان تر کند.
این پروژه از یک مدل یادگیری ماشین (ML) استفاده می کند که در Lobe آموزش دیده است ، سازنده مدل ML برای مبتدیان (بدون کد!) ، برای شناسایی اینکه آیا یک شی در زباله ، بازیافت ، کمپوست یا زباله های خطرناک می رود یا خیر. سپس مدل بر روی رایانه Raspberry Pi 4 بارگذاری می شود تا در هر جایی که سطل زباله پیدا کنید قابل استفاده باشد!
این آموزش به شما می گوید چگونه می توانید پروژه Trash Classifier خود را در Raspberry Pi از مدل Lobe TensorFlow در Python3 ایجاد کنید.
مشکل: مبتدی ++ (برخی از دانش در مورد مدارات و کد نویسی مفید است)
زمان مطالعه: 5 دقیقه
زمان ساخت: 60 - 90 دقیقه
هزینه: 70 پوند (شامل Pi 4)
تدارکات:
نرم افزار (سمت کامپیوتر)
- لوب
- WinSCP (یا روش انتقال فایل SSH دیگر ، می تواند از CyberDuck برای Mac استفاده کند)
- پایانه
- اتصال Remote Desktop یا RealVNC
سخت افزار
- رزبری پای ، کارت SD و منبع تغذیه USB-C (5 ولت ، 2.5 آمپر)
- دوربین پی
- دکمه فشاری
-
5 LED (4 LED نشانگر و 1 LED وضعیت)
- LED زرد: زباله
- LED آبی: بازیافت
- LED سبز: کمپوست
- LED قرمز: زباله های خطرناک
- LED سفید: وضعیت
- 6 مقاومت 220 اهم
- 10 سیم جهنده M-to-M
- تخته نان ، نیم سایز
اگر لحیم کاری را انتخاب می کنید:
- 1 اتصال JST ، فقط انتهای زن
- 2 سیم بلوز M-to-F
- 10 سیم جهنده F-to-F
- PCB
محفظه
- کیف پروژه (به عنوان مثال مقوا ، چوب یا جعبه پلاستیکی ، تقریباً 6 "x 5" x 4 ")
-
مربع پلاستیکی شفاف 0.5 "x 0.5" (2cm x 2cm)
به عنوان مثال. از درب ظرف پلاستیکی مواد غذایی
- Velcro
ابزارها
- سیم بر، دم باریک
- چاقوی دقیق (به عنوان مثال چاقوی دقیق) و حصیر برش
- لحیم کاری (اختیاری)
- ابزار ذوب داغ (یا چسب غیر رسانای دیگر-اپوکسی عالی عمل می کند اما دائمی است)
مرحله 1: قبل از شروع
این پروژه فرض می کند که شما با یک رزبری پای کاملاً راه اندازی شده در پیکربندی بدون سر شروع می کنید. در اینجا یک راهنمای دوستانه مبتدی در مورد نحوه انجام این کار وجود دارد.
همچنین داشتن اطلاعاتی در مورد موارد زیر کمک می کند:
-
آشنایی با رزبری پای
- در اینجا یک راهنمای مفید برای شروع است!
- همچنین مفید است: شروع به کار با دوربین Pi
-
خواندن و ویرایش کد پایتون (نیازی به نوشتن برنامه ندارید ، فقط ویرایش کنید)
آشنایی با پایتون با رزبری پای
- خواندن نمودارهای سیم کشی Fritzing
-
استفاده از تخته نان
نحوه استفاده از آموزش تخته نان
پیدا کنید که زباله های شما به کجا می روند
هر شهر در سراسر ایالات متحده (و من تصور می کنم جهان) دارای زباله/بازیافت/کمپوست/و غیره است. سیستم جمع آوری این بدان معناست که برای ایجاد یک طبقه بندی دقیق سطل زباله ، ما باید 1) یک مدل ML سفارشی بسازیم (در مرحله بعد به این موضوع می پردازیم - بدون کد!) و 2) می دانیم که هر تکه زباله به کجا می رود.
از آنجا که من همیشه سطل مناسب برای هر موردی که برای آموزش مدل خود استفاده می کردم را نمی دانستم ، از برگه خدمات سیاتل (عکس 1) ، و همچنین این دستی "کجا می رود؟" ابزار جستجوی شهر سیاتل! با جستجوی ابزار جمع آوری زباله شهر خود و مطالعه وب سایت آن ، منابع موجود در شهر خود را بررسی کنید.
مرحله 2: ایجاد یک مدل ML سفارشی در Lobe
لوب یک ابزار آسان برای استفاده است که همه چیز مورد نیاز برای زنده کردن ایده های یادگیری ماشین شما را در خود دارد. نمونه هایی از کارهایی را که می خواهید انجام دهید به آن نشان دهید ، و به طور خودکار یک مدل یادگیری ماشین سفارشی آموزش می دهد که می تواند برای دستگاه ها و برنامه های پیشرفته صادر شود. برای شروع به هیچ تجربه ای نیاز ندارد. می توانید به صورت رایگان روی رایانه خود تمرین کنید!
در اینجا یک مرور سریع در مورد نحوه استفاده از Lobe آورده شده است:
1. برنامه Lobe را باز کرده و یک پروژه جدید ایجاد کنید.
2. عکس بگیرید یا وارد کنید و آنها را در دسته های مناسب برچسب گذاری کنید. (عکس 1) بعداً در قسمت نرم افزاری پروژه به این برچسب ها نیاز خواهیم داشت.
دو روش برای وارد کردن عکس وجود دارد:
- از مواردی که مستقیماً از وب کم رایانه خود استفاده می کنید عکس بگیرید ، یا
-
عکس ها را از پوشه های موجود در رایانه خود وارد کنید.
به خاطر داشته باشید که نام پوشه عکس به عنوان نام برچسب دسته استفاده می شود ، بنابراین مطمئن شوید که با برچسب های موجود مطابقت دارد
علاوه بر این: من از هر دو روش استفاده کردم ، زیرا هرچه تعداد عکس های شما بیشتر باشد ، مدل شما دقیق تر است.
3. از ویژگی "Play" برای آزمایش دقت مدل استفاده کنید. فواصل ، نور ، موقعیت دست و غیره را تغییر دهید تا مشخص شود مدل کجاست و دقیق نیست. در صورت لزوم عکس های بیشتری اضافه کنید. (عکسهای 3 - 4)
4. وقتی آماده شدید ، مدل Lobe ML خود را در قالب TensorFlow (TF) Lite صادر کنید.
نکات:
-
قبل از وارد کردن عکس ها ، لیستی از همه دسته های مورد نیاز و نحوه برچسب گذاری آنها (مانند "زباله" ، "بازیافت" ، "کمپوست" و غیره) تهیه کنید.
توجه: از همان برچسب هایی که در عکس "Lobe Model Labels" در بالا نشان داده شده استفاده کنید تا میزان کد مورد نیاز برای تغییر را کاهش دهید
- شامل دسته ای برای "سطل زباله نباشید" است که دارای عکسهایی از عکسهای دیگر است (به عنوان مثال دستها و بازوهای شما ، پس زمینه و غیره)
- در صورت امکان ، از دوربین Pi عکس بگیرید و به Lobe وارد کنید. این کار دقت مدل شما را تا حد زیادی بهبود می بخشد!
- به عکس های بیشتری نیاز دارید؟ مجموعه داده های منبع باز را در Kaggle ، از جمله این مجموعه تصویر طبقه بندی زباله ، بررسی کنید!
- به کمک بیشتری نیاز دارید؟ در Reddit با Loob Coommunity ارتباط برقرار کنید!
مرحله 3: ساخت آن: سخت افزار
1. دوربین Pi را با دقت به Pi وصل کنید (برای اطلاعات بیشتر از راهنمای شروع به بنیاد Pi مراجعه کنید). (عکس 1)
2. برای اتصال دکمه فشاری و LED ها به پایه های Pi GPIO نمودار سیم کشی را دنبال کنید.
- دکمه فشار: یک پا از دکمه فشاری را به پین GPIO وصل کنید. 2. پای دیگر را از طریق مقاومت به پین GPIO GND وصل کنید.
- LED زرد: پای مثبت (بلندتر) را به پین GPIO وصل کنید. پای دیگر را از طریق مقاومت به پین GPIO GND وصل کنید.
- LED آبی: پایه مثبت را به پایه GPIO 27 وصل کنید. پای دیگر را از طریق مقاومت به پین GPIO GND وصل کنید.
- LED سبز: پایه مثبت را به پایه GPIO 22 وصل کنید. پای دیگر را از طریق مقاومت به پین GPIO GND وصل کنید.
- LED قرمز: پایه مثبت را به پایه GPIO 23 وصل کنید. پای دیگر را از طریق مقاومت به پین GPIO GND وصل کنید.
- LED سفید: پایه مثبت را به پایه GPIO 24 وصل کنید. پای دیگر را از طریق مقاومت به پین GPIO GND وصل کنید.
3. توصیه می شود قبل از لحیم کاری یا دائمی شدن اتصالات ، مدار خود را روی تخته نان آزمایش کرده و برنامه را اجرا کنید. برای انجام این کار ، ما باید برنامه نرم افزاری خود را بنویسیم و بارگذاری کنیم ، بنابراین بگذارید به مرحله بعدی برویم!
مرحله 4: کد آن: نرم افزار
1. در رایانه خود ، WinSCP را باز کرده و به Pi خود متصل شوید. یک پوشه Lobe در فهرست اصلی Pi خود ایجاد کرده و یک پوشه مدل در آن فهرست ایجاد کنید.
2. محتویات پوشه Lobe TF حاصل را روی Pi بکشید. مسیر فایل:/home/pi/Lobe/model را یادداشت کنید
3. در Pi ، یک ترمینال باز کنید و کتابخانه lobe-python را برای Python3 با اجرای دستورات bash زیر بارگیری کنید:
pip3 نصب
لوب نصب pip3
4. کد طبقه بندی سطل زباله (rpi_trash_classifier.py) را از این repo روی Pi بارگیری کنید (همانطور که در عکس 1 نشان داده شده است روی دکمه "Code" کلیک کنید).
- ترجیح می دهید کپی/جایگذاری کنید؟ کد خام را از اینجا دریافت کنید.
- ترجیح می دهید روی رایانه بارگیری کنید؟ repo/کد را روی رایانه خود بارگیری کنید و سپس کد پایتون را از طریق WinSCP (یا برنامه انتقال فایل از راه دور دلخواه خود) به Pi منتقل کنید.
5. هنگامی که سخت افزار را به پین های GPIO Pi متصل کردید ، کد نمونه را بخوانید و هرگونه مسیر فایل را در صورت نیاز به روز کنید:
- خط 29: مسیر فایل به مدل Lobe TF
- خطوط 47 و 83: مسیر فایل به تصاویر گرفته شده از طریق دوربین Pi
6. در صورت لزوم ، برچسب های مدل را در کد به روز کنید تا دقیقاً با برچسب های مدل Lobe شما مطابقت داشته باشد (شامل بزرگنمایی ، علائم نگارشی و غیره):
- خط 57: "زباله"
- خط 60: "بازیافت"
- خط 63: "کمپوست"
- خط 66: "تاسیسات زباله های خطرناک"
- خط 69: "آشغال نیست!"
7. برنامه را با استفاده از Python3 در پنجره ترمینال اجرا کنید:
python3 rpi_trash_classifier.py
مرحله 5: آزمایش کنید: برنامه را اجرا کنید
مروری بر برنامه
هنگامی که برای اولین بار برنامه را اجرا می کنید ، بارگیری کتابخانه TensorFlow و مدل Lobe ML کمی طول می کشد. هنگامی که برنامه برای ثبت تصویر آماده است ، چراغ وضعیت (LED سفید) پالس می کند.
پس از گرفتن عکس ، برنامه تصویر را با مدل Lobe ML مقایسه می کند و پیش بینی حاصله را نشان می دهد (خط 83). خروجی تعیین می کند که چراغ روشن شود: زرد (زباله) ، آبی (بازیافت) ، سبز (کمپوست) یا قرمز (زباله های خطرناک).
اگر هیچ یک از LED های نشانگر روشن نشد و LED وضعیت به حالت پالس بازگشت ، به این معنی است که تصویر گرفته شده "سطل زباله نیست" ، به عبارت دیگر ، عکس را دوباره بگیرید!
ضبط یک تصویر
برای گرفتن تصویر ، دکمه فشاری را فشار دهید. توجه داشته باشید که برای ثبت مطبوعات ممکن است لازم باشد دکمه فشاری را حداقل 1 ثانیه نگه دارید. توصیه می شود برخی از تصاویر آزمایشی را بگیرید ، سپس آنها را روی دسکتاپ باز کنید تا نمای دوربین و فریم را بهتر درک کنید.
برای اینکه زمان کاربر برای موقعیت یابی شی و تنظیم سطوح نور دوربین ، حدود 5 ثانیه طول می کشد تا یک تصویر کامل ثبت شود. ممکن است این تنظیمات را در کد (خطوط 35 و 41) تغییر دهید ، اما به خاطر داشته باشید بنیاد Pi حداقل 2 ثانیه را برای تنظیم سطح نور توصیه می کند.
عیب یابی
بزرگترین چالش این است که اطمینان حاصل کنید که تصویر گرفته شده همان چیزی است که ما انتظار داریم ، بنابراین کمی وقت بگذارید تا تصاویر را مرور کرده و نتایج مورد انتظار را با خروجی LED نشانگر مقایسه کنید. در صورت لزوم ، می توانید تصاویر را برای استنباط مستقیم و مقایسه سریعتر به مدل Lobe ML منتقل کنید.
چند نکته قابل توجه:
- کتابخانه TensorFlow احتمالاً برخی از پیام های هشدار دهنده را ارسال می کند - این معمولی برای نسخه مورد استفاده در این نمونه کد است.
- برچسب های پیش بینی باید دقیقاً همانطور که در تابع led_select () نوشته شده باشد ، شامل حروف بزرگ ، نقطه گذاری و فاصله باشد. اگر مدل Lobe متفاوتی دارید ، حتماً آنها را تغییر دهید.
- Pi نیاز به منبع تغذیه ثابت دارد. چراغ قدرت Pi باید روشن و قرمز کامل باشد.
- اگر یک یا چند LED در مواقع مورد نیاز روشن نمی شوند ، آنها را با استفاده از دستور زیر مجبور کنید:
red_led.on ()
مرحله 6: (اختیاری) بسازید: مدار خود را نهایی کنید
اکنون که پروژه خود را آزمایش کرده و در صورت لزوم اشکال زدایی کرده ایم ، به گونه ای که انتظار می رود ، آماده ایم که مدار خود را لحیم کنیم!
توجه: اگر آهن لحیم کاری ندارید ، می توانید این مرحله را رد کنید. یک جایگزین این است که اتصالات سیم را با چسب حرارتی بپوشانید (این گزینه به شما امکان می دهد بعداً مواردی را تعمیر/اضافه کنید/استفاده کنید ، اما احتمال شکستن آنها بیشتر است) ، یا از اپوکسی یا چسب دائمی مشابه استفاده کنید (این گزینه دوام بیشتری خواهد داشت. اما بعد از انجام این کار نمی توانید از مدار یا احتمالاً Pi استفاده کنید)
نظر سریع در مورد انتخاب های طراحی من (عکس 1):
- من سیم های بلوز زن را برای LED ها و Pi GPIO انتخاب کردم زیرا به من امکان می دهند LED ها را حذف کرده و رنگها را عوض کنم یا در صورت نیاز آنها را جابجا کنم. اگر می خواهید اتصالات دائمی شوند ، می توانید از این موارد صرف نظر کنید.
- به همین ترتیب ، من یک کانکتور JST را برای دکمه فشار انتخاب کردم.
پیش به سوی ساختمان
1. هر یک از سیم های بلوز زن را از وسط نصف کنید (بله ، همه آنها!). با استفاده از نوارهای سیم ، حدود 1/4 اینچ (1/2 سانتی متر) عایق سیم را بردارید.
2. برای هر یک از LED ها ، یک مقاومت 220Ω را به پایه منفی (کوتاهتر) لحیم کنید. (عکس 2)
3. یک قطعه کوچک ، حدود 1 اینچ (2 سانتیمتر) لوله کوچک کننده حرارتی را بریده و LED و اتصال مقاومت را فشار دهید. اطمینان حاصل کنید که پای دیگر مقاومت در دسترس است ، سپس لوله جمع کننده را گرم کنید تا اتصال آن محکم شود. (عکس 3)
4. هر LED را در یک جفت سیم جهنده زن وارد کنید. (عکس 4)
5. سیمهای بلوز (به عنوان مثال با نوار) را برچسب بزنید ، سپس سیمهای بلوز را روی برد مدار چاپی (PCB) خود بچسبانید. (عکس 5)
6. بعد ، از یک سیم بلوز زن (قطع) برای اتصال هر LED به پین Pi GPIO مربوطه استفاده کنید. یک سیم جامپر را لحیم و برچسب گذاری کنید تا فلز برهنه از طریق PCB به پایه LED مثبت متصل شود. (عکس 5)
توجه: جایی که این سیم را لحیم می کنید بستگی به طرح PCB شما دارد. همچنین می توانید این سیم را مستقیماً به سیم بلوز LED مثبت لحیم کنید.
7. یک مقاومت 220Ω را به انتهای منفی (سیاه) اتصال JST لحیم کنید. (عکس 6)
8. اتصال JST و مقاومت را به دکمه فشار دهید. (عکس 6)
9. سیمهای بلوز M-to-F را بین کانکتور دکمه فشاری و پایه های GPIO وصل کنید (یادآوری: رنگ مشکی GND است).
10. اتصال PCB را با چسب داغ یا اپوکسی برای اتصال ایمن تر بپوشانید.
توجه: اگر از اپوکسی استفاده می کنید ، ممکن است در آینده نتوانید از پین های GPIO Pi برای پروژه های دیگر استفاده کنید. اگر نگران این موضوع هستید ، یک کابل روبان GPIO را اضافه کنید و به جای آن سیم های بلوز را به آن وصل کنید.
مرحله 7: (اختیاری) آن را بسازید: مورد
محفظه ای برای Pi خود ایجاد کنید که دوربین ، دکمه فشاری و LED ها را در جای خود نگه دارد در حالی که از Pi محافظت می کند. برای ساخت نمونه اولیه محفظه مقوایی ، محفظه خود را طراحی کنید یا دستورالعمل های زیر را دنبال کنید!
-
در بالای جعبه مقوایی کوچک ، مکان های دکمه فشاری ، چراغ وضعیت ، چراغ های شناسه و پنجره دوربین pi را مشخص کنید (عکس 1).
توجه: پنجره دوربین Pi باید حدود 3/4 اینچ 1/ 1/2 اینچ باشد
-
با استفاده از چاقوی دقیق خود ، آثار را برش دهید.
توجه: ممکن است بخواهید اندازه ها را هنگام حرکت آزمایش کنید (عکس 1)
- اختیاری: قاب را رنگ کنید! من رنگ اسپری رو انتخاب کردم:)
- یک قاب "پنجره" مستطیلی برای دوربین Pi (عکس 4) برش دهید و داخل جعبه را بچسبانید
-
در نهایت ، شکاف کابل برق Pi را قطع کنید.
توصیه می شود ابتدا همه لوازم الکترونیکی را نصب کنید تا بهترین مکان را برای شکاف کابل برق pi پیدا کنید
مرحله 8: نصب و استقرار
خودشه! شما آماده نصب و استقرار پروژه خود هستید! محفظه را بالای سطل های زباله خود قرار دهید ، Pi را وصل کنید و برنامه را اجرا کنید تا راهی سریعتر و مطمئن تر برای کاهش ضایعات ما بدست آورید. بله!
پیش رفتن
- پروژه ها و ایده های خود را از طریق جامعه Lobe Reddit با سایر افراد به اشتراک بگذارید!
- برای نمای کلی در مورد نحوه استفاده از پایتون برای استقرار طیف وسیع تری از پروژه های Lobe ، به repo Lobe Python GitHub مراجعه کنید.
- سوال یا درخواست پروژه؟ در مورد این پروژه نظر دهید یا مستقیماً با ما تماس بگیرید: [email protected]
توصیه شده:
Perf Board از سطل زباله: 4 مرحله (همراه با تصاویر)
Perf Board From Trash: در اینجا یک تخته پرفورمنس ارزان و آسان از موادی ساخته شده است که تقریباً همه در اطراف آن قرار دارند. این برای پروژه های آردوینو یا فقط یک مدار خانگی مناسب است. ساخت این پروژه حدود نیم ساعت به طول می انجامد
سطل مرتب - سطل زباله خود را شناسایی و مرتب کنید: 9 مرحله
سطل زباله - سطل زباله خود را شناسایی کرده و مرتب کنید: آیا تا به حال کسی را دیده اید که بازیافت نمی کند یا این کار را بد انجام می دهد؟ آیا تا به حال آرزو کرده اید که دستگاهی برای شما بازیافت شود؟ به خواندن پروژه ما ادامه دهید ، پشیمان نخواهید شد! Sorter bin یک پروژه با انگیزه مشخص کمک است
طبقه بندی تشخیص صدا: 4 مرحله (همراه با تصاویر)
طبقه بندی تشخیص صدا: برای دوره TfCD کارشناسی ارشد IPD در TU دلفت. این روش در مورد نحوه ایجاد یک سیستم تشخیص صدا قابل آموزش است. ما اصول و نحوه راه اندازی این پروژه را با کمک Arduino و BitVoicer توضیح می دهیم. پس از اتمام اصول اولیه ما معتقدیم
نحوه ایجاد تبلیغات طبقه بندی شده آنلاین: 3 مرحله (همراه با تصاویر)
چگونه یک آگهی طبقه بندی شده آنلاین ایجاد کنیم: چیزی دارید که فکر می کنید باید از آن جدا شوید؟ یکی از راههای تبلیغ چیزهایی که می خواهید بفروشید ، ارسال آگهی طبقه بندی شده است و امروزه استفاده از اینترنت روشی آسان ، م effectiveثر و تقریباً رایگان برای انجام این کار است. در این دستورالعمل ، من راهنمایی
تراشه های زباله - حذف سطل زباله غیرقابل بازیافت: 8 مرحله
صخره های زباله - حذف سطل زباله غیرقابل بازیافت: برای ساختن یک سطل زباله ، ابتدا یک گونی از شبکه ماهیگیری می دوزند. & nbsp؛ با سطل زباله پر شده و با سیمان گچ شده است. & nbsp؛ پوسته های به دست آمده از نظر شکل منحصر به فرد هستند و بسیار طبیعی به نظر می رسند. & nbsp؛ سنگ های زباله از نظر زیبایی زیبا و سازنده هستند