摄像头

简介 the Camera Modules

现在有几种官方的 Raspberry Pi 摄像头模块。最初的 500 万像素型号是 2013 年发布的 发布,随后是 2016 年发布的 发布的 800 万像素 摄像头模块 2。最新的相机型号是 1200 万像素的 相机模块 3,于 2023 年 发布。树莓派已不再提供最初的 500 万像素设备。

所有这些相机都有可见光和红外版本,而相机模块3也有标准或宽FoV型号,共有四种不同的型号。

Camera Module 3 normal and wide angle
相机模块3(左)和相机模块3宽(右)
Camera Module 3 NoIR normal and wide angle
相机模块3 NoIR(左)和相机模块3 NoIR Wide(右)

此外,分别是 1200 万像素的 高品质相机,带有 CS 或 M12 卡口变体,可与外置镜头配合使用,网址为 https://www.raspberrypi. com/news/new-product-raspberry-pi-high-quality-camera-on-sale-now-at-50/[2020年发布]和https://www.raspberrypi. com/news/new-autofocus-camera-modules/[2023]。HQ相机没有红外版本,但如果需要,可以使用 红外滤镜可以移除

M12- and C/CS-mount versions of the HQ Camera
HQ相机,M12卡口(左)和C/CS卡口(右)

树莓派人工智能相机使用索尼IMX500成像传感器为任何相机应用提供低延迟和高性能AI功能。与 Raspberry Pi’s camera software stack 的紧密集成允许用户以最小的成本部署自己的神经网络模型。

The Raspberry Pi AI Camera

最后是全局快门相机,它http://raspberrypi.com/news/new-raspberry-pi-global-shutter-camera[于2023年发布]。没有红外版本的GS相机,但是如果需要的话,有 可移除红外滤光片

GS Camera
全局快门相机
Note
所有带有CSI接口的Raspberry Pi计算机都可以使用Raspberry Pi相机模块。

Rolling or Global shutter?

大多数数码相机,包括我们的相机模块,都使用 滚动快门:它们逐行扫描正在拍摄的图像,然后输出结果。您可能已经注意到,这可能会在某些设置中导致失真效果;如果您曾经拍摄过旋转的螺旋桨叶片,您可能会发现图像闪烁,而不是看起来像一个正在旋转的物体。螺旋桨叶片有足够的时间在相机滑动并观察场景的微小瞬间改变位置。

一个 全局快门,就像我们的全局快门相机模块上的那个,不会这样做。它一次捕捉场景中每个像素的光线,所以你的螺旋桨叶片照片不会遭受同样的失真。

