基于树莓派3B+ 官方摄像头 两个指示灯 以及基于目标检测SSD算法实现的树莓派口罩检测 项目演示: 链接 使用的口罩检测 项目是AIZOO团队实现的 使用的是目标检测常用的SSD算法。 AIZOO团队给出的 代码在Windows上很容易以跑通。安装opencv和kears比较容易。也不需要很复杂的更改代码。 下面重点讲在树莓派上的配置以及使用 参考链接有很多基础配置 使用python版本是 python3 (我使用的是python3.5) 参考我博客里面 都有两个的安装教程 打开Raspberry Pi配置工具开启Camera 终端输入 ls /dev/ 进行验证 2、如果使用的是树莓派官方摄像头,还需输入sudo modprobe bcm2835-v4l2 可以将这条命令放入 /etc/rc.local 文件中,让其自启动。 上述代码实现打开摄像头预览5秒钟再关闭的功能。但是如果这个程序仅在Raspberry Pi接入了显示器才有效,SSH或是VNC访问是无效的。 如果打不开摄像头 去上面看是不是没有video0 推荐使用第一种方式 简单 参考链接Raspberry调用picamera库控制自带的摄像头 要用到两个led灯 所以要在代码里面控制GPIO 安装库 sudo apt-get install python-rpi.gpio 示例代码 现在环境配置好了 我改好的代码(pi_cam.py)会放到下面。 树莓派性能不行 跑起来还是有点费劲 1.增加可用内存量(减少分配给GPU的内存) 2.关掉图形化界面 sudo raspi-config 不再报出out of memory 但是卡顿的情况依然存在 项目演示: 链接 根据上面的教程大家可以自己写打开树莓派摄像头检测并控制灯,也可以看我写好的。 使用方法: 将前面提到的AIZOO团队提供的项目下载下来。以及我写的pi_cam.py下载下来。放入同一目录下,上传到树莓派中(按照上面步骤 配置好环境 )。
口罩检测项目地址
该团队也提供了数据集,大家也可以自己去训练一下。
(由于疫情在家 连不上实验室的服务器我还无法训练)
项目GitHub链接
(最后那几帧是做GIF图的问题…)树莓派配置
对树莓派进行换源 进行网络配置等等1.配置环境
opencv以及kears 这两个库在树莓派上比较难以安装
树莓派上安装opencv以及各种采坑
opencv要耐心仔细装,容易出错!!!
树莓派安装kears2. 树莓派摄像头
硬件安装 :
摄像头启用以及测试
如果输出内容中有video0 跳过下一步
ls /dev/无 video0:
1、输入 sudo raspi-config
先在interfacing option里把camera接口打开(enable)。
输入这行命令,发现/dev/下已经有摄像头的设备了。
这句话相当于加载驱动模块,每次开机都要开启,摄像头才能使用。
树莓派摄像头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()
Raspberry Pi 摄像头模块入门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()
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
python控制树莓派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)
两个led灯一个 接两个普通输出引脚就行。另外记得接地。
我用的是一个13 一个是15
更改代码、完善代码
可以调用摄像头 可以控制GPIO了
只需要:
运行报错out of memory
再改代码:
else
大家对物联网 计算机视觉的应用感兴趣的可以关注我,我博客内有相关文章,后续也会发一下类似的应用型文章(可以用来学习以及参加比赛或者做毕设)
命令行进入目录直接调用就可以,
python pi_cam.py
(如果python默认是python2.7 则要使用python3 pi_cam.py)
命令行中关掉 运行程序
ps -ef |grep pi_cam.py
有什么问题可以评论交流。
感觉有用的或者帮助到你的可以 关注。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算