基于YOLOv8的输电线路异物识别算法应用

news2024/11/19 19:42:46

基于 YOLOv8 的输电线路异物识别算法应用

  • 输电线路作为电力系统的重要一环,保证其安全稳定运行是十分必要的。由于长期暴露于室外,线路所面临的不安全因素繁多,异物入侵便是其中之一。异物可能会引起线路短路甚至诱发火灾,因此要加强输电线路的日常运维工作。然而受地理、环境等诸多条件限制,传统的人工巡检方式存在效率低、准确性差、覆盖面小等问题。

  • 常见的输电线路入侵异物包含鸟巢、风筝和悬挂的气球等。输电线路的巡检是排除异物干扰、保证线路稳定运行的重要手段,因此对巡检质量提出了较高要求。

  • 目前我国大多数地区的巡检主要依靠人工,但人工巡检存在着不小的隐患。首先,传统的巡检方式主要是依靠运维人员凭借肉眼或者借助望远镜等工具进行观察,并排查输电线路是否有异常,要求运维人员有较高的经验水平,增加了巡检质量的不确定性。

  • 无人机巡检的覆盖面更广。其搭载的飞行模块、GPS 技术、数字地球等融合技术更为高效,较于人工拥有着无可比拟的优势。在一些偏远险峻、人工难以到达的危险性较高的地区,或是由于突发状况人员不便巡检时,无人机便可代替人工,快速准确地捕获数据并进行智能处理及分析,提升数十倍的效率。并且无人机还可以依靠网络将数据实时传回,有利于数据整合,使数据的管理更为高效。其次,无人机巡检的准确性更高。传统的地面巡检主要依托肉眼,但高压输电线往往距人较远,有时异物会由于遮挡或角度问题处在视线盲区不易被发现,此类问题通过无人机便可轻而易举地解决。无人机可以飞至线路上空,近距离多角度对线路进行拍摄,一定程度上可以实现全方位无死角的排查监测,提高识别的准确率。最重要的是无人机具有较高的安全性。传统的巡检有时需要人员爬杆走线进行高空作业,存在着较高的危险性。常因环境干扰、运维人员操作不规范、劳动强度过高等问题发生伤害,应用无人机便可规避这一风险,使得巡检工作更加安全。

  • 在进行边缘检测时,便设计出 Sobel、Prewitt、Canny 等算子用于检测。但这种方式比较依赖分类器的设计,且针对具体任务所开发的算法往往不具有普适性。一阶导数的边缘算子:通过模板作为核与图像的每个像素点做卷积和运算,然后选取合适的阈值来提取图像的边缘。常见的有Roberts算子、Sobel算子和Prewitt算子。二阶导数的边缘算子:依据于二阶导数过零点,常见的有Laplacian 算子,此类算子对噪声敏感。Roberts算子的模板分为水平方向和垂直方向,从其模板可以看出,Roberts算子能较好的增强正负45度的图像边缘

  • Prewitt算子是一种图像边缘检测的微分算子,其原理是利用特定区域内像素灰度值产生的差分实现边缘检测。由于Prewitt算子采用 3×3 模板对区域内的像素值进行计算,而Robert算子的模板为 2×2,故Prewitt算子的边缘检测结果在水平方向和垂直方向均比Robert算子更加明显。Prewitt算子适合用来识别噪声较多、灰度渐变的图像

  • Sobel算子是一种用于边缘检测的离散微分算子,它结合了高斯平滑和微分求导。该算子用于计算图像明暗程度近似值,根据图像边缘旁边明暗程度把该区域内超过某个数的特定点记为边缘。Sobel算子在Prewitt算子的基础上增加了权重的概念,认为相邻点的距离远近对当前像素点的影响是不同的,距离越近的像素点对应当前像素的影响越大,从而实现图像锐化并突出边缘轮廓。Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息。因为Sobel算子结合了高斯平滑和微分求导(分化),因此结果会具有更多的抗噪性,当对精度要求不是很高时,Sobel算子是一种较为常用的边缘检测方法。

    • 在这里插入图片描述
  • 拉普拉斯(Laplacian) 算子是 n 维欧几里德空间中的一个二阶微分算子,常用于图像增强领域和边缘提取。它通过灰度差分计算邻域内的像素。Laplacian算子分为四邻域和八邻域,四邻域是对邻域中心像素的四个方向求梯度,八邻域是对八个方向求梯度。当邻域内像素灰度相同时,模板的卷积运算结果为0;当中心像素灰度高于邻域内其他像素的平均灰度时,模板的卷积运算结果为正数;当中心像素的灰度低于邻域内其他像素的平均灰度时,模板的卷积为负数。对卷积运算的结果用适当的衰弱因子处理并加在原中心像素上,就可以实现图像的锐化处理

  • 边缘检测算法主要是基于图像强度的一阶导数二阶导数,但导数通常对噪声很敏感,因此需要采用滤波器来过滤噪声,并调用图像增强或阈值化算法进行处理,最后再进行边缘检测。下面是采用高斯滤波去噪和阈值化处理之后,再进行边缘检测的过程,并对比了四种常见的边缘提取算法。

    • # -*- coding: utf-8 -*-
      import cv2
      import numpy as np
      import matplotlib.pyplot as plt
      #读取图像
      img = cv2.imread('zxp.jpg')
      img_RGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) #转成RGB 方便后面显示
      #灰度化处理图像
      grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
      #高斯滤波
      gaussianBlur = cv2.GaussianBlur(grayImage, (3,3), 0)
      #阈值处理
      ret, binary = cv2.threshold(gaussianBlur, 127, 255, cv2.THRESH_BINARY)
      #Roberts算子
      kernelx = np.array([[-1,0],[0,1]], dtype=int)
      kernely = np.array([[0,-1],[1,0]], dtype=int)
      x = cv2.filter2D(binary, cv2.CV_16S, kernelx)
      y = cv2.filter2D(binary, cv2.CV_16S, kernely)
      absX = cv2.convertScaleAbs(x)
      absY = cv2.convertScaleAbs(y)
      Roberts = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
      #Prewitt算子
      kernelx = np.array([[1,1,1],[0,0,0],[-1,-1,-1]], dtype=int)
      kernely = np.array([[-1,0,1],[-1,0,1],[-1,0,1]], dtype=int)
      x = cv2.filter2D(binary, cv2.CV_16S, kernelx)
      y = cv2.filter2D(binary, cv2.CV_16S, kernely)
      absX = cv2.convertScaleAbs(x)
      absY = cv2.convertScaleAbs(y)
      Prewitt = cv2.addWeighted(absX,0.5,absY,0.5,0)
      #Sobel算子
      x = cv2.Sobel(binary, cv2.CV_16S, 1, 0)
      y = cv2.Sobel(binary, cv2.CV_16S, 0, 1)
      absX = cv2.convertScaleAbs(x)
      absY = cv2.convertScaleAbs(y)
      Sobel = cv2.addWeighted(absX, 0.5, absY, 0.5, 0)
      #Laplacian算子
      dst = cv2.Laplacian(binary, cv2.CV_16S, ksize = 3)
      Laplacian = cv2.convertScaleAbs(dst)
      # #效果图
      # titles = ['Source Image', 'Binary Image', 'Roberts Image',
      #           'Prewitt Image','Sobel Image', 'Laplacian Image']
      # images = [lenna_img, binary, Roberts, Prewitt, Sobel, Laplacian]
      # for i in np.arange(6):
      #    plt.subplot(2,3,i+1),plt.imshow(images[i],'gray')
      #    plt.title(titles[i])
      #    plt.xticks([]),plt.yticks([])
      # plt.show()
      # 用来正常显示中文标签
      plt.rcParams['font.sans-serif'] = ['SimHei']
      # # 显示图形
      plt.subplot(231),plt.imshow(img_RGB),plt.title('原始图像'), plt.axis('off') #坐标轴关闭
      plt.subplot(232),plt.imshow(binary, cmap=plt.cm.gray ),plt.title('二值图'), plt.axis('off')
      plt.subplot(233),plt.imshow(Roberts, cmap=plt.cm.gray ),plt.title('Roberts算子'), plt.axis('off')
      plt.subplot(234),plt.imshow(Prewitt, cmap=plt.cm.gray ),plt.title('Prewitt算子'), plt.axis('off')
      plt.subplot(235),plt.imshow(Sobel, cmap=plt.cm.gray ),plt.title('Sobel算子'), plt.axis('off')
      plt.subplot(236),plt.imshow(Laplacian, cmap=plt.cm.gray ),plt.title('Laplacian算子'), plt.axis('off')
      plt.show()
      
  • 1)Robert算子对陡峭的低噪声图像效果较好,尤其是边缘正负45度较多的图像,但定位准确率较差;

    2)Prewitt算子对灰度渐变的图像边缘提取效果较好,而没有考虑相邻点的距离远近对当前像素点的影响;

    3)Sobel算子考虑了综合因素,对噪声较多的图像处理效果更好。

    4)Laplacian算子对噪声比较敏感,由于其算法可能会出现双像素边界,常用来判断边缘像素位于图像的明区或暗区,很少用于边缘检测;

  • 随着无人机研发技术提高、GPS 定位技术优化及 5G 网络的开发,无人机的硬件性能水平更高、定位更准,信息传输及整合速率也得到大幅度提升,使无人机巡检愈发智能。

  • 我国的线路巡检发展可分为三个阶段。2010 年前主要依靠人工,借助望远镜和相机等工具完成线路巡检。巡检人员大多需沿着巡检路径步行,目测线路故障。2010 年到 2020 年为第二阶段,随着旋翼飞行器、红外遥感等技术的出现,巡检进入了“机巡时代”。机巡主要通过人工操作直升机等工具进行现场巡检,但对操作人员的门槛要求较高。2005 年开始陆续对东北、华北等试点地区采用直升机进行巡检。近几年网络技术更迭,深度学习算法也取得了重大进展,凭借这些我国也正在迈入“智巡”时代。2019年我国首次采用无人机对藏中电力联网工程 500 千伏朗许线等线路进行了全自主智能化巡检,在没有人员操作控制的条件下完成了对线路的精细巡查,保障了“电力天路”的稳定运行。

  • 何俊等人(2022 年)提出了一种基于深度卷积神经网络 EF⁃YOLO 的检测方法对输电线路的鸟类进行识别,通过借鉴 EfficientNet⁃lite 轻量网络的特征提取部分提出了 EF⁃YOLO 模型,又选用适当的损失函数使其具备良好的检测精度及实时性。邹辉军等人(2022 年)提出了一种基于改进 YOLOv5 的输电线路小目标异物检测方法,通过对原有的 YOLOv5 网络结构进行优化,将原本的 FPN 结构更换为 BiFPN,减小了计算量,并且运用场景增强、加入噪声等方式扩充数据集,使网络更有利于排查小异物造成的安全隐患。杨剑锋等人(2021年)通过优化 YOLOv3 网络,提出了一种基于改进的 Dense-YOLOv3 网络模型来对输电线路异物进行入侵识别,运用条件生成对抗网络算法对含有目标异物的图像数据进行扩充,解决了异物图像数据样本较少的问题,并且将 DenseNet 网络引入,使得该网络有很好的识别效果。陈嘉琛等人(2021 年)提出了一种基于 YOLOv3 网络的输电线路缺陷识别方法,在YOLOv3 原结构内将空间金字塔池化模块引入,提高了对不同尺寸图片检测的准确性,并且减少了新模型的网络通道将其进一步轻量化,降低了对服务器的硬件需求,不仅减少了迭代时间,更提升了整体性能。邱志斌等人(2021 年)提出了一种基于迁移学习的危害鸟种图像识别方法来检测线路涉鸟故障危害的鸟种,通过类激活映射去除复杂的背景噪声,并且采用 ImageNet 图像数据集对网络模型进行预训练,搭建了融合多卷积的神经网络模型,有效地对渉鸟故障鸟种进行识别,为此类故障防治提供参考。郝艳捧等人(2022 年)提出了一种基于 Mask R-CNN 的图像识别方法用于检测输电线路覆冰导线,通过图像数据清洗和人工标注建立了南方输电线路覆冰数据集,并改进了 Mask R-CNN 使其面对背景复杂的数据图像也有良好的检测效果,识别与分割的准确率达 92%以上。谢伟等人(2022 年)提出了一种基于 PSO-BP 的特征识别方法对输电线路外力破坏进行检测,针对人为撞击威胁,通过采集目标的三维特征量建立数据集,采用粒子群优化算法为神经网络选取初值,实验表明该算法具有较高的检测精度。王杨杨等人(2023 年)提出了一种基于改进型 YOLOv4 的输电线路鸟巢检测方法,在骨干特征提取网络中引入深度可分离卷积提高了网络的检测速度,并基于K-means++算法对锚框的大小和比例进行改进,建立了基于最小凸集的回归损失函数,使小目标的检测能力提升,该方法在拥有较高准确度的同时有效降低了运算开销。吴军等人(2021 年)针对异物缠绕在输电线路上的问题提出了一种适用于移动端的 YOLO 算法,通过将 CSPDarknet-tiny 选作主干网络并对 SPP、PAN 做出改进,使改进后的 YOLO 算法具备较好的精度及更快的检测速度,更适用于移动端检测。沈茂东等人(2019 年)提出了一种新的网络结构 TLFOD Net 来识别输电线路上的悬挂异物,通过端对端的联合训练方式提高性能,有着较好的检测能力。张亚婉等人(2023 年)提出了一种基于改进 YOLO 的绝缘子缺陷检测方法,采用 K-means++算法对图像数据集进行聚类分析,并运用 NMS 剔除多余检测框,有效地提高了对绝缘缺陷识别的准确率。庞博等人(2022 年)提出了一种基于改进 YOLOv5的图像识别算法用于检测电力线路缺陷,在原有 YOLOv5 的基础上,将 CIoU Loss 作为边界框的损失函数,并且选用 DIoU NMS 进行非极大值抑制处理,除此之外还通过冻结部分网络层权重的方式训练网络模型,使得该算法在识别电力巡检图像缺陷时有着更高的准确率。

  • 针对复杂的识别任务,只借助卷积层进行特征提取是远远不够的。卷积本质上属于线性变换,因此无法处理非线性问题。例如在提取音频特征时,往往需要引入非线性函数使模型能够尽可能拟合数据。因此需要加入激活函数对其进行非线性处理,增加整个网络的非线性特性。常见的激活函数有 Sigmoid、Tanh、Relu、LeakyRelu、SiLU 等。

  • 自 YOLOv4 后,YOLO 系列算法陆续加入了 Mosaic、Mixup 等图像混叠增强技术,丰富了图像的检测背景、增加目标个数以及图像数据的多样性。Focus 通过切片操作,将原输入图像分成四个独立的特征层并进行堆叠,将通道的维数扩大了四倍,保留了更多的原始信息。虽然 Focus 结构减轻了信息丢失,但是增加了计算量,而且提高了对 GPU 硬件性能的要求。因此,在 YOLOv8 中,将原先的 Focus 结构替换为一个 3×3 大小的卷积层。不仅可以取得相同的效果,而且对一些 GPU 而言,使用卷积核会更加友好且高效。

  • CSPNet 不单是一种网络结构,更是一种优化思想。一般与 ResNet、DenseNet 等网络进行结合,通过优化网络结构从而减少计算量和内存耗费。以DenseNet为例,通过CSPNet,底层特征图按通道被分成两个部分,一部分经过原 DenseNet 等模块输出,另一部分直接与刚才输出的结合,这样以来不仅减少了网络计算量,更提升了速度和准确率。

    • 在这里插入图片描述
  • YOLOv5 不仅在骨干网络使用了 CSPNet 结构,也在 C3 模块中运用。YOLOv8 沿用 CSPNet思想,但将 YOLOv5 中原有的 C3 模块改为 C2f 模块。C2f 模块作为全新提出的模块,融入了 C3和 ELAN 模块的思想。因此,在介绍 C2f 模块之前,先讲解其组成部分、C3 模块及 ELAN 模块。C2f 本质上就是在结合了 C3 模块及 ELAN 模块的思想。将原本串接的 Bottleneck 模块运用梯度分流的思想连接,优化了模块结构,有效的避免了在深度过深时收敛性的恶化。在优化网络结构获得轻量化的同时,又可以获取到丰富的梯度流信息,提升了 YOLOv8 模型的整体性能。

  • YOLOv8 的 Neck 层中,使用 SPPF 模块(Spatial Pyramid Pooling-Fast)替代原本的 SPP 模块(Spatial Pyramid Pooling),并且延续了 YOLOv5 中 FPN+PAN 模块,但在结构上稍作修改,进一步提高网络的特征提取能力。SPP 模块在 YOLOv5 最初的版本中使用。SPP 全称空间金字塔池化。通过使用 13×13、9×9、5×5、1×1 四种大小的卷积核,对特征图像进行多个特征提取。SPP 模块在一定程度上解决了多尺度问题,提高了算法检测的精度。

    • 在这里插入图片描述
  • SPPF 模块将原有的3 种不同尺寸的卷积核,改为 3 个 5×5 的卷积核。这是因为将 2 个 5×5 的卷积核串联,其效果等价于 1 个 9×9 的卷积核。同理,3 个 5×5 的卷积核串联等效于 1 个 13×13 的卷积核。与直接使用大的卷积核相比,多个小卷积核串联后减少了网络的计算量,提高了检测效率。在实际的实验中,对于相同的输入,SPP 和 SPPF 输出结果相同,但后者的速度是前者的二倍。相较于 YOLOv5,YOLOv8 除了将前者的 C3 模块替换为 C2f 模块之外,也去掉了上采样前的卷积层,将主干特征提取网络中不同阶段的输出特征直接进行上采样。进一步优化网络结构,提高检测效率。

  • YOLOv8 网络结构的另一部分改进集中在 Head 层部分,将 YOLOv5 中原本的耦合检测头(coupled head)替换为解耦检测头(decoupled head),并且从 Anchor Based 变成了 Anchor Free。解耦检测头decoupledhead 将分类与回归进行解耦,将其拆分为两个独立的分支。实验表明,对于相同的检测任务,使用解耦检测头可以加速收敛,检测精度也有所提高。

    • 在这里插入图片描述
  • 锚框依赖手动设计,预设的锚框尺寸要尽可能的与真实值重叠,因此对于检测目标尺存相差大的两个检测任务,由于锚框尺寸问题很难进行迁移。其次,检测时需要生成的密集的锚框,不仅耗时,而且绝大部分锚框因未与真实框达到一定的 IoU 而变为负样本,易导致正负样本不均。最后,使用锚框会产生诸多超参数的组合问题,难以调优。YOLOv8 是 Anchor Free 网络,不再对锚框的偏移量进行预测,因此改善了锚框所带来的诸多问题。

  • YOLOv8 中,分类损失函数为 VFL(Varifocal Loss),回归损失采用 CIoU Loss+DFL(Distribution Focal Loss)的形式。针对正负样本不均的问题,运用 Varifocal Loss 函数,提出了非对称的加权操作。VarifocalLoss 函数公式所示:

    • 在这里插入图片描述

    • 其中,q 为 label,在正样本时 q 为 IoU 值,反之 q 为 0。即当为正样本时是一般的 BCE 损失函数,负样本时便是 Focal 损失函数。Varifocal Loss 对正负样本的处理不再是对称的,它通过考虑二者不同的重要程度,将正样本突出为主体。

  • 在对输入图像进行检测时,往往有多个目标遮挡或重叠情况。若出现重叠情况时,此时标注框和检测框均无法真实地反映出图像语义。所以此时需要用更加准确的边界框表征方式,将狄拉克分布表征方式改为一种更加通用的概率表征方式。因为位于真实坐标附近的区间点有着更高的概率,因此提出了 Distribution Focal Loss,简称 DFL,公式所示:

    • 在这里插入图片描述

    • 其中 S 为概率输出值。由公式可看出,在 yi+1与 y 非常接近而且 S 概率输出大时,此时 DFL较小,使得分布向标注中心靠近。因此,DFL 能够让新提出的网络更快地聚焦于目标 y 附近的值,增大它们的概率,加速收敛。

  • 人脑有一套高效的识别流程:即在面对有着复杂信息的场景时,视觉系统会迅速锁定重要物体将注意力集中在此处,并忽略其他无关区域,这极大地提高了神经计算资源分配的合理性,使视觉信息的处理更加高效。在图像检测任务中,目标物体自身和其所处环境、目标物体本身不同的特征,这些信息的重要性都是有差异的,体现在卷积神经网络中即为不同特征图之间的重要程度具备差异性。受人类视觉处理系统所启发,研究人员提出了注意力机制。通过引入注意力机制,使网络可以获取到每张特征图的重要程度并生成权重,利用检测结果对特征图的权重更新进行反向指导,使得模型在处理任务时着重强调图像中有用的空间,将注意力放在其上,同时抑制无关的特征,提高效率。

  • 传统的卷积一般采用固定大小和比例的矩形结构,对特征图某一特定位置进行特征提取。然而,一般情况下特征层上的各位置的待测目标都是尺度不同形状各异的,因此常规卷积并不能很好的适应各目标间的形变,使得模型提取的有效信息减少,易遗漏目标的关键特征信息,使网络模型准确率下降。

  • 为了使卷积神经网络拥有更好的识别几何变换的能力,引入可变形卷积 DCN(Deformable Convolution)代替常规卷积。可变形卷积可以依据待测对象的形状及比例自动适应并调整,通过运用不规则卷积核,解决了传统固定矩形结构采样不足的弊端,使得网络模型可以对物体的形变更好地进行模拟。

    • 在这里插入图片描述

    • 假设卷积核大小为 3×3,那么此卷积核的采样点共有 9 个,研究者将这 9 个采样点都赋予一个偏移量,因此使得卷积核的位置和尺寸都可以依据目标物体动态调整,可以在特征提取时更加贴合物体的尺寸与形状,优化网络模型对不规则及形变严重的目标的检测性能

  • 在对小目标检测时,经过多次特征提取和下采样操作后,它们特征信息往往容易丢失,使模型准确率下降。为了更好的获得特征信息就需要对输入图像改变尺寸,但这一操作会令模型的运算量增大且耗费更多的内存和资源。若限制下采样操作又不利于提取深层信息。为了解决这一问题,提出了 Mosaic 和 Mixup 等图像混叠类的数据增强方式,进一步扩充了数据集,只增加少部分计算量便可提高识别率。

  • 鉴于无人机巡检有着人工不可比拟的诸多优势,对其所运用的目标检测算法进行研究具有很强的现实意义。通过分析具体任务,总结出在面对输电线异物检测任务时,需要算法有较高的实时性,并且鉴于输电线路背景干扰因素多、异物目标形状不规则等问题,要求算法有着较高的精度以及更好的识别形变物体的能力。

  • YOLOv8 抛弃了以往 YOLO 主体系列网络一直运用的 Anchor Based 转而改为 AnchorFree,并且将 Head 头进行解耦,一定程度上昭示了目标检测算法在未来的研究发展方向。除此之外,还将 C3 模块及 ELAN 模块的思想进行结合提出 C2f 模块,优化特征提取主干网络及特征融合网络,提升模型精度与效率。针对正负样本不均的问题,运用 Varifocal Loss 作为分类损失函数抑制负样本,突出正样本为主体部分。并且采用 CIoU Loss+Distribution Focal Loss 作为回归损失函数,进一步提升网络性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1199754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用3D Touch,让你左右逢源,操作更自然

