如何利用树莓派与云端计算机视觉识别日常物品
项目概述
物体检测是机器人、自动化、监控系统和智能监测系统中应用最广泛的计算机视觉技术之一。与图像分类(将整张图像赋予单一标签)不同,物体检测能够识别场景中的每一个可识别物体,并估算其位置。
在本项目中,树莓派通过USB摄像头捕获图像,每张图像均安全地传输至云端推理服务,在那里,物体检测模型分析图像内容。处理后的结果返回到树莓派,并在终端中显示,包括检测到的物体名称、置信度值以及检测到的总数量。
功能
实时检测:利用云端人工智能快速识别画面中的物体。
多种运行模式:
•键盘模式:通过按下空格键手动拍摄图像(适用于桌面或VNC使用)。
•自动模式:在固定时间间隔内(例如每5秒一次)自动拍摄图像,实现持续监控。
•SSH模式:在终端中运行,无需打开OpenCV显示窗口。
•可调节参数:轻松自定义置信度阈值,并筛选特定物体类别。
•低硬件要求:无需进行繁重的本地处理,推理任务由云端完成。
这种方法使开发者无需直接在树莓派上运行大型神经网络,即可进行计算机视觉实验。
你将学到什么
完成本项目后,您将学习以下内容:
- 使用连接到树莓派的USB摄像头拍摄图像。
- 配置Python以实现图像采集。
- 将图像数据发送至云端推理端点。
- 读取并解析以JSON格式返回的检测结果。
- 显示检测到的对象名称及其置信度分数。
- 理解在本地运行模型与使用云端推理的场景中,哪种方式更合适。
检测流程的工作原理
整个工作流程包含四个简单步骤:
步骤1 — 拍摄图像
连接到树莓派的USB摄像头可手动或按预设时间间隔捕捉图像帧。
步骤2 — 上传图像帧
捕获的图像被编码为JPEG格式,并通过HTTPS请求发送至云端推理端点。
步骤3 — AI处理
服务器使用预先训练好的物体检测模型分析上传的图像。每个检测到的对象将获得以下信息:
- 物体标签
- 置信度得分
- 边界框坐标
步骤4 — 显示结果
处理完成后,树莓派会接收到一个包含所有检测结果的JSON响应。程序从中提取相关信息,并直接在终端中打印结果。
所需硬件
本项目需要以下设备和软件:
- Raspberry Pi 4(或更新型号)
- USB摄像头
- 带有Raspberry Pi OS的microSD卡
- 稳定的互联网连接
- Raspberry Pi电源
软件要求
在运行本项目之前,请安装以下软件:
- Raspberry Pi OS
- Python 3
- OpenCV
- Requests库
- Thonny IDE(可选)
- SSH或VNC查看器(远程访问时可选)
准备Raspberry Pi
在运行应用程序前,请使用Raspberry Pi Imager将Raspberry Pi OS安装到microSD卡上。安装过程中,您可以配置Wi-Fi凭据、主机名、用户名、密码,并启用SSH以实现远程访问。
安装与使用
•克隆此仓库或将Python脚本复制到你的树莓派上。
•编辑脚本,添加您的API密钥并配置参数:
•运行脚本:
•根据您选择的模式,系统将开始捕获图像,安全地将其发送至CircuitDigest云平台,并在终端输出检测到的对象及其置信度分数。
操作系统安装完成后,将microSD卡插入Raspberry Pi,连接USB摄像头,接通电源,确认系统和摄像头均能被正确识别。
您可以通过以下方式与Raspberry Pi进行交互:
- 本地桌面:将显示器、键盘和鼠标直接连接到Raspberry Pi。
- SSH:通过终端远程控制Raspberry Pi。
- VNC:使用VNC查看器远程访问完整的Raspberry Pi桌面。
项目工作流程概要
完整的检测流程遵循以下顺序:
故障排除
•未找到摄像头!请检查USB摄像头连接:确认物理连接是否正常。您可能需要将代码中的摄像头索引从cv2.VideoCapture(0)更改为cv2.VideoCapture(1)。
•API请求失败或超时错误:请检查Wi-Fi连接,并确保API密钥正确。您也可以尝试增加请求的超时值。
•检测准确率低:确保光线充足,且物体清晰可见。可提高置信度阈值(CONFIDENCE)以减少误报。
•系统响应缓慢:尝试在OpenCV中降低摄像头分辨率,或增加AUTO_INTERVAL时间。更快的API响应需要稳定的网络连接。
本文编译自hackster.io





