YOLOV8 |搞懂检测头 初始化:设置模型参数和网络结构。前向传播:根据不同的模式(普通或端到端)进行前向传播。推理路径:解码边界框和类别概率。解码边界框:将编码的边界框转换为实际坐标。后处理:选择最高分的边界框并返回最终检测结果。
SVM支持向量机python实现 **形式**:\( K(x, y) = \sum_{i=1}^d \exp(-\sigma (x_i - y_i)^2) + \kappa \sum_{i < j} \exp(-\sigma (x_i - y_i)^2 - \sigma (x_j - y_j)^2) \),其中 \(\sigma\) 和 \(\kappa\) 是参数。- **形式**:\( K(x, y) = \tanh(\alpha x^T y + c) \),其中 \(\alpha\) 和 \(c\) 是参数。
子集 宏观+微观 python 思路 现在写微观,微观就是,写递归函数,自从nums原始数组开始传递的时候,这个传递的逻辑是什么?怎怎么递,什么时候归(回溯)如果不对当前的路径进行保存,那么在回溯(即撤销选择)之后,当前路径的信息就会丢失,因为它会被新的选择覆盖。self.backtracking() #不知道回溯的传参是啥,先空着,,等下面回溯函数写好了再回头写。self.backtracking() #不知道回溯的传参是啥,先空着,,等下面回溯函数写好了再回头写。这样写不对,要传具体的参数就一起传递,保持一致,不然报错!
全排列 python 宏观+微观 思路 传参:首先传self,因为是class solution下的,还有nums原始的数字是什么,是否已经使用used,收集单个结果的path(想象一下,每条树的路径就是一个子集结果),还有最后的大的结果result。现在,我们把最原始的nums已经拆成3个了,并且加入了子集path,并且通过used标记了这个数字我们有没有遍历到,这时候,可以开始下一层的遍历逻辑了。到这里就结束了,这两个操作共同保证了算法能够正确地回溯到之前的状态,并尝试不同的元素组合,直到找到所有可能的排列。注意,这里开始有趣了。
从二叉树看类,对象和面向对象编程 实际上,递归函数里面的root就是类的活体,本来这个类就是一个节点的类里面有三个属性,root就是类的活体,是root赋予类生命,让root能在递归函数里面成为能够动态执行函数的节点,如果没有root,类就是死的,只是一个设计图,所以可以任意调用类里面的属性。之所以叫做,面向对象编程,是因为对象是用在函数里面用来执行任务的,但是这个对象需要有一些属性或者本身就应该有的行为,所以需要提前在类里面定义这个对象的属性或者行为。类型的对象,这个对象可以是树中的任何一个节点,而不仅仅是根节点。当你在递归函数内部写。
递归递归先递后归二叉树与递归(回溯) 浅谈个人对二叉树递归理解三句话总结分而治之先递后归归即是回溯二叉树是一个大的树有左子树和右子树,我要对整个二叉树做后序遍历,宏观上看,就是把整个二叉树按照左右根的顺序遍历一遍,放进一个列表。但是二叉树有左有右,每个二叉树又看成是分裂成很多很多个小的二叉树,刚刚说了,宏观上,我是左右根的顺序遍历。好,现在来到左边,左边也是一个独立的二叉树,也是要左右根的顺序遍历的,好,那就从头到尾,尾巴就是叶子结点,终止条件就是root当前节点是空的说明没了就停了。
YOLOV8网络结构|搞懂head head里面的模块之前在backbone出现过的,有conv和c2f,还有concat是新的,就是用来做连接的,就是把几个通道的输出给连接起来,有C,H,W三个维度的,就看最后连接的参数,是按照哪个方向把他们加起来,没有可以学习的参数。upsample是直接继承的nn.Upsample,上采样,就是把图片放大;也是没有能学习的参数。还有三个Detect检测头。yolov8的检测头是解耦头,每个头都有2个分支。相比yolov5,v8的检测头计算量增加了很多。
YOLOV8网络结构|搞懂Backbone-C2f 经过一个bottleneck就是加一个c。c2f没有改变图像的输入通道数和分辨率。d是模型缩放里面的depth。split成两个分支:a和b。有n个bottleneck。传进去的和传出去的没变。
YOLOV8网络结构|搞懂Backbone-Conv (输入通道*w)*(输出通道*w)*k^2+(输出通道*w)*2。输出通道c2=64,k=3,s=2。再搭一个forward前向传播。w是模型缩放里面的width。P1/2 特征图变小一半。
【Opencv】模糊 img_blur = cv2.blur(img,(k_size,k_size)) #窗口是正方形,也可以是不同的值,就是选择窗口大小。k_size = 7 #窗口大小,数字越大,模糊越强。
【Opencv】色彩空间 color space import osimport cv2img = cv2.imread(os.path.join('.','dog.jpg'))cv2.imshow('img',img)cv2.waitKey(0)img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)cv2.imshow('img_rgb',img_rgb)cv2.waitKey(0)img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cv2.imshow('img_gray
【YOLOv8】修改默认的配置文件 YOLO 设置和超参数对模型的性能、速度和准确性起着至关重要的作用。这些设置和超参数可以影响模型开发过程各个阶段的模型行为,包括训练、验证和预测。Ultralytics 命令使用以下语法:其中,TASK(可选)是(检测、分割、分类、姿势)之一。MODE(必需)是(train、val、predict、export、track)之一。ARGSarg=valuepairs likeimgsz=640python界面默认ARG值是通过文件定义的。Tasks 任务。
【yolov8】|小目标优化|:增加CA机制 运行成功 CA:注意力机制增强yolov8对于小目标的识别,加入CA机制机制可以同时捕获远处的空间和通道信息,显着提高模型针对复杂情况准确定位和识别目标物体的能力“CA机制纳入YOLOv8的主干网络中,并与C2f模块相结合,将C2f模块重新设计为C2f_CA,可用于替换网络中原有的C2f模块。这里有几个点要注意,网上的有的代码是不对的,这份是对的,可以跑起来。inp, reduction=32): # 这里是输入通道的inpinp,
【算法刷题】【力扣】| 最长回文子串| 这段代码利用了中心扩展的方法,通过遍历字符串和从每个可能的中心向两边扩展来找到最长的回文子串。这一行代码是在检查当前找到的回文子串的长度是否大于之前记录的最长回文子串长度。在这个过程中,程序会不断地向两边扩展,直到不能形成回文串为止(即。表示当前扩展出来的回文子串的长度。,就说明找到了一个更长的回文子串,因此需要更新。"aba" 同样是符合题意的答案。
将半自动化标签绘制在原图上 用yolov8的推理,做了半自动化标签处理。yolo的标签格式是:标签 + 每个顶点的坐标比如:第一个数字0是类别,后面是每个顶点的坐标,(x,y)这样的。而且可能是多行的所以,要把标签画在原图上,看看打的对不对。画标签到原图上.py。