本文介绍了如何在苹果设备上使用3D Touch,以及哪些应用程序支持该工具。3D Touch在Apple Watch上也称为Force Touch,在iPhone XR上也称为Haptic Touch。 如何改变3D触摸的灵敏度 按照以下步骤调整3D Touch的灵敏度: 1、打开“设置”应用程…

docker安装AWVS 23.9.231005181

本文声明仅AWVS用作学习使用 将镜像文件secfa_awvs.tar复制到目标机器上。 我的百度网盘文件路径: 链接:https://pan.baidu.com/s/1frbOH4UZlMz9bMXyZs1o0g 提取码:na6y –来自百度网盘超级会员V6的分享 在目标机器上,使用以下命…

原码补码相关运算

求补码步骤 原补转换 -127为负数,其补码为原码01111111,取反10000000,加一,10000001。 例如: 【-1】原码 10000001 反码bai11111110 补码duzhi 11111111 【3】原码 00000011 反码 00000011 补码 00000011 【-127】…

【多线程】

文章目录 概念一、线程的生命周期图二、线程的创建方式一方式二线程API线程优先级sleep阻塞守护线程多线程并发安全问题 总结 概念 线程:一个顺序的单一的程序执行流程就是一个线程。代码一句一句的有先后顺序的执行。多线程:多个单一顺序执行的流程并发运行。造成"感官上…

