nvidia-tegra的图像和推理元数据记录实用程序
jetstreamer的Python项目详细描述
喷射器
Jetstreamer是一个命令行实用程序*用于记录帧和执行推断 从Nvidia Tegra的相机里。它使用jetson推理库 由围绕较低级别nvidia推理的实用程序和包装器组成 库。
*计划提供显示支持
要求
安装的唯一要求是 jetson推理库
要在tegra设备上构建和安装jetson推理,请运行以下命令 在设备本身或通过ssh:
sudo apt install git cmake python3-dev cd ~ git clone https://github.com/dusty-nv/jetson-inference.git cd jetson-inference git submodule update --init mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=~/.local .. make -j4 && sudo make install
警告:由于存在 symlink from/usr/local/bin/networks to jetson inference/data/networks
如果您是偏执狂/完美主义者,则上述警告的可选修复方法:
相反,建议您先在您希望的网络上运行应用程序 生成优化的网络,然后复制它们,然后删除 生成文件夹。在您以构建用户身份运行应用程序并看到某些内容之后 对于您需要的每个网络都是这样的…
[TRT] device GPU, completed writing engine cache to /usr/local/bin/networks/ped-100/snapshot_iter_70800.caffemodel.1.1.GPU.FP16.engine
…执行以下步骤以根用户身份复制文件,以便 对所有用户都是不可变的和可访问的(例如,运行 Jetstreamer作为守护进程)
sudo rm /usr/local/bin/networks
sudo cp -r ~/jetson-inference/data/networks /usr/local/bin
rm -rf ~/jetson-inference
安装
(在Tegra设备上)
pip3 install jetstreamer
警告:不要用sudo运行pip。如果应用程序要求您执行此操作, 立即卸载它,即使您不是偏执狂。
pypi如果恶意软件(Docker Hub和NPM更糟)已满,甚至是一口井 有意的作者可能包含恶意软件包。安装或运行 因为你的根用户可能危害你的tegra设备,可能导致 整个网络的折衷方案。
用法
安装后只需运行Jetstreamer即可。
usage: __main__.py [-h] [--camera CAMERA] [--width WIDTH] [--height HEIGHT]
[--interval INTERVAL] [--classify CLASSIFY]
[--detect DETECT] [--detect-threshold DETECT_THRESHOLD]
[--format {jpg,png}]
base_filename
Classify, Detect, or simply save frames from camera using Jetson Inference and Jetson Utils.
Press Ctrl+C or send SIGINT to stop.
examples:
jetstreamer --classify googlenet outfilename
jetstreamer --detect pednet outfilename
jetstreamer --detect pednet --classify googlenet outfilename
positional arguments:
base_filename base filename for images and sidecar files
optional arguments:
-h, --help show this help message and exit
--camera CAMERA v4l2 device (eg. /dev/video0) or '0' for CSI camera (default: 0)
--width WIDTH camera capture width (default: 720)
--height HEIGHT camera capture height (default: 480)
--interval INTERVAL interval between captures in seconds as float, fraction, or integer. Default is to capture as fast as the gstCamera will allow (currently 30fps) and thepipeline can process. (default: None)
--classify CLASSIFY classification network to use (default: None)
--detect DETECT detection network to use (default: None)
--detect-threshold DETECT_THRESHOLD
detectNet threshold (default: 0.5)
--format {jpg,png} format to save image sequence in (jpg is probably fastest) (default: jpg)
卸载
pip3 uninstall jetstreamer
FAQ
用于的.nfo文件是什么?nfo文件存储用于 launch main()这样您就知道,例如,哪个网络与给定的 拍摄顺序。这使您可以在没有 必须存储长字符串,在将来的版本中将允许从中加载 因此,cid->;类描述关联可以自动生成。
什么是.jsonl文件该.jsonl文件是 json行文件格式。 每一行都是json,包含帧号和任何关联的元数据。
用作库:
不建议这样做,因为api可能会改变,但是docstring是 包含在每个函数和管道元素中,但main()除外 可参考上述用法。
如何拆分管道?< /强>itertools.tee 很可能会做这项工作。计划使用此功能支持显示接收器。真正地, itertools是处理迭代器/生成器时所需的python模块。
如何编写自己的接收器 您需要从生成器/迭代器中使用一些东西。在上面循环或者 调用next(source),其中source是生成器,将通过 管道。
是否计划了文件源 对。你可以给它提供一系列的文件名。也计划是 使用send方法的源生成器,以便将文件名推送到 需求:
是数据沿管道传递到 C功能?< /强> 不,图像是在一个pycapsule容器中通过c来回传递的 实际上包含指向sh中图像的指针ARED CPU/GPU内存,而不是 形象本身。没有副本。
是否会添加对网络流的支持?可能,如果有足够的 利息。