1、树莓派3 Model B ——— 开发前准备工作

本文介绍了如何配置树莓派3 Model B进行SSH远程开发,包括启用SSH、设置root权限、修改用户密码、查看IP地址、安装Windows SSH客户端、解决连接问题以及文件传输。此外,还提到了修改sshd_config文件以应对加密算法不兼容的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:插入TF卡,连接带HDMI的显示器,也可以用HDMI转VGA线接入显示器,通电,等待系统安装完成。

 

2:为了方便开发,我们选择使用SSH远程登录操作树莓派,下面配置SSH。方法如下:

使用SSH远程登录树莓派时,首先在树莓派图形界面打开命令终端,我们先启用root权限,可以每次省略输入sudo,操作文件可以任意畅行。

启用root方法:

输入:  sudo passwd root

输入两次root密码

输入: sudo passwd --unlock root

 

切换root用户:

$: su

$: passwd(这里输入前面设置的root密码)

#:(此时原来由$变为#,表明已经进入root模式)

进入boot路径,新建一个空的ssh文件,最新版的树莓派默认关闭SSH功能。

#: vi ssh

这时进入vi的编辑模式,这里不用写任何内容,使用"shift" + ":"组合按键在最下面冒号后输入:“wq!”,表示强制保存退出。这里一定是在root模式下,否则会提示错误说是只读文件。

#:raspi-config   //进入树莓派配置界面

进入如下界面


选择2,修改树莓派pi用户名密码,Finish
#:ifconfig   //查看连接网络的ip地址,这里使用wifi的ip,系统装完可以连接wifi。

### 在 Raspberry Pi 3B 上部署 ONNX 模型 要在 Raspberry Pi 3B 上成功部署 ONNX 模型,需考虑硬件性能限制以及软件兼容性问题。以下是实现此目标的关键要点: #### 硬件支持与环境配置 Raspberry Pi 3B 的处理器较旧,可能无法完全利用最新的机器学习框架优化功能。因此,建议使用专门为 ARM 架构编译的 Python 轮子包来安装 ONNX Runtime[^2]。这些轮子包通常由社区维护,并针对嵌入式设备进行了优化。 对于树莓派上的开发工作流,可以参考 GitHub 提供的相关资源库链接下载适合版本的 ONNX Runtime 安装文件并完成设置过程。此外还需要注意操作系统的适配性——推荐选用最新稳定版 Raspbian OS 或其他轻量级 Linux 发行版作为基础平台以获得更好的驱动程序支持和安全性更新。 #### 解决常见错误案例 当遇到 `cv2.error` 报告关于解析失败的情况时,可能是由于 OpenCV 版本较低或者其内部 DNN 模块未正确初始化所致[^3]。解决方法之一就是升级至更高版本 (如 v4.5+) 并重新测试;另外也可以尝试切换到官方文档所列经过验证能正常工作的特定组合搭配方案上来规避潜在冲突风险。 如果上述调整仍未能消除异常,则进一步排查是否因输入数据格式不匹配引起的问题 —— 确认图像尺寸、通道顺序等方面均满足预期要求后再继续执行推理步骤即可。 ```bash pip install https://github.com/lhelontra/tensorflow-onnx/releases/download/v1.8.0/onnxruntime-1.8.0-cp37-cp37m-linux_armv7l.whl ``` 以上命令展示了如何通过 pip 工具直接指定 URL 地址的方式获取对应架构下的预构建二进制包实例。 --- ### 示例代码片段展示 下面给出一段简单的加载 ONNX 模型并通过摄像头捕获实时画面进行预测处理的例子: ```python import cv2 import numpy as np import onnxruntime as ort # 初始化ONNXRuntime会话对象 session = ort.InferenceSession("model.onnx") def preprocess_image(image): """ 对图片做必要的处理 """ img_resized = cv2.resize(image, (input_width, input_height)) blob = cv2.dnn.blobFromImage(img_resized, scalefactor=1./255., size=(input_width, input_height), swapRB=True) return blob cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() if not ret: break processed_frame = preprocess_image(frame) outputs = session.run(None, {session.get_inputs()[0].name: processed_frame}) # 后续逻辑省略... key = cv2.waitKey(1) & 0xFF if key == ord('q'): break cap.release() cv2.destroyAllWindows() ``` > 注:请替换 `"model.onnx"` 及相应参数为实际使用的模型路径及相关数值设定值。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风和日丽63

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值