Мазмуну:

ML менен Pi таштанды классификаторун жасаңыз!: 8 кадам (сүрөттөр менен)
ML менен Pi таштанды классификаторун жасаңыз!: 8 кадам (сүрөттөр менен)

Video: ML менен Pi таштанды классификаторун жасаңыз!: 8 кадам (сүрөттөр менен)

Video: ML менен Pi таштанды классификаторун жасаңыз!: 8 кадам (сүрөттөр менен)
Video: Лютый судья ► 4 Прохождение The Beast Inside 2024, Ноябрь
Anonim
ML менен Pi таштанды классификаторун жасаңыз!
ML менен Pi таштанды классификаторун жасаңыз!
ML менен Pi таштанды классификаторун түзүңүз!
ML менен Pi таштанды классификаторун түзүңүз!

"Каякка барат?!" Деген сүйүү менен белгилүү болгон Таштанды классификатору долбоору нерселерди тезирээк жана ишенимдүү ыргытуу үчүн иштелип чыккан.

Бул проект Лобеде үйрөнүлгөн Machine Learning (ML) моделин колдонот, башталгычтар үчүн достук (код жок!) ML моделин куруучу, объекттин таштандыга, кайра иштетүүгө, компостко же коркунучтуу калдыктарга кирерин аныктоо үчүн. Модель андан кийин Raspberry Pi 4 компьютерине жүктөлөт, аны таштанды челектерин кайдан тапсаңыз болот!

Бул үйрөткүч Python3төгү Lobe TensorFlow моделинен Raspberry Piде өзүңүздүн Таштанды классификаторуңуздун долбоорун кантип түзүү керектигин үйрөтөт.

Кыйынчылык: Башталгыч ++ (кээ бир схемалар жана коддоо пайдалуу)

Окуу убактысы: 5 мүн

Курулуш убактысы: 60 - 90 мүн

Баасы: ~ 70 $ (Pi 4 кошо)

Берилиштер:

Программалык камсыздоо (ЖК тарабында)

  • Lobe
  • WinSCP (же башка SSH файл өткөрүү ыкмасы, CyberDuck for Mac колдоно алат)
  • Терминал
  • Алыскы рабочий туташуусу же RealVNC

Аппараттык

  • Raspberry Pi, SD карта жана USB-C энергия менен камсыздоо (5V, 2.5A)
  • Pi Camera
  • Pushbutton
  • 5 светодиод (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 секирүүчү зымдары
  • ПХБ

Корпус

  • Проект корпусу (мисалы, картон, жыгач же пластик кутуча, болжол менен 6 "x 5" x 4 ")
  • 0.5 "x 0.5" (2cm x 2cm) тунук пластикалык чарчы

    Мисалы пластикалык тамак -аш контейнер капкагынан

  • Velcro

Куралдар

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

1 -кадам: Баштоодон мурун

Баштоодон мурун
Баштоодон мурун

Бул долбоор сиз башы жок конфигурацияда толугу менен орнотулган Raspberry Pi менен баштаганыңызды болжолдойт. Бул жерде муну кантип баштоо керектиги боюнча көрсөтмө бар.

Бул ошондой эле төмөнкүлөр жөнүндө бир аз билимге ээ болууга жардам берет:

  1. Raspberry Pi менен таанышуу

    • Бул жерде баштоо үчүн колдонмо!
    • Ошондой эле пайдалуу: Pi камерасы менен баштоо
  2. Python кодун окуу жана түзөтүү (сизге программа жазуунун кажети жок, жөн гана түзөтүңүз)

    Raspberry Pi менен Pythonго киришүү

  3. Fritzing кабелдик схемаларын окуу
  4. Нан тактасын колдонуу

    Нан тактасын кантип колдонуу керек

Таштандыңыз кайда кетип жатканын билип алыңыз

Америка Кошмо Штаттарынын ар бир шаарында (мен глобусту болжолдойт элем) өзүнүн таштандылары/кайра иштетүү/компосту/ж. чогултуу системасы. Бул так таштанды классификаторун жасоо үчүн бизге 1) керектүү ML моделин куруу керектигин билдирет (биз муну кийинки кадамда карайбыз - код жок!) Жана 2) таштандылардын ар бир бөлүгү кайда кетерин билүү.

Мен өзүмдүн моделимди үйрөтүү үчүн колдонулган ар бир нерсеге ылайыктуу урнаны билбегендиктен, Сиэтлдин коммуналдык баракчасын колдонгом (Фото 1), ошондой эле бул ыңгайлуу "Кайда барат?" Сиэтл шаарын издөө куралы! Шаарыңыздын таштанды чогултуу кызматын издеп, анын веб -сайты менен таанышып, шаарыңызда кандай ресурстар бар экенин текшериңиз.

2 -кадам: Лобеде Custom ML моделин түзүңүз

Лобеде Custom ML моделин түзүңүз
Лобеде Custom ML моделин түзүңүз
Лобеде Custom ML моделин түзүңүз
Лобеде Custom ML моделин түзүңүз
Лобеде Custom ML моделин түзүңүз
Лобеде Custom ML моделин түзүңүз
Лобеде Custom ML моделин түзүңүз
Лобеде Custom ML моделин түзүңүз

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

Бул жерде Lobeni кантип колдонуу боюнча кыскача сереп:

1. Lobe программасын ачып, жаңы долбоор түзүңүз.

2. Сүрөткө тартуу же импорттоо жана аларды тиешелүү категорияларга белгилөө. (1 -сүрөт) Бизге бул энбелгилер кийинчерээк долбоордун программалык бөлүгүндө керек болот.

Сүрөттөрдү импорттоонун эки жолу бар:

  1. Түздөн -түз компьютериңиздин камерасынан нерселерди сүрөткө тартып алыңыз, же
  2. Компьютериңиздеги учурдагы папкалардан сүрөттөрдү импорттоо.

    Фото папкасынын аты категория энбелгиси катары колдонуларын унутпаңыз, андыктан ал учурдагы энбелгилерге дал келерин текшериңиз

Четте: Мен эки ыкманы тең колдонуп бүттүм, анткени сизде канчалык көп фото болсо, моделиңиз ошончолук так болот.

3. Моделдин тактыгын текшерүү үчүн "Play" функциясын колдонуңуз. Моделдин кайда экенин жана так эместигин аныктоо үчүн аралыкты, жарыктандырууну, колдун позициясын ж.б. Зарылчылыгына жараша дагы сүрөттөрдү кошуңуз. (Сүрөттөр 3 - 4)

4. Даяр болгондо, Lobe ML моделин TensorFlow (TF) Lite форматында экспорттоңуз.

Кеңештер:

  • Сүрөттөрдү импорттоодон мурун, сизге керектүү бардык категориялардын тизмесин түзүңүз жана аларды кантип белгилөөнү каалайсыз (мис. "Таштанды", "кайра иштетүү", "компост ж. Б.)"

    Эскертүү: Өзгөртүү керек болгон коддун көлөмүн азайтуу үчүн жогорудагы "Lobe Model Labels" фотосүрөттө көрсөтүлгөндөй этикеткаларды колдонуңуз

  • Сүрөттө башка нерселердин сүрөттөрү бар "таштанды эмес" категориясын кошуңуз (мисалы, колуңуз жана колдоруңуз, фонуңуз ж. Б.)
  • Мүмкүн болсо, Pi Cameraдан сүрөт тартып, Lobeго импорттоңуз. Бул сиздин моделдин тактыгын абдан жакшыртат!
  • Дагы сүрөттөр керекпи? Kaggleдеги ачык булактардын маалымат топтомун, анын ичинде таштандылардын классификациясынын сүрөттөр топтомун караңыз!
  • Дагы жардам керекпи? Redditтеги Lobe Коомчулугу менен байланышыңыз!

3 -кадам: Аны куруңуз: Аппараттык

Аны куруңуз: Аппараттык!
Аны куруңуз: Аппараттык!
Аны куруңуз: Аппараттык!
Аны куруңуз: Аппараттык!
Аны куруңуз: Аппараттык!
Аны куруңуз: Аппараттык!

1. Пи Камераны кылдаттык менен Пи -ге туташтырыңыз (Көбүрөөк маалымат алуу үчүн Пи Фондунун башталышын караңыз). (Сүрөт 1)

2. Пи GPIO казыктарына баскычтарды жана LEDдерди туташтыруу үчүн зымдардын схемасын аткарыңыз.

  • Баскыч: Баскычтын бир бутун GPIO пин 2ге туташтырыңыз. Экинчисин каршылык аркылуу GPIO GND пинге туташтырыңыз.
  • Сары LED: Позитивдүү (узунураак) бутту GPIO pin 17ге туташтырыңыз. Башка бутун резистор аркылуу GPIO GND пинге туташтырыңыз.
  • Көк LED: Оң бутту GPIO пин 27ге туташтырыңыз. Башка бутун резистор аркылуу GPIO GND пинге туташтырыңыз.
  • Жашыл LED: Оң бутту GPIO pin 22ге туташтырыңыз. Башка бутун резистор аркылуу GPIO GND пинге туташтырыңыз.
  • Кызыл LED: Оң бутту GPIO пин 23кө туташтырыңыз. Башка бутуңузду резистор аркылуу GPIO GND пинге туташтырыңыз.
  • Ак LED: Оң бутту GPIO пин 24кө туташтырыңыз. Башка бутуңузду резистор аркылуу GPIO GND пинге туташтырыңыз.

3. Сиздин схемаңызды нан тактасында сынап көрүү жана туташууларды туташтыруудан мурун, программаны иштетүү сунушталат. Бул үчүн биз программалык камсыздоо программабызды жазып, жүктөшүбүз керек, андыктан кийинки кадамга баралы!

4 -кадам: Code It: Программалык камсыздоо

Code It: Программалык камсыздоо!
Code It: Программалык камсыздоо!
Code It: Программалык камсыздоо!
Code It: Программалык камсыздоо!

1. Компьютериңизде WinSCPти ачыңыз жана Пиңизге туташыңыз. Pi үй каталогунда Lobe папкасын түзүңүз жана ошол каталогдо модель папкасын түзүңүз.

2. Жыйынтыгында Lobe TF папкасынын мазмунун Пи -ге сүйрөңүз. Файлдын жолун белгилеңиз:/home/pi/Lobe/model

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

pip3 орнотуу

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

4. Таштанды классификаторунун кодун (rpi_trash_classifier.py) бул реподон Piге түшүрүңүз (1 -сүрөттө көрсөтүлгөндөй "Код" баскычын басыңыз).

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

5. Аппаратты Пионун 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 моделин жүктөө үчүн бир аз убакыт талап кылынат. Программа сүрөт тартууга даяр болгондо, абалдын жарыгы (ак LED) импульстуу болот.

Сүрөт тарткандан кийин, программа сүрөттү Lobe ML моделине салыштырып, болжолдоону чыгарат (83 -сап). Чыгуу кайсы жарык күйгүзүлгөнүн аныктайт: сары (таштанды), көк (кайра иштетүү), жашыл (компост) же кызыл (коркунучтуу калдыктар).

Эгерде индикаторлордун эч бири күйбөсө жана абалдын диоду импульстук режимге кайтып келбесе, анда тартылган сүрөт "таштанды эмес", башкача айтканда, сүрөттү кайра тартып алыңыз!

Сүрөт тартуу

Сүрөт тартуу үчүн баскычты басыңыз. Прессти каттоодон өткөрүү үчүн, жок дегенде 1 секундага чейин басып туруу керек болушу мүмкүн экенин эске алыңыз. Камеранын көрүнүшүн жана алкагын жакшыраак түшүнүү үчүн, кээ бир сыноо сүрөттөрүн алуу, андан кийин Иш столунда ачуу сунушталат.

Колдонуучуга объектти жайгаштырууга жана камеранын жарык деңгээлин жөнгө салууга убакыт берүү үчүн, сүрөттү толук тартуу үчүн болжол менен 5 секунд талап кылынат. Сиз бул жөндөөлөрдү коддо өзгөртө аласыз (35 жана 41 -саптар), бирок Пи Фонду жарык деңгээлин тууралоо үчүн минималдуу 2 сек сунуштайт.

Мүчүлүштүктөрдү оңдоо

Эң чоң кыйынчылык - тартылган сүрөттү биз күткөндөй камсыз кылуу, андыктан сүрөттөрдү карап чыгууга жана күтүлгөн натыйжаларды индикатордук LED чыгышы менен салыштырууга убакыт бөлүңүз. Керек болсо, сүрөттөрдү Lobe ML моделине өткөрүп, түз жыйынтык чыгаруу жана тезирээк салыштыруу үчүн бере аласыз.

Белгилей турган бир нече нерсе:

  • TensorFlow китепканасы, кыязы, кээ бир эскертүүчү билдирүүлөрдү ыргытып жибериши мүмкүн - бул бул үлгү коддо колдонулган версия үчүн мүнөздүү.
  • Божомолдоо энбелгилери led_select () функциясында жазылгандай так болушу керек, анын ичинде баш тамга, пунктуация жана интервал. Эгерде сизде башка Лобе модели болсо, анда аларды өзгөртүүнү унутпаңыз.
  • Пи туруктуу электр менен камсыздоону талап кылат. Пи электр жарыгы ачык, катуу кызыл болушу керек.
  • Эгерде күтүлгөндө бир же бир нече светодиод күйбөй турган болсо, анда аларды буйрук менен мажбурлап күйгүзүңүз:

red_led.on ()

6 -кадам: (Милдеттүү эмес) Аны куруңуз: Районуңузду аягына чыгарыңыз

(Кошумча) Аны куруңуз: Районуңузду аягына чыгарыңыз!
(Кошумча) Аны куруңуз: Районуңузду аягына чыгарыңыз!
(Кошумча) Аны куруңуз: Районуңузду аягына чыгарыңыз!
(Кошумча) Аны куруңуз: Районуңузду аягына чыгарыңыз!
(Кошумча) Аны куруңуз: Районуңузду аягына чыгарыңыз!
(Кошумча) Аны куруңуз: Районуңузду аягына чыгарыңыз!

Эми биз долбоорубузду күткөндөй иштей тургандай кылып текшерип, керек болсо мүчүлүштүктөрдү оңдогондон кийин, биз өзүбүздүн схеманы ширетүүгө даярбыз!

Эскертүү: Эгерде сизде ширетүүчү үтүк жок болсо, анда бул кадамды өткөрүп жиберишиңиз мүмкүн. Бир альтернатива - зым байланыштарын ысык желим менен каптоо (бул параметр кийинчерээк нерселерди оңдоого/кошууга/колдонууга мүмкүндүк берет, бирок бузулушу ыктымал), же эпоксидди же ушуга окшош туруктуу клейди колдонуңуз (бул параметр алда канча бышык болот) бирок муну кылгандан кийин сиз схеманы же потенциалды колдоно албай каласыз)

Менин дизайн тандоолорум жөнүндө тез комментарий (Фото 1):

  • Мен LED жана Pi GPIO үчүн аял секирүүчү зымдарды тандап алдым, анткени алар мага светодиоддорду алып салууга жана түстөрдү алмаштырууга же керек болсо жылдырууга мүмкүнчүлүк берет. Эгер туташууларды туруктуу кылгыңыз келсе, муну өткөрүп жиберишиңиз мүмкүн.
  • Ошо сыяктуу эле, мен баскыч үчүн JST туташтыргычын тандадым.

Алдыга курулушка

1. Аял секирүүчү зымдардын ар бирин экиге бөлүңүз (ооба, баары!). Зым сыйрыткычтарды колдонуп, болжол менен 1/4 (1/2 см) зым изоляциясын алып салыңыз.

2. Светодиоддордун ар бири үчүн терс (кыскараак) бутуна 220Ω резисторду кошуңуз. (Сүрөт 2)

3. 1 (2см) жылуулукту кысуучу түтүктүн кичинекей бөлүгүн кесип, LED менен резистордун өтүүчү жерин басып коюңуз. Башка резистордун буту жеткиликтүү экенин текшериңиз, андан кийин түйүн бекемделгенге чейин кичирейтүүчү түтүктү ысытыңыз. (Сүрөт 3)

4. Ар бир светодиодду аялдардын секирүүчү зымдарына кошуңуз. (Сүрөт 4)

5. Өткөргүч зымдарды (мисалы, скотч менен), андан кийин приставкалуу тактаңызга (ПХБ) ширетүүчү зымдарды белгилеңиз. (Сүрөт 5)

6. Андан кийин, ар бир светодиодду тиешелүү Pi GPIO төөнөгүчүнө туташтыруу үчүн (кесилген) аял секирүүчү зымды колдонуңуз. Жылаңач металл ПДК аркылуу оң LED бутуна туташып турушу үчүн, секирүүчү зым менен этүү. (Сүрөт 5)

Эскертүү: Бул зым кайда ширетилет, бул сиздин PCB жайгашууңузга жараша болот. Сиз ошондой эле бул зымды позитивдүү LED секирүүчү зымга ширете аласыз.

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 үчүн камераны, баскычтарды жана LEDдерди кармап турган, ошондой эле Пиди коргогон корпус түзүңүз. Картон корпусун тез прототиптөө үчүн өзүңүздүн корпусуңузду жасаңыз же биздин төмөндөгү курулуш көрсөтмөлөрүбүздү аткарыңыз!

  1. Чакан картон кутунун үстүндө баскычтардын, абалдын жарыгынын, идентификатордун жарыктарынын жана pi камерасынын терезесинин жайгашкан жерлерин издеңиз (Фото 1).

    Эскертүү: Pi камерасынын терезеси болжол менен 3/4 "x 1/2" болушу керек

  2. Сиздин так бычакты колдонуп, издерин кесип.

    Эскертүү: Сиз бара жатканда өлчөмдөрдү сынап көргүңүз келиши мүмкүн (Фото 1)

  3. Кошумча: Корпусту боё! Мен спрей боёкту тандап алдым:)
  4. Pi Camera үчүн тик бурчтуу "терезе" капкагын кесип (Сүрөт 4) жана кутунун ичине клей
  5. Акыр -аягы, Pi электр кабелинин уячасын кесип алыңыз.

    Пи кабелдик уячасы үчүн эң жакшы жерди табуу үчүн биринчи кезекте бардык электрониканы орнотуу сунушталат

8 -кадам: Орнотуу жана жайгаштыруу

Орнотуу жана жайгаштыруу!
Орнотуу жана жайгаштыруу!

Дал ушул! Долбооруңузду орнотууга жана жайылтууга даярсыз! Таштанды челектериңиздин үстүнө корпусту коюп, Пиди сайыңыз жана программаны иштетип, биздин калдыктарды азайтуунун тезирээк жана ишенимдүү жолун алыңыз. Ооба!

Алга бара жатат

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

Сунушталууда: