Мазмұны:

ML көмегімен Pi қоқыс жіктеуішін жасаңыз!: 8 қадам (суреттермен)
ML көмегімен Pi қоқыс жіктеуішін жасаңыз!: 8 қадам (суреттермен)

Бейне: ML көмегімен Pi қоқыс жіктеуішін жасаңыз!: 8 қадам (суреттермен)

Бейне: ML көмегімен Pi қоқыс жіктеуішін жасаңыз!: 8 қадам (суреттермен)
Бейне: MJC Stream: Видишь енота? А он есть! Главное об ML и компьютерном зрении 2024, Шілде
Anonim
ML көмегімен Pi қоқыс жіктеуішін жасаңыз!
ML көмегімен Pi қоқыс жіктеуішін жасаңыз!
ML көмегімен Pi қоқыс жіктеуішін жасаңыз!
ML көмегімен Pi қоқыс жіктеуішін жасаңыз!

«Қайда барады?!» Деп аталатын қоқыс жіктеуіш жобасы заттарды тез және сенімді түрде лақтыруға арналған.

Бұл жобада қоқысқа, қайта өңдеуге, компостқа немесе қауіпті қалдықтарға объектінің түсетінін анықтау үшін жаңадан үйренуге болатын (код жоқ!) ML моделін жасаушы Lobe-да үйретілген Machine Learning (ML) моделі қолданылады. Содан кейін модель Raspberry Pi 4 компьютеріне жүктеледі, оны қоқыс жәшіктерін қай жерден табуға болады, сонда қолдануға болады!

Бұл оқулықта Python3 -те Lobe TensorFlow үлгісінен Raspberry Pi -де қоқыс жіктеуіштің жеке жобасын құру туралы айтылады.

Қиындық: бастаушы ++ (схемалар мен кодтау туралы кейбір білім пайдалы)

Оқу уақыты: 5 мин

Жасалу уақыты: 60-90 мин

Құны: ~ 70 доллар (Pi 4 қоса)

Жабдықтар:

Бағдарламалық қамтамасыз ету (дербес компьютерде)

  • Лоб
  • WinSCP (немесе басқа SSH файл тасымалдау әдісі, CyberDuck for Mac қолдана алады)
  • Терминал
  • Қашықтағы жұмыс үстелі қосылымы немесе RealVNC

Аппараттық құрал

  • Raspberry Pi, SD картасы және USB-C қуат көзі (5V, 2.5A)
  • Pi камерасы
  • Батырмаға басу
  • 5 жарық диоды (4 индикаторлық диод және 1 күй диодты шам)

    • Сары жарық диоды: қоқыс
    • Көк жарық диоды: қайта өңдеу
    • Жасыл жарық диоды: компост
    • Қызыл жарық диоды: қауіпті қалдықтар
    • Ақ жарық диоды: күй
  • 6 220 Ом резисторы
  • 10-дан М-ге дейінгі қосқыш сымдар
  • Нан тақтасы, жартылай өлшемді

Егер сіз дәнекерлеуді таңдасаңыз:

  • 1 JST коннекторы, тек әйелдік ұш
  • 2 M-to-F қосқыш сымдары
  • 10 F-to-F қосқыш сымдары
  • ПХД

Қоршау

  • Жобаның корпусы (мысалы, картон, ағаш немесе пластикалық қорап, шамамен 6 «x 5» x 4 «)
  • 0,5 «х 0,5» (2 см х 2 см) мөлдір пластикалық шаршы

    Мысалы, пластикалық тағамдық контейнер қақпағынан

  • Velcro

Құралдар

  • Сым кескіштер
  • Дәл пышақ (мысалы, дәл пышақ) және кескіш төсеніш
  • Пісіру үтігі (міндетті емес)
  • Ыстық балқыту құралы (немесе басқа өткізбейтін желім-эпоксид жақсы жұмыс істейді, бірақ тұрақты)

1 -қадам: Біз бастамас бұрын

Біз бастамас бұрын
Біз бастамас бұрын

Бұл жоба сіз Raspberry Pi-ді бассыз конфигурациядан бастайсыз деп болжайды. Мұны қалай жасау керектігі туралы жаңадан бастаушыларға арналған нұсқаулық.

