Мазмұны:

NVIDIA JetBot көмегімен ауысымдық оқыту - трафик конусымен қызықты: 6 қадам
NVIDIA JetBot көмегімен ауысымдық оқыту - трафик конусымен қызықты: 6 қадам

Бейне: NVIDIA JetBot көмегімен ауысымдық оқыту - трафик конусымен қызықты: 6 қадам

Бейне: NVIDIA JetBot көмегімен ауысымдық оқыту - трафик конусымен қызықты: 6 қадам
Бейне: NVIDIA JETBOT - Autonomous Vehicle for Brazilian Traffic Signs 2024, Шілде
Anonim

Менің GithubFollow туралы: Мен AI мен машиналық оқытудың қосымшаларын ұнатамын, әсіресе робототехникада dvillevald туралы толығырақ »

Роботқа камера мен тереңдетілген оқытудың соңғы үлгісін қолдана отырып, трафик конусының лабиринтінде жол табуды үйрет.

Жабдықтар

  • NVIDIA JetBot

    NVIDIA JetBot Wiki -дің материалдық билеті бетінде танымал сатушылардан сілтемелерді сатып алумен қатар, JetBot құру үшін қажет нәрсенің бәрі көрсетілген

  • NVIDIA GPU бар компьютер

    Модельді үйрету қажет

  • BlueDot Trading 4”RC Racing Agility конусы, апельсин - 20 жиынтығы

1 -қадам: Мотивация

Image
Image

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

2 -қадам: NVIDIA JetBot және жобаға шолу

NVIDIA JetBot және жобаға шолу
NVIDIA JetBot және жобаға шолу

JetBot-бұл NVIDIA Jetson Nano жиынтығына негізделген ашық көзі бар робот. Сіз оны қалай құру және орнату туралы егжей -тегжейлі нұсқауларды таба аласыз.

Бұл жоба NVIDIA JetBot Wiki ұсынған соқтығысудан сақтанудың өзгертілген үлгісі. Ол әрқайсысы бөлек Jupyter дәптерінде сипатталған үш негізгі қадамнан тұрады:

  • JetBot - notebook data_collection_cones.ipynb деректерін жинаңыз
  • Басқа GPU машинасындағы пойыз моделі - notebook train_model_cones.ipynb
  • JetBot - live_demo_cones.ipynb ноутбугында тірі демонстрацияны іске қосыңыз

Бұл үш Jupyter дәптерін мына жерден таба аласыз

3 -қадам: JetBot құрастырыңыз және Jupyter жазу кітапшаларын жүктеңіз

  1. Мұнда түсіндірілгендей JetBot құрыңыз және орнатыңыз
  2. Http: //: 8888 тармағына өту арқылы роботқа қосылыңыз. Әдепкі jetbot құпия сөзімен кіріңіз
  3. Барлық басқа жұмыс істейтін ноутбуктерді Ядро -> Барлық ядроларды өшіру арқылы таңдаңыз.
  4. ~/Ноутбуктер/тармағына өтіңіз.
  5. Жаңа ішкі қалта жасау ~/Ноутбуктер/traffic_cones_driving/
  6. Data_collection_cones.ipynb және live_demo_cones.ipynb файлдарын ~/Notebooks/traffic_cones_driving/жүктеңіз.

МАҢЫЗДЫ: осы нұсқаулықта көрсетілген Jupyter ноутбуктары data_collection_cones.ipynb және live_demo_cones.ipynb JetBot -те, train_model_cones.ipynb - GPU бар компьютерде іске қосылуы керек.

Сондықтан біз data_collection_cones.ipynb және live_demo_cones.ipynb файлдарын JetBot -ке жүктеп, оларды ~/Notebooks/traffic_cones_driving/ішіне орналастыруымыз керек.

4 -қадам: JetBot -те дайындық деректерін жинау

Біз JetBot -қа трафик конусының лабиринтінде жұмыс істеуге көмектесу үшін қолданылатын суреттерді жіктеудің деректер жиынтығын жинаймыз. JetBot төрт сценарийдің (сыныптардың) ықтималдығын бағалауды үйренеді:

  • Тегін - алға жылжу қауіпсіз болған кезде
  • Блокталған - роботтың алдында кедергі болған кезде
  • Сол жақта - робот солға айналуы керек
  • Оң жақта - робот оңға бұрылуы керек

