8000 GitHub - yuanzhongqiao/speed-camera: 使用 python、opencv、视频流、运动跟踪的 Unix、Windows、Raspberry Pi 对象速度相机。包括一个独立的 Web 服务器界面、使用 opencv 模板匹配的图像搜索和一个鞭尾管理菜单界面 包括 picam 和网络摄像头 用于运动跟踪安全摄像机配置的插件,包括 rclone 同步脚本。A Unix, Windows, Raspberry Pi Object Speed Camera using python, opencv, video
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

使用 python、opencv、视频流、运动跟踪的 Unix、Windows、Raspberry Pi 对象速度相机。包括一个独立的 Web 服务器界面、使用 opencv 模板匹配的图像搜索和一个鞭尾管理菜单界面 包括 picam 和网络摄像头 用于运动跟踪安全摄像机配置的插件,包括 rclone 同步脚本。A Unix, Windows, Raspberry Pi Object Speed Camera using python, opencv, video

License

Notifications You must be signed in to change notification settings

yuanzhongqiao/speed-camera

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SPEED CAMERA - 物体运动跟踪器在 Awesome <INSERT LIST NAME> 中提及

RPI、Unix 和 Windows 测速相机使用 python、openCV、RPI 相机模块、USB Cam 或 IP Cam

有关详细信息,请参阅程序功能Wiki 说明YouTube 视频

关于 Bullseye 的注释:

Speed-cam.py 版本 11.26 及更高版本现在将在 Raspberry Pi OS Bullseye 或更高版本下运行,带有 pi 摄像头模块以及 usbcam 和 IP/RTSP 摄像头。 对于 picamera 支持,请运行 sudo raspi-config、界面选项,然后启用/禁用 Legacy Camera 选项并重新启动。

RPI Quick curl 安装或升级

重要 - raspbian sudo apt-get updatesudo apt-get upgrade 不会作为
speed-install.sh 的一部分执行,因此强烈建议您在安装之前运行它们 以确保您的系统是最新的。

第 1 步

按下面代码框右侧的 GitHub 复制图标。
或下面的代码框中的 With mouse left button highlight curl 命令。在突出显示的区域右键单击鼠标,然后选择 Copy 。

curl -L https://raw.github.com/pageauc/speed-camera/master/speed-install.sh | bash

步骤 2

在 RPI putty SSH 或终端会话上右键单击,选择粘贴,然后选择 Enter以下载并运行脚本。

这将下载并运行 speed-install.sh 脚本。如果在 python3 下运行,则需要安装 opencv3(如果未安装)。 如果你需要编译 openCV,请参阅我的 Github Repo 菜单驱动编译 opencv3 from source project

Ver 13.00 注释

版本 13.05 是测速摄像头的主要修订版。摄像机线程代码现在由 strmcam.py 模块处理。 config.py 变量名称已更改,因此您需要备份并 cp config.py.new config.py(有关详细信息,请参阅下文)
重要:所有设置均 config.py。升级到 13.05 版或更高版本后,您可以删除 configcam.py(如果存在)。 插件现在可以工作了。您可以自定义插件文件以满足您的需要或创建自己的插件文件。如果要升级,您应该删除、移动 旧插件,因此在 UPGRADE 期间将下载新插件。如果您发现错误或问题,请发布 GitHub 问题。克劳德

重要 speed-cam.py 版本 8.x 或更高版本需要更新的 config.py 和插件。

cd ~/speed-camera
cp config.py config.py.bak
cp config.py.new config.py

要替换插件,请重命名(或删除)以下插件文件夹

cd ~/speed-camera
mv plugins pluginsold   # renames plugins folder
rm -r plugins           # deletes plugins folder

然后运行 UPGRADE 菜单选取 menubox.sh

Mac 或 Windows 系统

请参阅 Windows 10/11 或 Apple Mac Docker 安装快速入门
不使用 Docker 的 Windows 或 Unix Distro 安装

计划描述

这是一个 raspberry pi、Windows、Unix Distro 计算机 openCV 对象测速相机演示程序。 它是用 python 编写的,并使用 openCV 来检测和跟踪 摄像机视图中位于最小像素区域上方的最大移动对象。