Бұл сонымен қатар төмендегілер туралы білуге көмектеседі:

  1. Raspberry Pi -мен танысу

    • Міне, бастау үшін ыңғайлы нұсқаулық!
    • Сонымен қатар пайдалы: Pi камерасын бастау
  2. Python кодын оқу және өңдеу (сізге бағдарлама жазудың қажеті жоқ, жай ғана өңдеңіз)

    Raspberry Pi көмегімен Python -ға кіріспе

  3. Фритзинг сымдарының схемаларын оқу
  4. Нан тақтасын қолдану

    Нан тақтасы оқулығын қалай қолдануға болады

Қоқыс қайда кететінін біліңіз

Америка Құрама Штаттарындағы әр қаланың (және менің ойымша, жер шары) өзіндік қоқыс/қайта өңдеу/компост/т.б. жинау жүйесі. Бұл дәл қоқыс жіктеуішін жасау үшін бізге 1) арнайы ML моделін құру керек (біз келесі қадамда оны қарастырамыз - код жоқ!) Және 2) қоқыстың әр бөлігі қайда кететінін білу.

Мен өзімнің модельді үйрету үшін қолданған әрбір затқа арналған қоқыс жәшігін білмейтіндіктен, Seattle Utilities парақшасын қолдандым (1 -сурет), сонымен қатар бұл ыңғайлы «Ол қайда барады?» Сиэтл қаласын іздеу құралы! Қалаңыздың қоқыс жинау утилитасын іздеп, оның веб -сайтына қарап, сіздің қалаңызда қандай ресурстар бар екенін біліңіз.

2 -қадам: Lobe -да жеке ML моделін жасаңыз

Lobe -да арнайы ML үлгісін жасаңыз
Lobe -да арнайы ML үлгісін жасаңыз
Lobe -да арнайы ML үлгісін жасаңыз
Lobe -да арнайы ML үлгісін жасаңыз
Lobe -да арнайы ML үлгісін жасаңыз
Lobe -да арнайы ML үлгісін жасаңыз
Lobe -да арнайы ML үлгісін жасаңыз
Lobe -да арнайы ML үлгісін жасаңыз

Lobe-бұл машинада оқыту идеяларын іске асыру үшін қажет нәрсенің бәрі бар қарапайым құрал. Оған не істеу керектігін көрсететін мысалдарды көрсетіңіз, ол автоматты түрде шеткі құрылғылар мен қосымшаларға экспорттауға болатын арнайы машиналық оқыту моделін дайындайды. Бастау үшін ешқандай тәжірибе қажет емес. Сіз өз компьютеріңізде ақысыз жаттығуға болады!

Міне, Lobeni қолдану туралы қысқаша шолу:

1. Lobe бағдарламасын ашып, жаңа жоба жасаңыз.

2. Фотосуреттерді түсіріңіз немесе импорттаңыз және оларды сәйкес санаттарға қойыңыз. (1 -сурет) Бізге бұл белгілер кейінірек жобаның бағдарламалық бөлігінде қажет болады.

Фотосуреттерді импорттаудың екі әдісі бар:

  1. Элементтерді компьютердің веб -камерасынан тікелей түсіріңіз немесе
  2. Фотосуреттерді компьютердегі бар қалталардан импорттаңыз.

    Фотосуреттер қалтасының атауы санат белгісі ретінде қолданылатынын есте сақтаңыз, сондықтан оның бар белгілерге сәйкес келетініне көз жеткізіңіз

Сонымен қатар: Мен екі әдісті де қолдандым, өйткені сізде фотосуреттер көп болған сайын, сіздің модельіңіз дәлірек болады.

3. Үлгінің дәлдігін тексеру үшін «Ойнату» мүмкіндігін пайдаланыңыз. Үлгінің қай жерде орналасқанын және дәл емес екенін анықтау үшін қашықтықты, жарықтандыруды, қолдың орналасуын және т.б. Қажет болса, қосымша фотосуреттер қосыңыз. (Фото 3 - 4)

4. Дайын болғанда, Lobe ML үлгісін TensorFlow (TF) Lite форматында экспорттаңыз.

Кеңестер:

  • Фотосуреттерді импорттаудан бұрын сізге қажет барлық категориялардың тізімін жасаңыз және оларды қалай белгілеу керек (мысалы, «қоқыс», «қайта өңдеу», «компост» және т.б.)

    Ескерту: Өзгерту қажет код мөлшерін азайту үшін жоғарыдағы «Lobe Model Labels» фотосуретінде көрсетілген белгілерді қолданыңыз

  • Фотосуретте басқа нәрселердің суреттері бар «қоқыс емес» санатын қосыңыз (мысалы, қолдарыңыз бен қолдарыңыз, фон және т.б.).
  • Мүмкін болса, Pi Camera -дан суретке түсіріп, Lobe -ге импорттаңыз. Бұл сіздің модельдің дәлдігін едәуір жақсартады!
  • Қосымша фотосуреттер қажет пе? Kaggle-дегі ашық бастапқы деректер жиынтығын, соның ішінде қоқыс жіктеу суреттер жиынтығын тексеріңіз!
  • Қосымша көмек керек пе? Reddit -те Lobe қауымдастығымен қосылыңыз!

3 -қадам: Оны құрастырыңыз: Жабдық

Құру: аппараттық құрал!
Құру: аппараттық құрал!
Құру: аппараттық құрал!
Құру: аппараттық құрал!
Құру: аппараттық құрал!
Құру: аппараттық құрал!

1. Pi камерасын Pi -ге мұқият қосыңыз (қосымша ақпарат алу үшін Pi Foundation бастау нұсқаулығына кіріңіз). (1 -сурет)

2. Түймешік пен светодиодты Pi GPIO түйреуіштеріне қосу үшін электр схемасын орындаңыз.

  • Батырмалар: батырманың бір аяғын GPIO түйреуішіне 2 жалғаңыз. Екінші аяқты резистор арқылы GPIO GND түйреуішіне қосыңыз.
  • Сары жарық диоды: оң (ұзын) аяқты GPIO түйреуішіне 17 қосыңыз. Екінші аяқты резистор арқылы GPIO GND түйреуішіне қосыңыз.
  • Көк жарық диоды: оң аяқты GPIO түйреуішіне 27 қосыңыз. Екінші аяқты резистор арқылы GPIO GND түйреуішіне қосыңыз.
  • Жасыл жарық диоды: оң аяқты GPIO түйрегіне 22 жалғаңыз. Екінші аяқты резистор арқылы GPIO GND түйреуішіне қосыңыз.
  • Қызыл жарық диоды: оң аяқты GPIO түйреуішіне 23 жалғаңыз. Екінші аяқты резистор арқылы GPIO GND түйреуішіне қосыңыз.
  • Ақ жарық диоды: оң аяқты GPIO pin 24 -ке жалғаңыз. Екінші аяқты резистор арқылы GPIO GND түйреуішіне қосыңыз.

3. Кез келген қосылымды дәнекерлемей тұрып немесе тұрақты етіп жасамас бұрын, схеманы тест тақтасында тексеріп, бағдарламаны іске қосу ұсынылады. Мұны істеу үшін бізге бағдарламалық жасақтаманы жазу және жүктеу қажет, сондықтан келесі қадамға өтейік!

4 -қадам: кодтау: бағдарламалық қамтамасыз ету

Кодтау: Бағдарламалық қамтамасыз ету!
Кодтау: Бағдарламалық қамтамасыз ету!
Кодтау: бағдарламалық қамтамасыз ету!
Кодтау: бағдарламалық қамтамасыз ету!

1. Компьютерде WinSCP ашыңыз және Pi -ге қосылыңыз. Pi үй каталогында Lobe қалтасын жасаңыз және сол каталогта үлгі қалтасын жасаңыз.

2. Алынған Lobe TF қалтасының мазмұнын Pi ішіне сүйреңіз. Файлдың жолына назар аударыңыз:/home/pi/Lobe/model

3. Pi-де терминалды ашып, келесі bash пәрмендерін орындау арқылы Python3 үшін lobe-python кітапханасын жүктеңіз:

pip3 орнату

pip3 лобты орнату

4. Қоқыс жіктеуішінің кодын (rpi_trash_classifier.py) осы реподан Pi -ге жүктеңіз (1 -суретте көрсетілгендей «Код» түймесін басыңыз).

  • Көшіру/қоюды қалайсыз ба? Шикі кодты мына жерден алыңыз.
  • Компьютерге жүктеуді қалайсыз ба? Репо/кодты компьютерге жүктеңіз, содан кейін Python кодын WinSCP (немесе қалаған файлды тасымалдау бағдарламасы) арқылы Pi -ге жіберіңіз.

5. Аппараттық құралдарды Pi GPIO түйреуіштеріне қосқаннан кейін, мысал кодын оқып шығыңыз және кез келген файл жолдарын жаңартыңыз:

  • 29 -жол: Lobe TF үлгісіне өтетін жол
  • 47 және 83 -жолдар: Pi Camera арқылы түсірілген суреттерге арналған жол

6. Қажет болса, кодтағы үлгі белгілерін Lobe үлгісіндегі белгілерге сәйкес келуі үшін жаңартыңыз (бас әріппен, тыныс белгілерін және т.б. қоса):

  • 57 -жол: «қоқыс»
  • 60 -жол: «қайта өңдеу»
  • 63 -жол: «компост»
  • 66 -жол: «қауіпті қалдықтар объектісі»
  • 69 -жол: «қоқыс емес!»

7. Терминал терезесінде Python3 көмегімен бағдарламаны іске қосыңыз:

python3 rpi_trash_classifier.py

5 -қадам: Тексеріңіз: Бағдарламаны іске қосыңыз

Тексеріңіз: бағдарламаны іске қосыңыз!
Тексеріңіз: бағдарламаны іске қосыңыз!
Тексеріңіз: бағдарламаны іске қосыңыз!
Тексеріңіз: бағдарламаны іске қосыңыз!
Тексеріңіз: бағдарламаны іске қосыңыз!
Тексеріңіз: бағдарламаны іске қосыңыз!

Бағдарламаға шолу

Бағдарламаны бірінші рет іске қосқанда, TensorFlow кітапханасы мен Lobe ML моделін жүктеуге біраз уақыт кетеді. Бағдарлама суретке түсіруге дайын болғанда, күй шамы (ақ жарық диодты) импульсті болады.

Кескін түсіргеннен кейін бағдарлама кескінді Lobe ML үлгісімен салыстырады және алынған болжамды шығарады (83 -жол). Шығу қай шамның қосылатынын анықтайды: сары (қоқыс), көк (қайта өңдеу), жасыл (компост) немесе қызыл (қауіпті қалдықтар).

Егер индикаторлық светодиодтардың ешқайсысы қосылмаса және күй диодты импульстік режимге оралса, бұл түсірілген сурет «қоқыс емес» екенін білдіреді, басқаша айтқанда, фотоны қайта түсіріңіз!

Суретке түсіру

Суретке түсіру үшін батырманы басыңыз. Есіңізде болсын, бағдарламаны басуды тіркеу үшін түймешікті кемінде 1 секунд басып тұру қажет болуы мүмкін. Камераның көрінісі мен жақтауын жақсы түсіну үшін бірнеше сынақ суреттерін, содан кейін оларды жұмыс үстелінде ашқан жөн.

Пайдаланушыға объектіні орналастыруға уақыт беру үшін және камераның жарық деңгейін реттеу үшін суретті толық түсіру үшін шамамен 5 секунд қажет. Сіз бұл параметрлерді кодта өзгерте аласыз (35 және 41 -жолдар), бірақ есіңізде болсын, Pi Foundation жарық деңгейін реттеу үшін кемінде 2 секундты ұсынады.

Ақаулық себебін іздеу және түзету

Ең үлкен қиындық - түсірілген суреттің біз күткендей болуын қамтамасыз ету, сондықтан суреттерді қарап шығуға және күтілетін нәтижелерді индикаторлық жарықдиодты шығыспен салыстыруға біраз уақыт бөліңіз. Қажет болса, суреттерді Lobe ML моделіне тікелей қорытынды жасау және жылдам салыстыру үшін беруге болады.

Назар аударатын бірнеше нәрсе:

  • TensorFlow кітапханасы кейбір ескерту хабарларын жіберуі мүмкін - бұл үлгі кодында қолданылатын нұсқаға тән.
  • Болжам белгілері жапсырманы, тыныс белгілерін және интервалды қосқанда, led_select () функциясында жазылғандай болуы керек. Егер сізде басқа Lobe моделі болса, оларды міндетті түрде өзгертіңіз.
  • Pi тұрақты қуат көзін қажет етеді. Пидің қуат шамы ашық, қатты қызыл болуы керек.
  • Егер бір немесе бірнеше жарық диоды күткенде қосылмаса, оларды келесі пәрменмен мәжбүрлеу арқылы тексеріңіз:

red_led.on ()

6 -қадам: (Міндетті емес) Оны құрастырыңыз: Сіздің схемаңызды аяқтаңыз

(Міндетті емес) Оны құрастырыңыз: схеманы аяқтаңыз!
(Міндетті емес) Оны құрастырыңыз: схеманы аяқтаңыз!
(Міндетті емес) Оны құрастырыңыз: схеманы аяқтаңыз!
(Міндетті емес) Оны құрастырыңыз: схеманы аяқтаңыз!
(Міндетті емес) Оны құрастырыңыз: схеманы аяқтаңыз!
(Міндетті емес) Оны құрастырыңыз: схеманы аяқтаңыз!

Енді біз жобамызды күткендей жұмыс істейтін етіп тексеріп, қажет болған жағдайда оны жөндеуден өткіздік, біз өз тізбегімізді дәнекерлеуге дайынбыз!

Ескерту: Егер сізде дәнекерлеу үтігі болмаса, бұл қадамды өткізіп жіберуге болады. Баламалардың бірі - сым қосылыстарын ыстық желіммен қаптау (бұл опция сізге заттарды кейінірек түзетуге/қосуға/қолдануға мүмкіндік береді, бірақ сынуы ықтимал) немесе эпоксидті немесе ұқсас тұрақты желімді қолданыңыз (бұл опция әлдеқайда берік болады) бірақ сіз мұны жасағаннан кейін схеманы немесе ықтимал Пиді пайдалана алмайсыз)

Менің дизайн таңдауым туралы жылдам түсініктеме (1 -сурет):

  • Мен светодиодтар мен Pi GPIO -ға арналған әйелдер секіргіш сымдарын таңдадым, себебі олар светодиодтарды алып тастауға, түстерді ауыстыруға немесе қажет болған жағдайда оларды жылжытуға мүмкіндік береді. Қосылымдарды тұрақты ету үшін оларды өткізіп жіберуге болады.
  • Сол сияқты мен батырманың түймесі үшін JST коннекторын таңдадым.

Құрылысқа қарай

1. Әйел секіргіш сымдардың әрқайсысын екіге бөліңіз (иә, барлығы!). Сымды тазартқышты қолданып, 1/4 дюйм (1/2 см) сым оқшаулағышын алыңыз.

2. Светодиодтардың әрқайсысы үшін теріс (қысқа) аяққа 220 Ом резисторды дәнекерлеңіз. (Фото 2)

3. Шамамен 1 дюймдік (2см) қыздырғыш түтіктің кішкене бөлігін кесіңіз де, жарықдиодты және резисторлық торапты итеріңіз. Резистордың басқа аяғы қол жетімді екеніне көз жеткізіңіз, содан кейін шөгу құбырын түйіспеге бекітілгенше қыздырыңыз.)

4. Әрбір светодиодты әйелдердің қосқыш сымдарына қосыңыз. (Фото 4)

5. Өткізгіш сымдарын (мысалы, таспамен), содан кейін баспа платасына (ПХД) дәнекерлеу сымдарын жапсырыңыз. (Фото 5)

6. Әрі қарай, әрбір жарықдиодты тиісті Pi GPIO түйреуішіне жалғау үшін (кесілген) аналық секіргішті қолданыңыз. Жалаңаш металл ПДБ арқылы оң жарықдиодты табанға қосылатындай етіп өтпелі сымды дәнекерлеңіз және белгілеңіз. (Фото 5)

