python 摄像头跑不到120帧 python摄像头捕捉目标_树莓派


今天摄像头到货,忍不住赶紧试试效果,如下图板子上白色字体所示:Raspberry Pi Camera Rev1.3版本。


python 摄像头跑不到120帧 python摄像头捕捉目标_树莓派_02


摄像头连接

如下图,在树莓派板子上,白色字体显示Camera字样的插槽,首先需要将插槽的黑长条往上轻轻拔起,注意不是拔出来!


python 摄像头跑不到120帧 python摄像头捕捉目标_python 摄像头跑不到120帧_03


然后把树莓派摄像头白色线路插入,然后把拔起来的黑色长条再压入原位,起固定作用,如下图:


python 摄像头跑不到120帧 python摄像头捕捉目标_github_04


我这个亚克力壳子还留了个孔,让排线露出来,设计感人!


python 摄像头跑不到120帧 python摄像头捕捉目标_python 摄像头跑不到120帧_05


系统设置

接下来开机启动树莓派并登陆,做一下摄像头使用前的准备工作。


# vcgencmd 树莓派专有命令用来对硬件做各种检测,如下检查摄像头信息
$ vcgencmd get_camera

# 返回0,说明没有检测到摄像头信息
supported=0 detected=0


树莓派默认将摄像头通信关闭,此时需要开启:


# 运行命令行配置
$ sudo raspi-config


依次选择 "Interfacing Options" -> " Camera",确定后重启树莓派。

此时再次执行以下命令,可以得到摄像头信息了!


$ vcgencmd get_camera
supported=1 detected=1


raspistill命令行测试拍照

树莓派自带raspistill可以用来进行摄像头拍照功能,如下命令:


$ raspistill -v -o test.jpg

# 还有其他命令可以多试试,比如水平垂直翻转, 详细选项参考 
$ raspistill -ifx pastel -hf -vf -o test.jpg


因为没有用显示器,焦距不好把握。。效果如下图:


python 摄像头跑不到120帧 python摄像头捕捉目标_树莓派_06


raspivid命令测试录像

执行以下命令录制5s的视频:


# 生成h264格式
$ raspivid -o testvideo.h264 -t 5000

# 转出mp4格式
$ sudo apt-get install gpac

$ MP4Box -add testvideo.h264 testvideo.mp4


python实现拍照和录像功能

python主要依赖picamera模块,此模块在树莓派系统已经有了,直接import即可。以下代码与命令行功能类似:


import


目标检测

说完摄像头的基本操作,我们来看看如何使用摄像头实现目标检测(Object Dection)。在前面章节(part-3 )我讲过使用TensorFlow Lite实现图像分类,大家先参考那一篇文章安装python和TensorFlow lite环境,本章是在那一章的基础之上。

我们使用了官网的 COCO SSD MobileNet v1 模型来入门,目前支持80种物体的识别,我已经都放到我的仓库中的coco_detect目录,包括模型和标签两个文件,然后执行以下命令,进行摄像头目标检测:


$ python3 detect_picamera.py  --model coco_detect/detect.tflite  --labels coco_detect/labelmap.txt


看起来效果并不是太好,一直抱着sandwich和banana不放。。。后期决定自己定制训练集。


python 摄像头跑不到120帧 python摄像头捕捉目标_树莓派_07


总结

我在梳理实验过程时候,发现最多的问题还是在网速上,github代码下载不了、pip install失败等等,这些问题非常常见。所谓龟速压倒英雄好汉,热情全因这些鸡毛蒜皮的小事破坏。因此大家一定要有心理准备,以下是我的一些处理办法:

  • github下载不了:用gitee克隆github库再进行下载
  • pip install下载不了:使用-i指定国内镜像下载,也别搞什么pip.conf了,麻烦不说而且不生效
  • pip install失败:缺少相应类库,使用apt-get install解决
  • python脚本运行报错:缺少相应类库,使用apt-get install解决

python库编译和运行都是依赖操作系统提供的类库的,出现此类问题,都可以google一下查找哪些类库报错,然后apt-get install进行安装即可。

参考链接:

https://www.raspberrypi.org/documentation/configuration/camera.md

https://www.dummies.com/computers/raspberry-pi/test-raspberry-pi-camera-module/

https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection/raspberry_pi