- 博客(38)
- 问答 (1)
- 收藏
- 关注
原创 使用IGEV和双目相机生成深度图实现测距
以下是源代码的demo,我根据自己的需求,做了部分改动,比如双目相机输入的格式是RGBA,但IGEV处理的输入通道数是3,我就在其他py文件将图片转成RGB格式。
2024-03-05 13:35:16 691 2
原创 yolov8模型训练遇到的问题
首先要确定我们的图像,标签文件夹内容无误。img2label_paths(self.im_files)这个函数大概率有猫腻,跳进去看看。但我的文件夹名字对不上,所以把函数里的名字改过来就可以了(数据集小的话也可以直接改数据集名字)训练时有一种报错:no labels found in xxx.cache。以下是其中部分代码,发现人家用的名字叫images和labels。
2023-09-25 15:29:29 1640 3
原创 机器学习:使用PCA简化数据
但看实验结果不难发现,当主成分数量增大到13个的时候,累计方差的增大速率就出现了明显的下降趋势,所以这个数值也是可以再做修改的。用线代的角度来看,应该可以理解为这个矩阵向量可以由其他特征向量线性组合得到,所以590个特征中,大部分的特征意义不大,可以被压缩掉。人眼会把显示器上的百万像素转为三维图像,在图中可以捕捉球的运动轨迹,此时就已经实现通过“降维”获取关键数据的目的。函数读取数据,将所有的数据都解析为浮点数,但数据里的NaN并不是数值,我觉得可能是数据类型不同导致的错误。处理的数据类型如下所示。
2023-09-10 15:06:07 343
原创 机器学习-神经网络(西瓜书)
在生物神经网络中,神经元之间相互连接,当一个神经元受到的外界刺激足够大时,就会产生兴奋(称为"激活"),并将剩余的"刺激"向相邻的神经元传导。神经元模型模型中xi表示各个神经元传来的刺激,刺激强度有大有小,所以wi表示不同刺激的权重,Θ表示阈值。一段刺激经过加权汇总再减去神经元的阈值后,经过激活函数f处理,就是一个输出y,它如果不为0,那么y就会作用到其他神经元当中,就如同xi一样作为输入。前面提到的激活函数fsigmoidx1e−x1。
2023-08-29 00:22:24 2119
原创 机器学习第九章K-均值聚类算法
K-均值聚类算法是无监督学习的一种,随机选择一个点作为一个簇的质心,新加入的质点可能影响质心的选择,重复这个过程直到质心稳定。这个算法感觉比较直观,但是迭代次数很大,并且如果有几个点比较离谱,可能会影响结果的准确性,比如地理聚类实验左上角、右下角的点。地址:10860 SW Beaverton-Hillsdale Hwy。scatter_markers表示用多种图形代表一类地点。城市和州:Beaverton, OR。经度:-122.788346。名称:Dolphin II。纬度:45.486502。
2023-08-06 20:21:46 126
原创 第七章集成学习(AdaBoost、Bagging)
提到,AdaBoost通过迭代的方式,根据当前样本的权重训练树桩,根据错误率再去调整样本权重,再通过每个树桩的输出结果做加权求和(取决于错误率),最后实现强分类器。和adaboost的共性在于,都是通过组合多个弱分类器组成一个强分类器,主要区别在于训练过程、样本权重分配。尝试迭代100次,发现 虽然训练集的效果变好了一点,但测试集的效果变差了许多,出现一种“过拟合”现象。组成强分类器,迭代40次,weakClassArr指的是最佳的特征组合。前面提到的权重叫alpha,简称α,它的大小取决于错误率。
2023-08-04 20:35:22 87
原创 机器学习实战 第五章 Logistics回归
我喜欢偷懒,所以经常可以找到一些办法,用最小的代价获得尽可能大的成果,比如说我一天中有哪几个时间段工作效率最高,我就可以专门挑这些时间去学习;决策边界对样本进行划分的效果还可以,但还是有一些误差,书上用到“梯度上升算法”的改进:“随机梯度算法”,它只需要一个样本就可以完成一次迭代,而前者每次迭代都需要用到整个数据集,公式为。,它的工作原理是:沿着函数的梯度方向,找出函数的最大值,如式4所示,在一个点有定义、可微的前提下,求x方向上的偏导(仅在x轴方向移动)表示对应的系数,用向量表示的话更好看些,如式3。
2023-07-10 21:45:53 127
原创 机器学习第四章 朴素贝叶斯
导入文件夹spam和ham(分别为两个类型的文本文件夹),将他们解析为词向量之后,利用其中随机40个文本作为训练集,随机10个文本作为测试集来计算错误率,为了提高测试精度,我们设定,已作为训练集的文本不会再加入测试集文本这个序列。这样的褒义词汇是非侮辱性词汇的概率是4.17%,是侮辱性词汇的概率是0;:因为只是社区里的留言板,流量不会太大,可以先统计3天内用户的发言,将用户发表的内容分割成单个词汇,以列表元素的形式进行存储,并为这些词汇贴上标签,比如:标签为1表示侮辱性词汇,为0则表示非侮辱性词汇。
2023-07-09 17:50:48 88
原创 机器学习实战第三章 决策树
在处理大批量的数据前,决策树算法需要先计算出“熵”,以判断数据集中哪些特征对结果的影响力度大,比如在前面“银行放贷”这个例子中,我们得出信息增益最强的特征是“有没有房子”,有的话直接放贷,若没有,则去匹配与之相关度最高的特征:“有没有工作”。在存储决策树的过程中,《机器学习实战》中,使用pickle模块来存储字典,不知道是编码问题还是什么,写入txt文本的内容都是乱码,我选用了其他编码、解码方式,或者将字典内容转换为json数据流再输入,都无法解决这个问题,最后只能用基本的读写文件方式写入树的内容。
2023-07-05 15:02:36 94
原创 机器学习第二章 k-近邻算法
简介:k-近邻算法(k-Nearest Neighbors),是一种基本的分类和回归算法。分类原理:通过测量不同特征值之间的距离进行分类。具体为:将新数据的信息与样本集中数据的特征进行比对,然后选择k个最近邻个数据中出现次数最多的标签作为新数据的标签。前面提到的距离通过欧式距离公式可得,如式1所示dxA0−xB02xA1−xB12(1)dxA0−xB02xA1−xB121直接理解为计算出两点间的距离。
2023-06-27 21:42:30 122
原创 数字图像处理第九章形态学处理
腐蚀:是一种基本的形态学变换操作之一,它可以用来缩小或者消除二值图像中物体的边缘。腐蚀操作的原理是将一个结构元素(通常是一个小的矩形或圆形)沿着图像的边界向内滑动,如果结构元素与图像中的像素完全重合,则该像素保留,否则该像素被删除。这样,腐蚀操作可以消除图像中的细节和小的物体,使得图像变得更加简单和平滑。公式表达如式1A⊖Bz∣Bz⊆A(1)A⊖Bz∣Bz⊆A1Z为一片区域,A、B集合则包含于Z,式1表示A被B腐蚀。
2023-06-26 15:55:09 1396
原创 数字图像处理第八章
然后,只需存储这些预测误差,而不是每个像素的完整值,在解码时,使用相同的预测模型来恢复像素值,并将预测误差添加回去,以重构原始图像。添加好的水印色值为(0,0,128),呈现出来的效果比较接近黑色,根据文本的大小确定一块区域,对区域内所有的像素点进行遍历,凡是第三个值小于等于128的全部转为(0,0,0),也就是白色,这样就可以实现“可见水印去除”:通过“霍夫曼编码表”来压缩数据,表格包含各种字符出现的频率,能够将常见的字符编码为较短的编码,不常见的编为较长的编码。,只需要27位编码就可以表示。
2023-06-16 22:01:08 130
原创 第六章 彩色图像处理
其中,RGB模型是一种加法混色模型,通过把红绿蓝三种颜色以不同强度叠加 得到其他颜色,比如三种颜色的强度都达到最大值,那呈现的效果就是白色,反之为黑色。在 HSI 彩色空间中,色调通道代表了颜色的色相,饱和度通道代表了颜色的纯度,亮度通道代表了颜色的亮度,通常用于图像的分类和识别。互补色是指在颜色环上相互对称的两种颜色,它们的色相相差180度,互为补色。前面经常提到RGB模型,它由红、绿、蓝三个通道组成,每个通道有固定的像素值范围,取[0,255],相当于每个通道有256个值,每个值表示一种颜色的。
2023-06-11 22:34:05 320
原创 第五章 图像复原与重建
降低噪声敏感的一种方法是,以平滑度量的最佳复原为基础,如图像的二阶导数(拉普拉斯算子),其数学描述是求一个带约束条件的准则函数的最小值:式(1)为最小准则函数C,式(2)为约束条件。频率域滤波是一种常用的图像处理方法,可以用来消除周期噪声(在一定时间内,周期性出现的噪声,容易对数据处理造成一定的干扰)。在频率域中,信号可以表示为不同频率的正弦波的叠加,所以我们可以通过将信号分解成不同频率的成分,再对每个频率成分进行滤波处理。:指在图像处理中,图像的退化过程是线性的,且退化过程不随图像位置的变化而改变。
2023-06-06 00:27:07 568
原创 数字图像处理第四章笔记
前人提出:“任何周期函数,只要满足某些条件 都可以表示为 不同频率的 正弦和、余弦和 的形式”,其中的“和”即傅里叶级数,因此,傅里叶级数能够清晰地表明:信号由哪些频率分量组成 以及 其所占比重,有利于我们对信号进行分析处理,傅里叶变换就像棱镜,棱镜能把光分解为不同颜色的成分,每种成分的颜色由各自的波长决定。DFT是傅里叶变换在时域和频域上都呈现离散的形式,将信号从 时域 变换到 频域,再研究信号的频谱结构,但是计算量会很大,采样点多的时候算的很慢(应对措施为使用快速傅里叶变换FFT,以后可能会学到)
2023-05-23 00:55:20 385
原创 # 数字图像处理笔记 第三章 灰度变换与空间滤波
伽马变换用于 图像获取、打印、显示 之类的设备,根据幂律产生响应,“伽马校正”即用来校正这些幂律,一般取原伽马值得倒数,根据不同设备改变伽马值,这个值会改变亮度、以及彩图中RGB的比率,经过伽马变换,图像整体的细节表现会得到增强。滤波后的像素值不会替换原图像中对应的位置(直接替换的话会改变原图像内容),而是将新的值赋给新建图像的对应位置。的 图像处理技术,其机理是 基于对图像像素点周围一定区域内的像素值的加权平均 或 差分运算 来实现图像的处理(通过把每个像素的值替换为该像素及其邻域的函数值来修改函数)
2023-05-07 10:01:49 223
原创 数字图像处理の笔记,第二章-数字图像基础
空间分辨率:图像中可辨别的 最小细节 的 度量,单位:dpi,分辨率与存储所需空间呈正比,没有固定的取值标准,需要根据实际情况选择合适的分辨率,例如:使用内插方法改进图像。:如图所示,几个条带的强度恒定,但在条带间的边界处,我们能明显感觉到两块亮度不同的区域,在边界处亮度对比极其明显,这是一种主观的感觉,说明人类的视觉系统有。△Ic / I 称为韦伯比,△Ic 是在背景照明为I时辨别照明增量的50%。,物体在可见光谱的有限范围内,反射不同范围波长内的光,对应波长的光颜色即人眼观察到的颜色。
2023-04-30 10:18:09 353
原创 个人の数字图像处理笔记(第一章 绪论)
灰度,数字图像:每个图像都可以定义为一个二维函数(x,y),其中任一点(x0,y0)的幅值f成为该点的灰度,若 x,y和灰度为有限离散数值,则该图像数字图像数字图像处理:数字计算机对数字图像的处理元素(像素):某点的坐标+该点的幅值f。
2023-04-21 22:10:39 122
原创 vscode安装python库(我安xlrd,以及可能出现的一些问题
安装cmd打开图形化界面pip install xlrd一般不建议直接使用上述命令,因为vscode打开可能会因为版本过高而报一个类似这样的错误因此建议换成低版本的安装过的要先卸载pip uninstall xlrdpip install xlrd==1.2.0这样算是安装成功,如果报了一堆红色错误,可以再次尝试一下注意:我们查找的文件可能有的字符会被转义成其他字符,建议在路径前加一个r...
2021-11-25 23:33:54 3736
原创 IP地址的一些概念、用途,计算及ICMP包的一些功能
IP地址基概在网络中用于标志一个结点(或者网络设备的接口),也用于IP报文在网络中的寻址。分为IPv4和IPv6,我们生活当中一般采用IPv4地址,而一个IPv4地址由32bit(4byte),通常使用“点分十进制”表示。构成网络部分:用来标识一个网络,说白了就是看两个IP是否在同一个网段,这直接说明两者同信是同网段还是跨网段。主机部分:用来区分一个网络内的不同主机,能唯一识别网段上的某台设备,比如我们192.168.10.0这个网段,可以有192.168.10.1和192.168.1.2这两个同
2021-09-25 17:10:14 344
原创 网络层常用协议
数据封装在聊网络层协议之前,我们先回顾一下数据封装的过程:首先在应用层产生一个数据PDU,在传输层加上一些信息形成数据段,在网络层又添加一些字段形成数据包,在数据链路层再次添加一些字段形成数据帧,最后在物理层形成比特流。数据包分片将报文分割成多个片段的过程叫做分片,网络中转发的IP报文长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报文就需要分割成若干个较小的片段才能够在链路上传输。Identification:16 bit,发送主机赋予的标识,分片重组时会用到该字段。Flags:3
2021-09-22 22:43:26 292
原创 ensp中路由器(华为设备)的基本使用
基本指令1、修改Router名字(初始为用户视图,无法修改,需先进入系统视图):system-view开始改名字:sysname xxx 2、进入接口视图3、配置IP地址补充:quit可以退回级别更低的视图(直接按q回车也可)4、修改配置5、查看路由器各个接口、查看全局配置6、保存配置与对比7、设备的文件操作8、重启设备...
2021-09-22 21:34:00 9357
原创 便于理解的顺序栈操作
内容实现顺序栈的初始化、入栈、出栈、判空、判满、遍历、取顶代码#include"head.h"typedef int ElemType;typedef struct{ ElemType data[MAXSIZE]; int top;}*Stack;void Init(Stack S){ if (S == NULL) { printf("内存分配失败\n"); exit(0); } S->top = (Stack)malloc(sizeof(Stack)); S
2021-09-22 17:01:24 85
原创 记录一次初级网络学习
OSI七层模型应用层提供应用接口,直接面对用户,比如我们使用的qq、微信,正是在应用层上进行的表示层进行数据格式的转换,以确保一个系统生成的应用层数据能够被另一个系统的应用层所识别和理解;表示层提供各种用于应用层数据的编码和转换的功能;通俗来讲,就是在传输过程中,用来确保我们发送的数据不会因系统不同而混乱。会话层在通信双方之间建立、管理和终止会话;系统帮助我们区分数据传输对象,确保A发给B的消息不会错发到C传输层建立、维护和取消一次端到端的数据传速过程,控制传输节奏的快慢,调整数据的排序等等
2021-09-21 10:42:23 159
原创 基于C编写的栈及操作(包含顺序栈,链栈)
栈的定义只允许在一端进行插入、删除的线性表(线性表是什么?可跳转至线性表编写,里面有我写的线性表操作,说白了线性表示就是具有相同数据类型的n个元素组成的优先序列,无法随机存取)关于栈,个人认为最形象的比喻是“烤肉串”,串的时候是从上到下一个一个串进去,吃的时候是从最上面开始吃,一嘴撸到底的当我没说。入栈出栈简图相关操作(核心定义:只能在栈顶操作)初始化:构造一个空栈并为之分配内存空间销毁:销毁并释放栈所占用的内存空间进栈:若栈未满,则将元素塞入栈使之成为新的栈顶出栈:若栈非空,则弹出栈顶元
2021-09-19 16:38:14 207
原创 基于C语言的双链表
初始化将头节点的prior、next都指向NULLPList InitList(){ PList L = (PList)malloc(sizeof(LNode)); if (L == NULL) return false; L->next = NULL; L->prior = NULL;}插入前插法LNode Insert(){ LNode* p, * q; if (p == NULL || q == NULL)//确保p,q均不为空 return fal
2021-09-13 15:55:31 60
原创 尝试基于C语言编写的线性表(小白,勿喷)
目的实现增、删元素,以及遍历线性表代码#include<stdio.h>#include<stdlib.h>#define MAXSIZE 100#define TURE 1#define FALSE 0#pragma warning(disable:4996)typedef int status;typedef int ElemType;typedef struct List{
2021-09-10 19:18:21 126
原创 哈夫曼树的基本应用与概念
概念哈夫曼树又叫最优二叉树,等等在做解释。我们先引入“路径”和“长度”的概念。路径:即从树的一个结点到另一个结点所经过的分支构成长度:即路径所经分支的个数树的路径长度:指从根结点出发,到树中每一个结点的路径长度之和,记作:TL例如:有这么一个二叉树:A->B->C,则A到C的路径为ABC,长度为2,树的路径长度为3补充:结点数相同的情况下,完全二叉树的树的路径长度最短,但满二叉树的又小于等于完全二叉树权:给树中的每个结点赋以一个值,这个值就是权结点的带权路径长度:结点的权乘以路径
2021-07-31 10:36:33 235
原创 树和二叉树的转换
概念树和二叉树都可以用二叉链表作为存储结构,因此我们采用二叉链表作为媒介表示对应关系树转换为二叉树步骤:兄弟间连线->所有结点均只保留左孩子(其他线全部去掉)->将所得树以根结点为中心旋转45°口诀:兄弟相连留长子二叉树转为树步骤:左孩子的所有右孩子都与左孩子的双亲相连,去掉右孩子原来的连线口诀(左孩右右连双亲,去掉原来二孩线)...
2021-07-30 21:25:01 989
原创 如何用vs code搭建自己的网站
网站由多个网页组成HTML:超文本标记语言,专门用来制作网页,用来描述网页的一种语言(例如图片,动画,声音),且不等价于编程语言,个人认为可以理解为由一大堆标签组成标签定义:全在<>中,标签几乎都是成对存在,少数是单标签关系:①包含类似父子关系,比如这里的上下俩head②并列类似兄弟关系,比如这里的最有左右俩body基本结构标签①<html> </html>:这是页面中最高级别的标签,简称根标签②<head> </he
2021-07-30 09:55:12 20965 2
原创 树、森林与二叉树
树(Tree)树是n个结点的有限集(n≥0),当n=0时,我们称其为空树;树的概念当n>0时,它将满足以下条件:①有且仅有一个可以成为’根‘的结点;②它的其他结点可以分为m个分支T1,T2…Tm(互不交集),每个集合本身也是一棵树,称为“根的子树”。结点度:即一个树中,它子树的个数,比如这里A的结点度为3;深度:一个树中结点的最大层次,这里的深度为4;祖先与子孙从目标结点到根结点的途中,经过的所有点(除了目标结点)都是目标结点的”祖先“;反之,根结点到目标结点的途中,经过的所有结点都是根
2021-07-29 18:54:34 2196
原创 2021-04-13
关于杨辉三角杨辉三角定义:一个二项式系数在三角形中的集合排列特点:1、每个数等于上方相邻两个数相加的和(从左往右看),且左右对称,比如:11 11 2 1 #以此类推2、第n行第m列的数可表示为C(n-1,m-1),相当于先读取每行当中的所有列源码:(社工+修改)num=int(input())#确定行数lst=[]#存储所有数字的列表for n in range(0,num):row=[1]#作为首字符1lst.append(row)if n==0:print(ro
2021-04-13 00:35:19 140
原创 2021-04-12
Python中replace函数的使用基本语法:print(str.replace(“需要转换的字符/字符串”,“我们想要的字符/字符串”,数字)#其中,第三个空的数字表示:我们需要转换的字符/字符串个数,没有填则表示全部转换例如:str=“hhh”print(str.replace(“h”,“n”,2))#则输出结果为nnh...
2021-04-12 23:24:13 115
原创 猫捉老鼠(python)解析
import turtle#海龟库import timeimport random#定义上下左右按键内容,此处b为老鼠def up():b.setheading(90)#按X-Y坐标算,转90°b.forward(30)#30个像素def down():b.setheading(270)b.forward(30)def left():b.setheading(180)b.forward(30)def right():b.setheading(0)b.forward(30)#定
2021-02-15 17:58:09 969
原创 2021-02-15
import turtle#海龟库import timeimport random#定义上下左右按键内容def up():b.setheading(90)#按X-Y坐标算,转90°b.forward(30)#30个像素def down():b.setheading(270)b.forward(30)def left():b.setheading(180)b.forward(30)def right():b.setheading(0)b.forward(30)#定义屏幕pla
2021-02-15 17:44:53 151 1
原创 helloCSDN
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-02-15 17:42:20 83
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人