JetBot -та дайындық деректерін жинау үшін біз Jupyter ноутбукін қолданамыз data_collection_cones.ipynb, онда мұны қалай жасау керектігі туралы толық нұсқаулар бар. Бұл жазу кітапшасын JetBot -те іске қосу үшін келесі әрекеттерді орындаңыз:

  1. Роботқа https://: jetbot-ip-address:: 8888 арқылы өту арқылы қосылыңыз
  2. Jetbot әдепкі құпия сөзімен кіріңіз
  3. Басқа барлық жұмыс істейтін ноутбуктерді Ядро -> Барлық ядроларды өшіру арқылы таңдаңыз.
  4. ~/Notebooks/traffic_cones_driving/тармағына өтіңіз.
  5. Data_collection_cones.ipynb жазу кітапшасын ашыңыз және орындаңыз

5 -қадам: Нейрондық желіні GPU машинасында үйрету

Әрі қарай, жиналған деректерді train_model_cones.ipynb іске қосу арқылы GPU машинасында (хостта) AlexNet терең оқыту моделін қайта үйрету үшін қолданамыз.

Train_model_cones.ipynb - бұл оқулықта JetBot -те ЕМЕС жұмыс істейтін жалғыз Jupyter жазу кітапшасы екенін ескеріңіз

  1. PyTorch орнатылған және Jupyter Lab сервері қосылған GPU машинасына қосылыңыз
  2. Train_model_cones.ipynb жазу кітапшасын және осы құрылғыға жүктеңіз
  3. Data_collection_cones.ipynb жазу кітапшасына жасаған dat_cones.zip файлын жүктеңіз және осы деректер жиынтығын шығарыңыз. (Осы қадамнан кейін сіз файл шолғышында datat_cones деп аталатын қалтаны көресіз.)
  4. Train_model_cones.ipynb жазу кітапшасын ашып, орындаңыз. Бұл қадамның соңында сіз үлгіні жасайсыз - best_model_cones.pth файлы, оны JetBot -ке тірі демонстрацияны іске қосу үшін жүктеу керек.

6 -қадам: JetBot -та Live Demo іске қосыңыз

JetBot -та Live Demo іске қосыңыз
JetBot -та Live Demo іске қосыңыз

Бұл соңғы қадам - best_model_cones.pth үлгісін JetBot -ке жүктеу және оны іске қосу.

  1. USB батарея жинағынан роботты қосыңыз
  2. Http: //: jetbot-ip-address:: 8888 тармағына өту арқылы роботқа қайта қосылыңыз
  3. Jetbot әдепкі құпия сөзімен кіріңіз
  4. Барлық басқа жұмыс істейтін ноутбуктерді Ядро -> Барлық ядроларды өшіру арқылы таңдаңыз.
  5. ~/Notebooks/traffic_cones_driving тармағына өтіңіз
  6. Live_demo_cones.ipynb жазу кітапшасын ашыңыз және орындаңыз

Сақтықпен бастаңыз және JetBot -ке қозғалуға жеткілікті орын беріңіз. Конустың әр түрлі конфигурациясын қолданып көріңіз және роботтың әр түрлі ортада, жарықтандыруда және т.б. қаншалықты жақсы жұмыс жасайтынын көріңіз. Live_demo_cones.ipynb ноутбукі барлық қадамдарды егжей -тегжейлі түсіндірсе, келесі диаграмма роботтардың қозғалыс логикасын көрсетеді.

Ноутбукте модель болжаған еркін/солға/оңға/бұғатталған ықтималдықпен робот қозғалысының тарихын қалай сақтау керектігін және телеметрияның көмегімен FPV (First Person View) екі бейнені (секундына 1 кадр және 15 кадр) қалай жасау керектігін түсіндіреді. JetBot әрекеттерінің деректері. Бұл отладтау, PID контроллерін баптау және модельді жақсарту үшін пайдалы.

Көңілді болыңыз және сұрақтарыңыз болса, маған хабарлаңыз!:-)

Код Github -те қол жетімді

Ұсынылған: