树莓派(5):CSI摄像头 vs USB摄像头

本文对比了树莓派的CSI摄像头与USB摄像头的成像质量、系统资源占用及使用体验。CSI摄像头在光线充足时表现优秀,但USB摄像头在低光环境下的表现更佳。USB摄像头的CPU占用率较高,而CSI摄像头利用树莓派的GPU,对CPU的影响较小。

0. 前言

树莓派的CSI原装摄像头普通USB摄像头有何区别?
CSI摄像头有何优缺点?我们在选择时该选哪一种

最近做某个项目的加速时,产生了这样的疑问,于是开始比较一下这两种摄像头。

1. 准备工作

我是在python3环境下调用opencv对两款摄像头进行测评
所以需要以下准备:

  1. Enable Camera
    点击左上角树莓派 --> Preference --> Raspberry Configuration,使能Camera,之后重启树莓派。

  2. 安装opencv
    具体过程见树莓派(4):树莓派python3安装opencv

2. CSI摄像头

2.1 安装摄像头

在这里插入图片描述
安装CSI摄像头的时候,不可带电操作,否则容易烧坏摄像头,安装排线的时候,留意摄像头和树莓派上的卡扣,打开卡扣后再插入排线,排线插好后再把卡扣扣好,并注意排线的方向

2.2 安装驱动

Deiki文章中写道,

树莓派专用CSI摄像头插到树莓派的CSI口上并在在raspi-config中打开后就可以使用Raspistill命令直接使用,但如果在OpenCV中调用CSI摄像头会出现无数据的现象(cv2.VideoCapture(0)这时不会报错)。

这是因为树莓派中的camera module是放在/boot/目录中以固件形式加载的,不是一个标准的V4L2的摄像头驱动,所以加载起来之后会找不到/dev/video0的设备节点。我们在/etc/modules里面添加一行bcm2835-v4l2(小写的L)就能解决问题。

我是没有遇到这个问题的,即,不进行这一步操作我的opencv也能直接调用CSI摄像头,可能是Buster版本解决了这个问题。

不过保险起见,我还是进行了这一步操作。

2.3 测试

写一个简单的读取摄像头图像的程序

import cv2

videoIn = cv2.VideoCaptire(0)
print("capture device is open: " + str(videoIn.isOpened()))
success,frame = videoIn.read()
<think>我们被要求使用中文回答问题,并在回答后提出3-5个相关问题,且第一行必须为"§§相关问题§§",然后列出问题。 问题:乌班图树莓派5使用csi摄像头 回答步骤: 1. 解释如何在树莓派5(Raspberry Pi 5)上使用CSI摄像头,特别是运行Ubuntu系统(这里可能指Ubuntu Server或Ubuntu Core等版本)。 2. 说明需要进行的步骤,如启用摄像头接口、安装必要的软件包等。 3. 给出一个简单的示例,比如使用命令行工具捕获图像。 注意:树莓派5使用的是最新的硬件,但CSI接口与之前的树莓派版本兼容。在Ubuntu系统上,可能需要手动启用摄像头接口,因为Ubuntu与树莓派官方的Raspberry Pi OS在配置上有所不同。 步骤: 1. 确保硬件连接正确:将CSI摄像头连接到树莓派5CSI接口上(注意方向)。 2. 在Ubuntu系统中,通常需要修改配置文件来启用摄像头接口。 3. 安装必要的工具,例如使用`libcamera`相关的工具。 具体步骤: a) 编辑`/boot/firmware/config.txt`文件,添加一行`start_x=1`(如果不存在则添加,存在则修改)。 b) 重启树莓派。 c) 安装摄像头相关软件:`sudo apt install libcamera-apps`(在Ubuntu中,包名可能稍有不同,也可能是`libcamera-tools`,具体需要查一下)。 d) 使用`libcamera`命令来测试摄像头,例如:`libcamera-hello`或`libcamera-jpeg -o test.jpg`。 注意:树莓派5的Ubuntu系统可能已经包含了必要的驱动,但配置步骤是类似的。 由于树莓派5相对较新,确保使用最新的Ubuntu版本以获得最好的支持。 示例命令: - 预览摄像头:`libcamera-hello` - 拍摄照片:`libcamera-jpeg -o test.jpg` 另外,如果使用旧版的raspistill命令,在Ubuntu上可能不可用,因为它是Raspberry Pi OS专有的。因此,推荐使用libcamera系列工具。 现在,我们按照要求回答问题,并在最后提出3-5个相关问题。</think>### 在树莓派5(Ubuntu系统)使用CSI摄像头的步骤 1. **硬件连接** - 确保树莓派5断电,将CSI摄像头排线插入CSI接口(靠近USB-C电源口),金属触点朝向网口方向。 - 轻按锁扣固定排线。 2. **启用摄像头接口** ```bash sudo nano /boot/firmware/config.txt # 编辑配置文件 ``` 在文件末尾添加: ```ini start_x=1 # 启用摄像头模块 gpu_mem=128 # 分配GPU内存(最低建议值) ``` 保存后重启:`sudo reboot` 3. **安装驱动与工具** ```bash sudo apt update sudo apt install libcamera-apps # 官方摄像头工具集 ``` 4. **基础测试命令** - 实时预览(10秒): `libcamera-hello -t 10000` - 拍摄照片: `libcamera-jpeg -o test.jpg` - 录制视频(10秒): `libcamera-vid -t 10000 -o test.h264` 5. **高级应用(Python示例)** 安装OpenCV支持: ```bash sudo apt install python3-opencv ``` 使用Python读取摄像头: ```python import cv2 cap = cv2.VideoCapture(0) # 摄像头索引通常是0 ret, frame = cap.read() if ret: cv2.imwrite("capture.jpg", frame) cap.release() ``` **常见问题排查**: - 报错`no cameras available`:检查`config.txt`配置排线接触 - 画面模糊:手动旋转摄像头镜头对焦 - 兼容性:树莓派5支持所有官方CSI摄像头(如OV5647/IMX219/IMX477)
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值