原博文网址:https://www.jianshu.com/p/b16edb322508

本文中初步体验了一下树莓派摄像头的基础玩法,利用命令行实现拍照片、拍视频、监控等基本功能。

硬件安装

把摄像头插到树莓派上。需要将摄像头底下那个蓝色的一面朝向USB接口那个方向,不要插反了。等到安装完毕了,确保连接好各个硬件之后再开电源,千万记得不要热插拔摄像头。

配置

登录到树莓派,添加摄像头驱动。

sudo vi /etc/modules
# 在文件最后添加
bcm2835-v4l2
sudo raspi-config

选择Interfacing Options,选择Camera,选择<Yes>。确定后需要重启,重启的时候会发现摄像头的小灯会亮1下(之前不亮)。

通过下面的命令检查摄像头是否正常。

ls -al /dev/ | grep video

基本操作

先记住一个用来从树莓派上下载文件的命令scp,方便查看后面拍摄的照片和视频。

# 将树莓派上image.jpg文件拷贝到当前目录
scp pi@192.168.1.16:/home/pi/image.jpg .

使用命令行拍照片:

raspistill -o image.jpg

使用命令行拍10s的视频:

raspivid -o vv.h264 -t 10000

参数:

-? 列出所有参数
-o 输出到指定文件,如果文件名"-"代表标准输出(stdout)
-rot 旋转角度

参考:https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md

参考:https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspivid.md

用VLC做网络摄像头

sudo apt update
sudo apt upgradesudo apt install -y vlcraspivid -o - -t 0 -n -w 640 -h 480 | cvlc -vvv stream:///dev/stdin --sout '#standard{access=http,mux=ts,dst=:8160}' :demux=h264

