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内存,而不是 形象本身。没有副本。

  • 是否会添加对网络流的支持?可能,如果有足够的 利息。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在springmvc POST webservice中验证集合?   java将变量传递到@Optional注释   浮点Java字节到浮点   java为什么我的结果字符串在解析json数据后不打印到logcat?   多线程应用程序中的java可选调试输出是为客户机提供的,而不是为了找出死锁或bug   java Hibernate模型对象作为VO对象   java字体未应用于复选框并切换到Android Studio 3   list Java equals方法无法按预期工作   java将未知对象强制转换为特定接口可以吗?   调用后未擦除方法中的Java变量   数组求和不正确,线程“main”java中出现异常。lang.ArrayIndexOutofBounds异常:100   java超级类应该实例化并调用其子类吗?   在java apache中。平民io,如何避免读取旧的日志消息   BuffereImage如何使用apache在TIFF图像中保持透明性。平民java中的图像处理   java转换。将文件分类为二进制代码(1和0)   Java:。类搜索器   java如何使用谓词生成器返回“Todays Orders”