2.基于Jetson Nano的嵌入式小车避障项目

news2025/7/10 4:33:05

在这里插入图片描述
在这里插入图片描述
英伟达jetbot智能小车
在这里插入图片描述

一.数据采集

数据采集的时候,一定要不用的光线,不同的方向,不同的环境。
一般500-600张

二.AI训练

三.AI部署

import torch
import torchvision

3.1 加载预训练模型

'''第一步:载入模型'''
model = torchvision.models.alexnet(pretrained=False) # 构建alexnet模型
# 或取到模型的第7个线性层,然后创建一个线性层,输入特征与原来的一样的,输出特征数为2。替换掉原来的线性层
# 这个2,是让模型输出:有物体遮挡 无物体遮挡
model.classifier[6] = torch.nn.Linear(model.classifier[6].in_features,2)
# 导入已训练好的权重值
model.load_state_dict(torch.load('best_model.pth'))
# 把模型从cpu中传输到gpu中
device = torch.device('cuda')
model = model.to(device)

3.2 数据预处理

'''第二步:数据预处理。要把采集的数据格式转换为模型的输出格式:把摄像头的数据做归一化处理'''
import cv2
import numpy as np
mean = 255.0 * np.array([0.485,0.456,0.406]) # 得到数据对于某个数据在RGB上的均值,这三个数可能是imagenet的均值
stdev = 255.0 * np.array([0.229,0.224,0.225])
normalize = torchvision.transforms.Normalize(mean,stdev) # 对图片归一化
def preprocess(camera_value):
    global device,normalize
    x = camera_value
    x = cv2.cvtColor(x,cv2.COLOR_BGR2RGB) # 把相机的BGR格式 转为 模型需要的RGB格式
    x = x.transpose((2,0,1)) # 从 (高,宽,通道) 转换为 (通,高,宽)
    x = torch.from_numpy(x).float()
    x = normalize(x) # 数据归一化处理,变成0-1间的数据分布
    x = x.to(device) # 将数据从cpu转到GPU
    x = x[None] # 添加批次维度
    return x

3.3 监控界面

在这里插入图片描述

在这里插入图片描述

3.4 绕过障碍物

让摄像头一直获取最新的图片
把最新的图片输入模型,让模型判断是否图中有障碍物?
如果有障碍物的概率<0.5 : 则直行
否则:左转
from jetbot import Robot
robot = Robot()

import torch.nn.functional as F
import time
def update(change):
    global blocked_slider,robot
    x = change['new']
    x = preprocess(x) # 数据预处理
    y = model(x)
    y = F.softmax(y,dim=1) # 归一化,输出0-1范围,方便用于计算遮挡的概率

    prob_blocked = float(y.flatten()[0])
    blocked_slider.value = prob_blocked

    if prob_blocked <0.5 # 阻挡概率小于50%,则直行
        robot.forward(speed_slider.value)
    else: # 否则原地左转
        robot.left(speed_slider.value)
    time.sleep(0.001) # 多长时间刷新一次
update({'new':camera.value}) # 调用一次函数来进行初始化
camera.observe(update,names='value') # 监听相机值的变化

3.5 释放资源

在这里插入图片描述摄像头是内核管理资源,释放之后摄像头就不能用了。

资料链接

Jetson Nano 快速入门
https://zhuanlan.zhihu.com/p/62501901

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1149447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gitlab添加ssh秘钥

安装git 右击&#xff1a;git bash here 1.首先用如下命令&#xff08;如未特别说明&#xff0c;所有命令均默认在Git Bash工具下执行&#xff09;检查一下用户名和邮箱是否配置&#xff08;gitlab支持我们用用户名或邮箱登录&#xff09;&#xff1a; git config --global --…

『赠书第 2 期』- 『Django+Vue.js商城项目实战』

文章目录 1024 程序员节学习新技术关于作者内容介绍抽奖评论区抽三位小伙伴送书活动时间&#xff1a;截止到 2023-11-05 20:00:00 获奖名单 ps. 文末有抽奖&#xff0c;抽奖为 Swift社区 额外福利 1024 程序员节 受邀参加了 CSDN 举办的 1024 程序员节上海站的活动&#xff0…

【贝叶斯回归】【第 2 部分】--推理算法

一、说明 在第一部分中&#xff0c;我们研究了如何使用 SVI 对简单的贝叶斯线性回归模型进行推理。在本教程中&#xff0c;我们将探索更具表现力的指南以及精确的推理技术。我们将使用与之前相同的数据集。 二、模块导入 [1]:%reset -sf[2]:import logging import osimport tor…

亮氨酸脯氨酸肽——一种新型的医药中间体研究肽

亮氨酸脯氨酸医药中间体肽是一种合成&#xff08;人造&#xff09;激素&#xff0c;类似于大脑中产生的天然激素。它用于治疗许多医疗问题&#xff0c;包括&#xff1a; 子宫平滑肌瘤&#xff08;子宫肌瘤&#xff09;出血引起的贫血&#xff0c;或晚期或晚期前列腺癌症&#…

管理类联考——数学——汇总篇——知识点突破——代数——整式分式——记忆

文章目录 考点记忆/考点汇总——按大纲 整体目录大纲法记忆宫殿法绘图记忆法 局部数字编码法归类记忆法重点记忆法歌决记忆法谐音记忆法理解记忆法比较记忆法转图像记忆法可视化法 本篇思路&#xff1a;根据各方的资料&#xff0c;比如名师的资料&#xff0c;按大纲或者其他方式…

大数据之LibrA数据库系统告警处理(ALM-12002 HA资源异常)

