Სარჩევი:

გადაიტანეთ სწავლა NVIDIA JetBot– ით - გართობა ტრაფიკის კონუსებით: 6 ნაბიჯი
გადაიტანეთ სწავლა NVIDIA JetBot– ით - გართობა ტრაფიკის კონუსებით: 6 ნაბიჯი

ვიდეო: გადაიტანეთ სწავლა NVIDIA JetBot– ით - გართობა ტრაფიკის კონუსებით: 6 ნაბიჯი

ვიდეო: გადაიტანეთ სწავლა NVIDIA JetBot– ით - გართობა ტრაფიკის კონუსებით: 6 ნაბიჯი
ვიდეო: NVIDIA GPUs for Deep Learning - January 2023 2024, ივნისი
Anonim

ავტორი dvillevald ჩემი Github დაიცავით: მომწონს AI და მანქანათმცოდნეობის პროგრამები, განსაკუთრებით რობოტიკაში ვრცლად dvillevald »

ასწავლეთ თქვენს რობოტს იპოვოს ბილიკი საგზაო კონუსების ლაბირინთში კამერისა და უახლესი ტექნოლოგიის გამოყენებით.

მარაგები

  • NVIDIA JetBot

    NVIDIA JetBot Wiki– ს მასალების ჩამონათვალი ასახავს ყველაფერს, რაც გჭირდებათ JetBot– ის ასაშენებლად, ასევე პოპულარული გამყიდველებისგან ბმულების შეძენასთან ერთად

  • კომპიუტერი NVIDIA GPU– ით

    საჭიროა მოდელის მომზადება

  • BlueDot Trading 4”RC Racing Agility Cones, ნარინჯისფერი - კომპლექტი 20

ნაბიჯი 1: მოტივაცია

Image
Image

ყოველ ჯერზე, როდესაც მე ვმოძრაობ შეკუმშვის ზონაში, ვფიქრობ იმაზე, თუ რამდენად რთული იქნებოდა თვითმავალი მანქანისთვის ნავიგაცია სატრანსპორტო კონუსებზე. გამოდის, რომ ახალი NVIDIA– ს JetBot– ით არც ისე რთულია-მხოლოდ რამდენიმე ასეული გამოსახულებით შეგიძლიათ ავარჯიშოთ უაღრესად თანამედროვე სწავლების მოდელი, რომ ასწავლოთ თქვენს რობოტს როგორ იპოვოს გზა სათამაშოების მოძრაობის კონუსების ლაბირინთში. მხოლოდ საბორტო კამერის გამოყენებით და სხვა სენსორების გარეშე.

ნაბიჯი 2: NVIDIA JetBot და პროექტის მიმოხილვა

NVIDIA JetBot და პროექტის მიმოხილვა
NVIDIA JetBot და პროექტის მიმოხილვა

JetBot არის ღია კოდის რობოტი, რომელიც დაფუძნებულია NVIDIA Jetson Nano ნაკრებზე. თქვენ შეგიძლიათ იპოვოთ დეტალური ინსტრუქციები, თუ როგორ უნდა ავაშენოთ და დააყენოთ აქ.

ეს პროექტი არის შეცვლილი შეჯახების თავიდან აცილების მაგალითი NVIDIA JetBot ვიკიდან. იგი შედგება სამი ძირითადი ნაბიჯისგან, თითოეული აღწერილია ცალკე იუპიტერის რვეულში:

  • შეაგროვეთ მონაცემები JetBot– ზე - notebook data_collection_cones.ipynb
  • მატარებლის მოდელი სხვა GPU აპარატზე - notebook train_model_cones.ipynb
  • გაუშვით ცოცხალი დემო JetBot– ზე - notebook live_demo_cones.ipynb

თქვენ შეგიძლიათ იპოვოთ ეს სამი იუპიტერის რვეული აქ

ნაბიჯი 3: შექმენით JetBot და ატვირთეთ Jupyter ნოუთბუქები

  1. შექმენით და დააინსტალირეთ JetBot, როგორც აქ არის ახსნილი
  2. დაუკავშირდით თქვენს რობოტს ნავიგაციით https://: 8888 შესვლა ნაგულისხმევი პაროლით jetbot
  3. გამორთეთ ყველა სხვა გაშვებული რვეული ბირთვის არჩევით -> გამორთეთ ყველა ბირთვი…
  4. ნავიგაცია ~/ნოუთბუქებზე/
  5. შექმენით ახალი ქვესაქაღალდე ~/ნოუთბუქები/ტრაფიკის_კონ_ძრავა/
  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 notebook data_collection_cones.ipynb რომელიც შეიცავს დეტალურ ინსტრუქციებს როგორ გავაკეთოთ ეს. JetBot– ზე ამ ნოუთბუქის გასაშვებად მიყევით შემდეგ ნაბიჯებს:

  1. დაუკავშირდით თქვენს რობოტს https://: jetbot-ip-address:: 8888
  2. შედით ნაგულისხმევი პაროლით jetbot
  3. გამორთეთ ყველა სხვა გაშვებული რვეული ბირთვის არჩევით -> გამორთეთ ყველა ბირთვი…
  4. ნავიგაცია ~/ნოუთბუქებზე/traffic_cones_driving/
  5. გახსენით და მიჰყევით data_collection_cones.ipynb რვეულს

