space01
AIoT & AIGC
展开
-
如何基于pycharm调试open-webui的backend
由于使用了uvicorn异步web服务,因此不能直接创建python类型的Debug Configurations,而需要创建一个FastAPI类型的Debug Configurations。点击保存后,即可类似python脚本进行正常调试。注意,可能还需要其他的环境变量需要设置。上述完成整个环境配置,接下来开始配置调试工程。原创 2024-04-10 17:34:03 · 852 阅读 · 1 评论 -
基于FFmpeg + CV-CUDA实现高性能硬件解码与硬件预处理操作 —— YUV420SP(NV12) => BRG24 零拷贝高性能
基于FFmpeg + CV-CUDA实现高性能硬件解码与硬件预处理操作 ,实现YUV420SP(NV12) => BRG24,零拷贝高性能。原创 2023-08-04 11:12:47 · 701 阅读 · 0 评论 -
Enigma虚拟文件打包使用说明
1. 简介Enigma Virtual Box是软件虚拟化工具,它可以将多个文件封装到应用程序主文件,从而制作成为单执行文件的绿色软件。它支持所有类型的文件格式,虚拟化后的软件不释放任何临时文件到您的硬盘,文件模拟过程仅在内存运行。虚拟文件打包系统(Windows环境)。Enigma虚拟文件打包系统可以将您的程序和配套文件打包成一个可执行文件,而没有任何效率的损失,配套文件也不会被释放至硬盘。本项功能有独立的免费应用程序,同时支持X86和X64二进制文件。支持Windows版本广泛,包括Window原创 2022-05-12 11:36:25 · 2793 阅读 · 4 评论 -
抓包工具SmartSniff使用
1. 简介SmartSniff 是一款TCP/IP 数据包捕获软件,允许你检查经过你的网络适配器的网络传输。该软件的双层界面显示了捕获的数据包和在ASCII或者十六进制格式下的详细的信息。额外的功能包括本地和远程传输的彩色代码,导出到 HTML 以及更多功能。 SmartSniff 可以用于 Windows 2000/XP Raw Sockets 或者用于其它的 Windows 版本的 WinPcap。这是一款基本的,但是非常小且独立的协议分析软件。下载地址:SmartSniff - Download原创 2022-05-12 12:15:22 · 4197 阅读 · 0 评论 -
RV1808/1126使用RKNN作为MediaPipe推理后端开发步骤及ONNX转RKNN模型
目录1 基于RKNN推理后端集成1.1 依赖库配置1.2 添加计算单元Calculators1.3 增加rknn后端调用接口1.4 增加计算图1.5 增加动态库生成规则1.6 编译1.7 运行配置1.7.1 基于opencv的resize配置1.7.2 基于rag的resize配置2 RKNN模型转换1 基于RKNN推理后端集成RKNN SDK为RK1808等带有NPU 的平台提供编程接口...原创 2022-05-30 20:38:37 · 2368 阅读 · 5 评论 -
瑞芯微平台(RV1126)基于轻量级推理框架TengineInferpipe实现tengine后端的NPU部署应用
TengineInferpipe的简介参考TengineInferPipe在Jetson平台基于TensorRT后端Demo实现_space01的博客-优快云博客。瑞芯微平台(RV1126)建议使用docker环境交叉编译TengineInferPipe,首先需要安装docker,并启动docker服务。1. 拷贝tengine动态库通过交叉编译工具编译的tengine库拷贝到TengineInferPipe的目录下。tengine的交叉编译方法参考RV1126编译tengine_陈.原创 2022-05-16 14:48:47 · 1089 阅读 · 0 评论 -
TengineInferPipe在Jetson平台基于TensorRT后端Demo实现
1.TengineInferPipe简介TengineInferPipe 是由 OPEN AI LAB 基于mediapipe框架进行改进、迭代的一套低代码、模块化的算法落地框架。通过解析部署配置文件,构建整个部署流程。可以用于快速构建算法部署sdk,以及可以作为一些可视化部署方案的中间层。其基本数据流程图如下图所示。2. 基于TensorRT后端Demo实现2.1 环境需求1)bazel >= 3.7 参考 bazel安装说明 安装bazel到系统中,或者下载对..原创 2022-05-16 14:20:42 · 335 阅读 · 0 评论 -
Jetson平台编译Tengine
1. Tengine简介Tengine于2017年在GitHub( https://github.com/OAID/Tengine )开源,是OPEN AI LAB(开放智能)推出的自主知识产权的边缘AI计算框架,致力于解决AIoT产业链碎片化问题,加速AI产业化落地。Tengine兼容多种操作系统和深度学习算法框架,简化和加速面向场景的AI算法在嵌入式边缘设备上快速迁移,以及实际应用部署落地,可以十倍提升基础开发的效率。Tengine一方面可以通过异构计算技术同时调用CPU、GPU、DSP原创 2022-05-16 13:25:44 · 583 阅读 · 0 评论 -
ByteTrack Demo搭建
ByteTack的Demo基于docker搭建。步骤如下:1. 下载ByteTrack源码git clone https://github.com/ifzhang/ByteTrack.git2.docker镜像准备cd ByteTrack && \docker build -t bytetrack:latest 3. 模型准备这里使用已经训练好的模型bytetrack_s_mot17.pth.tar,下载地址为bytetrack_s_mot17[goo..原创 2022-05-15 13:17:26 · 1367 阅读 · 0 评论 -
Triton服务器部署Yolov5s模型应用
目录1. Triton介绍2.Yolov5s模型部署2.1Triton服务端部署2.2Triton客户端部署1. Triton介绍NVIDIA Triton推理服务器是NVIDIA推出的开源推理框架,主要为用户提供在云和边缘推理上部署的解决方案。NVIDIA Triton 推理服务器 具有以下的特性:支持多种开源框架的部署,包括TensorFlow/PyTorch/ONNX Runtime/TensorRT 等,同时也支持用户提供自定义的服务后端(back...原创 2022-05-15 13:09:28 · 1438 阅读 · 2 评论 -
基于Jetson Multimedia API的解码库
封装了Jetson Multimedia API的解码库nvjmi,主要功能如下。1)支持H.264解码。2)支持解码后直接硬件完成缩放操作。3)支持解码后直接硬件完成颜色空间转换操作。4)支持Jetpack 4.3、4.4、4.5。使用示例可参考下面的例子:if(jmi_ctx_ == nullptr) {jmi::nvJmiCtxParam jmi_ctx_param{}; if(rsz_w > 0 && rsz_h > 0){原创 2022-05-12 11:08:46 · 1330 阅读 · 0 评论 -
CUDA常用功能接口API
将cuda的一些常用操作封装成接口API,供应用程序调用,一般主要用于模型部署应用的预处理。支持的功能:1. 内存管理 - cuAllocMapped 在Jetson系列的集成盒子上,CPU和GPU共用同一个内存地址,加速数据传输。 在PC端的显卡,CPU和GPU的内存地址可能不一致,需要分开使用CPU和GPU的指针。2. 硬件支持的缩放与颜色空间转换操作 - cuResizeRGBLike 实现将ARGB/RGBA转换成BGR,并且同时实现缩放操作。3. 颜色空间转换与数据类型转换操作 -原创 2022-05-12 11:13:44 · 1640 阅读 · 0 评论 -
nvjmi: Jetson视频解码性能优化
目录1 nvjmi介绍2 nvjmi基于Jetson硬件性能优化2.1硬件解码2.2 Transform2.3 颜色空间转换1 nvjmi介绍nvjmi是一基于Jetson Multimedia API的解码库,功能说明参见基于Jetson Multimedia API的解码库_space01的博客-优快云博客。2 nvjmi基于Jetson硬件性能优化Jetson平台提供了一套Multimedia API用于硬件编解码以及图像缩放、裁剪、旋转等图像...原创 2022-05-13 09:36:35 · 987 阅读 · 0 评论 -
TensorRT - 推动AI落地的利器:性能加速与部署应用
1. TensorRT是什么?在介绍TensorRT之前,先介绍一下GPU、CUDA和cuDNN。GPU具有强大的并行计算能力,尤其对于简单的大量的计算,如矩阵计算等,这与其固有的体系结构设计有关。1.1 GPU体系结构GPU采用了一种被称为SIMT的体系结构,也就是相对于CPU中的SIMD的概念。SIMT就是Single Instruction Multiple Threads,也就是一条指令多个线程同时执行,但是与SIMD有所不同的是SIMT同时执行的每个线程是可以有不同分支的。GPU这原创 2022-05-13 11:43:58 · 421 阅读 · 0 评论 -
nvjmi解码流程
nvjmi解码流程时序图如下图所示。解码主要包括两部分,一是发送待解码的数据块到output plane,二是从capture plane接收解码后的图像数据。在开始解码之前,首先需要对output plane和capture plane分别进行配置。output plane配置先与capture plane配置。1)output plane:将缓存空间加入到buf队列中,用于编码块的数据缓存。2)capture plane:将缓存空间加入到buf队列中,用于解码后的数据缓存。.原创 2022-05-14 12:13:36 · 736 阅读 · 0 评论 -
caffe升级到cuda10.2 + cudnn 8方法
将caffe的环境升级到cuda10.2 + cudnn8时,需进行下列修改,否则无法完成编译。1)include/caffe/util/device_alternate.hpp 将头文件#include <driver_types.h>放置在前面,如下:#include <driver_types.h> // cuda driver types#include <cublas_v2.h>#include <cuda.h>#...原创 2022-05-14 21:06:48 · 525 阅读 · 0 评论