Мазмуну:
- 1 -кадам: талаптар
- 2 -кадам: маалыматтарды окутуу
- 3 -кадам: Pi Camera Прогноздорун ишке ашыруу
- 4 -кадам: Arduino роботу
- 5 -кадам: Тестирлөө
- 6 -кадам: Бардык кошумча файлдар
Video: Raspberry Pi 4 Жол белгилерин таануу роботу: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Бул көрсөтмө менин университетимдин долбооруна негизделген. Максаты - нейрон тармагы сүрөттү анализдей турган системаны түзүү, андан кийин таануунун негизинде ардуино роботуна Рос аркылуу жылууну айтат.
Мисалы, эгер оңго бурулуу белгиси таанылса, анда робот оңго бурулат, эгер солго бурулуу белгиси таанылса, анда робот солго бурулат, эгер таанылбаса, робот алдыга карай уланат. Колдонула турган маалымат топтому INI (2019) жол белгисин расмий таануу болуп саналат (Institut Fur Neuroinformatik), бул маалымат базасында 43 класс бар, бирок экөө гана керек; Маалыматтар базасындагы 00033 жана 00034 папкалар солго жана оңго бурулуш белгилери.
1 -кадам: талаптар
Бул долбоорго коюлган талаптар төмөнкүлөр:
Ардуино роботу. (негизинен arduino uno, мотор айдоочу жана моторлор) (эгер роботту колдонбосоңуз, кереги жок)
Малина пи 4.
Пи камера.
Программалык камсыздоо талап кылынат:
Python 3.
OpenCV 4.
Tensorflow.
arduino IDE (эгер сиз робот колдонбосоңуз, анда кереги жок)
Ros (эгер сиз робот колдонбосоңуз, анда кереги жок)
Сүйүктүү питон идеяңыз кандай болбосун (Малинанын пиинде мен Тонни колдоном).
OpenCV жана Tensorflowту орнотуу үчүн, Адриандын көрсөтмөлөрүн аткарыңыз. Шилтеме:
Мен анын үйрөткүчтөрүн мүмкүн болушунча карап чыгууну сунуштайм, алар чынында эле кызыктуу жана экөө тең жаңы баштагандарга, ошондой эле орто класстарга пайдалуу.
2 -кадам: маалыматтарды окутуу
Поезд скрипти 43 класстан 50 000ге жакын сүрөттөрдү камтыган маалымат базасына кирүү үчүн иштелип чыккан. Скрипт ар кандай китепканаларды колдонуу менен python менен жазылган: os - бул python скриптин маалымат базасы жайгашкан туура каталогго шилтеме кылуу үчүн. Matplotlib - бул окутуу моделиндеги маалыматтарды көрсөтүү үчүн. Tensorflow жана keras - бул жасалма нейрон тармагынын моделин түзүү үчүн колдонулган китепканалар, алар моделди иштеп чыгуу үчүн колдонулат. Numpy - бул китепкана сүрөттөрдү массивге айлантууга арналган, андан кийин божомолду алуу үчүн моделге коюуга болот.
Тиркелген скрипт - бул маалымат топтомунан модель жасоо үчүн питон коду. Бул (5, 5) киргизүү менен конвульсиялык 2Dден жана релуну активдештирүүдөн, андан кийин бириктирүүдөн турат, муну аткаргандан кийин, кириш ошол эле активдештирүү жана бириктирүү менен (3, 3) киргизүү менен башка конвульсиядан өтөт. Бул акыркы жолу тегизделүүдөн мурун болот, андан кийин тыгыздыгы бар класстардын санына колдонулат, бул учурда 43.
Кийинки кадам моделди түзүү болчу. Бул оптимизаторду орнотуучу бөлүк, sgd эң ылайыктуу болчу, анткени бул 1 -тапшырмада колдонулган оптимизаторго окшош болгондуктан, Sgd стохастикалык градиент түшүүнү билдирет. Ошондой эле компилятордун ичинде жоготууну орнотуу керек, sparse_categorical_crossentropy жоготууну тандоо эң ылайыктуу, анткени категориялар бүтүн сандар болуп саналат жана модель ар бир класс үчүн болжолдоону 0 менен 1. 1 ортосундагы калкыма катары чыгарат. 100% тактык.
Компилятор аяктагандан кийин, моделдин сүрөт кириштерин иштете башташы үчүн генератор колдонулушу керек. Генератор бир нече бөлүктөн турат: training_set - бул окутуу үчүн колдонулган маалымат базасына шилтеме, steps_per_epoch - бул бир доорго талап кылынган кадамдар, доорлор - бул программанын толук маалымат топтому аркылуу канча жолу кайталанышы., validation_data - бул текшерүү үчүн колдонулган маалымат базасына шилтеме, validation_steps - текшерүү үчүн колдонулган кадамдардын саны, текшерүү ар бир доордун аягында болот.
Жалпысынан алганда, бардык маалымат топтомун толугу менен тазалоо бир доордо бүтүшү керек. Демек, мисалы, 1024 сүрөттөрдүн маалымат топтому талап кылынат: Топтомдун өлчөмү = 32, Кадамдар бир доорго = 32, доорлор = 1. Ар бир кадамга партиянын бүткүл өлчөмү кирет, андыктан партиянын өлчөмү 32 болгондо кадамдар 32 болот. кол, класстардын санына караганда чоңураак партияга ээ болгону жакшы, анткени эгерде партиянын өлчөмү кичирээк болсо, анда ар бир кадамга ар бир класстын сүрөтү кире албайт.
Модель машыгууну аяктагандан кийин, матплотлибдин жардамы менен программа жыйынтыктардын графигин түзөт, бул тренингдин тарыхын башынан аягына чейин көрсөтөт. График тактык, текшерүү тактыгы, жоготуу жана валидация жоготуусунан турат, бул ар бир доорго бөлүнүп, машыгуунун кандай жүрүп жатканын көрсөтөт. Акыркы этап - моделди.h5 файлы катары сактоо, кийинчерээк болжолдоо процессине кирүүгө болот. Моделди сактоо, болжолдоо программасы ишке кирген сайын, окуу программасын кайра иштетүүнүн кажети жок дегенди билдирет. Окутуу программасы малина пи боюнча бир доордо 10 мүнөткө чейин созулушу мүмкүн.
Тренингдин сценарийи тиркелет:
3 -кадам: Pi Camera Прогноздорун ишке ашыруу
Кийинки программа - болжолдоо жана жарыялоочу скрипт.
Биринчи этап - model.load () аркылуу моделди жүктөө. Экинчи этап - opencv аркылуу пи камерадан кадрларды кайталап, андан кийин кадрдын өлчөмүн 32 х 32 пикселдик машыгуу баскычында колдонулган өлчөмдөргө бирдей кылып өзгөртүү. Бул бүткөндөн кийин, жаңы өлчөмү алынган кадр модели аркылуу чыгарылат model.predict () матрицаны чыгарат, матрицанын ар бир элементи 0дөн 1ге чейин калкып чыгат, элементтин индекси ал көрсөткөн класска окшош, демек биринчи элемент биринчи класс жана сан - бул класстын сүрөтүнүн аныктыгын болжолдоо. Мисалы
ЭСКЕРТҮҮ: Эгерде сиз робот тарабын колдонбосоңуз. Жөн эле сызыктарды алып салыңыз:
"импорттук"
Def talker (багыт):
кабар = String ()
pub = rospy. Publisher ('робот', String, queue_size = 10)
rospy.init_node ('talker', анонимдүү = Чын)
кабар = багыт
rospy.loginfo (билдирүү)
pub.publish (билдирүү)"
"сүйлөөчү (багыт)"
Pi камерасынын сценарийи тиркелет.
4 -кадам: Arduino роботу
Акыркы кадам - робот программасынын сценарийи.
Бул C ++ тилинде жазылган жана arduino uno үчүн.ino файлы. Программа ros китепканасын талап кылат, аны идеалдын ичинде китепканалар менеджеринен тапса болот. Бул импорттолгондон кийин мисал файлдары бар, мен led blink файлын кеңейтүүнү чечтим, анткени бул мага керектүү нерсеге окшош максатты көздөйт. Программа электр тогу өчкөнгө чейин уланат, биринчиден теманын роботун угат, ал ошол темадан буйрук алганда, команданын айткандарын көрүү үчүн if оператору болот. Эгерде буйрук сол болсо, скрипт солго бурулуу ыкмасын иштетет, эгер буйрук туура болсо, ал оңго бурулуу ыкмасын иштетет, ал эми башка ыкма иштетет. Бул үч ыкма бири -бирине абдан окшош, алар санарип казыктарды LOW (жер) же 100 (PWM) деп айтышат, мотор айдоочусуна бир аз гана жол берүүнү айтып, робот өтө тез эмес. чыңалуу. Бул чыгуулардын тартиби роботту солго жана оңго же алдыга бурууга мажбурлайт, бул моторго кетүүчү чыңалуунун багытына байланыштуу.
Arduino үчүн.ino скрипти тиркелет.
5 -кадам: Тестирлөө
Долбоор башынан аягына чейин тиркелген. Биринчи сүрөт процесстеги машыгууну көрсөтөт. Бул аяктагандан кийин жасалган моделдин принти көрсөтүлөт. Үчүнчү сүрөт окутуу сценарийинен бир божомолду көрсөтөт. бул окуу сценарийинин акыркы этабы. Эгерде сиз машыгуу сценарийи жайгашкан папканы карасаңыз, график жана модель түзүлгөн. График бул жерде 4 -сүрөткө окшош болушу керек, бул тренингдин тарыхын башынан аягына чейин көрсөтөт.
Акыркы сүрөт pi камерасынын сценарийин иштетип жатканда, бул pi камерасынан түз агым. бир божомол ар бир кадрда жасалат жана божомол терминалда басылат. Камера эмнени көрүп жатканын кадр көрсөтөт.
Бул долбоор боюнча менин университет отчетум тиркелет. Сураныч, долбоордун чоо -жайын окуп чыгыңыз.
6 -кадам: Бардык кошумча файлдар
Алардын айрымдары мен жолдо жасаган файлдарды текшерип жатышты.
Сунушталууда:
Коронавирустун белгилерин аныктоо жана маалыматтарды каттоо менен Smart Watchz: 10 кадам
Smart Watchz Corona симптомдорун аныктоо жана маалыматтарды каттоо менен: Бул LM35 жана Accelerometer аркылуу серверде маалыматтарды каттоо менен Corona белгилерин аныктоочу Smartwatch. Rtc убакытты көрсөтүү жана телефон менен шайкештештирүү жана аны маалыматтарды каттоо үчүн колдонуу үчүн колдонулат. Esp32 Blue менен кортекс контроллери бар мээ катары колдонулат
Raspberry Pi боюнча TensorFlow менен сүрөт таануу: 6 кадам
Raspberry Pi боюнча TensorFlow менен сүрөт таануу: Google TensorFlow-бул маалымат агымынын графиктерин колдонуу менен сандык эсептөө үчүн ачык булак программалык китепканасы. Бул Google тарабынан Machine Learning жана Deep Learning Technologiesнын ар кандай тармактарында колдонулат. TensorFlow башында Google Brai тарабынан иштелип чыккан
Май роботу: Экзистенциалдык кризис менен Arduino роботу: 6 кадам (Сүрөттөр менен)
Май роботу: Ардуино роботу экзистенциалдык кризис менен: Бул долбоор " Рик жана Морти " анимациялык сериясына негизделген. Эпизоддордун биринде Рик робот жасайт, анын бирден бир максаты - сары май алып келүү. Брюсфейдин (Брюссель инженердик факультети) студенттери катары бизде механикага тапшырма бар
Жүздү таануу+таануу: 8 кадам (сүрөттөр менен)
Жүздү таануу+таануу: Бул камерадан OpenCV менен жүздү таануунун жана таануунун чуркоосунун жөнөкөй мисалы. ЭСКЕРТҮҮ: Мен бул проектти сенсорлордун сынагы үчүн жасадым жана камераны сенсор катары таануу үчүн колдондум. Ошентип, биздин максатыбыз ушул сессияда 1. Анаконду орнотуу
VRBOT (Үн таануу роботу): 10 кадам (Сүрөттөр менен)
VRBOT (Үн таануу роботу): Бул Нускамада биз робот жасайбыз (RC машинасына окшош), ал үн менен башкарылат, башкача айтканда Үн таануу. Мен сизге кененирээк маалымат берүүдөн мурун, бул сөз таануу эмес, үн таануу экенин билиши керек