1个不稳定版本
0.1.0 | 2022年8月9日 |
---|
#445 in 可视化
245KB
5.5K SLoC
光流处理堆栈
OFPS是一个通用的光流处理库,OFPS Suite是一个演示其功能的配套应用程序。
运行OFPS Suite
-
通过https://rustup.rs/安装最新稳定的Rust工具链(版本1.60.0)。
-
安装依赖项(请参阅专用子节)。
-
使用
cargo build --release
构建默认插件。 -
可选地,构建libmv估算器(更复杂,请参阅其子节)。
-
使用
cargo run --release --bin ofps-suite
运行OFPS suite。
安装依赖项
Ubuntu/Debian
sudo apt-get install atk1.0 libgtk-3-dev ffmpeg libavutil-dev libavcodec-dev libavformat-dev libavfilter-dev libavdevice-dev libopencv-dev libclang-dev clang libxcb-shape0-dev libxcb-xfixes0-dev
Fedora
sudo dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install gtk3-devel clang clang-devel opencv-devel ffmpeg-devel
Windows/macOS
祝你好运 :)
构建libmv估算器
首先,确保libmv子模块已初始化
git submodule update --init
然后,在仓库根目录中源环境
source env
然后,安装额外依赖项
Ubuntu/Debian
sudo apt-get install cmake libceres-dev libjpeg-dev
Fedora
sudo dnf install cmake ceres-solver-devel libjpeg-turbo-devel
转到libmv-rust/libmv目录。运行make
。并不是所有内容都会编译。这是正常的 - 我们只需要libmultiview.so
及其依赖项。
回到仓库根目录,运行cargo build --release --workspace
。
故障排除
设置日志级别以更好地查看错误
export RUST_LOG=<trace,debug,info,warn,error>
如果是图形问题,请尝试强制OpenGL后端
export WGPU_BACKEND=gles
文档
假设工作空间编译成功,运行OFPS Suite部分的步骤1-3,运行cargo doc --open
。
单元测试
假设工作空间编译成功,运行 cargo test
。
示例配置
从谷歌驱动下载核心样本,并在项目根目录下的samples
目录中提取samples.zip
(sha256 - c1a27a0716b5633792afca7c1a032dcc9c15c8f7153a03e8d5206e1d86379896)。由于原始检测样本较大,因此已将其分离为cctv.h264
文件(sha256 - 9fd17d015924538c140f9ee478bdbfc5233f6c948ff134d2f31415e795da9b66)。将其放置在samples/detection
目录中。位置很重要,因为预定义的配置引用的是相对于当前工作目录的路径。
检测配置
从给定的路径加载预定义的配置文件(通过点击大型的检测标题按钮)。
-
从结果中获取场景 -
samples/scenario_detect.json
(需要原始样本)。 -
基本运动 -
samples/basic_detect.json
。 -
实时TCP流(网络摄像头) -
samples/tcp_detect.json
。
对于通过TCP的V4L网络摄像头,首先在另一个终端中运行以下命令
ffmpeg -i /dev/video1 -c:v libx264 -r 30 -preset ultrafast -tune zerolatency -x264-params "" -f mpegts tcp://0.0.0.0:3333\?listen
将/dev/video1
调整为正确的V4L设备。每次连接实例后都需要重新运行此命令。
跟踪配置
从给定的路径加载预定义的配置文件(通过点击大型的跟踪标题按钮)。
-
合成视频,所有估计器,真实值比较 -
samples/synthetic_all_gt.json
。 -
合成视频,单个估计器,真实值 -
samples/synthetic_almeida_gt.json
。 -
真实世界视频 -
samples/real_world.json
。 -
真实世界视频(裁剪,慢动作) -
samples/real_world_crop.json
。 -
实时TCP流(网络摄像头) -
samples/tcp_track.json
。
预加载的样本可以被替换为不同的样本。请参阅samples/synthetic
和samples/real_world
目录。裁剪配置需要考虑到慢动作视频上应用的1.2倍传感器裁剪。
对于TCP配置,请参阅前面的子节以获取设置步骤。此外,必须正确设置摄像头的水平和垂直视野,以确保跟踪的准确性。
依赖项
~32–67MB
~1M SLoC