用户变量存储在 config.py 文件中。 运动检测限制在 MO_CROP_Y_UPPERMO_CROP_Y_LOWERMO_CROP_X_LEFT MO_CROP_X_RIGHT 变量(道路或感兴趣区域)之间。MO_CROP_AUTO_ON = True 将覆盖手动设置,并将根据图像大小自动计算粗略的裁剪区域。 Motion Tracking 由 config.py 中的 MO_TRACK_EVENT_COUNT 变量控制。这将设置跟踪事件的数量,并且 轨道长度(以像素为单位)。这可能需要针对摄像机视图、CPU 速度等进行调整。 速度是根据 L2R 和 R2L 运动方向的 CAL_OBJ_PX_CAL_OBJ_MM_ 变量计算的。视频流帧图像将为 捕获并保存在媒体/图像日期为日期的子文件夹(可选)中,每个变量 IM_SUBDIR_MAX_FILES = 2000有关变量设置的详细信息,请参阅 config.py 文件

如果 LOG_DATA_TO_CSV = True,则将使用存储在 中的 事件数据创建/更新 speed-cam.csv 文件 CSV(逗号分隔值)格式。这可以导入到电子表格、数据库等程序中进行进一步处理。 版本 8.9 添加了一个 sqlite3 数据库来存储速度数据。默认值为 data/speed_cam.db 数据在 speed 表中。 可通过 config.py 管理数据库设置。数据库是根据 config.py 设置自动创建的。了解更多 详细信息请参见如何管理 Sqlite3 数据库

管理员、报表、图形和实用程序脚本

  • menubox.sh 脚本是一个 whiptail 菜单系统,可以更轻松地管理程序设置和操作。
  • run.sh此 bash 脚本使用 supervisorctl 来管理 speed-cam.py 的启动、停止、状态和 webserver.py。配置为由于 RTSP 流中断而自动启动。 有关详细信息,请参阅 supervisor 文件夹中的 conf 文件。注意:您必须运行 ./run.sh install 来初始化指向 /etc/supervisor/conf.d 文件夹的符号链接。 在运行 ./run.sh start 之前停止运行任何 speed-cam 和/或 websever 进程
  • webserver.py允许从 Web 浏览器查看图像和/或数据(请参阅 config.py 了解 Web 服务器设置)
  • 克隆管理可选远程文件同步到远程存储服务(如 google drive、DropBox 等)的设置和设置。
  • watch-app.sh 用于从远程存储服务管理设置。加上应用程序监控。
  • sql-make-graph-count-totals.py查询 sqlite 数据库并生成一个或多个 matplotlib 图形图像并保存到 media/graphs 文件夹。 图表按小时、天或月显示指定前几天的计数,并加快速度。可以从 config.py GRAPH_RUN_LIST 在 Matplotlib Image Settings 部分下。
  • sql-make-graph-speed-ave.py查询 sqlite 数据库并生成一个或多个 matplotlib 图形图像并保存到 media/graphs 文件夹。 图表按小时、天或月显示指定前几天的平均速度,并按时间显示。可以从 config.py GRAPH_RUN_LIST 在 Matplotlib Image Settings 部分下。
  • sql-speed_gt.py查询 sqlite 数据库并生成带有图像链接的 html 格式报告并保存到 media/reports 文件夹。 可以接受参数,或者如果从不带参数的控制台运行,则会提示用户
  • makehtml.py创建合并 csv 和图像数据的 html 文件,以便更轻松地从 Web 浏览器查看并保存到 media/html 文件夹。
  • speed-search.py 允许使用 OpenCV 模板匹配搜索类似的目标对象图像。结果保存到 media/search 文件夹。
  • alpr-speed.py这是一个演示,它使用 OPENALPR 车牌读取器处理具有车辆前视图或后视图的现有测速摄像头图像。输出保存到 media/alpr 文件夹。有关安装、设置和运行的详细信息,请参阅 ALPR Wiki 文档

参考链接

要求

已安装 Raspberry Pi 计算机RPI 摄像头模块或插入 USB 摄像头。确保硬件经过测试并正常工作。大多数 RPI 模型都可以正常工作。 由于线程化,四核 RPI 将大大提高性能。建议使用最新版本的 Raspbian 操作系统

MS Windows 或 Unix 发行版计算机,插入了 USB 网络摄像头并安装了最新版本的 python 有关详细信息,请参阅 Wiki 详细信息

建议您升级到 OpenCV 版本 3.x.x,以便从源代码轻松编译 opencv 3.4.2 查看 https://github.com/pageauc/opencv3-setup

Windows 或非 RPI Unix 安装

对于 Windows 或 Unix 计算机平台(非 RPI 或 Debian),确保您拥有最多的 最新的 Python 版本。下载并安装 pythonOpencv

