有关详细信息,请参阅程序功能、Wiki 说明和 YouTube 视频。
Speed-cam.py 版本 11.26 及更高版本现在将在 Raspberry Pi OS Bullseye 或更高版本下运行,带有 pi 摄像头模块以及 usbcam 和 IP/RTSP 摄像头。 对于 picamera 支持,请运行 sudo raspi-config、界面选项,然后启用/禁用 Legacy Camera 选项并重新启动。
重要 - raspbian sudo apt-get update 和 sudo apt-get upgrade 不会作为
speed-install.sh 的一部分执行,因此强烈建议您在安装之前运行它们
以确保您的系统是最新的。
按下面代码框右侧的 GitHub 复制图标。
或下面的代码框中的 With mouse left button highlight curl 命令。在突出显示的区域右键单击鼠标,然后选择 Copy 。
curl -L https://raw.github.com/pageauc/speed-camera/master/speed-install.sh | bash
在 RPI putty SSH 或终端会话上右键单击,选择粘贴,然后选择 Enter以下载并运行脚本。
这将下载并运行 speed-install.sh 脚本。如果在 python3 下运行,则需要安装 opencv3(如果未安装)。 如果你需要编译 openCV,请参阅我的 Github Repo 菜单驱动编译 opencv3 from source project
版本 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。
请参阅 Windows 10/11 或 Apple Mac Docker 安装快速入门
或不使用 Docker 的 Windows 或 Unix Distro 安装
这是一个 raspberry pi、Windows、Unix Distro 计算机 openCV 对象测速相机演示程序。 它是用 python 编写的,并使用 openCV 来检测和跟踪 摄像机视图中位于最小像素区域上方的最大移动对象。
用户变量存储在 config.py 文件中。 运动检测限制在 MO_CROP_Y_UPPER、MO_CROP_Y_LOWER、MO_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 文档
- YouTube 教程视频 https://www.youtube.com/watch?v=n2WT3Qb0SIU
- YouTube 速延视频 https://youtu.be/-xdB_x_CbC8
- YouTube 测速相机视频 https://youtu.be/eRi50BbJUro
- YouTube Motion Track 视频 https://youtu.be/09JS7twPBsQ
- 如何构建便宜的自制测速相机
- 测速摄像头 RPI 论坛帖子 https://www.raspberrypi.org/forums/viewtopic.php?p=1004150#p1004150
- YouTube 频道 https://www.youtube.com/user/pageaucp
- 测速摄像头 GitHub 存储库 https://github.com/pageauc/speed-camera
已安装 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 或 Unix 计算机平台(非 RPI 或 Debian),确保您拥有最多的 最新的 Python 版本。下载并安装 python 和 Opencv
最新的 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/ 注意:我还没有测试过这些。
测速摄像头支持根据系统要求和说明
在 Apple Macintosh 上安装
docker,并支持
在启用 BIOS 虚拟化的情况下在 Microsoft Windows 10/11 64 位上安装 Docker
以及适用于 Linux WSL 2 的 Microsoft Windows 子系统(根据系统要求和说明)。
- 为您的系统下载并安装 Docker Desktop
- 使用绿色的 Clone (克隆) 按钮(右上角)克隆 GitHub Speed Camera 存储库
- 从将存储库克隆到的目录运行 docker-compose up。
- Docker 容器可能会退出,因为它使用的是默认配置。
- 编辑配置文件 @
config/config.py
- 根据文档运行 docker-compose up
- 在本地运行 docker build command 以获取新映像。
从登录的 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.
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 或可能更高。这将 需要监控详细的日志消息以进行微调。
cd ~/speed-camera
./menubox.sh
管理员 speed-cam 使用 menubox.sh 更轻松(校准和/或测试完成后)
根据示例屏幕截图从 Web 浏览器查看测速摄像头数据和趋势。这些可以生成 从 Menubox.sh 菜单中选择或通过控制台运行脚本或通过 crontab 计划。
您可以直接从 speed Web 浏览器页面查看最近的或历史的图像。这些是动态创建的
并显示最新图像。按 web 页面刷新按钮更新显示
其中一些代码基于 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