สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: แรงจูงใจ
- ขั้นตอนที่ 2: NVIDIA JetBot & ภาพรวมโครงการ
- ขั้นตอนที่ 3: สร้าง JetBot และอัปโหลด Jupyter Notebooks
- ขั้นตอนที่ 4: รวบรวมข้อมูลการฝึกบน JetBot
- ขั้นตอนที่ 5: ฝึก Neural Network บนเครื่อง GPU
- ขั้นตอนที่ 6: เรียกใช้การสาธิตสดบน JetBot
วีดีโอ: ถ่ายโอนการเรียนรู้ด้วย NVIDIA JetBot - สนุกกับกรวยจราจร: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
โดย dvillevaldMy Githubติดตามเกี่ยวกับ: ฉันชอบแอปพลิเคชัน AI และการเรียนรู้ของเครื่อง โดยเฉพาะในวิทยาการหุ่นยนต์ ข้อมูลเพิ่มเติมเกี่ยวกับ dvillevald »
สอนหุ่นยนต์ของคุณให้ค้นหาเส้นทางในเขาวงกตของกรวยจราจรโดยใช้กล้องและโมเดลการเรียนรู้เชิงลึกล้ำสมัย
เสบียง
-
NVIDIA JetBot
หน้า Bill of Materials ของ NVIDIA JetBot Wiki แสดงรายการทุกสิ่งที่คุณต้องการเพื่อสร้าง JetBot พร้อมกับการซื้อลิงก์จากผู้ขายยอดนิยม
-
คอมพิวเตอร์ที่มี NVIDIA GPU
จำเป็นต้องฝึกโมเดล
- BlueDot Trading 4” RC Racing Agility Cones, สีส้ม – ชุด 20
ขั้นตอนที่ 1: แรงจูงใจ
ทุกครั้งที่ฉันขับรถในพื้นที่หดตัว ฉันคิดว่าการที่รถที่ขับด้วยตนเองจะขับผ่านกรวยจราจรนั้นท้าทายเพียงใด ปรากฎว่ามันไม่ใช่เรื่องยากสำหรับ JetBot ใหม่ของ NVIDIA - ด้วยภาพเพียงไม่กี่ร้อยภาพ คุณสามารถฝึกโมเดลการเรียนรู้เชิงลึกที่ล้ำสมัยเพื่อสอนหุ่นยนต์ของคุณถึงวิธีค้นหาเส้นทางในเขาวงกตของกรวยจราจรของเล่น โดยใช้กล้องออนบอร์ดเท่านั้นและไม่มีเซ็นเซอร์อื่นๆ
ขั้นตอนที่ 2: NVIDIA JetBot & ภาพรวมโครงการ
JetBot เป็นหุ่นยนต์โอเพ่นซอร์สที่ใช้ NVIDIA Jetson Nano kit คุณสามารถดูคำแนะนำโดยละเอียดเกี่ยวกับวิธีสร้างและตั้งค่าได้ที่นี่
โปรเจ็กต์นี้เป็นตัวอย่างการหลีกเลี่ยง Collision ที่แก้ไขแล้วจาก NVIDIA JetBot Wiki ประกอบด้วยสามขั้นตอนหลัก แต่ละขั้นตอนอธิบายไว้ในสมุดบันทึก Jupyter ที่แยกจากกัน:
- รวบรวมข้อมูลบน JetBot - สมุดบันทึก data_collection_cones.ipynb
- ฝึกโมเดลบนเครื่อง GPU อื่น - โน้ตบุ๊ก train_model_cones.ipynb
- เรียกใช้การสาธิตสดบน JetBot - โน้ตบุ๊ก live_demo_cones.ipynb
คุณสามารถค้นหาสมุดบันทึก Jupyter ทั้งสามเครื่องได้ที่นี่
ขั้นตอนที่ 3: สร้าง JetBot และอัปโหลด Jupyter Notebooks
- สร้างและตั้งค่า JetBot ตามที่อธิบายไว้ที่นี่
- เชื่อมต่อกับหุ่นยนต์ของคุณโดยไปที่ https://:8888ลงชื่อเข้าใช้ด้วยรหัสผ่านเริ่มต้น jetbot
- ปิดโน้ตบุ๊กที่ทำงานอยู่อื่น ๆ ทั้งหมดโดยเลือกเคอร์เนล -> ปิดเครื่องเคอร์เนลทั้งหมด…
- ไปที่ ~/Notebooks/
- สร้างโฟลเดอร์ย่อยใหม่ ~/Notebooks/traffic_cones_driving/
- อัปโหลด 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 ให้ทำตามขั้นตอนถัดไป:
- เชื่อมต่อกับหุ่นยนต์ของคุณโดยไปที่ https://:jetbot-ip-address::8888
- ลงชื่อเข้าใช้ด้วยรหัสผ่านเริ่มต้น jetbot
- ปิดโน้ตบุ๊กที่ทำงานอยู่อื่น ๆ ทั้งหมดโดยเลือกเคอร์เนล -> ปิดเครื่องเคอร์เนลทั้งหมด…
- ไปที่ ~/Notebooks/traffic_cones_driving/
- เปิดและทำตาม data_collection_cones.ipynb notebook
ขั้นตอนที่ 5: ฝึก Neural Network บนเครื่อง GPU
ต่อไป เราจะใช้ข้อมูลที่เก็บรวบรวมเพื่อฝึกโมเดลการเรียนรู้เชิงลึก AlexNet อีกครั้งบนเครื่อง GPU (โฮสต์) โดยเรียกใช้ train_model_cones.ipynb
โปรดทราบว่า train_model_cones.ipynb เป็นโน้ตบุ๊ก Jupyter ตัวเดียวในบทช่วยสอนนี้ซึ่งไม่ได้รันบน JetBot
- เชื่อมต่อกับเครื่อง GPU ที่ติดตั้ง PyTorch และเซิร์ฟเวอร์ Jupyter Lab ทำงานอยู่
- อัปโหลดสมุดบันทึก train_model_cones.ipynb ไปยังเครื่องนี้
- อัปโหลดไฟล์ dataset_cones.zip ที่คุณสร้างในสมุดบันทึก data_collection_cones.ipynb และแตกชุดข้อมูลนี้ (หลังจากขั้นตอนนี้ คุณจะเห็นโฟลเดอร์ชื่อ dataset_cones ปรากฏในไฟล์เบราว์เซอร์)
- เปิดและทำตามสมุดบันทึก train_model_cones.ipynb เมื่อสิ้นสุดขั้นตอนนี้ คุณจะสร้างแบบจำลอง - ไฟล์ best_model_cones.pth ซึ่งจะต้องอัปโหลดไปยัง JetBot เพื่อเรียกใช้การสาธิตสด
ขั้นตอนที่ 6: เรียกใช้การสาธิตสดบน JetBot
ขั้นตอนสุดท้ายนี้คือการอัปโหลด model best_model_cones.pth ไปยัง JetBot และเรียกใช้
- ขับเคลื่อนหุ่นยนต์ของคุณจากชุดแบตเตอรี่ USB
- เชื่อมต่อกลับไปยังหุ่นยนต์ของคุณโดยไปที่ https://:jetbot-ip-address::8888
- ลงชื่อเข้าใช้ด้วยรหัสผ่านเริ่มต้น jetbot
- ปิดโน้ตบุ๊กที่ทำงานอยู่อื่น ๆ ทั้งหมดโดยเลือกเคอร์เนล -> ปิดเครื่องเคอร์เนลทั้งหมด…
- ไปที่ ~/Notebooks/traffic_cones_driving
- เปิดและทำตาม live_demo_cones.ipynb notebook
เริ่มด้วยความระมัดระวังและให้ JetBot มีพื้นที่เพียงพอที่จะเคลื่อนที่ไปรอบๆ ลองใช้การกำหนดค่ากรวยที่แตกต่างกันและดูว่าหุ่นยนต์ทำงานได้ดีเพียงใดในสภาพแวดล้อมต่างๆ แสง ฯลฯ ในขณะที่โน้ตบุ๊ก live_demo_cones.ipynb จะอธิบายรายละเอียดทุกขั้นตอนอย่างละเอียด แผนภูมิต่อไปนี้แสดงตรรกะของการเคลื่อนที่ของหุ่นยนต์ตามความน่าจะเป็นที่คาดการณ์โดยรุ่นต่างๆ
โน้ตบุ๊กยังอธิบายวิธีจัดเก็บประวัติการเคลื่อนที่ของหุ่นยนต์ด้วยความน่าจะเป็นอิสระ/ซ้าย/ขวา/บล็อกที่คาดการณ์โดยรุ่น และวิธีการสร้างวิดีโอ FPV (มุมมองบุคคลที่หนึ่ง) สองรายการ (ที่อัตรา 1 เฟรมต่อวินาทีและ 15 เฟรมต่อวินาที) พร้อมระบบตรวจวัดระยะไกลและ ข้อมูลการกระทำของ JetBot สิ่งเหล่านี้มีประโยชน์สำหรับการดีบัก การปรับแต่งคอนโทรลเลอร์ PID และการปรับปรุงโมเดล
ขอให้สนุกและแจ้งให้เราทราบหากคุณมีคำถาม!:-)
รหัสมีอยู่ใน Github
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
บทช่วยสอนของ Nvidia Jetson Nano - ดูครั้งแรกด้วย AI & ML: 7 ขั้นตอน
บทช่วยสอนของ Nvidia Jetson Nano | ดูครั้งแรกด้วย AI & ML: ว่าไงพวก! Akarsh จาก CETech วันนี้เราจะมาดู SBC ใหม่จาก Nvidia ซึ่งเป็น Jetson Nano โดย Jetson Nano มุ่งเน้นไปที่เทคนิคปัญญาประดิษฐ์เช่นการจดจำภาพ ฯลฯ เราจะทำการบูทครั้งแรก t
เริ่มต้นใช้งาน NVIDIA Jetson Nano Developer Kit: 6 ขั้นตอน
เริ่มต้นใช้งาน NVIDIA Jetson Nano Developer Kit: ภาพรวมคร่าวๆ ของ Nvidia Jetson NanoJetson Nano Developer Kit เป็นคอมพิวเตอร์บอร์ดเดี่ยวขนาดเล็กที่มีประสิทธิภาพ ซึ่งช่วยให้คุณเรียกใช้เครือข่ายประสาทเทียมหลายตัวพร้อมกันสำหรับแอปพลิเคชันต่างๆ เช่น การจำแนกภาพ การตรวจจับวัตถุ การแบ่งส่วน และคำพูด โปร
การแก้ไขพัดลม GPU Nvidia ที่เสีย: 5 ขั้นตอน
การซ่อมพัดลม GPU Nvidia ที่เสีย: สวัสดี ฉันมีการ์ดกราฟิก Nvidia GTS-450 และใช้มาหลายปีแล้ว แต่ในปีที่ผ่านมาพัดลมของมันเสียและฉันต้องติดพัดลมฉุกเฉิน ฉันค้นหาออนไลน์มากมายเกี่ยวกับสิ่งทดแทน แต่ฉันไม่พบสิ่งที่ถูกต้องและพัดลมดั้งเดิม
Danger Den / Nvidia Tri SLI พีซีสำหรับเล่นเกมระบายความร้อนด้วยน้ำ: 7 ขั้นตอน
Danger Den / Nvidia Tri SLI Water Cooled Gaming PC: หนึ่งปีครึ่งที่แล้ว ฉันสร้างอุปกรณ์เกมมิ่งที่แข็งแกร่ง ตอนนี้เป็นฮาร์ดแวร์เก่า ฉันกำลังจะทำการอัปเดต โดยส่วนใหญ่จะเปลี่ยน 2 GeForce 8800 GTX ของฉันเป็น GeForce GTX 280 ใหม่ที่เป็นประกาย แต่ฉันกลับกลายเป็น "นักวิทยาศาสตร์ที่คลั่งไคล้?" และสร้างแท่นขุดเจาะใหม่ทั้งหมด เริ่มต้น