树莓派口罩检测
硬件:树莓派3B+ 官方摄像头 两个指示灯
口罩检测: keras 目标检测算法 轻量小模型
项目演示
树莓派配置
参考链接有很多基础配置
对树莓派进行换源 进行网络配置等等
项目原地址
配置环境
主要使用的有 opencv 和keras
参考我博客里面 都有两个的安装教程
树莓派python调用摄像头
from picamera import PiCamera
from time import sleep
camera = PiCamera()
# Rotate by 180 degrees when the camera is upside-down
camera.rotation = 180
camera.start_preview(alpha=200) # Make the camera preview see-through by setting an alpha level from 0 to 255
sleep(5)
camera.stop_preview()
上述代码实现打开摄像头预览5秒钟再关闭的功能。但是如果这个程序仅在Raspberry Pi接入了显示器才有效,SSH或是VNC访问是无效的。
参考
picamera使用
ls /dev/无 video0
1、输入 sudo raspi-config
先在interfacing option里把camera接口打开(enable)。
2、如果使用的是树莓派摄像头,还需输入sudo modprobe bcm2835-v4l2
输入这行命令,发现/dev/下已经有摄像头的设备了。
这句话相当于加载驱动模块,每次开机都要开启,摄像头才能使用。
可以将这条命令放入 /etc/rc.local 文件中,让其自启动。
opencv调用摄像头
树莓派获取到视频流给opencv
参考链接
python控制树莓派GPIO
安装库
sudo apt-get install python-rpi.gpio
示例代码
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
# BOARD编号方式,基于插座引脚编号
GPIO.setmode(GPIO.BOARD)
# 输出模式
GPIO.setup(11, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
while True:
GPIO.output(11, GPIO.HIGH)
time.sleep(1)
GPIO.output(11, GPIO.LOW)
time.sleep(1)
GPIO.output(13, GPIO.HIGH)
time.sleep(1)
GPIO.output(13, GPIO.LOW)
time.sleep(1)
GPIO.output(15, GPIO.HIGH)
time.sleep(1)
GPIO.output(15, GPIO.LOW)
time.sleep(1)
运行报错out of memory
树莓派性能不行 跑起来还是有点费劲
关掉图形化界面
sudo raspi-config
![]()
不在报出out of memory
但是卡顿的情况依然存在
再改代码 增加检测帧数 并简化代码将opencv部分删除
命令行中关掉 运行程序
ps -ef |grep pi_cam.py