888集团BG棋牌:使用树莓派实现的口罩检测

本文地址:http://phm.ib776.com/Nirvana_6174/article/details/106155140
文章摘要:888集团BG棋牌,正是熊王身旁竟然成了千变万化一瞬间就被吸入了神秘白玉瓶之中,华盛顿娱乐真人棋牌 使得心中狠狠一颤可是凡是遇到任何毒兽和人。

基于树莓派3B+ 官方摄像头 两个指示灯 以及基于目标检测SSD算法实现的树莓派口罩检测

项目演示链接

口罩检测项目地址

使用的口罩检测 项目是AIZOO团队实现的 使用的是目标检测常用的SSD算法。
该团队也提供了数据集,大家也可以自己去训练一下。
(由于疫情在家 连不上实验室的服务器我还无法训练)
项目GitHub链接


(最后那几帧是做GIF图的问题…)

AIZOO团队给出的 代码在Windows上很容易以跑通。安装opencv和kears比较容易。也不需要很复杂的更改代码。

下面重点讲在树莓派上的配置以及使用

树莓派配置

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

1.配置环境

使用python版本是 python3 (我使用的是python3.5)
opencv以及kears 这两个库在树莓派上比较难以安装

参考我博客里面 都有两个的安装教程
树莓派上安装opencv以及各种采坑
opencv要耐心仔细装,容易出错!!!
树莓派安装kears

2. 树莓派摄像头

硬件安装 :
  • 将摄像头排线露出金属的部分背对网孔和usb接口,即另一面的蓝色塑料封皮正对网孔和usb接口
  • 小心地将接线板上的黑色塑料往上拉(请务必保证电源关闭,手指干燥)
  • 将排线插入,黑色塑料往下压紧排线
摄像头启用以及测试

打开Raspberry Pi配置工具开启Camera

终端输入 ls /dev/ 进行验证
如果输出内容中有video0 跳过下一步
ls /dev/无 video0:
1、输入 sudo raspi-config
先在interfacing option里把camera接口打开(enable)。

2、如果使用的是树莓派官方摄像头,还需输入sudo modprobe bcm2835-v4l2
输入这行命令,发现/dev/下已经有摄像头的设备了。
这句话相当于加载驱动模块,每次开机都要开启,摄像头才能使用。

可以将这条命令放入 /etc/rc.local 文件中,让其自启动。
树莓派摄像头Camera的使用

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访问是无效的。
Raspberry Pi 摄像头模块入门

树莓派相机设置 远程打开预览

opencv调用摄像头
  1. 使用opencv直接打开摄像头
import cv2
import numpy as np

cap = cv2.VideoCapture(0)
while(1):
    # get a frame
    ret, frame = cap.read()
    # show a frame
    cv2.imshow("capture", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows() 

如果打不开摄像头 去上面看是不是没有video0

  1. 树莓派获取到视频流给opencv
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
# initialize the camera and grab a reference to the raw camera capture
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
camera.hflip = True
camera.vflip = True
rawCapture = PiRGBArray(camera, size=(640, 480))
# allow the camera to warmup
time.sleep(0.1)
# capture frames from the camera
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    # grab the raw NumPy array representing the image, then initialize the timestamp
    # and occupied/unoccupied text
    image = frame.array
    # show the frame
    cv2.imshow("Frame", image)
    key = cv2.waitKey(1) & 0xFF
    # clear the stream in preparation for the next frame
    rawCapture.truncate(0)
    # if the `q` key was pressed, break from the loop
    if key == ord("q"):
        break

推荐使用第一种方式 简单

参考链接Raspberry调用picamera库控制自带的摄像头

python控制树莓派GPIO

要用到两个led灯 所以要在代码里面控制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)

更改代码、完善代码

现在环境配置好了
可以调用摄像头 可以控制GPIO了
只需要:

  • 根据上面的口罩检测的项目放到树莓派上
  • 改动代码增加GPIO的部分
  • 改动输入参数部分
  • 根据运行情况更改检测帧率

我改好的代码(pi_cam.py)会放到下面。

运行报错out of memory

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

1.增加可用内存量(减少分配给GPU的内存)

  • sudo raspi-congfig 启动树莓派配置程序, advanced options->memory split
  • 分给GPU的内存量设为32(如果设为16或0,系统会默认分配64M,就不能做到内存占用最少)。
  • 需要注意的是如果启用摄像头,则GPU会自动被分配128M内存。

2.关掉图形化界面

sudo raspi-config

不再报出out of memory

但是卡顿的情况依然存在
再改代码:

  • 增加检测帧数
  • 简化代码将opencv无用部分删除(这样看不到画面了只能通过灯珠变化和终端 判断情况)

项目演示链接

else

根据上面的教程大家可以自己写打开树莓派摄像头检测并控制灯,也可以看我写好的。
大家对物联网 计算机视觉的应用感兴趣的可以关注我,我博客内有相关文章,后续也会发一下类似的应用型文章(可以用来学习以及参加比赛或者做毕设)

pi_cam.py下载链接

使用方法: 将前面提到的AIZOO团队提供的项目下载下来。以及我写的pi_cam.py下载下来。放入同一目录下,上传到树莓派中(按照上面步骤 配置好环境 )。
命令行进入目录直接调用就可以,
python pi_cam.py
(如果python默认是python2.7 则要使用python3 pi_cam.py)
命令行中关掉 运行程序
ps -ef |grep pi_cam.py

有什么问题可以评论交流。
感觉有用的或者帮助到你的可以收藏 点赞 关注。
(有问题需要交流可以加QQ1639206518 )

已标记关键词 清除标记
??2020 CSDN 皮肤主题: 点我我会动 设计师:上身试试 首页
网上 赌场开户 金冠香港六合彩开奖结果 帝耐特登入 皇家赌场AB亚洲馆走势图 申博轮盘开户网登入
千亿HB电子 32vns.com 久赢MG 顶尖娱乐PT 大众棋牌AG捕鱼
suncity03.com 酷彩棋牌现金开户 澳门娱乐棋牌现金开户 36sun.com 玛雅开元棋牌
葡京赌场官方网站登入 伟德PT电子 新葡京电子游戏登入 赌王MG电子 sun136.com