Ескертпе: Бұл сым қай жерде дәнекерленеді, бұл ПХД орналасуына байланысты. Сондай -ақ, бұл сымды тікелей жарық диодты қосқыш сымға дәнекерлеуге болады.

7. JST коннекторының теріс (қара) ұшына 220Ω резисторды дәнекерлеңіз. (6 -сурет)

8. JST қосқышы мен резисторды түймені дәнекерлеңіз. (Фото 6)

9. M-to-F қосқыш сымдарын түйме қосқышы мен GPIO түйреуіштері арасына жалғаңыз (еске салғыш: қара-GND).

10. Қатты қосылуға арналған ыстық желімде немесе эпоксидте ПХД қосылыстары.

Ескерту: егер сіз эпоксидті қолдануды таңдасаңыз, болашақта Pi -дің GPIO түйреуіштерін басқа жобалар үшін пайдалана алмауыңыз мүмкін. Егер сіз бұл туралы алаңдайтын болсаңыз, GPIO таспалы кабелін қосыңыз және оның орнына қосқыш сымдарды қосыңыз.

7 -қадам: (міндетті емес) Оны құрастырыңыз: Case

(Қосымша) Оны құрастырыңыз: Case!
(Қосымша) Оны құрастырыңыз: Case!
(Қосымша) Оны құрастырыңыз: Case!
(Қосымша) Оны құрастырыңыз: Case!
(Қосымша) Оны құрастырыңыз: Case!
(Қосымша) Оны құрастырыңыз: Case!
(Қосымша) Оны құрастырыңыз: Case!
(Қосымша) Оны құрастырыңыз: Case!

Pi үшін камераны, түймені және жарықдиодты ұстайтын корпус жасаңыз, сонымен бірге Pi -ді қорғайды. Картоннан жасалған қоршауды тез прототиптеу үшін өзіңіздің қоршауыңызды жасаңыз немесе төмендегі нұсқауларды орындаңыз!

  1. Кішкене картон қорапшаның жоғарғы жағында түймешіктердің, күй шамының, идентификатор шамдарының және pi камерасының терезесінің орналасуын қадағалаңыз (1 -сурет).

    Ескерту: Pi камерасының терезесі шамамен 3/4 «x 1/2» болуы керек

  2. Дәл пышақпен іздерді кесіңіз.

    Ескертпе: сіз бара жатқанда өлшемдерді тексергіңіз келуі мүмкін (1 -сурет)

  3. Қосымша: Корпусты бояу! Мен спрей бояуын таңдадым:)
  4. Pi Camera үшін тікбұрышты «терезе» қақпағын кесіңіз (4 -сурет) және қораптың ішкі жағына желім салыңыз
  5. Соңында, Pi қуат кабелінің слотын кесіңіз.

    Пи қуат кабелінің ұясы үшін ең жақсы орынды табу үшін алдымен барлық электрониканы орнату ұсынылады

8 -қадам: Орнатыңыз және орналастырыңыз

Орнатыңыз және орналастырыңыз!
Орнатыңыз және орналастырыңыз!

Міне бітті! Сіз өз жобаңызды орнатуға және орналастыруға дайынсыз! Қоқыс жәшіктерінің үстіне корпусты қойыңыз, Pi -ді қосыңыз және бағдарламаны іске қосыңыз, сонда біз қалдықтарды азайтудың неғұрлым сенімді және сенімді әдісін аламыз. Алақай!

Алға жүру

  • Lobe Reddit қауымдастығы арқылы өз жобаларыңыз бен идеяларыңызды басқа адамдармен бөлісіңіз!
  • Lobe Python GitHub репо -нұсқасын қарап шығыңыз, Lobe жобаларының кең таңдауын қолдану үшін Python -ды пайдалану туралы жалпы шолу.
  • Сұрақтар немесе жоба сұраулары? Бұл жобаға түсініктеме қалдырыңыз немесе бізге тікелей хабарласыңыз: [email protected]

Ұсынылған: