Мазмұны:

Raspberry Pi 4 жол белгілерін тану роботы: 6 қадам
Raspberry Pi 4 жол белгілерін тану роботы: 6 қадам

Бейне: Raspberry Pi 4 жол белгілерін тану роботы: 6 қадам

Бейне: Raspberry Pi 4 жол белгілерін тану роботы: 6 қадам
Бейне: Сводные таблицы Excel с нуля до профи за полчаса + Дэшборды! | 1-ое Видео курса "Сводные Таблицы" 2024, Қараша
Anonim
Raspberry Pi 4 жол белгілерін тану роботы
Raspberry Pi 4 жол белгілерін тану роботы

Бұл нұсқаулық менің университет жобасына негізделген. Мақсаты - нейрондық желі суретті талдайтын, содан кейін тануға негізделген ардуино роботына Рос арқылы қозғалуды айтатын жүйе құру.

Мысалы, егер оңға бұрылу белгісі танылса, робот оңға бұрылады, егер солға бұрылу белгісі танылса, робот солға бұрылады, егер екеуі де танылмаса, робот алға қарай жалғастырады. Қолданылатын деректер жиынтығы INI (2019) жол белгілерін ресми тану болып табылады (Institut Fur Neuroinformatik), бұл деректер қорында 43 класс бар, тек екеуі қажет; Деректер қорындағы 00033 және 00034 қалталар солға және оңға бұрылу белгілері болып табылады.

1 -қадам: талаптар

Талаптар
Талаптар
Талаптар
Талаптар
Талаптар
Талаптар

Бұл жобаға қойылатын талаптар:

Ардуино роботы. (негізінен arduino uno, мотор жүргізушісі және қозғалтқыштар) (егер сіз роботты пайдаланбасаңыз қажет емес)

Таңқурай пи 4.

Pi камерасы.

Қажетті бағдарламалық қамтамасыз ету:

Python 3.

OpenCV 4.

Тензорлау.

arduino IDE (егер сіз роботты пайдаланбасаңыз қажет емес)

Роз (егер сіз роботты пайдаланбасаңыз қажет емес)

Сіздің сүйікті питон идеяңыз қандай болса да (таңқурай пиінде мен Тонниді қолданамын).

OpenCV мен Tensorflow орнату үшін Adrian нұсқауларын орындаңыз. Сілтеме:

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

2 -қадам: Деректерді оқыту

Пойыз сценарийі 43 класты 50 000 суреттерден тұратын жинақталған мәліметтер қорына кіруге арналған. Сценарий әр түрлі кітапханаларды қолдана отырып, python тілінде жазылған: os - бұл питон сценарийін мәліметтер базасы орналасқан дұрыс каталогпен байланыстыруға арналған. Matplotlib - бұл жаттығу үлгісіндегі деректерді көрсетуге арналған. Tensorflow және keras - бұл жасанды нейрондық желі моделін жасау үшін пайдаланылатын кітапханалар, олар модельді жобалау үшін қолданылады. Numpy - бұл кітапхана суретті массивке айналдыруға арналған, содан кейін болжамды алу үшін модель арқылы өтуге болады.

Қосылған сценарий - бұл деректер жиынынан модель жасауға арналған питон коды. Бұл (5, 5) кірісі бар конвульсиялы 2D -ден және релюді қосудан, содан кейін біріктіруден тұрады, егер бұл орындалса, кіріс (3, 3) кірісі бірдей активация мен біріктіру арқылы басқа конвульсиядан өтеді. Бұл тегістелгенге дейін соңғы рет орын алады, содан кейін тығыздық сыныптардың санына қолданылады, бұл жағдайда 43.

Келесі қадам модельді құрастыру болды. Бұл оптимизаторды орнататын бөлігі, sgd ең қолайлы болды, себебі бұл 1 -тапсырмада қолданылатын оптимизаторға ұқсас болды, Sgd стохастикалық градиент түсуін білдіреді. Сондай -ақ компиляторда шығынды орнату қажет, sparse_categorical_crossentropy жоғалтуды таңдау ең қолайлы, себебі санаттар бүтін сандар болып табылады және модель әр сынып үшін 0 мен 1 арасындағы өзгермелі болжамды шығарады. 100% дәлдік.

Компилятор аяқталғаннан кейін модельге кескін кірістерін өңдеуді бастау үшін генераторды қолдану қажет. Генератор бірнеше бөліктен тұрады: training_set - бұл дайындық үшін қолданылатын деректер жиынының сілтемесі, steps_per_epoch - бұл әр дәуірге қажет кезеңдердің саны, дәуірлер - бұл бағдарлама толық деректер жиынтығымен қанша рет қайталанады, validation_data - бұл тексеру үшін қолданылатын деректер жиынына сілтеме, validation_steps - тексеру үшін қолданылатын қадамдар саны, валидация әр дәуірдің соңында болады.

Әдетте, барлық деректер жиынтығын бір уақытта жою қажет. Мысалы, 1024 кескіннің деректер жиынтығына мыналар қажет болады: Топтаманың өлшемі = 32, Әр кезеңге арналған қадамдар = 32, дәуірлер = 1. Әр қадамға партияның барлық өлшемі кіреді, сондықтан партияның өлшемі 32 болғанда қадамдар 32 болады. қолмен, пакеттердің саны сыныптар санынан үлкен болғаны дұрыс, себебі егер пакеттің өлшемі кішірек болса, онда әр қадамға әр сыныптан сурет қосуға болмайды.