ნაბიჯი 5: მოამზადეთ ნერვული ქსელი GPU აპარატზე

შემდეგი, ჩვენ გამოვიყენებთ შეგროვებულ მონაცემებს ხელახლა გაწვრთნის AlexNet მოდელის GPU აპარატზე (მასპინძელზე) გაშვებული train_model_cones.ipynb.

გაითვალისწინეთ, რომ train_model_cones.ipynb არის ერთადერთი Jupyter რვეული ამ გაკვეთილში, რომელიც არ მუშაობს JetBot– ზე

  1. დაუკავშირდით GPU აპარატს PyTorch დაყენებული და Jupyter Lab სერვერი გაშვებული
  2. ატვირთეთ train_model_cones.ipynb რვეული და ამ აპარატზე
  3. ატვირთეთ dataset_cones.zip ფაილი, რომელიც თქვენ შექმენით data_collection_cones.ipynb რვეულში და ამოიღეთ ეს მონაცემთა ნაკრები. (ამ ნაბიჯის შემდეგ თქვენ უნდა ნახოთ საქაღალდე სახელწოდებით dataset_cones ფაილების ბრაუზერში.)
  4. გახსენით და მიჰყევით train_model_cones.ipynb რვეულს. ამ ნაბიჯის დასასრულს თქვენ შექმნით მოდელს - ფაილს best_model_cones.pth, რომელიც შემდეგ უნდა ატვირთოთ JetBot– ში, ცოცხალი დემოს გასაშვებად.

ნაბიჯი 6: გაუშვით ცოცხალი დემო JetBot– ზე

გაუშვით ცოცხალი დემო JetBot– ზე
გაუშვით ცოცხალი დემო JetBot– ზე

ეს ბოლო ნაბიჯი არის მოდელის best_model_cones.pth ატვირთვა JetBot– ში და მისი გაშვება.

  1. ჩართეთ თქვენი რობოტი USB ბატარეიდან
  2. დაუბრუნდით თქვენს რობოტს https://: jetbot-ip-address:: 8888
  3. შედით ნაგულისხმევი პაროლით jetbot
  4. გამორთეთ ყველა სხვა გაშვებული რვეული ბირთვის არჩევით -> გამორთეთ ყველა ბირთვი…
  5. ნავიგაცია ~/Notebooks/traffic_cones_driving
  6. გახსენით და მიჰყევით live_demo_cones.ipynb რვეულს

დაიწყეთ ფრთხილად და მიეცით JetBot– ს საკმარისი სივრცე გადაადგილებისთვის. სცადეთ კონუსის სხვადასხვა კონფიგურაცია და ნახეთ რამდენად კარგად მუშაობს რობოტი სხვადასხვა გარემოში, განათებაში და ა.შ. სანამ ნოუთბუქი live_demo_cones.ipynb განმარტავს ყველა ნაბიჯს დეტალურად, ქვემოთ მოყვანილი დიაგრამა გვიჩვენებს რობოტების მოძრაობის ლოგიკას მოდელების მიერ პროგნოზირებული ალბათობების გათვალისწინებით.

ნოუთბუქი ასევე განმარტავს, თუ როგორ უნდა შეინახოთ რობოტების მოძრაობის ისტორია მოდელის მიერ პროგნოზირებული თავისუფალი/მარცხენა/მარჯვენა/დაბლოკილი ალბათობებით და როგორ გადავიღოთ ორი FPV (პირველი პირის ხედი) ვიდეო (1 კადრი/წმ სიჩქარით და 15 კადრი/წმ სიჩქარით) გადატვირთული ტელემეტრიით და JetBot ქმედებების მონაცემები. ისინი სასარგებლოა გამართვის, PID კონტროლერის დარეგულირებისა და მოდელის გასაუმჯობესებლად.

გაერთეთ და შემატყობინეთ თუ გაქვთ შეკითხვები!:-)

კოდი ხელმისაწვდომია Github– ზე

გირჩევთ: