Mục lục:
- Quân nhu
- Bước 1: Động lực
- Bước 2: NVIDIA JetBot & Tổng quan về dự án
- Bước 3: Xây dựng JetBot và tải lên Máy tính xách tay Jupyter
- Bước 4: Thu thập dữ liệu đào tạo trên JetBot
- Bước 5: Đào tạo mạng thần kinh trên máy GPU
- Bước 6: Chạy Demo trực tiếp trên JetBot
Video: Chuyển giao việc học với NVIDIA JetBot - Vui vẻ với các nút giao thông: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Theo dvillevaldMy GithubFollow Giới thiệu: Tôi thích các ứng dụng AI và học máy, đặc biệt là trong lĩnh vực robot Thông tin thêm về dvillevald »
Hướng dẫn rô bốt của bạn tìm đường trong mê cung hình nón giao thông bằng cách sử dụng máy ảnh và mô hình học sâu hiện đại.
Quân nhu
-
NVIDIA JetBot
Trang Bill of Materials của NVIDIA JetBot Wiki liệt kê mọi thứ bạn cần để xây dựng JetBot, cùng với các liên kết mua hàng từ các nhà cung cấp phổ biến
- Máy tính có GPU NVIDIA
Cần thiết để đào tạo mô hình
- BlueDot Trading 4”RC Racing Agility Cones, Orange - Bộ 20
Bước 1: Động lực
Mỗi khi tôi lái xe trong khu vực co hẹp, tôi nghĩ sẽ khó khăn như thế nào khi một chiếc ô tô tự lái vượt qua các nút giao thông. Hóa ra không quá khó với JetBot mới của NVIDIA - chỉ với vài trăm hình ảnh, bạn có thể đào tạo một mô hình học sâu hiện đại để dạy cho rô bốt của bạn cách tìm đường trong mê cung hình nón giao thông đồ chơi chỉ sử dụng máy ảnh trên bo mạch và không sử dụng các cảm biến khác.
Bước 2: NVIDIA JetBot & Tổng quan về dự án
JetBot là một robot mã nguồn mở dựa trên bộ công cụ NVIDIA Jetson Nano. Bạn có thể tìm thấy hướng dẫn chi tiết về cách xây dựng và thiết lập nó tại đây.
Dự án này là một ví dụ về tránh va chạm được sửa đổi từ NVIDIA JetBot Wiki. Nó bao gồm ba bước chính, mỗi bước được mô tả trong một sổ ghi chép Jupyter riêng biệt:
- Thu thập dữ liệu trên JetBot - notebook data_collection_cones.ipynb
- Mô hình đào tạo trên máy GPU khác - notebook train_model_cones.ipynb
- Chạy bản demo trực tiếp trên JetBot - notebook live_demo_cones.ipynb
Bạn có thể tìm thấy ba máy tính xách tay Jupyter này tại đây
Bước 3: Xây dựng JetBot và tải lên Máy tính xách tay Jupyter
- Xây dựng và thiết lập JetBot như được giải thích ở đây
- Kết nối với rô bốt của bạn bằng cách điều hướng đến https://: 8888Đăng nhập bằng jetbot mật khẩu mặc định
- Tắt tất cả các sổ ghi chép đang chạy khác bằng cách chọn Kernel -> Shutdown All Kernels…
- Điều hướng đến ~ / Notebooks /
- Tạo thư mục con mới ~ / Notebooks / traffic_cones_driving /
- Tải data_collection_cones.ipynb và live_demo_cones.ipynb lên ~ / Notebooks / traffic_cones_driving /
QUAN TRỌNG: Máy tính xách tay Jupyter data_collection_cones.ipynb và live_demo_cones.ipynb được tham chiếu trong hướng dẫn này phải được chạy trên JetBot trong khi train_model_cones.ipynb - trên máy tính có GPU.
Do đó, chúng tôi phải tải data_collection_cones.ipynb và live_demo_cones.ipynb lên JetBot và đặt chúng vào ~ / Notebooks / traffic_cones_driving /
Bước 4: Thu thập dữ liệu đào tạo trên JetBot
Chúng tôi sẽ thu thập một tập dữ liệu phân loại hình ảnh sẽ được sử dụng để giúp JetBot hoạt động trong mê cung của các hình nón giao thông. JetBot sẽ học cách ước tính xác suất của bốn tình huống (lớp):
- Miễn phí - khi an toàn để tiến về phía trước
- Bị chặn - khi có chướng ngại vật phía trước rô bốt
- Trái - khi rô bốt quay sang trái
- Phải - khi nào rô bốt sẽ quay sang phải
Để thu thập dữ liệu đào tạo trên JetBot, chúng tôi sẽ sử dụng sổ ghi chép Jupyter data_collection_cones.ipynb chứa hướng dẫn chi tiết về cách thực hiện. Để chạy sổ ghi chép này trên JetBot, hãy làm theo các bước tiếp theo:
- Kết nối với rô bốt của bạn bằng cách điều hướng đến https://: jetbot-ip-address:: 8888
- Đăng nhập bằng jetbot mật khẩu mặc định
- Tắt tất cả các sổ ghi chép đang chạy khác bằng cách chọn Kernel -> Shutdown All Kernels…
- Điều hướng đến ~ / Notebooks / traffic_cones_driving /
- Mở và làm theo sổ ghi chép data_collection_cones.ipynb
Bước 5: Đào tạo mạng thần kinh trên máy GPU
Tiếp theo, chúng tôi sẽ sử dụng dữ liệu thu thập được để đào tạo lại mô hình học sâu AlexNet trên máy GPU (máy chủ) bằng cách chạy train_model_cones.ipynb.
Lưu ý rằng train_model_cones.ipynb là sổ ghi chép Jupyter duy nhất trong hướng dẫn này KHÔNG chạy trên JetBot
- Kết nối với máy GPU đã cài đặt PyTorch và máy chủ Jupyter Lab đang chạy
- Tải sổ ghi chép train_model_cones.ipynb lên máy tính này
- Tải lên tệp dataset_cones.zip mà bạn đã tạo trong sổ ghi chép data_collection_cones.ipynb và giải nén tập dữ liệu này. (Sau bước này, bạn sẽ thấy một thư mục có tên dataset_cones xuất hiện trong trình duyệt tệp.)
- Mở và làm theo sổ tay train_model_cones.ipynb. Ở cuối bước này, bạn sẽ tạo một mô hình - tệp best_model_cones.pth sau đó phải được tải lên JetBot để chạy bản demo trực tiếp.
Bước 6: Chạy Demo trực tiếp trên JetBot
Bước cuối cùng này là tải mô hình best_model_cones.pth lên JetBot và chạy nó.
- Cung cấp năng lượng cho robot của bạn từ bộ pin USB
- Kết nối lại với rô bốt của bạn bằng cách điều hướng đến https://: jetbot-ip-address:: 8888
- Đăng nhập bằng jetbot mật khẩu mặc định
- Tắt tất cả các sổ ghi chép đang chạy khác bằng cách chọn Kernel -> Shutdown All Kernels…
- Điều hướng đến ~ / Notebooks / traffic_cones_driving
- Mở và làm theo sổ tay live_demo_cones.ipynb
Bắt đầu thận trọng và cung cấp cho JetBot đủ không gian để di chuyển. Hãy thử cấu hình hình nón khác nhau và xem robot hoạt động tốt như thế nào trong các môi trường, ánh sáng khác nhau, v.v. Trong khi sổ ghi chép live_demo_cones.ipynb giải thích chi tiết tất cả các bước, biểu đồ sau đây cho thấy logic di chuyển của robot dựa trên xác suất được dự đoán bởi các mô hình.
Sổ tay cũng giải thích cách lưu trữ lịch sử di chuyển của rô bốt với các xác suất tự do / trái / phải / bị chặn do mô hình dự đoán và cách tạo hai video FPV (Chế độ xem người thứ nhất) (ở tốc độ 1 khung hình / giây và 15 khung hình / giây) với phép đo từ xa xếp chồng và Dữ liệu hành động JetBot. Chúng hữu ích cho việc gỡ lỗi, điều chỉnh bộ điều khiển PID và cải tiến mô hình.
Hãy vui vẻ và cho tôi biết nếu bạn có thắc mắc!:-)
Mã hiện có trên Github
Đề xuất:
DIY LED-quang kế với Arduino cho các bài học Vật lý hoặc Hóa học: 5 bước (có hình ảnh)
DIY LED-photometer Với Arduino cho các bài học Vật lý hoặc Hóa học: Xin chào! Chất lỏng hoặc các vật thể khác có màu vì chúng phản xạ hoặc truyền một số màu nhất định và lần lượt nuốt (hấp thụ) những màu khác. Với cái gọi là quang kế, những màu sắc (bước sóng) đó có thể được xác định, những màu này bị chất lỏng hấp thụ. Nguyên tắc cơ bản
Giao diện hai dây (DMX) với màn hình và các nút: 5 bước (có hình ảnh)
Giao diện hai dây (DMX) với màn hình và các nút: DMX là một giao thức được sử dụng để điều khiển các thiết bị chiếu sáng sân khấu và các hiệu ứng đặc biệt. Mỗi thiết bị có (các) kênh riêng mà nó phản hồi. Người dùng có thể chọn kênh này bằng công tắc DIP hoặc màn hình có các nút. Có nhiều cách để chọn một
Điều khiển thiết bị thông qua Arduino với chuyển mạch cơ học: 8 bước (có hình ảnh)
Điều khiển thiết bị thông qua Arduino với chuyển mạch cơ học: Arduino có thể được sử dụng để điều khiển các thiết bị thông qua việc sử dụng các công tắc cơ học đơn giản, một rơ le
MESH: Hệ thống đánh giá với các nút kết nối Internet: 5 bước (có hình ảnh)
MESH: Hệ thống Đánh giá Với Các Nút Kết nối Internet: Điều gì sẽ xảy ra nếu các nhà hàng hoặc các doanh nghiệp khác có thể thu thập phản hồi của khách hàng ngay tại chỗ và đồng bộ ngay lập tức với một bảng tính? Công thức này là một cách nhanh chóng và đơn giản để tạo hệ thống xếp hạng tương tác của riêng bạn. Chỉ cần lấy một bộ b
Bánh răng chuyển động tuyệt vời được điều khiển bởi các nút tuyệt vời (sẽ tiếp tục): 9 bước
Bánh răng chuyển động tuyệt vời được điều khiển bằng các nút tuyệt vời (sẽ tiếp tục): Thiết kế trò chơi điện tử / vật lý cho UCLA Design Media Arts với Eddo Stern. Hướng dẫn này không đầy đủ. Dự án vẫn đang được tiến hành