参数-n说明了不显示预览窗口。随后vlc作为服务器,将流媒体送到树莓派的8160端口。同一网络下的任意其他装有VLC的设备,就可以通过访问树莓派的IP地址和8160端口(例如:http://192.168.1.16:8160)来播放摄像头拍摄的内容。

如果出现报错信息:

VLC is not supposed to be run as root.

vi /usr/bin/vlc
# search for "geteuid" and replace it with "getppid"

延迟比较严重,大概有5s左右。

用Motion做监控

Motion是Linux下一款轻量级的监控软件。在日常工作模式下,Motion可以提供网络摄像头的功能。当拍摄过程中画面发生变动时,Motion可以保存动作发生时的图片和视频。

安装和基础配置

sudo apt-get install motion

修改Motion的配置文件/etc/motion/motion.conf,更改下面几个值为:

stream_localhost off
stream_maxrate 30
framerate 15 # 默认值是2,看起来会延迟很严重
stream_port 8081 # 端口号

需要注意的是target_dir选项,默认值为/var/lib/motion。这是Motion存储文件的目标文件夹。所存储文件包括了运动捕捉产生的图片或视频。用户motion必须对该目标文件夹有写入权限。同时留意,流媒体的默认端口是8081。

修改/etc/default/motion,更改守护进程的设置:

start_motion_daemon=yes

进行监控

启动motion

# 默认是控制台模式启动,后台启动的话加 -b
sudo motion

在同一局域网下的其他电脑上,用浏览器打开192.168.1.13:8081,可以直接看到即时拍摄的流媒体。另外,可以到树莓派上的/var/lib/motion目录下查看录制好的视频。

监控运动物体

通过motion可以实现当监控到有运动物体时,截取图片。

output_pictures best # 将off改为best,还可以选first和center

启动motion,拍摄从静止到运动的场景,例如:挥挥手,然后到/var/lib/motion目下看看有没有生成包含运动物体的图片。

监控到运动物体时报警

监控到运动物体手工检查并不实用,我们更希望能够报警

首先,在/home/pi/project/try-motion目录下面新建一个文件motionpic.py

from sys import argvfilename = argv[1]
f = open('motion.log', 'a')
f.write(filename)
f.write('\r\n')

然后修改/etc/motion/motion.conf文件:

on_picture_save python3 /home/pi/project/try-motion/motionpic.py %f

当监控到运动物体时,就会记录到/home/pi/project/try-motion/motion.log文件中。

其实,以此代码为基础,我们可以实现很多监控报警场景,例如可以和树莓派的GPIO联动起来,实现一些更直观的报警效果。

参考:https://motion-project.github.io

树莓派摄像头检测到人物动作相关推荐

  1. 树莓派摄像头检测运动物体

    文章目录 一.安装OpenCv 1.在树莓派安装运行在Python2上的OpenCV 2.在树莓派安装运行在Python3上的OpenCV 二.运动目标检测 源代码 一.安装OpenCv 检测运动物体 ...

  2. 树莓派摄像头使用Motion监测人物动作

    更多干货推荐可以去牛客网看看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!!点击进入------ ...

  3. 树莓派摄像头 C++ OpenCV YoloV3 实现实时目标检测

    树莓派摄像头 C++ OpenCV YoloV3 实现实时目标检测 本文将实现树莓派摄像头 C++ OpenCV YoloV3 实现实时目标检测,我们会先实现树莓派对视频文件的逐帧检测来验证算法流程, ...

  4. 树莓派 摄像头 php,树莓派3 之 USB摄像头安装和使用

    需求 如果你想在树莓上拍照或者录影,你可以安装树莓派的摄像头(有点贵).如果你不想要为摄像头模块花费额外的金钱,那有另外一个方法,就是你常见的USB 摄像头.你可能已经在PC上安装过了.我买的如图的这 ...

  5. 树莓派摄像头测距程序

    焦距=像素*距离/实际宽度. 距离=实际宽度*焦距/像素 import cv2 import time from collections import deque import numpy as np ...

  6. 【树莓派笔记】树莓派摄像头的简单使用

    1. 摄像头的安装 这里使用的是树莓派CSI (Camera Serial Interface)摄像头.引脚面朝micoHDMI接口处.关机后安装,热插拔可能无法检测到. 2. 启用摄像头 终端输入 ...

  7. 树莓派摄像头使用常用命令及代码

    检测树莓派摄像头是否可用 raspistill -o image.jpg 2592*1944分辨率 直接在终端输入 raspistill 即可查看所有 raspistill的命令选项 间隔一定时间拍摄 ...

  8. 单目摄像头检测6D姿态

    单目摄像头检测6D姿态 CVPR2019: ROI-10D: Monocular Lifting of 2D Detection to 6D Pose and Metric Shape 论文链接: h ...

  9. 如何安装树莓派摄像头

    树莓派摄像头模块(Pi Cam)发售于2013年5月.其第一个发布版本配备了500万像素的传感器,通过排线链接树莓派上的CSI接口.而Pi Cam的第二个发布版本--也被叫做Pi NoIR中,配备了相 ...

最新文章

  1. android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
  2. 2020 诺贝尔奖「第一棒」:英美三位科学家摘得桂冠!
  3. 测试分析设计工程方法
  4. 数组排序c语言函数_C语言如何写出返回数组最大最小值之差的函数(C primer plus 10-5)...
  5. 创新设计模式:单例模式
  6. java 哈希一致算法_一致哈希算法Java实现
  7. java调用php session_php读取memcahed java session
  8. C++函数概念解析(2)
  9. linux内存管理的主要概念是虚拟内存,你知道linux内存管理基础及方法?
  10. Diango博客--24.单元测试:测试评论应用
  11. 《阿里巴巴Java开发手册》发布一周年!你不知道的背后故事!
  12. ag 搜索工具参数详解
  13. 国内外物联网平台初探(篇二:阿里云物联网套件)
  14. 陀螺研究院 | 产业区块链发展周报(11.7—11.13)
  15. zuc算法代码详解_ZUC算法原理及实现过程
  16. Resource leak解决办法
  17. 史上最好看的电影你看过吗
  18. 堡垒机JumpServer(六):内网管理云端服务器
  19. 开放网络基金会(ONF)发布开放式创新渠道 开放网络迎来变革
  20. 上海浮生记——溜达出来的美食

热门文章

  1. 毕设项目-人脸识别考勤签到系统
  2. Python 数据可视化的 3 大步骤,你知道吗?
  3. Python Socket 网络通信详解
  4. TASK SCHEDULE(任务计划)服务无法运行 解决方案
  5. C++的STL中accumulate函数用法
  6. AJAX实验(添加+模糊查询 图书)
  7. 自动下载必应主页图片做壁纸
  8. 【AE扩展插件问题解决记录】
  9. C++学习路线必读4本书
  10. linux大页卸载失败,Linux下CUDA卸载不完全与重装失败