- 博客(30)
- 收藏
- 关注
原创 基础卷积算子的C++实现与NCNN卷积层基于CPU的加速策略
图像的卷积过程就相当于一个自定义大小的滑块在输入图像上不断移动定义步长并与输入图像对应位置点乘求和,并且一个卷积核对应一层输出特征图,也就是说卷积的最外层是图像深度。
2024-09-25 19:58:09 117
原创 GPU高性能编程CUDA入门
最新版的 CMake(3.18 以上),只需在LANGUAGES 后面加上 CUDA 即可启用。然后在 add executable 里直接加你的 .cu文件,和 .cpp 一样。CUDA和C++的关系就像C++和C的关系一样,大部分都兼容,因此能很方便的重用C++现有的任何代码库,引用C++头文件等。
2024-09-24 22:18:54 910
原创 AI部署——主流模型推理部署框架
我们以最经典的Yolov5目标检测网络为例解释每一种推理部署框架的大概内容,省略模型训练的过程,只讨论模型转换、环境配置、推理部署等步骤。Intel的OpenVINO — CPUOpenVINO是英特尔基于自身现有的硬件平台开发的一种可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,支持各种英特尔平台的硬件加速器上进行深度学习,并且允许直接异构执行。 支持在Windows与Linux系统,Python/C++语言。首先,确保已安装OpenVINO工具包。可以从OpenVINO官网下载并安
2024-08-14 18:05:31 775
原创 SOM-RK3399基于Debian系统安装Docker
Docker 是一个开源的平台,用于开发、部署和运行应用程序。它通过容器技术使得应用程序能够在任何环境下以一致的方式运行,解决了“环境不一致”导致的问题。
2024-08-14 13:44:29 927
原创 基于高光谱图像的压缩感知网络
压缩感知(Compressed Sensing, CS)是一种信号处理技术,它允许在远低于Nyquist采样率的情况下对信号进行有效采样和重建。压缩感知理论的核心思想是利用信号的稀疏性,通过少量的线性测量重建出原始信号。
2024-07-26 21:08:00 860
原创 深度学习模型压缩方法—剪枝
深度学习模型通常具有大量的参数,这些参数在训练过程中表现出冗余特性。这意味着即使删除一部分参数,模型仍然可以保持相近的性能。研究表明,深度神经网络通常是过参数化的,即它们拥有比实际所需更多的参数。剪枝算法的核心思想就是减少网络模型中参数量和计算量,同时尽量保证模型的性能不受影响。Dropout和DropConnect就代表着非常经典的模型剪枝技术。
2024-07-26 19:17:29 679
原创 流媒体编解码推流
打开VLC,媒体选项->打开网络串流->输入rtmp://192.168.137.114/live/stream->播放。原生的Nginx并不支持RTMP,需要安装第三方模块nginx-rtmp-module插件使其支持RTMP。编译,我这里出现了OpenSSL 3.0 和 Nginx 的兼容性问题,在浏览器网址导航输入板卡IP,能看到欢迎来到nginx的页面。或者降级OpenSSL。修改nginx.conf文件。
2024-05-20 22:13:38 456
原创 正点原子alpha开发板—系统移植和文件系统重构
nfs(Network File System)网络文件系统,通过 nfs 可以在计算机之间通过网络来分享资源,比如我们将 linux 镜像和设备树文件放到 Ubuntu 中,然后在 uboot 中使用 nfs 命令将 Ubuntu 中的 linux 镜像和设备树下载到开发板的 DRAM 中。
2024-05-17 11:33:32 1181 1
原创 正点原子alpha开发板学习记录—裸机点灯
使能时钟GPIO1 的时钟由 CCM_CCGR1 的 bit27 和 bit26 这两个位控制,将这两个位都设置位 11 即可。、设置的复用功能找到 GPIO1_IO03 的复用寄存器“IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03”的地址为0X020E0068,然后设置此寄存器,将 GPIO1_IO03 这个 IO 复用为 GPIO 功能,也就是 ALT5。、配置的IO属性。
2024-05-02 14:00:03 971 1
原创 Glomb编码及其变种
Glomb编码使⽤可调整参数M把待编码值分成两部分: 商数q及余数r。商数当做⼀元编码⽽余数放在后⾯做可缩短的⼆进制编码。当M=1哥伦布编码等同于⼀元编码。示例:设M = 10. 则 b = (向上取整)ceil[log2(10)] = 4;2^b-M=16-10=6}当选42作为编码时,42会被拆成q=4及r=2,根据上述算法对q(4)、r(2)编码为11110 010。
2023-05-12 12:00:38 168
原创 CVPR2020:基于GMM和Attention的图像压缩的论文学习
论文地址:https://arxiv.org/pdf/2002.01657.pdf代码地址:https://github.com/ZhengxueCheng/Learned-Image-Compression-with-GMM-and-Attention现在基于深度学习的图像压缩方法有着快速的发展同时也有着令人满意的结果,但是,在和现行压缩标准之间仍然存在性能差距,尤其是在广泛使用的PSNR度量方面。
2023-04-19 18:57:45 597
原创 LMS自适应滤波器算法学习
如下图所示,输入信号x(n) 通过参数可调数字滤波器后产生输出信号 y(n),将其与期望信号d(n)进行比较,形成误差信号e(n), 通过自适应算法对滤波器参数进行调整,最终使 e(n)的均方值最小。自适应滤波可以利用前一时刻已得的滤波器参数的结果,自动调节当前时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。在梯度下降算法中,为获得系统的最佳维纳解,需要知道输入信号和期望信号的相关信息,当期望信号未知时,就无法确定它们的相关特性,必须对梯度向量进行估计。
2023-04-07 20:10:24 619
原创 JPEG2000图像压缩算法学习
量化后的小波系数划分为小的数据单元——码块,然后对每个码块进行独立的嵌入式编码;并将得到的所有码块的嵌入式位流,按照率失真最优原则分层组织,形成不同质量的层.对每一层,按照一定的码流格式打包,输出压缩码流.下面介绍各部分的作用及基本原理.。与JPEG 不同,JPEG 2000 算法并不需要将图像强制分成8 × 8 的小块.但为了降低对内存的需求和方便压缩域中可能的分块处理,可以将图像分割成若干互不重叠的矩形块(tile)分块的大小任意,可以整个图像是一个块,也可以一个像素是一个块.。
2023-04-05 20:44:07 6740 2
原创 动手学习深度学习经典网络——AlexNet
相比于LeNet,AlexNet网络规模大大增加,其中3*3的卷积核也是深度CNN发展的一个重要标志。
2023-04-04 19:32:29 131
原创 动手学习深度学习经典网络——LeNet
LeNet5共有七层,不包含输入,每层都包含可训练参数,每个层有多个Feature Map,每个Feature Map通过一种卷积滤波器提取输入的一种特征,然后每Feature Map有多个神经元。卷积层是CNN的核心,层的参数由一组可学习的滤波器(filter)或内核(kernels)组成,它们具有小的感受野,延伸到输入容积的整个深度。全连接层是一个常规的神经网络,它的作用是对经过多次卷积层和多次池化层所得出来的高级特征进行全连接(全连接就是常规神经网络的性质),算出最后的预测值。
2023-04-04 13:05:26 274
原创 小波变换图像压缩学习
小波变换将图像的像素解相关的变换系数进行编码,比经典编码的效率更高,而且几乎没有失真,在应用中易于考虑人类的视觉特性,从而成为图像压缩编码的主要技术之一。小波变换在信号的高频部分可以取得较好的时间分辨率:在信号的低频部分,可以取得较好的频率分辨率,从而能有效地从信号(如语音、图像等)中提取信息,达到数据压缩的目的。游程长度编码压缩数据是十分有效又简便的,但压缩比的大小是与图的复杂程度成反比的,在变化多的部分,游程数就多,变化少的部分游程数就少,图件越简单,压缩效率就越高。,从而可以聚焦到对象的任意细节。
2023-04-02 14:49:12 2336 1
原创 JPEG编码学习
这里我简单介绍一下JPEG的编码流程:对于整个图的操作:RGB图原始数据 -> padding到长宽都是8的倍数 -> RGB转YUV -> 每个小网格8×8以划分图像每个block的操作:对YUV的三个block分别做2D DCT -> DCT后数据除以量化表量化 -> zigzag重排数据块划分将输入数据按8x8划分数据块,源图像如果不是8x8的整数倍,需进行填充颜色空间转换RGB->YCbCr。
2023-04-01 15:51:56 600
原创 图像压缩编码发展学习
一、早期发展1、基于信息的统计概率的无失真编码技术的熵编码熵编码有很多种:Huffman编码、行程编码 (RLE)、算术编码、Lempel-Ziv字典编码、基于上下文的自适应变长编码(CAVLC)、基于上下文的自适应二进制算术编码(CABAC)霍夫曼编码霍夫曼编码是一种编码方法,霍夫曼编码是可变字长编码(VLC)的一种。哈夫曼编码思想是:出现频率高的字母使用较短的编码,反之出现频率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。这样在对整个信息进
2023-03-30 15:28:12 860
原创 Android&NCNN学习—nanodet实例
学习自:https://zhuanlan.zhihu.com/p/390050962布局文件:这里布局由三部分组成,第一部分是一个button来切换前后摄像头、第二部分是两个Spinner分别用来切换模型和切换CPU/GPU,最后就是一个SurfaceView用来预览。
2023-03-30 12:16:34 316 1
原创 Github仓库的创建和文件的上传与更新
打开git-bash.exe,因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,用户和邮箱为你github注册的账号和邮箱。生成成功后,去对应目录C:\Users\用户名\ .ssh里用记事本打开id_rsa.pub,复制得到ssh key公钥。此时文件夹中会出现仓库名命名的文件夹,打开GitHub远程仓库文件夹,右键Git Bash Here或者直接。复制本地地址,新建空白文件夹updata,右键Git Bash Here,输入命令。在文件夹中右键选择Git Bash Here。
2023-03-18 19:30:56 3579
原创 学习笔记—使用NCNN将yolov5部署到android
打开这个yolov5s.param文件,找到permute节点,这个permute节点一共有3个,分别是128,256,512尺寸的,我们需要的是256和512的输出维度,我们需要的是256和512的输出维度,将对应节点的输出名更改,如下图。出现这个问题的原因是,使用的新版本的ndk中不包含这个文件,需要将老版本,例如R21版本toolchains文件夹中对应文件拷贝到当前应用的ndk版本对应文件夹中,或者在local.properties文件中指定ndk路径。重新同步,成功后,将app安装到手机上。
2023-03-17 13:48:15 1423
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人