最新的 python 版本包括运行此代码所需的 numpy 和最新的 opencv 版本。 您还需要安装并工作 USB 网络摄像头。 要安装此程序,请访问 GitHub 项目页面,网址为 https://github.com/pageauc/speed-camera 选择绿色的 Clone or download 按钮。文件将被克隆或压缩 移动到测速相机文件夹。您可以从 python IDLE 应用程序(推荐)、GUI 桌面运行代码 或命令提示符终端窗口。注意 bash .sh shell 脚本不适用于 Windows,除非 为 Windows 安装了对 bash 的特殊支持,例如 http://win-bash.sourceforge.net/ http://www.cygwin.com/ 注意:我还没有测试过这些。

Docker 安装快速入门

测速摄像头支持根据系统要求和说明
在 Apple Macintosh 上安装
docker,并支持
在启用 BIOS 虚拟化的情况下在 Microsoft Windows 10/11 64 位上安装 Docker 以及适用于 Linux WSL 2 的 Microsoft Windows 子系统(根据系统要求和说明)。

  1. 为您的系统下载并安装 Docker Desktop
  2. 使用绿色的 Clone (克隆) 按钮(右上角)克隆 GitHub Speed Camera 存储库
  3. 从将存储库克隆到的目录运行 docker-compose up
  4. Docker 容器可能会退出,因为它使用的是默认配置。
  5. 编辑配置文件 @config/config.py
  6. 根据文档运行 docker-compose up
  7. 在本地运行 docker build command 以获取新映像。

Raspberry pi 手动安装或升级

从登录的 RPI SSH 会话或控制台终端执行以下操作。允许您在运行之前查看安装代码

cd ~
wget https://raw.github.com/pageauc/speed-camera/master/speed-install.sh
more speed-install.sh       # You can review code if you wish
chmod +x speed-install.sh
./speed-install.sh  # runs install script.

Run 以查看详细日志记录

cd ~/speed-camera    
./speed-cam.py

请参阅如何运行 speed-cam.py wiki 部分

重要测速相机将在 CALIBRATE_ON = True 模式下启动。
查看 config.py 文件中的设置,并根据需要使用 nano 编辑变量。 您需要执行校准,以便为 config.py CAL_OBJ_PX_ 设置正确的值,并为 CAL_OBJ_MM_ 设置 L2R 和 R2L 方向。这些变量基于从摄像机到被测速物体的距离。 有关详细信息,请参阅校准程序

名为 track_counter = 的 config.py 运动跟踪变量可以针对您的系统和 opencv 版本进行调整。 默认值为 5,但四核 RPI3 和最新的 opencv 版本(例如 3.4.2)可以是 10-15 或可能更高。这将 需要监控详细的日志消息以进行微调。

运行 menubox.sh

cd ~/speed-camera
./menubox.sh

管理员 speed-cam 使用 menubox.sh 更轻松(校准和/或测试完成后)
menubox 主菜单

根据示例屏幕截图从 Web 浏览器查看测速摄像头数据和趋势。这些可以生成 从 Menubox.sh 菜单中选择或通过控制台运行脚本或通过 crontab 计划。

测速摄像头 GRAPHS 文件夹网页
测速摄像头 REPORTS 文件夹网页
测速相机 HTML 文件夹网页

您可以直接从 speed Web 浏览器页面查看最近的或历史的图像。这些是动态创建的 并显示最新图像。按 web 页面刷新按钮更新显示测速相机 RECENT 文件夹网页
Speed Camera IMAGES Folder Web Page

学分

其中一些代码基于 YouTube 教程,由 Kyle Hounslow 在此处使用 C 语言 https://www.youtube.com/watch?v=X6rPdRZzgjg

感谢 http://www.pyimagesearch.com 的 Adrian Rosebrock jrosebr1 提供 PiVideoStream 类代码,该代码可在 https://github.com/jrosebr1/imutils/blob/master/imutils/video/pivideostream.py 的 github 上获得。

玩得开心
Claude Pageau
YouTube 频道 https://www.youtube.com/user/pageaucp
GitHub Repo https://github.com/pageauc

About

使用 python、opencv、视频流、运动跟踪的 Unix、Windows、Raspberry Pi 对象速度相机。包括一个独立的 Web 服务器界面、使用 opencv 模板匹配的图像搜索和一个鞭尾管理菜单界面 包括 picam 和网络摄像头 用于运动跟踪安全摄像机配置的插件,包括 rclone 同步脚本。A Unix, Windows, Raspberry Pi Object Speed Camera using python, opencv, video

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 89.9%
  • Shell 9.9%
  • Dockerfile 0.2%
0