算法——滑动窗口

什么是窗口?就是符合题目要求的区域内的数据,将每次符合数据的窗口内的数据记录下来,然后将窗口后移,寻找其他符合要求的数据,每次进入窗口和退出窗口都需要一定的要求 一、 LCR 008. 长度最小的子数组 - 力扣&#…

Git之分支与版本->课程目标及知识点的应用场景,分支的场景应用,标签的场景应用

1.课程目标及知识点的应用场景 Git分支和标签的命名规范 分支 dev/test/pre/pro(即master) dev:开发环境--windows (自己的电脑) test:测试环境--windows/linux (公司专门的测试电脑 pre:灰度环境(非常大的公司非常重要的项目) pro:正式环境 灰度环境与正式环境的服务器配置…

论文笔记:Deep Trajectory Recovery with Fine-Grained Calibration using Kalman Filter

TKDE 2021 1 intro 1.1 背景 用户轨迹数据对于改进以用户为中心的应用程序很有用 POI推荐城市规划路线规划由于设备和环境的限制,许多轨迹以低采样率记录 采样的轨迹无法详细说明物体的实际路线增加了轨迹中两个连续采样点之间的不确定性——>开发有效的算法以…

RK3588平台 WIFI的基本概念

一.安卓WIFI框架 Android WIFI系统引入了wpa_supplicant,它的整个WIFI系统以wpa_supplicant为核心来定义上层接口和下层驱动接口。Android WIFI主要分为六大层,分别是WiFi Settings层,Wifi Framework层,Wifi JNI 层, W…

ARM Linux 基础学习 / Linux Shell,必要命令全记录

编辑整理 by Staok。 本文部分内容摘自 “100ask imx6ull” 开发板的配套资料(如 百问网的《嵌入式Linux应用开发完全手册》,在 百问网 imx6ull pro 开发板 页面 中的《2.1 100ASK_IMX6ULL_PRO:开发板资料》或《2.2 全系列Linux教程&#xf…

高级项目管理总结

目录 一、背景介绍二、思路&方案三、过程1.升维思考2.结构化3.心理、知识阶段检验4.微观 四、总结 一、背景介绍 天性对学习对考试充满敌意的我,转变为依赖学习谋生,再到后来书中自有黄金屋,到现在学习对我而言就如同一日三餐&#xff1…

Unity - 各向异性 - 丝绸材质

文章目录 目的环境主观美术效果的[假]丝绸基于物理的方式ProjectPBR filament web captureReferences 目的 拾遗,备份 环境 Unity : 2020.3.37f1 Pipeline : Builtin Rendering Pipeline 主观美术效果的[假]丝绸 非常简单 : half specualr pow(1 - NdotV, _Edg…

【STM32】TIM2的PWM:脉冲宽度调制--标准库

注意点: TIM_Period---->指要进行比较的值Compare TIM_Prescaler----> 指要进行分频的值【分频值/原始时钟值】 PWM是一种周期固定,脉宽可调整的输出波形。 https://www.cnblogs.com/brianblog/p/7117896.html 0.通用寄存器输出 1.捕获/比较通道…

CountDownLatch和CyclicBarrier详解

1. CountDownLatch 1.1 简介 CountDownLatch 是 Java 中并发包(java.util.concurrent)提供的一种同步工具,用于在多线程环境中协调多个线程之间的执行顺序。它的作用是允许一个或多个线程等待其他线程完成操作。 CountDownLatch 通过一个计…

Python基础入门例程51-NP51 列表的最大与最小(循环语句)

最近的博文: Python基础入门例程50-NP50 程序员节(循环语句)-CSDN博客 Python基础入门例程49-NP49 字符列表的长度-CSDN博客 Python基础入门例程48-NP48 验证登录名与密码(条件语句)-CSDN博客 目录 最近的博文&…

深度解析CompletableFuture:Java 异步世界的奇迹

目录 概述 介绍 上文我们可知:CompletableFuture 是 Java 8 引入用于支持异步编程和非阻塞操作的类。对于没有使用过CompletableFuture通过它这么长的名字就感觉到一头雾水,那么现在我们来一起解读一下它的名字。 Completable:可完成Futur…

【Redis】Redis-Key的使用

上一篇: redis-server和redis-cli https://blog.csdn.net/m0_67930426/article/details/134361885?spm1001.2014.3001.5501 官网 命令 |雷迪斯 (redis.io) 设置key set name xxxxx 查看key keys * 再设置一个key并且查看 这里查看了两个key(name a…

Git之分支与版本

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 1.开发测试上线git的使用 1.1. 环境讲述 当软件从开发到正式环境部署的过程中,不同环境的作用…

《015.SpringBoot+vue之音乐网》【前后端分离】

《015.SpringBootvue之音乐网》【前后端分离】 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatisMySQL; 前台:Vue3.0 TypeScript Vue-Router Vuex Axios …

Globalsign证书

GlobalSign是全球可信的数字证书提供商之一,提供广泛的证书服务,包括SSL证书、代码签名证书、电子邮件证书等,帮助保护企业和个人的网络安全。本文将详细介绍GlobalSign证书的特点和优势,帮助您更好地了解这一重要的数字证书提供商…

高防CDN:护航网络安全的卓越之选

在当今数字化时代,网络攻击与日俱增,为了确保网站和应用程序的稳定运行,高防CDN(高防御内容分发网络)应运而生。选择高防CDN的理由不仅源于其强大的防护性能,还体现了其与硬件防火墙异曲同工的奥妙。 选择高…