- 博客(388)
- 资源 (9)
- 收藏
- 关注
原创 Windows程序崩溃定位
Windows程序crash定位,首先需要有dump文件,dump文件是C++程序发生异常时,保存当时程序运行状态的文件, 是调试异常程序重要的方法。windows系统默认不产生程序的dmp文件,需要手动设置才能生成dmp文件。
2024-04-28 18:17:55 308
原创 c++统计函数耗时
QueryPerformanceCounter 是系统性能统计计数器,表示统计了多少次,除以QueryPerformanceFrequency,得到系统运行时间(秒数)。作用:该函数是操作系统的性能统计分辨率,也就是每秒钟统计多少次的意思,返回硬件支持的高精度计数器的频率。返回非零,硬件支持高精度计数器,返回零,硬件不支持,读取失败。原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
2024-04-24 13:49:01 151
原创 c++调python接口
2. 将run.py文件拷入c++工程目录下:项目->属性->VC++目录->包含目录->添加python头文件路径(C:\Python38\include); 链接器->常规->附加库目录->添加python库路径(C:\Python38\libs); 链接器->输入->输入python38.lib;2.1 c++中直接运行python代码 在dllmain.cpp中添加如下接口:新建utils.h文件:生成解决方案,生成lib和dll文件,将util.h
2024-04-10 18:45:35 274
原创 C语言多线程基础(pthread)
由于我们没有在主线程中等待我们创建出来的10个线程执行完毕,所以创建出来的子线程可能还没来得及执行,就因为主线程(main函数)执行完毕而终止整个进程,导致子线程没法运行。而且传的是地址,子线程在执行时,i值可能还没更新,所以可能会打印重复的值。但是线程执行的顺序是不固定的,也就是说我们无法预知打印的顺序。根据代码判断程序的输出是不可行的,我们只知道输出的内容,但不知道输出的顺序。使用pthread_join()除了有阻塞线程功能之外,还可以利用其第二个参数,得到线程函数的返回值。
2024-01-12 17:53:18 1050
原创 基于双级阈值及过零率的语音激活检测(VAD)
语音激活检测(Voice Activity Detection, VAD):也称为端点检测,目的就是要找到音频信号的开始和结束位置。图中 tl 的范围是完全包含了 tu 的范围。为什么还需要第一步,因为仅仅用第2步的话,噪音的部分会被计算进来。结合过零率找到 SUV 来做端点检测,基于如下的特征:浊音 ZCR < 静音 ZCR < 清音 ZCR。
2023-10-16 19:22:50 280
原创 基于DTW算法的命令字识别
DTW(Dynamic Time Warping):按距离最近原则,构建两个序列之间的对应的关系,评估两个序列的相似性。单向对应,不能回头;一一对应,不能有空;对应之后,距离最近。
2023-09-27 17:27:47 232
原创 基于Shazam算法的音乐识别
编码过程:将f1和f2进行10bit量化,其余bit用来存储时间偏移合集形成32bit的hash码。Hash = f1|f2
2023-09-11 21:31:21 600
原创 语音特征提取与预处理
高通滤波,弥补高频部分的损耗,保护了声道信息:y[n] -> y[n] - coef * y[n-1]。原理:将每帧均方根能量与全局最大均方根能量进行比较。
2023-09-05 20:51:15 376
原创 python实现语音识别
> '好好 学习 天天 向上'7. 语音转文本(英文识别)8. 语音转文本(中文识别)4. 通过麦克风输入并识别。1. 首先安装依赖库。5. 文本转语音播放。
2023-08-28 18:06:18 3137 6
原创 单发多框检测(SSD)【动手学深度学习】
单发多框检测模型主要由一个基础网络块和若干多尺度特征块串联而成。基本网络用于从输入图像中提取特征,可以使用深度卷积神经网络,原论文中选用了在分类层之前阶段的VGG,现在也常用ResNet替代。我们可以设计基础网络,使它输出的高和宽较大,这样基于该特征图生成的锚框数量较多,可以用于检测尺寸较小的目标。接下来每个多尺度特征块将上一层特征图的高和宽缩小(如减半),并使特征图中每个单元在输入图像上的感受野变得更广阔。图1 单发多框检测模型。
2023-08-18 23:52:33 142
原创 多尺度目标检测【动手学深度学习】
在上篇博客《锚框【目标检测】》中,我们以输入图像的每个像素为中心,生成多个锚框。基本而言,这些锚框代表了图像不同区域的样本。然而如果以每个像素都生成的锚框,最后可能会得到太多需要计算的锚框。想象一个561×728的输入图像,如果以每个像素为中心生成五个形状不同的锚框,就需要在图像上标记和预测超过200万个锚框(561×728×5)。
2023-08-11 15:37:48 996
原创 锚框【动手学深度学习】
假设一个锚框A被分配了一个真实边界框B,一方面A的类别将被标记为与B相同,另一方面,A的偏移量将根据B和A中心坐标的相对位置及两个框相对大小进行标记。可以看到返回的锚框变量Y的形状是(批量大小,锚框数量,4), 将锚框变量Y的形状更改为(图像高度,图像宽度,以同一像素为中心的锚框数量,4)后,我们可以获得以指定像素为中心的所有锚框。在预测时,我们为每个图像生成多个锚框,预测所有锚框的类别和偏移量,根据预测的偏移量调整它们的位置以获得预测的边界框,最后只输出符合特定条件的预测边界框。
2023-08-10 20:28:23 496
原创 bin文件参数读入结构体
3. 按行读取txt文件,通过字符串分割将目标去除保存到新的txt文件;4. 将纯净版txt文件保存成bin文件;6. 打印结构体中各成员变量接收到的参数;0xcc(该地址没申请,默认值为cc)1. 定义接收参数的结构体结构及变量;5. 将bin文件读入到结构体指针;2. 配置参数配置文件txt文件;
2023-07-20 16:47:18 189
原创 基于mediapipe的手势识别
安装opencv:pip install opencv-python。安装mediapipe:pip install mediapipe。
2023-07-14 17:14:31 557
原创 指针函数与函数指针
/将fun()函数首地址传给指针变量fp。//fun是指针函数;指针函数:指针函数是一个函数,返回值是一个指针。函数指针是指向函数的指针变量,本质是一个指针。//fun是指针变量。格式: 返回值类型 (*函数名) (参数)
2023-07-06 20:43:02 220
原创 指针的指针理解与用法
指针实际上就是一个变量,当他不是空指针的时候他的值就是某一个地址,同时他自己也是有地址的,因为它是一个变量。指针的指针的值其实就是某一个指针的地址。
2023-07-06 20:28:03 244
原创 sizeof(数组名)与sizeof(指针)
sizeof(指针) :返回计算机系统的地址字节数,如果是32位系统,返回4,64位系统返回8。注:buf2是指针数组,数组的元素是指针,所以sizeof(buf2[1])返回值是4。结果:4,对于“”中的字符串,默认后面还有一个\0,所以实际的长度要+1.验证:printf("%d\n",sizeof("123"));sizeof(数组名):返回数组所有元素占有的内存空间字节数。sizeof("XXXXX")应该是多少呢?
2023-07-06 20:07:18 165
原创 目标检测梳理
RPN:region proposal Networks,用于生成region proposal,faster R-CNN中称之为anchor,通过softmax判断anchors属于foreground或者background,再利用bounding box regression 修正anchors获得精确的proposals,输出Top-N(默认为300)的区域给ROI pooling。定义不同大小不同长宽比的窗口滑动图片,将滑动窗口下的图片送入网络模型进行分类识别。
2023-07-06 15:46:51 665
原创 图像几何变换、仿射变换、透视变换
图像坐标系->笛卡尔坐标系->图像坐标系。如果是以图像中心旋转,则left=W/2,right=H/2,其中W和H为图像旋转后的宽和高,比原始宽高大。图像旋转变换:(x,y)为原图像坐标系,(x’,y’)为以(x0,y0)为中心的笛卡尔坐标系,图像以x0,y0)为中心进行旋转。仿射变换矩阵一共有6个参数,所以我们只需要3个坐标对(6个方程)就能求解。透视变换矩阵一共有8个参数,所以我们需要4个坐标对(8个方程)才能求解。
2023-06-27 21:58:55 231
原创 Stacking堆叠增强学习算法
数据集划分训练集和测试集,首先用训练集训练多个模型器,然后将测试集送入模型器得到每个模型器的输出,将每个模型器的输出作为一个特征送入最终模型器里训练,训练目标为测试集真实值。比如样本x经过model1得到y1, 经过model2得到y2,经过model3得到y3,然后将(y1,y2,y3)送入最终模型器里训练,目标为x的真实值。将样本送入不同的模型里得到预测结果,将每个模型预测的结果作为一个特征组成一个向量送入最终模型(一般用逻辑回归)里预测。
2023-06-12 11:36:39 456 1
原创 GBDT梯度提升树
可看到我们根据GBDT原理手写计算结果和sklearn提供的GradientBoostingRegressor计算结果一致,因为GradientBoostingRegressor内部的计算过程就是我们上面手写的过程。直接使用sklearn提供的GradientBoostingRegressor。上面介绍的示例提升树是梯度提升树的一种特例,即损失函数用的是平方和。
2023-06-09 18:26:32 67
原创 DBSCAN聚类算法从原理到实现
简介:DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。算法步骤:DBSCAN需要指定两个参数,扫描半径(EPS)和最小包含点数(minPts)。K-Mean运行结果:只适用于球形簇,如果数据不是球形的,它的准确性就会受到影响。数据集:两条弧线.csv。
2023-05-29 11:30:39 233
原创 c++综合学习
一个数据变量的内存地址可以存储在相应的指针变量中,函数的首地址也以存储在某个函数指针变量中。使用场景(用来修饰形参,防止误操作): 加上const在函数体里就不能对v进行修改了,如果不加const,函数体里面对v修改了,则函数外相应也会被修改;stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输入流。stream -- 这是指向 FILE 对象的指针,该 FILE 对象指定了一个输出流。stream--这是指向FILE对象的指针,该FILE对象标识了流。
2023-05-22 19:39:24 545
原创 线性判别分析(LDA)
目标(类间方差最大,类内方差最小):寻找一投影向量,使得原始数据在该向量上的类间方差最大,类内方差最小。令该投影向量为单位向量。类内方差最小即每个类投影的协方差尽可能小,根据前面PCA原理推导,第0类的协方差。,当然真正的协方差还要除以M,这里只考虑其最小化,M为常数可不考虑。] ,每个数据都有对应所属的类别,这里以0和1两类举例。类间方差最大即不同类均值投影后距离尽可能大,即。类内方差最小即所有类内方差都尽可能小,即。假设Y为m个样本,每个样本有n维,所以我们优化的目标是使。*P = 1,则投影值。
2023-05-18 13:54:48 71
卫星数据集;训练集和验证集
2020-12-12
科比数据集.csv;投篮位置,投进二分、三分球个数,比赛剩余时间等
2020-12-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人