浏览量: 538 次浏览

树莓派口罩检测

2020年2月24日 0 作者 Nie Hen

硬件:树莓派3B+ 官方摄像头 两个指示灯
口罩检测: keras 目标检测算法 轻量小模型

项目演示

树莓派配置

参考链接有很多基础配置
对树莓派进行换源 进行网络配置等等

项目原地址

GitHub链接

配置环境

主要使用的有 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使用

树莓派摄像头Camera的使用

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)

enter description here

运行报错out of memory

树莓派性能不行 跑起来还是有点费劲

enter description here

关掉图形化界面

sudo raspi-config

enter description here

不在报出out of memory

但是卡顿的情况依然存在

再改代码 增加检测帧数 并简化代码将opencv部分删除

命令行中关掉 运行程序

ps -ef |grep pi_cam.py
enter description here