为什么这很有用?快速移动的物体,比如那些螺旋桨叶片,现在很容易捕捉;我们还可以同步几个相机,在完全相同的时间拍摄一张照片。这里有很多好处,比如在捕捉立体图像时最大限度地减少失真。(如果左眼出现的任何运动还没有出现在右眼,人脑会感到困惑。树莓派全局快门相机还可以在比滚动快门相机更短的曝光时间内运行——在光线充足的情况下,曝光时间可降至30微秒——这使得它对高速摄影很有用。

Note
全局快门相机的图像传感器有一个6.3毫米的对角线主动感应区域,大小与树莓派的HQ相机相似。但是,像素更大,可以收集更多的光。大像素尺寸和低像素数在机器视觉应用中很有价值;传感器产生的像素越多,实时处理图像就越困难。为了解决这个问题,许多应用缩小和裁剪图像。这对于全局快门相机和适当的镜头放大率来说是不必要的,其中较低的分辨率和大像素尺寸意味着可以本地捕获图像。

安装Raspberry Pi 相机

Warning
相机对静电很敏感。在处理PCB之前自己接地。如果你没有接地带,使用水槽水龙头或类似的东西就足够了。

连接相机

柔性电缆插入 Raspberry Pi 上标有 CAMERA 的连接器,该连接器位于以太网和 HDMI 端口之间。插入电缆时,银色触点必须朝向 HDMI 端口。要打开连接器,将连接器顶部的卡扣向上拉,然后拉向以太网端口。应将柔性电缆牢固地插入连接器,注意不要将柔性电缆弯曲得太厉害。要关闭连接器,请将连接器顶部向下推,远离以太网端口,同时将柔性电缆固定到位。

下面的视频展示了如何在 Raspberry Pi 1 上连接原装摄像头:

我们制作了一个视频来说明连接相机的过程。以下视频展示了如何在原始树莓派1上连接原始相机。所有带有相机连接器的树莓派板的原理都是一样的,尽管树莓派5和所有树莓派零型号都需要 different camera cable

虽然 Raspberry Pi 5 和所有 Raspberry Pi Zero 型号都需要使用 不同的摄像头连接线,但所有带摄像头连接器的 Raspberry Pi 板都使用相同的安装方法。

有些摄像头的镜头上可能会覆盖一小块半透明的蓝色塑料薄膜。这只是为了在运输过程中保护镜头。要撕下它,请轻轻剥离。

Note
在将推荐的 6mm16mm 镜头安装到HQ相机周围有额外的留档。

软件准备

在继续之前,我们建议确保您的内核、GPU固件和应用程序都是最新的。请按照 保持最新操作系统 上的说明进行操作。

然后,请按照 rpicam-apps, 和 Picamera2 Python 库 的相关设置说明进行操作。

硬件规格

Camera Module v1 Camera Module v2 Camera Module 3 Camera Module 3 Wide HQ Camera AI Camera GS Camera

Net price

$25

$25

$25

$35

$50

$70

$50

Size

Around 25 × 24 × 9 mm

Around 25 × 24 × 9 mm

Around 25 × 24 × 11.5 mm

Around 25 × 24 × 12.4 mm

38 × 38 × 18.4mm (excluding lens)

25 × 24 × 11.9mm

38 × 38 × 19.8mm (29.5mm with adaptor and dust cap)

Weight

3g

3g

4g

4g

30.4g

6g

34g (41g with adaptor and dust cap)

Still resolution

5 megapixels

8 megapixels

11.9 megapixels

11.9 megapixels

12.3 megapixels

12.3 megapixels

1.58 megapixels

Video modes

1080p30, 720p60 and 640 × 480p60/90

1080p47, 1640 × 1232p41 and 640 × 480p206

2304 × 1296p56, 2304 × 1296p30 HDR, 1536 × 864p120

2304 × 1296p56, 2304 × 1296p30 HDR, 1536 × 864p120

2028 × 1080p50, 2028 × 1520p40 and 1332 × 990p120

2028 × 1520p30, 4056 × 3040p10

1456 × 1088p60

Sensor

OmniVision OV5647

Sony IMX219

Sony IMX708

Sony IMX708

Sony IMX477

Sony IMX500

Sony IMX296

Sensor resolution

2592 × 1944 pixels

3280 × 2464 pixels

4608 × 2592 pixels

4608 × 2592 pixels

4056 × 3040 pixels

4056 × 3040 pixels

1456 × 1088 pixels

Sensor image area

3.76 × 2.74 mm

3.68 × 2.76 mm (4.6 mm diagonal)

6.45 × 3.63mm (7.4mm diagonal)

6.45 × 3.63mm (7.4mm diagonal)

6.287mm × 4.712 mm (7.9mm diagonal)

6.287mm × 4.712 mm (7.9mm diagonal)

6.3mm diagonal

Pixel size

1.4 µm × 1.4 µm

1.12 µm × 1.12 µm

1.4 µm × 1.4 µm

1.4 µm × 1.4 µm

1.55 µm × 1.55 µm

1.55 µm × 1.55 µm

3.45 µm × 3.45 µm

Optical size

1/4"

1/4"

1/2.43"

1/2.43"

1/2.3"

1/2.3"

1/2.9"

Focus

Fixed

Adjustable

Motorized

Motorized

Adjustable

Adjustable

Adjustable

Depth of field

Approx 1 m to ∞

Approx 10 cm to ∞

Approx 10 cm to ∞

Approx 5 cm to ∞

N/A

Approx 20 cm to ∞

N/A

Focal length

3.60 mm +/- 0.01

3.04 mm

4.74 mm

2.75 mmm

Depends on lens

4.74 mm

Depends on lens

Horizontal Field of View (FoV)

53.50 +/- 0.13 degrees

62.2 degrees

66 degrees

102 degrees

Depends on lens

66 ±3 degrees

Depends on lens

Vertical Field of View (FoV)

41.41 +/- 0.11 degrees

48.8 degrees

41 degrees

67 degrees

Depends on lens

52.3 ±3 degrees

Depends on lens

Focal ratio (F-Stop)

F2.9

F2.0

F1.8

F2.2

Depends on lens

F1.79

Depends on lens

Maximum exposure time (seconds)

3.28

11.76

112

112

670.74

112

15.5

Lens Mount

N/A

N/A

N/A

N/A

C/CS- or M12-mount

N/A

C/CS

NoIR version available?

Yes

Yes

Yes

Yes

No

No

No

Note
some evidence to suggest that the Camera Module 3 may emit RFI at a harmonic of the CSI clock rate. This RFI is in a range to interfere with GPS L1 frequencies (1575 MHz). Please see the thread on Github 详细信息和建议的解决方法。

机械图纸

可用的机械图纸;

  • Camera Module 2 PDF

  • Camera Module 3 PDF

  • Camera Module 3 Wide PDF

  • Camera Module 3 STEP files

  • HQ Camera Module (CS-mount version) PDF

    • The CS-mount PDF

  • HQ Camera Module (M12-mount version) PDF

  • GS Camera Module PDF

Note
相机模块3的 板尺寸和安装孔位置与相机模块2相同。但是,由于传感器模块尺寸和位置的变化,它在机械上与树莓派零壳的相机盖不兼容。

原理图

树莓派CSI相机连接器示意图。

相机连接器

其他可用的示意图;

  • Camera Module v2 PDF

  • Camera Module v3 PDF

  • HQ Camera Module PDF

相机滤光片

一些传输特性可用于相机模块3以及HQ和GS相机。

Note
这些图表可作为 PDF 获得。

Camera Module 3

相机模块3围绕IMX708构建,具有以下光谱灵敏度特性。

Camera Module 3 Transmission Graph

HQ Camera

不带IR-Cut滤镜的Raspberry Pi HQ相机。

HQ Camera Transmission Graph without IR-Cut filter

GS Camera

不带IR-Cut滤镜的Raspberry Pi GS相机。

GS Camera Transmission Graph without IR-Cut filter

HQ 和 GS Cameras

HQ和GS相机使用Hoya CM500红外滤光片。其透射特性如下图所示。

CM500 Transmission Graph

红外滤光片

高品质相机和全局快门相机都包含一个红外滤光片,以降低相机对红外光的敏感性并帮助户外照片看起来更自然。但是,您可以删除滤光片以:

  • Enhance colours in certain types of photography, such as images of plants, water, and the sky

  • Provide night vision in a location that is illuminated with infrared light

移除滤光片

Warning
此过程不可逆转: 滤光片在吊起和更换时会损坏,虽然IR滤光片约为1.1毫米厚,但在移除时可能会破裂。产品保修将失效

您可以从HQ和GS相机上移除滤镜。HQ相机显示在下面的演示中。

FILTER ON small

Note
确保在清洁无尘的环境中工作,因为传感器将暴露在空气中。
  1. 拧开主电路板下侧的两个1.5毫米六角锁键。小心不要让垫圈滚走。

    SCREW REMOVED small

  2. 外壳和PCB之间有一个稍微粘的材料垫圈,需要一些力才能分开。您可以尝试一些方法来削弱粘合剂,例如少量异丙醇和/或加热(~20-30)。

  3. 一旦粘合剂松动,提起板并将其放在非常干净的表面上。确保传感器不会接触表面。

    FLATLAY small

  4. 将镜头朝上,将支架放在平坦的表面上。

    SOLVENT small

  5. 为了尽量减少损坏滤光片的风险,请使用笔尖或类似的软塑料物品,仅在玻璃与铝连接的边缘向下推滤光片。胶水会露出缝隙,滤光片会从镜头支架上脱落。

    REMOVE FILTER small

  6. 鉴于更换镜头会导致传感器暴露在外,此时您可以贴上透明滤光片(例如OHP塑料),以最大限度地减少灰尘进入传感器腔的机会。

  7. 更换电路板上的主外壳。请务必将外壳与垫圈重新对齐,垫圈仍留在电路板上。

  8. 先涂上尼龙垫圈,防止损坏电路板。

  9. 接下来,安装钢垫圈,防止损坏尼龙垫圈。拧下两个六角锁键。只要垫圈按正确的顺序安装,就不需要拧得很紧。

    FILTER OFF small

Note
不太可能可以将滤光片粘回原位并使设备恢复正常光学相机的功能。

推荐镜头

以下镜头推荐用于我们的HQ和GS相机。

Note
虽然HQ相机提供C/CS-和M12卡口版本,但GS相机仅提供C/CS-卡口。

C/CS 镜头

我们推荐两个镜头,一个6mm广角镜头和一个16mm长焦镜头。这些镜头应该可以从您最近的 授权经销商 买到。

16mm telephoto 6mm wide angle

Resolution

10MP

3MP

Image format

1"

1/2"

Aperture

F1.4 to F16

F1.2

Mount

C

CS

Field of View H°×V° (D°)

HQ

22.2°×16.7° (27.8°)

55°×45° (71°)

GS

17.8°×13.4° (22.3)

45°×34° (56°)

Back focal length

17.53mm

7.53mm

M.O.D.

0.2m

0.2m

Dimensions

φ39.00×50.00mm

φ30×34mm

M12 镜头

m12 lens

我们推荐三种由 高佳光学技术 制造的镜片。这些镜片可在离您最近的 授权经销商处购买。

8mm 25mm Fish Eye

Resolution

12MP

5MP

15MP

Image format

1/1.7"

1/2"

1/2.3"

Aperture

F1.8

F2.4

F2.5

Mount

M12

HQ Field of View H°×V° (D°)

49°×36° (62°)

14.4°×10.9° (17.9)°

140°×102.6° (184.6°)

同步捕获

HQ相机和全局快门相机都支持同步捕获。 利用XVS引脚(垂直同步)允许一台相机在开始帧捕捉时脉冲。 然后,另一台摄像机可以监听此同步脉冲,并与另一台摄像机同时捕获一帧。

使用 HQ Camera

为了正确操作,两台摄像机都需要XVS线路上的1.65V上拉电压,该电压由通过Raspberry Pi上的3.3V和GND引脚的电位分压器创建。

Image showing potential divider setup

创建一个分压器,从两个10kΩ电阻到3.3V和地(使有效源阻抗为5kΩ的1.65V)。这可以连接到任一树莓派。

将每个HQ相机板的GND和XVS测试点焊接到彼此。

将XVS线连接到1.65V电位分压器上拉。

启动两个 Raspberry Pis

文件 /sys/module/imx477/parameters/trigger_mode 确定哪些板输出脉冲,或等待接收脉冲(源和接收器)。 此参数只能在超级用户模式下更改。

运行以下命令配置接收器:

$ sudo su
$ echo 2 > /sys/module/imx477/parameters/trigger_mode
$ exit

运行以下命令配置源:

$ sudo su
$ echo 1 > /sys/module/imx477/parameters/trigger_mode
$ exit

运行以下命令启动接收器:

$ rpicam-vid --frames 300 --qt-preview -o sink.h264

运行以下命令启动源:

$ rpicam-vid --frames 300 --qt-preview -o source.h264

帧应该是同步的。使用 --frames 确保捕获相同数量的帧数,并且记录的长度完全相同。 首先运行接收器可确保不会丢失任何帧。

Note
当源处于空闲状态时,需要潜在的分频器将XVS引脚拉至高电平。这可确保在启动时不会创建或丢失帧。初始化时源从低到高,这可能会触发假帧。

使用 GS Camera

Note
全局快门(GS)相机也可以在同步模式下操作。但是,源相机将记录一个额外的帧。确保两个相机捕获相同数量的帧的一个更好的替代方法是使用 外部触发方式

要同时作为源极和接收器运行,全局快门相机还需要将XHS(水平同步)引脚连接在一起。然而,这些不需要连接到上拉电阻。

接线设置与 HQ Camera method 相同,只是您还需要将XHS引脚连接在一起。

创建一个分压器,从两个10kΩ电阻到3.3V和地(使有效源阻抗为5kΩ的1.65V)。这可以连接到任一树莓派。

将2根电线焊接到每块板上的XVS测试点,并将这两根电线连接到1.65V电位分压器上。

将每个相机板的GND焊接到彼此。还将2根电线焊接到每块板上的XHS测试点并将它们连接起来。XHS引脚不需要上拉。

在您希望充当水槽的板上,将MAS焊盘的两半焊接在一起。这告诉传感器充当水槽,并将等待信号以捕获帧。

启动信号源和接收器

运行以下命令启动接收器:

$ rpicam-vid --frames 300 -o sync.h264

由于IMX296传感器的限制,接收器不能记录与源完全相同的帧数。源在接收器开始记录之前多记录一帧。因此,您需要使用 --frames 选项指定接收器少记录一帧。

在启动源之前至少等待两秒钟。

等待两秒钟后,运行以下命令启动源:

$ rpicam-vid --frames 299 -o sync.h264

因为接收器和源记录的帧数不同,所以使用 ffmpeg 重新同步视频。通过从源中删除第一帧,我们会得到两个具有相同起点和帧长的录音:

$ ffmpeg -i source.h264 -vf select="gte(n\, 1)" source.h264

GS 摄像机外部触发器

全局快门(GS)摄像机可以通过板上的外部触发器(板上表示为XTR)连接进行脉冲外部触发。多个摄像机可以连接到同一个脉冲,从而允许另一种方式同步两个摄像机。

曝光时间等于低脉冲宽度时间加上额外的14.26us。即10000us的低脉冲最终结果为10014.26us的曝光时间。帧率直接由您脉冲引脚的频率控制。30Hz的PWM频率对应每秒30帧的帧率。

Image showing pulse format

前提准备

Warning
此修改包括移除SMD焊接部分。除非您认为自己有能力完成此修改,否则不应尝试此修改。焊接到相机板时,请移除塑料后盖,以免损坏它。

如果您的主板安装了晶体管Q2(下图以蓝色显示),那么您需要从主板上移除R11(以红色显示)。这将GP1连接到XTR,如果不移除R11,相机将无法在外部触发模式下运行。 组件的位置显示在下面。

Image showing resistor to be removed

接下来,将电线焊接到GS相机板上XTR和GND的接触点。请注意,XTR是1.8V输入,因此您可能需要电平转换器或电位分压器。

我们可以使用树莓派Pico来提供触发器。通过1.5kΩ电阻将任何PicoGPIO引脚(本例中使用GP28)连接到XTR。还可以在XTR和GND之间连接1.8kΩ电阻,以将高逻辑电平降低到1.8V。接线图如下所示。

Image showing Raspberry Pi Pico wiring

Boot up the Raspberry Pi with the camera connected.

通过超级用户模式启用外部触发:

$ sudo su
$ echo 1 > /sys/module/imx296/parameters/trigger_mode
$ exit

Raspberry Pi Pico MicroPython 代码

from machine import Pin, PWM

from time import sleep

pwm = PWM(Pin(28))

framerate = 30
shutter = 6000  # In microseconds

frame_length = 1000000 / framerate
pwm.freq(framerate)

pwm.duty_u16(int((1 - (shutter - 14) / frame_length) * 65535))

低脉冲宽度等于快门时间,PWM的频率等于帧速率。

Note
在此示例中,引脚28连接到GS相机板上的XTR接触点。

运行

运行Pico上的代码,并设置相机运行:

$ rpicam-hello -t 0 --qt-preview --shutter 3000

每次Pico脉冲引脚,它将会生成一个帧。如果需要控制帧速率,就改变脉冲之间的持续时间。

Note
运行 rpicam-apps 时,始终指定固定的快门持续时间,以确保AGC不会调整相机的快门速度。持续时间无关紧要,因为它实际上是由外部触发脉冲控制的。