关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

解析OpenQCam树莓派迷你开源相机(三)

2020.10.05

四、工作环境设置

接下来可依需求安装相关软件,大部份安装都在命令模式下进行,点击画面上左上方,黑色[ >_ ]的图案,就会开启一黑色窗口,进入命令(CMD)模式。请注意大部份的命令英文母大小写是被认为不同文,所以不要打错。

4.1  更新系统

虽然树莓派的操作系统可能已是最新的,但其它依赖包(函式库)就不一定,因此首先要更新树莓派,输入以下指令。

sudo apt-get update

sudo apt-get upgrade

sudo rpi-update (更新树莓派韧体,可忽略)

sudo reboot (重新启动)

4.2  测试相机

输入下列指令,测试相机是否可正常拍照,执行后应会在同一目录下产生test.jpg 的图像文件。若无法取像,则需检查相机的软扁平电缆是否正确的插在连接座上没有松脱。

raspistill -o test.jpg

4.3  安装中文输入法(选配,可不装)

这里推荐 SCIM,因为它支持的输入法包括两岸三地常见中文输入法。当然如你有习惯的其它输入法亦可安装。

sudo apt-get install scim scim-tables-zh scim-chewing

4.4  安装影音播放软件 (本项目用不到,但建议安装)

由于之后可能会透过摄像头录制影片,为方便观看影片建议可安装名开源影音播放软件 VLC。

sudo apt-get install vlc

4.5  安装 OpenCV 及编译程序必要依赖包

OpenCV 是网络上最多人使用的开源计算机视觉、图像处理工具,功能与时俱进,内容包山包海,连最新的深度学习都有,目前(Dec. 2017)已到了 3.3 版,想多了解一下可参阅官网 https://opencv.org/ 。为了方便大家工作,建议大家直接用编译好的 OpenCV 2.4.9 版就非常够用了,安装后包含 C, C++及 Python 都可使用。为加快各位上线时间请依序执行下面指令安装 OpenCV 2.4.9 版即可,安装时间颇长,请多一些耐性。

sudo apt-get -y install build-essential cmake cmake-curses-guipkg-config

sudo apt-get -y install libgtkglext1-dev

sudo apt-get -y install libv4l-dev v4l-utils

sudo apt-get -y install libopencv-dev python-opencv

4.6 安装树莓派 GPIO 及接口驱动库

一般驱动树莓派的GPIO(包括SPI, I2C, PWM…)有很多方式,网络上提供很多免费工具包可驱动,亦可直接对位置写入,由于本项目是用 C++语言完成,所以推荐采用BCM2835(树莓派Pi Zero W的主芯片名称为BCM2835)件包来驱动即可,可免去很多设定及变量使用问题。更进一步信息可参考官网。

目前(Dec. 2017)最新版本为 1.52。请依以下步骤下载、解压及安装。另外,要注意的一点,这里用的 40pin GPIO,所以用程控时要选用 RPI_V2_GPIO_P1_X (X 表示第几脚,而非 GPIO 编号)。

wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.52.tar.gz

tar zxvf bcm2835-1.52.tar.gz

cd bcm2835-1.52

./configure

make

sudo make check

sudo make install

为使一开机相机就能启用且可让 OpenCV 直接驱动相机不必透过其它工具,所以要修改系统档案,其步骤如下:

cd /etc/modules-load.d/

sudo nano modules.conf (这里使用内建文本编辑器 nano 进行编辑,亦可用其它文本编辑器)

进入后在最后一行按下 ENTER,新增一空白行,加入bcm2835-v4l2。按下[Ctrl + W](两键同时按)存档,再按[Ctrl + X]离开,完成编辑工作,再输入reboot 重新启动完成所有系统环境设定。

4.7 系统备份(选配,可自由决定)

作到这里已大致完成系统环境建置,建议可再利用Win32 Disk Imager将系统备份。首先将 Pi Zero W 关机,抽出目前已正常工作的记忆卡,放入桌机或笔记本电脑记忆卡槽,启动 Win32 Disk Imager,指定存盘之路径及文件名,选择欲备份的记忆卡驱动器号,按下[Read],耐心等待进度条到 100%,就完成备份。

五、开源迷你相机 OpenQCam 系统开发

接下来要开始说明如何进行程序开发。本项目是采 C++语言,原则上只须文本编辑器(可用内建 nano 或其它习惯编辑器)即可,不需窗口也不需要 IDE 环境就可独立完成。若不习惯传统文本编辑器的人,亦可在窗口环境点选文件名,按鼠标右键,启用 Text Editor(类似 Windows 上的工具软件-[笔记本]),即可进行编辑。另外,在Linux上知名的窗口开发整合环境软件QT,经测试在Pi Zero W上执行非常卡,且和 OpenCV 有些许不兼容,若想使用其它 IDE 亦可。

本项目目前仅支持 TFT LCD 320*240 像素(一般正常是直式显示,目前默认用程序转成横式显示),ILI9341 驱动 IC 之 SPI 接口,此类 LCD 在网络上为主流产品很容易买到。程序中有提供显示直式接口的函式,可自行修改。有其它显示规格需求请上网查阅驱动 IC 数据手册自行修改,但请注意改错参数有可能造成 LCD 损坏。

工作前,建议先建立一个 Project 目录,再将本项目所有档案下载该目录下。接着,执行本项目已预建编译指令批处理文件 go.sh 进行编译,等待约 30 秒后即可完成,产生执行档 camera,由于 BCM2835 须要较高权限,所以执行时要加上 sudo,完整操作如下所示。

sudo ./go.sh (编译程序)

sudo ./camera (执行程序)

执行后,摄像头会自动取像并降低影像分辨率,从五百万像素降至QVGA (320* 240 像素),LCD 上会同步显示取像内容,在 LCD 左上角会显示目前速度(取像加显示),单位是 FPS(每秒帧数),正常状况约有 15 ~ 18 FPS。当按下 SW1 时红灯会亮,模拟快门按下后闪光灯会亮,画面涷结 1 秒并自动存档。按下 SW2 时绿灯会亮,并结束程序。

本项目是做为后续利用 OpenCV 进行影像辨识的很好入门平台,程序的相关批注详见各程序原始码。


推荐
关闭