人工智能计算机视觉深度学习微调【免费下载链接】jetson-inferenceHello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.项目地址https://gitcode.com/gh_mirrors/je/jetson-inference点击查看免费下载本篇指南完整讲解如何从源码构建 NVIDIA Jetson 上的深度学习推理库libjetson-inference即 Hello AI World 项目jetson-inference从克隆仓库、安装依赖、CMake 配置、模型下载到编译安装与 C/Python API 初探的全流程。读完本文你将能够在 Jetson Nano / TX1 / TX2 / AGX Xavier 上独立完成整个项目的构建与安装并了解每一步背后仓库源码中的实际执行逻辑与可调参数。构建前提硬件与系统要求jetson-inference随仓库提供了一批基于 TensorRT 加速的深度学习网络库覆盖图像识别imageNet、带定位的目标检测detectNet输出边界框与语义分割segNet推理库面向 Jetson 平台编译与运行同时支持 C 与 Python 两种接口。在开始构建之前请先确保 Jetson 已完成 JetPackL4T刷机或烧录预置镜像JetPack 的安装步骤参见 docs/jetpack-setup.md。仓库源码还通过 git 子模块submodule引入utils/等外部依赖因此克隆方式与常规仓库略有不同。快速参考一键式构建命令以下是下载、编译、安装的浓缩命令序列后续小节会逐一展开说明每一步的作用与可选项$ sudo apt-get update $ sudo apt-get install git cmake libpython3-dev python3-numpy $ git clone --recursive https://gitcode.com/gh_mirrors/je/jetson-inference $ cd jetson-inference $ mkdir build $ cd build $ cmake ../ $ make -j$(nproc) $ sudo make install $ sudo ldconfig其中make -j$(nproc)利用全部 CPU 核心并行编译以缩短耗时sudo ldconfig用于刷新动态链接库缓存保证后续程序能正确找到新安装的共享库。克隆仓库git、cmake 与 submodule先确保 Jetson 上已安装 git 与 cmake$ sudo apt-get update $ sudo apt-get install git cmake然后克隆jetson-inference项目$ git clone --recursive https://gitcode.com/gh_mirrors/je/jetson-inference $ cd jetson-inference $ git submodule update --init务必执行git submodule update --init或使用--recursive标志一次性拉取因为项目的 CMake 配置会强制校验子模块存在。查看 CMakeLists.txt构建系统会检查${PROJECT_SOURCE_DIR}/utils/.git是否存在若缺失则直接以FATAL_ERROR终止配置并提示先执行git submodule update --init。安装 Python 开发包为 Python 绑定铺路项目的 Python 功能是通过 Python 扩展模块实现的——这些模块使用 Python C API 封装原生 C 代码源码位于 python/bindings。配置时仓库会扫描系统上已安装开发包的 Python 版本并为每个版本编译对应的绑定。值得注意的一个坑Ubuntu 默认预装的是 Python 2.7 的libpython-dev/python-numpy而系统自带的 Python 3.6 解释器并不包含开发包libpython3-dev、python3-numpy。缺少这些开发包绑定就无法通过 Python C API 编译。因此若想获得 Python 3 绑定请先安装$ sudo apt-get install libpython3-dev python3-numpy安装后重新配置构建repo 就会同时为 Python 2.7 与 Python 3.6 生成扩展绑定构建完成后jetson.inference与jetson.utils两个 Python 包即可在 Python 环境中导入使用其 API 文档位于仓库 docs/html/python/。从当前仓库的 python/CMakeLists.txt 可以看到绑定的目标 Python 版本会随发行版自动切换Ubuntu noble 构建 3.12 绑定、jammy 构建 3.10、focal 构建 3.8其他发行版则回退到 2.7 / 3.6 / 3.7。也就是说新版系统上会自动为系统默认 Python 版本生成绑定无需手工指定。用 CMake 配置构建CMakePreBuild.sh 究竟做了什么在项目根目录创建 build 目录并运行cmake$ cd jetson-inference # 若已在项目根目录则省略 $ mkdir build $ cd build $ cmake ../注意cmake首次运行时会自动调用 CMakePreBuild.sh 脚本该脚本需要 sudo 权限安装若干前置软件包并可能从网络服务下载预训练模型。从源码层面看CMakeLists.txt 通过BUILD_DEPS缓存变量控制此过程首次配置时其值为YES执行CMakePreBuild.sh完毕后会被强制重置为NO避免重复安装。同文件 CMakeLists.txt 还暴露了三个常用构建开关缓存变量默认值作用BUILD_DEPSYES是否首次配置时自动安装依赖沙箱模式会在安装后自动重置为NOBUILD_INTERACTIVEYES若为NO自动下载默认 DNN 模型且不弹出交互提示并跳过 PyTorch 安装BUILD_EXPERIMENTALNO若为YES启用实验性 DNN、示例与插件如 c/experimental 与 c/pluginsCMakePreBuild.sh实际安装的依赖CMakePreBuild.sh包括dialog交互对话框、libglew-dev/glew-utilsOpenGL 扩展、gstreamer1.0-libav/libgstreamer1.0-dev/libgstrtspserver-1.0-dev视频流与 RTSP 服务、libglib2.0-dev、libsoup2.4-dev、libjson-glib-dev、python3-pip、qtbase5-devQt 界面、avahi-utils等非容器环境下还会追加安装 gstreamer 插件基座/好/坏三套开发包CMakePreBuild.sh并在非 x86_64 架构上安装libpython3-dev python3-numpyCMakePreBuild.sh。配置阶段还会做几项关键的环境探测CUDA 检测与架构选择在 aarch64 平台上根据 CUDA 主版本自动启用对应 SM 架构SM_53/SM_62CUDA9 追加 SM_72CUDA10 追加 SM_87见 CMakeLists.txtOpenCV 检测仅当 OpenCV ≥ 3.0 时才启用用于findHomography()/decomposeHomography()否则自动禁用VPI 检测检测到 VPI 2.0 时启用并链接vpi输出路径规划产物统一输出到build/架构名/aarch64 上即build/aarch64并对data/networks与data/images建立符号链接保证示例程序可直接找到模型与测试图片CMakeLists.txt。下载预训练模型Model Downloader 与模型清单项目内置大量预训练网络通过Model Downloader工具tools/download-models.sh选择并安装。为节省磁盘空间默认并非全选所有模型你可以按需勾选也可以在后续任意时间再次运行该工具补下更多模型。初次执行cmake时下载器会自动启动见上文截图。下载脚本将所有模型统一存放于data/networks脚本中OUTPUT_DIR../data/networkstools/download-models.sh。交互式对话框中的完整模型清单如下附脚本中标注的体积分类模型体积Image RecognitionAlexNet244 MBImage RecognitionGoogleNet默认勾选54 MBImage RecognitionGoogleNet-1242 MBImage RecognitionResNet-18默认勾选47 MBImage RecognitionResNet-50102 MBImage RecognitionResNet-101179 MBImage RecognitionResNet-152242 MBImage RecognitionVGG-16554 MBImage RecognitionVGG-19575 MBImage RecognitionInception-v4172 MBObject DetectionSSD-Mobilenet-v127 MBObject DetectionSSD-Mobilenet-v2默认勾选68 MBObject DetectionSSD-Inception-v2100 MBObject DetectionPedNet30 MBObject DetectionMultiPed30 MBObject DetectionFaceNet24 MBObject DetectionDetectNet-COCO-Dog/Bottle/Chair/Airplane各 29 MBMono DepthMonoDepth-FCN-Mobilenet默认勾选/ResNet18/ResNet505 / 40 / 100 MBPose EstimationPose-ResNet18-Body/Hand默认勾选、Pose-DenseNet121-Body各 74 MBSemantic SegmentationFCN-ResNet18-Cityscapes-512x256默认等 11 款各 47 MBSemantic Segmentation (legacy)FCN-Alexnet 系列 7 款235 MB 左右Image ProcessingDeep-Homography-COCO、Super-Resolution-BSD500137 MB / 1 MB若选择“全部模型”分组脚本会下载整组模型并将ALL_*标志置位避免后续重复下载见 tools/download-models.sh 等分组函数。下载失败时脚本会弹出重试对话框retry_prompt函数并提供项目发布渠道的镜像提示tools/download-models.sh方便无法直连 Box.com 的用户换用镜像下载。日后想再次运行下载器使用$ cd jetson-inference/tools $ ./download-models.sh若以BUILD_INTERACTIVENO配置构建脚本将跳过交互对话框直接下载一组默认模型GoogleNet、ResNet-18、SSD-Mobilenet-v2、PedNet、FaceNet、DetectNet-COCO-Dog以及 6 款 FCN-ResNet18 分割模型tools/download-models.sh。可选步骤安装 PyTorch 用于迁移学习若使用 JetPack 4.2 或更新版本配置阶段还会弹出另一个可选工具——PyTorch 安装器tools/install-pytorch.sh用于在 Jetson 上安装 PyTorch以便后续教程中做迁移学习transfer learning参见 docs/pytorch-transfer-learning.md重新训练网络。这一步完全可选——不打算做迁移学习即可跳过不影响仓库本身的构建。在弹出的对话框中勾选想要安装的 PyTorch 版本对应 Python 2.7 和/或 Python 3.6后按 Enter 继续若不勾选任何选项则跳过安装。安装器会先读取/etc/nv_tegra_release或nvidia-l4t-core包版本检测 L4T 版本tools/install-pytorch.sh低于 R32.1JetPack 4.2时拒绝自动安装并提示改用 eLinux.org Jetson_Zoo 从源码构建。从当前仓库的版本选择逻辑tools/install-pytorch.sh可以得到如下版本对应关系JetPack / L4TPythonPyTorch 版本JetPack 4.2 / 4.3L4T R32.2/R32.32.7 / 3.61.4.0JetPack 4.4L4T R32.42.7 / 3.61.6.0JetPack 5.xL4T R34/R353.81.12 或 2.0JetPack 6.xL4T R363.102.1安装器下载 PyTorch 预编译 wheel 后还会克隆并现场编译对应版本的 torchvision例如 JetPack 6.x 上为 torchvision 0.16.1期间会临时挪走/usr/bin/ffmpeg以避免干扰编译装完再恢复move_ffmpeg/restore_ffmpeg函数。日后想补装 PyTorch可在 build 目录重新运行$ cd jetson-inference/build $ ./install-pytorch.sh该命令会弹出与上文截图相同的对话框注意 CMakeLists.txt 会把该脚本拷贝到 build 目录。编译与安装make、make install 与产物布局确保仍位于jetson-inference/build目录然后执行$ cd jetson-inference/build # 若已在 build/ 目录则省略 $ make $ sudo make install $ sudo ldconfig项目产物将构建到jetson-inference/build/aarch64目录结构如下|-build \aarch64 \bin 其中存放示例二进制 \networks 存放网络模型符号链接指向 data/networks \images 存放测试图片符号链接指向 data/images \include 存放头文件 \lib 存放库文件构建树中二进制位于build/aarch64/bin/头文件位于build/aarch64/include/库文件位于build/aarch64/lib/。sudo make install会将这些内容安装到/usr/local/下头文件安装到/usr/local/include/jetson-inference共享库安装到/usr/local/lib并导出 CMake 工程配置到share/jetson-inference/cmake供其他项目引用见 CMakeLists.txt。Python 绑定jetson.inference、jetson.utils也会在sudo make install时安装到/usr/lib/python*/dist-packages/。注意之后若更新了代码需要重新执行sudo make install才会同步更新已安装的 Python 模块。从链接配置CMakeLists.txt可以看出jetson-inference共享库的核心依赖链jetson-utils图像/视频工具库 TensorRT 本体nvinfer、nvinfer_pluginCUDA 9 时追加nvonnxparserONNX 解析CUDA 12.6 时链接nvcaffe_parserCaffe 解析。这正是仓库同时支持Caffe、TensorFlow UFF 与 ONNX三种模型导入的底层基础。另外若系统安装了 Doxygen构建树中还会提供make docs目标用于生成 C 的 API 参考文档见 docs/CMakeLists.txt仓库内的 docs/html 即为预生成的参考文档。深入代码认识 libjetson-inference 的 C/Python API构建安装完成后就可以开始使用推理库了。官方 API Reference见 README.md覆盖libjetson-inference中的视觉原语包括imageNet图像识别、detectNet目标定位与segNet语义分割。所有 DNN 对象都继承自共享的 c/tensorNet.h后者封装了通用的 TensorRT 加载、精度选择与推理逻辑。下面是从 c/imageNet.h 摘录的imageNetC 类核心接口教程后续步骤会用到class imageNet : public tensorNet { public: enum NetworkType { CUSTOM, /* 用户提供的自定义模型 */ ALEXNET, /* 基于 1000 类 ILSVRC12 训练的 AlexNet */ GOOGLENET, /* 基于 1000 类 ILSVRC12 训练的 GoogleNet */ GOOGLENET_12, /* 教程使用的 12 类 ILSVRC12 子集 */ RESNET_18, /* 基于 1000 类 ILSVRC15 训练的 ResNet-18 */ RESNET_50, RESNET_101, RESNET_152, VGG_16, VGG_19, INCEPTION_V4, }; /* 加载预训练网络实例 */ static imageNet* Create( NetworkType networkTypeGOOGLENET, uint32_t maxBatchSizeDEFAULT_MAX_BATCH_SIZE, precisionType precisionTYPE_FASTEST, deviceType deviceDEVICE_GPU, bool allowGPUFallbacktrue ); /* 加载自定义模型caffemodel/uff/onnx */ static imageNet* Create( const char* prototxt_path, const char* model_path, const char* mean_binary, const char* class_labels, const char* inputIMAGENET_DEFAULT_INPUT, const char* outputIMAGENET_DEFAULT_OUTPUT, uint32_t maxBatchSizeDEFAULT_MAX_BATCH_SIZE, ... ); /* 对 CUDA 显存中的 RGBA 图像做分类返回最大似然类别索引 */ int Classify( float* rgba, uint32_t width, uint32_t height, float* confidenceNULL ); /* 获取分类类别数量通常为 1000 */ inline uint32_t GetNumClasses() const { return mOutputClasses; } /* 获取某个类别的文本描述 */ inline const char* GetClassDesc( uint32_t index ) const { return mClassDesc[index].c_str(); } };Create的第一个重载按名称加载内置网络默认googlenet第二个重载则用于自定义模型指定 prototxt、caffemodel、均值文件与类别标签文件同时可通过--input-blob/--output-blob指定输入输出层名imageNet 默认输入层为data、输出层为prob见 c/imageNet.h。命令行层面还支持--network、--model、--prototxt、--labels、--threshold默认 0.01、--smoothing、--profile等参数见IMAGENET_USAGE_STRING定义。Python 侧对应的jetson.inference.imageNet对象 API完整 pydoc 见 docs/html/python/同样简洁jetson.inference.imageNet class imageNet(tensorNet) | Image Recognition DNN - classifies an image | | __init__(...) | Loads an image recognition model. | Parameters: | network (string) -- 内置网络名alexnet, googlenet, | googlenet-12, resnet-18 等默认为 googlenet | argv (strings) -- 传给 imageNet 的命令行参数用于加载自定义模型 | | Classify(...) | Classify an RGBA image and return the objects class and confidence. | Parameters: | image (capsule) -- CUDA 内存 capsule | width (int) -- 图像宽度像素 | height (int) -- 图像高度像素 | Returns: | (int, float) -- (类别索引, 置信度) 元组 | | GetClassDesc(...) | Return the class description for the given object class. | GetNumClasses(...) | Return the number of object classes that this network model supports.至此构建、安装与 API 骨架均已就绪下一步即可使用imageNet对象在 Python 或 C 中执行图像识别参见 docs/imagenet-console.md。常见问题与实用提示子模块缺失导致 cmake 失败报错信息明确提示缺少utils/.git时回到项目根目录执行git submodule update --init后再重新配置。首次 cmake 卡在交互对话框这是正常的CMakePreBuild.sh会请求 sudo 权限安装依赖并弹出模型/ PyTorch 选择界面若希望完全无人值守可配置BUILD_INTERACTIVENO自动下载默认模型并跳过 PyTorch。模型下载失败下载器提供重试对话框无法连接默认下载源时可改用项目发布渠道提供的镜像包。模型最终落在data/networks也可手动将下载好的归档解压至该目录。更新代码后 Python 导入仍是旧版改动源码后必须重新sudo make installPython 绑定才会同步更新到dist-packages。运行示例找不到模型/图片build/aarch64/bin/networks与images是符号链接请确认链接指向的data/目录未被移动或删除。赞分享人工智能计算机视觉深度学习微调【免费下载链接】jetson-inferenceHello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson.项目地址https://gitcode.com/gh_mirrors/je/jetson-inference点击查看免费下载相关推荐在 NVIDIA Jetson 上构建与安装 MXNet本机源码编译、Docker 交叉编译与 Python 绑定配置指南在 NVIDIA Jetson 上构建与安装 MXNet本机源码编译、Docker 交叉编译与 Python 绑定配置指南 本文是 MXNet 在 NVIDI深度学习人工智能机器学习分布式训练MXNet 在 NVIDIA Jetson 上的安装与部署从源码构建、交叉编译到 GPU 推理验证MXNet 在 NVIDIA Jetson 上的安装与部署从源码构建、交叉编译到 GPU 推理验证 本文是一份面向嵌入式与边缘计算场景的 MXNet Jets人工智能深度学习机器学习jetson-inference推理引擎对比TensorRT vs. ONNX Runtimejetson inference推理引擎对比TensorRT vs. ONNX Runtime 引言嵌入式AI的性能瓶颈与解决方案 你是否在Jetson设备人工智能计算机视觉深度学习微调上一篇KMS_VL_ALL_AIO终极免费Windows和Office激活解决方案下一篇KMS智能激活工具完整指南一键永久激活Windows与Office创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?