告警解释 HA软件周期性检测Manager的WebService浮动IP地址和数据库。当HA软件检测到浮动IP地址或数据库异常时&#xff0c;产生该告警。 当HA检测到浮动IP地址或数据库正常后&#xff0c;告警恢复。 告警属性 告警参数 对系统的影响 如果Manager的WebService浮动IP地址异常…

手机平板摄像头如何给电脑用来开视频会议

环境&#xff1a; Iriun Webcam EV虚拟摄像头 钉钉会议 问题描述&#xff1a; 手机平板摄像头如何给电脑用来开视频会议 解决方案&#xff1a; 1.下载软件 手机端和电脑端都下载这个软件&#xff0c;连接同一局域网打开软件连接好 另外一款软件Iriun 也是一样操作 2.打…

Pytorch L1,L2正则化

L1正则化和L2正则化是常用的正则化技术&#xff0c;用于在机器学习模型中控制过拟合。它们的主要区别在于正则化项的形式和对模型参数的影响。 L1正则化&#xff08;Lasso正则化&#xff09;&#xff1a; 正则化项形式&#xff1a;L1正则化使用模型参数的绝对值之和作为正则化…

RUP核心工作流2021-架构师(六十四)

1、根据传统的软件生命周期方法学&#xff0c;可以把软件生命周期划分为&#xff08;&#xff09;。 A、软件定义、软件开发、软件测试、软件维护 B、软件定义、软件开发、软件运行、软件维护 C、软件分析、软件设计、软件开发、软件维护 D、需求获取、软件设计、软件开发、…

跳槽一定用得上的大厂Java题库!

2023年已经接近尾声了&#xff0c;疫情的影响也在逐渐减小&#xff0c;市场慢慢复苏。不过最近还是会有一些读者粉丝朋友反馈&#xff0c;“Java市场饱和了”、“大环境还是不好”、“投几十个简历都没有一个约面的”。其实并不是岗位需求量变少了&#xff0c;是越来越多的公司…

Calcite 优化层详解

1、关系代数与火山模型 1&#xff09;关系代数 基本的关系代数运算有选择、投影、集合并、集合差、笛卡儿积等。 在这些基本运算之外&#xff0c;还有一些集合之间的交集、连接、除和赋值等运算。 连接运算可分为连接、等值连接、自然连接、外连接、左外连接和右外连接。 …

腰背肌筋膜炎能彻底治愈吗

腰背肌筋膜炎&#xff1a;急性期腰部疼痛剧烈&#xff0c;有烧灼感&#xff0c;腰部活动时症状加重&#xff0c;局部压痛显著&#xff0c;有时体温升高、血液检查可见白细胞增高。急性发作后&#xff0c;少数患者症状完全消退&#xff0c;多数会遗留疼痛&#xff0c;或相隔数月…

SSM律师事务所业务管理系统 毕业设计-附源码01664

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;律师事务所业务管理系统当然也不能排除在外。律师事务所业务管理系统是以实际运用为开发背景&#xff0c;运用软件工程原…

QT实现在线流媒体播放平台

文章目录 QT实现在线流媒体播放平台简介开发视频ffmpeg下载SimpleVideoPlayer.hSimpleVideoPlayer.cpp 开发音频添加功能打开文件夹播放暂停播放上下一首选择倍速 效果展示项目下载 QT实现在线流媒体播放平台 简介 Qt是一种流行的C开发框架&#xff0c;它提供了用于构建图形用…

基于 Center 的 3D 目标检测和跟踪

论文地址&#xff1a;https://arxiv.org/abs/2006.11275 论文代码&#xff1a;https://github.com/tianweiy/CenterPoint 3D 目标通常表示为点云中的 3D Boxes。 CenterPoint 在第一阶段&#xff0c;使用关键点检测器检测对象的中心&#xff0c;然后回归到其他属性&#xff0…

【骑行探秘】穿越海晏村,揭秘贝丘渔场的神秘面纱

在这个阳光明媚的周末&#xff0c;我们校长骑行群一行人骑着自行车&#xff0c;从大观公园门口出发&#xff0c;开始了一段别开生面的骑行之旅。沿途我们将穿越草海隧道湿地公园、迎海路、海埂公园西门&#xff08;第二集合点&#xff09;、宝丰湿地公园、斗南湿地公园、蓝光城…

二叉排序树c语言版

1、定义二叉树数据域、二叉树结点 /*** 二叉树节点数据 */ typedef struct treenodedata {int sort;char* name;} TreeNodeData;/**** 二叉树节点定义 */ typedef struct binarytree {/*** 结点数据域*/TreeNodeData* data;/**左子树*/struct binarytree* leftChild;/**左子树…

双11满减大促,直播间1折抢购!

你是知道的&#xff0c;双11本来是光棍节&#xff01; 2009年&#xff0c;阿里掀起了一场网络促销活动&#xff0c;光棍节从此成了全民的购物节&#xff01; 从2009年到2021年&#xff0c;阿里双11当天的交易额&#xff0c;从仅有的0.5亿猛增至5403亿&#xff0c;以惊人的速度…

【人口数据集总结】WorldPop、GWPv4等

1 全球人口数据WorldPop 数据详解可参见另一博客-【数据集8】全球人口数据WorldPop详解。 WorldPop是由南安普顿大学在2013年10月发起的全球人口数据评估,将AfriPop,AsiaPop和AmeriPop人口调查项目整合到一起。数据集已经被众多的组织和机构使用:联合国开发计划署,联合国…

实例教程:如何在应用中集成美狐直播美颜SDK

随着直播和视频应用的兴起&#xff0c;用户对于视频质量和外貌自然度的要求越来越高。为了满足这一需求&#xff0c;开发者们可以通过集成直播美颜SDK来提供更吸引人的视频体验。本文将为您提供一个实例教程&#xff0c;以演示如何在您的应用中成功集成直播美颜SDK。无论您是一…