Модель жаттығуды аяқтағаннан кейін, matplotlib көмегімен бағдарлама шығыс графигін жасайды, бұл жаттығудың басынан аяғына дейін тарихын көрсетеді. График дәлдіктен, тексерудің дәлдігінен, жоғалудан және валидацияның жоғалуынан тұрады, бұл әр кезеңге бөлініп, жаттығудың қалай өткенін көрсетеді. Соңғы кезең - бұл модельді.h5 файлы ретінде сақтау, оған кейін болжау процесі үшін қол жеткізуге болады. Үлгіні сақтау дегеніміз, болжау бағдарламасы орындалған сайын, оқу бағдарламасын қайта іске қосудың қажеті жоқ. Оқу бағдарламасы таңқурай пирогында әр дәуірде 10 минутқа дейін созылуы мүмкін.

Тренинг сценарийі қоса берілген:

3 -қадам: Pi Camera болжамдарын іске асыру

Келесі бағдарлама - болжау мен баспагер сценарийі.

Бірінші кезең - model.load () көмегімен үлгіні жүктеу. Екінші кезең - opencv көмегімен pi камерасынан кадрларды қайталау, содан кейін кадрды жаттығу кезеңінде қолданылатын кіріс өлшемдері 32х32 пиксель өлшеміне дейін өзгерту. Бұл әрекетті орындағаннан кейін, матрицаны шығаратын model.predict () көмегімен модель арқылы жаңа өлшем өлшемі қойылады, матрицаның әр элементі 0 -ден 1 -ге дейінгі флот болып табылады, сондықтан элементтер индексі ол ұсынатын класспен бірдей, демек бірінші элемент - бірінші сынып, ал сан - бұл кластың имиджінің сенімділігін болжау. Мысалы,

ЕСКЕРТПЕ: Егер сіз робот жағын пайдаланбасаңыз. Жолдарды алып тастаңыз:

«импорттық росси»

«Def -talker (бағыт):

хабарлама = String ()

pub = rospy. Publisher ('робот', String, queue_size = 10)

rospy.init_node ('сөйлеуші', анонимді = Рас)

хабар = бағыт

rospy.loginfo (хабар)

pub.publish (хабар) »

«сөйлеуші (бағыт)»

Pi камерасының сценарийі бекітілген.

4 -қадам: Arduino робот

Соңғы қадам - робот бағдарламасының сценарийі.

Бұл C ++ тілінде жазылған және arduino uno үшін.ino файлы. Бағдарлама ros кітапханасын қажет етеді, оны кітапхана менеджерінен табуға болады. Бұл импортталғаннан кейін мысал файлдары бар, мен жыпылықтайтын файлды кеңейтуді таңдадым, себебі бұл маған қажет нәрсеге ұқсас мақсатты жасайды. Бағдарлама қуат ажыратылғанша циклды жалғастырады, алдымен тақырып роботы тыңдалады, егер ол осы тақырыптан пәрменді алса, онда команданың не айтқанын көру үшін if операторы болады. Егер пәрмен сол жақта болса, сценарий солға бұрылу әдісін қолданады, егер пәрмен дұрыс болса, ол оңға бұрылу әдісін іске қосады, әйтпесе ол алға жіберу әдісін қолданады. Бұл үш әдіс бір -біріне өте ұқсас, олар цифрлық түйреуіштердің LOW (жер) немесе 100 (PWM) болуы керектігін айтады, бұл робот мотор драйверіне сәл ғана рұқсат беруін айтып, тым жылдам емес. кернеу. Бұл роботтар роботты солға немесе оңға немесе алға қарай бұруға мәжбүр етеді, бұл қозғалтқыштарға түсетін кернеудің бағдарына байланысты.

Arduino үшін.ino сценарийі бекітілген.

5 -қадам: тестілеу

Сынақ
Сынақ
Сынақ
Сынақ
Сынақ
Сынақ

Жобаның басынан аяғына дейін суреттер қоса беріледі. Бірінші суретте дайындық процесі көрсетілген. Бұл аяқталғаннан кейін жасалған модельдің көшірмесі көрсетіледі. Үшінші сурет жаттығу сценарийінен болжамды көрсетеді. бұл жаттығу сценарийінің соңғы кезеңі. Егер сіз оқу сценарийі орналасқан қалтаға қарасаңыз, график пен модель жасалған. График мұнда 4 -сурет сияқты болуы керек, бұл жаттығудың басынан аяғына дейін тарихын көрсетеді.

Соңғы сурет - pi камерасының сценарийі жұмыс істеп тұрған кезде, бұл - камерадан тікелей эфир. әр кадрға болжам жасалады және терминалда баспа басылады. Рамка камераның не көріп тұрғанын көрсетеді.

Бұл жоба бойынша менің университет есебім қоса берілген. Жоба туралы толығырақ білу үшін оқыңыз.

6 -қадам: Барлық қосымша файлдар

Барлық қосымша файлдар
Барлық қосымша файлдар

Олардың кейбіреулері мен жол бойында жасаған файлдарды тексерді.

Ұсынылған: