目标检测系列(一)什么是目标检测

目录

一、相关名词解释

二、目标检测算法

三、目标检测模型

四、目标检测应用

五、目标检测数据集

六、目标检测常用标注工具


一、相关名词解释

关于图像识别的计算机视觉四大类任务:

分类(Classification):解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。

定位(Location):解决“在哪里?”的问题,即定位出这个目标的的位置。

检测(Detection):解决“在哪里?是什么?”的问题,即定位出这个目标的位置并且知道目标物是什么。

分割(Segmentation):分为实例的分割(Instance-level)和场景分割(Scene-level),解决“每一个像素属于哪个目标物或场景”的问题。

目标检测(Object Detection)任务:找出图像中所有感兴趣的目标(物体),确定它们的类别和位置。是一个分类、回归问题的叠加。

所以,目标检测核心问题有4个:

(1)分类问题:即图片(或某个区域)中的图像属于哪个类别。

(2)定位问题:目标可能出现在图像的任何位置。

(3)大小问题:目标有各种不同的大小。

(4)形状问题:目标可能有各种不同的形状。

二、目标检测算法

(1)算法分类

Tow stage:先进行区域生成,该区域称之为region proposal(简称RP,一个有可能包含待检物体的预选框),再通过卷积神经网络进行样本分类。

任务流程:特征提取 –> 生成RP –> 分类/定位回归。

常见tow stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。

One stage:不用RP,直接在网络中提取特征来预测物体分类和位置。

任务流程:特征提取–> 分类/定位回归。

常见的one stage目标检测算法有:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD和RetinaNet等。

(2)算法原理

1. 候选区域产生

很多目标检测技术都会涉及候选框(bounding boxes)的生成,物体候选框获取当前主要使用图像分割与区域生长技术。区域生长(合并)主要由于检测图像中存在的物体具有局部区域相似性(颜色、纹理等)。目标识别与图像分割技术的发展进一步推动有效提取图像中信息。

1)滑动窗口

通过滑窗法流程图(见下图)可以很清晰理解其主要思路:首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率,则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后,会得到不同窗口检测到的物体标记,这些窗口大小会存在重复较高的部分,最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。最终,经过NMS筛选后获得检测到的物体。

滑窗法简单易于理解,但是不同窗口大小进行图像全局搜索导致效率低下,而且设计窗口大小时候还需要考虑物体的长宽比。所以,对于实时性要求较高的分类器,不推荐使用滑窗法。

2)选择性搜索

① 什么是选择性搜索

滑窗法类似穷举进行图像子区域搜索,但是一般情况下图像中大部分子区域是没有物体的。学者们自然而然想到只对图像中最有可能包含物体的区域进行搜索以此来提高计算效率。选择搜索(selective search,简称SS)方法是当下最为熟知的图像bounding boxes提取算法,由Koen E.A于2011年提出。

 选择搜索算法的主要思想:图像中物体可能存在的区域应该是有某些相似性或者连续性区域的。因此,选择搜索基于上面这一想法采用子区域合并的方法进行提取bounding boxes。首先,对输入图像进行分割算法产生许多小的子区域。其次,根据这些子区域之间相似性(相似性标准主要有颜色、纹理、大小等等)进行区域合并,不断的进行区域迭代合并。每次迭代过程中对这些合并的子区域做bounding boxes(外切矩形),这些子区域外切矩形就是通常所说的候选框。

② 选择搜索流程

step0:生成区域集R

step1:计算区域集R里每个相邻区域的相似度S={s1, s2,…}

step2:找出相似度最高的两个区域,将其合并为新集,添加进R

step3:从S中移除所有与step2中有关的子集

step4:计算新集与所有子集的相似度

step5:跳至step2,直至S为空

③ 选择搜索优点

计算效率优于滑窗法

由于采用子区域合并策略,所以可以包含各种大小的疑似物体框

合并区域相似的指标多样性,提高了检测物体的概率

2. 数据表示

经过标记后的样本数据如下所示:

预测输出包括预测结果的置信概率、边框坐标、属于某个类别的概率。通过预测结果和实际结果构建损失函数。损失函数包含了分类、回归两部分组成。

边界框(bounding box):论文中设置为2,每个栅格的两个bounding box都是预测同一类物体。每个bounding box含有5个值(x,y,w,h,confidence)。

x,y:代表了预测的bounding box的中心与某个栅格的偏移值。

w,h:代表了预测的bounding box的width、height相对于整幅图像width,height的比例。

置信度(confidence):若bounding box包含物体,则P(object) = 1;否则P(object) = 0。bounding box和ground truth box的IOU值。

3. 效果评估

使用IoU(Intersection over Union,交并比)来判断模型的好坏。所谓交并比,是指预测边框、实际边框交集和并集的比率,一般约定0.5为一个可以接收的值。

4. 非极大值抑制

预测结果中,可能多个预测结果间存在重叠部分,需要保留交并比最大的、去掉非最大的预测结果,这就是非极大值抑制(Non-Maximum Suppression,简写作NMS)。如下图所示,对同一个物体预测结果包含三个概率0.8/0.9/0.95,经过非极大值抑制后,仅保留概率最大的预测结果。

三、目标检测模型

目标检测分为两大系列——RCNN系列和YOLO系列,RCNN系列是基于区域检测的代表性算法;YOLO是基于区域提取的代表性算法,另外还有著名的SSD是基于前两个系列的改进。

1)R-CNN

① 定义

R-CNN(全称Regions with CNN features) ,是R-CNN系列的第一代算法,其实没有过多的使用“深度学习”思想,而是将“深度学习”和传统的“计算机视觉”的知识相结合。比如R-CNN pipeline中的第二步和第四步其实就属于传统的“计算机视觉”技术。使用selective search提取region proposals,使用SVM实现分类。

② 流程

  1. 预训练模型。选择一个预训练 (pre-trained)神经网络(如AlexNet、VGG)。
  2. 重新训练全连接层。使用需要检测的目标重新训练(re-train)最后全连接层(connected layer)。
  3. 提取 proposals并计算CNN 特征。利用选择性搜索(Selective Search)算法提取所有proposals(大约2000幅images),调整(resize/warp)它们成固定大小,以满足 CNN输入要求(因为全连接层的限制),然后将feature map 保存到本地磁盘。
  4. 训练SVM。利用feature map 训练SVM来对目标和背景进行分类(每个类一个二进制SVM)
  5. 边界框回归(Bounding boxes Regression)。训练将输出一些校正因子的线性回归分类器

③ 效果

R-CNN在VOC 2007测试集上mAP达到58.5%,打败当时所有的目标检测算法

④ 缺点

  1. 重复计算,每个region proposal,都需要经过一个AlexNet特征提取,为所有的RoI(region of interest)提取特征大约花费47秒,占用空间,
  2. selective search方法生成region proposal,对一帧图像,需要花费2秒
  3. 三个模块(提取、分类、回归)是分别训练的,并且在训练时候,对于存储空间消耗较大。

2)Fast R-CNN

① 定义

Fast R-CNN是基于R-CNN和SPPnets进行的改进。SPPnets,其创新点在于只进行一次图像特征提取(而不是每个候选区域计算一次),然后根据算法,将候选区域特征图映射到整张图片特征图中。

② 流程

  1. 使用selective search生成region proposal,大约2000个左右区域候选框
  2. (joint training)缩放图片的scale得到图片金字塔,FP得到conv5的特征金字塔
  3. (joint training)对于每个scale的每个ROI,求取映射关系,在conv5中剪裁出对应的patch。并用一个单层的SSP layer来统一到一样的尺度(对于AlexNet是6*6)
  4. (joint training) 继续经过两个全连接得到特征,这特征又分别共享到两个新的全连接,连接上两个优化目标。第一个优化目标是分类,使用softmax,第二个优化目标是bbox regression,使用了一个平滑的L1-loss
  5. 测试时需要加上NMS处理:利用窗口得分分别对每一类物体进行非极大值抑制提出重叠建议框,最终得到每个类别中回归修正后的得分最高的窗口

③ 改进

  1. 和RCNN相比,训练时间从84小时减少为9.5小时,测试时间从47秒减少为0.32秒。在VGG16上,Fast RCNN训练速度是RCNN的9倍,测试速度是RCNN的213倍;训练速度是SPP-net的3倍,测试速度是SPP-net的3倍
  2. Fast RCNN在PASCAL VOC 2007上准确率相差无几,约在66~67%之间
  3. 加入RoI Pooling,采用一个神经网络对全图提取特征
  4. 在网络中加入了多任务函数边框回归,实现了端到端的训练

④ 缺点

  1. 依旧采用selective search提取region proposal(耗时2~3秒,特征提取耗时0.32秒)
  2. 无法满足实时应用,没有真正实现端到端训练测试
  3. 利用了GPU,但是region proposal方法是在CPU上实现的

3)Faster RCNN

经过R-CNN和Fast-RCNN的积淀,Ross B.Girshick在2016年提出了新的Faster RCNN,在结构上将特征抽取、region proposal提取, bbox regression,分类都整合到了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。

① 整体流程

  1. Conv Layers。作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的卷积/激活/池化层提取图像的特征,形成一个特征图,用于后续的RPN层和全连接层。
  2. Region Proposal Networks(RPN)。RPN网络用于生成候选区域,该层通过softmax判断锚点(anchors)属于前景还是背景,在利用bounding box regression(包围边框回归)获得精确的候选区域。
  3. RoI Pooling。该层收集输入的特征图和候选区域,综合这些信息提取候选区特征图(proposal feature maps),送入后续全连接层判定目标的类别。
  4. Classification。利用取候选区特征图计算所属类别,并再次使用边框回归算法获得边框最终的精确位置。

② Anchors

Anchors(锚点)指由一组矩阵,每个矩阵对应不同的检测尺度大小。如下矩阵:

其中每行4个值( x 1 , y 1 , x 2 , y 2 x_1, y_1, x_2, y_2 x1​,y1​,x2​,y2​),对应矩形框左上角、右下角相对于中心点的偏移量。9个矩形共有三种形状,即1:1, 1:2, 2:1,即进行多尺度检测。

例如,一张800*600的原始图片,经过VGG下采样后(生成特征矩阵)16倍大小,大小变为50*38,每个点设置9个anchor,则总数为:

③ Bounding box regression

物体识别完成后,通过一种方式对外围框进行调整,使得和目标物体更加接近。

④ 损失函数

对一个图像的损失函数,是一个分类损失函数与回归(位置)损失函数的叠加。

⑤ 改进

  1. 在VOC2007测试集测试mAP达到73.2%,目标检测速度可达5帧/秒
  2. 提出Region Proposal Network(RPN),取代selective search,生成待检测区域,时间从2秒缩减到了10毫秒
  3. 真正实现了一个完全的End-To-End的CNN目标检测模型
  4. 共享RPN与Fast RCNN的特征

⑥ 缺点

  1. 还是无法达到实时检测目标
  2. 获取region proposal, 再对每个proposal分类计算量还是较大

2. YOLO系列

1)YOLOv1(2016)

① 基本思想

YOLO(You Only Look Once )是继RCNN,fast-RCNN和faster-RCNN之后,Ross Girshick针对DL目标检测速度问题提出的另一种框架,其核心思想是生成RoI+目标检测两阶段(two-stage)算法用一套网络的一阶段(one-stage)算法替代,直接在输出层回归bounding box的位置和所属类别。

之前的物体检测方法首先需要产生大量可能包含待检测物体的先验框, 然后用分类器判断每个先验框对应的边界框里是否包含待检测物体,以及物体所属类别的概率或者置信度,同时需要后处理修正边界框,最后基于一些准则过滤掉置信度不高和重叠度较高的边界框,进而得到检测结果。这种基于先产生候选区再检测的方法虽然有相对较高的检测准确率,但运行速度较慢。

YOLO创造性的将物体检测任务直接当作回归问题(regression problem)来处理,将候选区和检测两个阶段合二为一。只需一眼就能知道每张图像中有哪些物体以及物体的位置。下图展示了各物体检测系统的流程图。

实际上,YOLO并没有真正去掉候选区,而是采用了预定义候选区的方法,也就是将图片划分为7*7个网格,每个网格允许预测出2个边框,总共49*2个bounding box,可以理解为98个候选区域,它们很粗略地覆盖了图片的整个区域。YOLO以降低mAP为代价,大幅提升了时间效率。

②模型详细介绍见:目标检测系列(二)yolov1的全面讲解-CSDN博客

③ 优点与缺点

(1)优点

  1. YOLO检测物体速度非常快,其增强版GPU中能跑45fps(frame per second),简化版155fps
  2. YOLO在训练和测试时都能看到一整张图的信息(而不像其它算法看到局部图片信息),因此YOLO在检测物体是能很好利用上下文信息,从而不容易在背景上预测出错误的物体信息
  3. YOLO可以学到物体泛化特征

(2)缺点

  1. 精度低于其它state-of-the-art的物体检测系统
  2. 容易产生定位错误
  3. 对小物体检测效果不好,尤其是密集的小物体,因为一个栅格只能检测2个物体
  4. 由于损失函数的问题,定位误差是影响检测效果的主要原因,尤其是大小物体处理上还有待加强

2)YOLOv2(2016)

Ross Girshick吸收fast-RCNN和SSD算法,设计了YOLOv2(论文原名《YOLO9000: Better, Faster, Stronger 》),在精度上利用一些列训练技巧,在速度上应用了新的网络模型DarkNet19,在分类任务上采用联合训练方法,结合wordtree等方法,使YOLOv2的检测种类扩充到了上千种,作者在论文中称可以检测超过9000个目标类别,所以也称YOLO9000. YOLOv2模型可以以不同的尺寸运行,从而在速度和准确性之间提供了一个简单的折衷,在67FPS时,YOLOv2在VOC 2007上获得了76.8 mAP。在40FPS时,YOLOv2获得了78.6 mAP,比使用ResNet的Faster R-CNN和SSD等先进方法表现更出色,同时仍然运行速度显著更快。

①改进策略

YOLOv2对YOLOv1采取了很多改进措施,以提高模型mAP,如下图所示:

②模型详细介绍见:待补充

③ 优点与缺点

(1)优点

  1. YOLOv2使用了一个新的分类器作为特征提取部分,较多使用了3*3卷积核,在每次池化后操作后把通道数翻倍。网络使用了全局平均池化,把1*1卷积核置于3*3卷积核之间,用来压缩特征。也用了batch normalization稳定模型训练
  2. 最终得出的基础模型就是Darknet-19,包含19个卷积层,5个最大池化层,运算次数55.8亿次,top-1图片分类准确率72.9%,top-5准确率91.2%
  3. YOLOv2比VGG16更快,精度略低于VGG16

(2)缺点

  1. YOLOv2检测准确率不够,比SSD稍差
  2. 不擅长检测小物体
  3. 对近距离物体准确率较低

3)YOLOv3(2018)

YOLOv3总结了自己在YOLOv2的基础上做的一些尝试性改进,有的尝试取得了成功,而有的尝试并没有提升模型性能。其中有两个值得一提的亮点,一个是使用残差模型,进一步加深了网络结构;另一个是使用FPN架构实现多尺度检测。

① 改进

新网络结构:DarkNet-53;

用逻辑回归替代softmax作为分类器;

融合FPN(特征金字塔网络),实现多尺度检测。

  • 模型详细介绍见:待补充

③ 效果

(1)兼顾速度与准确率。在COCO数据机上,mAP指标与SSD模型相当,但速度提高了3倍;mAP指标比RetinaNet模型差些,但速度要高3.8倍。

(2)小目标检测有所提升,但中等和更大尺寸的物体上的表现相对较差。

当然,YOLOv3也有些失败的尝试,并未起到有效作用,请自行查阅原始论文。

四、目标检测应用

人脸检测:智能门控、员工考勤签到;智慧超市、人脸支付;车站、机场实名认证;公共安全:逃犯抓捕、走失人员检测

行人检测:智能辅助驾驶、智能监控、暴恐检测(根据面相识别暴恐倾向)、移动侦测、区域入侵检测、安全帽/安全带检测

车辆检测:自动驾驶;违章查询、关键通道检测;广告检测(检测广告中的车辆类型,弹出链接)

遥感检测:大地遥感,如土地使用、公路、水渠、河流监控

其他:农作物监控、军事检测等

五、目标检测数据集

(1)PASCAL VOC

VOC数据集是目标检测经常用的一个数据集,自2005年起每年举办一次比赛,最开始只有4类,到2007年扩充为20个类,共有两个常用的版本:2007和2012。学术界常用5k的train/val 2007和16k的train/val 2012作为训练集,test 2007作为测试集,用10k的train/val 2007+test 2007和16k的train/val 2012作为训练集,test2012作为测试集,分别汇报结果。

(2)MS COCO

COCO数据集是微软团队发布的一个可以用来图像recognition+segmentation+captioning 数据集,该数据集收集了大量包含常见物体的日常场景图片,并提供像素级的实例标注以更精确地评估检测和分割算法的效果,致力于推动场景理解的研究进展。依托这一数据集,每年举办一次比赛,现已涵盖检测、分割、关键点识别、注释等机器视觉的中心任务,是继ImageNet Challenge以来最有影响力的学术竞赛之一。

相比ImageNet,COCO更加偏好目标与其场景共同出现的图片,即non-iconic images。这样的图片能够反映视觉上的语义,更符合图像理解的任务要求。而相对的iconic images则更适合浅语义的图像分类等任务。

COCO的检测任务共含有80个类,在2014年发布的数据规模分train/val/test分别为80k/40k/40k,学术界较为通用的划分是使用train和35k的val子集作为训练集(trainval35k),使用剩余的val作为测试集(minival),同时向官方的evaluation server提交结果(test-dev)。除此之外,COCO官方也保留一部分test数据作为比赛的评测集。

(3)Google Open Image

Open Image是谷歌团队发布的数据集。最新发布的Open Images V4包含190万图像、600个种类,1540万个bounding-box标注,是当前最大的带物体位置标注信息的数据集。这些边界框大部分都是由专业注释人员手动绘制的,确保了它们的准确性和一致性。另外,这些图像是非常多样化的,并且通常包含有多个对象的复杂场景(平均每个图像 8 个)。

(4)ImageNet

ImageNet是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。ImageNet是美国斯坦福的计算机科学家,模拟人类的识别系统建立的。能够从图片识别物体。ImageNet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。ImageNet数据集有1400多万幅图片,涵盖2万多个类别;其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。

六、目标检测常用标注工具

(1)LabelImg

1)LabelImg 是一款开源的图像标注工具,标签可用于分类和目标检测,它是用 Python 编写的,并使用Qt作为其图形界面,简单好用。注释以 PASCAL VOC 格式保存为 XML 文件,这是 ImageNet 使用的格式。 此外,它还支持 COCO 数据集格式。

2)安装方法:

前置条件:安装Python3以上版本,安装pyqt5

 第一步:下载安装包

 第二步:使用Pycharm打开项目,运行labelImg.py文件;或直接运行labelImg.py文件

3)常见错误处理:

① 报错:ModuleNotFoundError: No module named ‘libs.resources’

处理方式:

将python下scripts添加到环境变量path中

在labelImg目录下执行命令:pyrcc5 -o resources.py resources.qrc

将生成的resources.py拷贝到labelImg/libs/下

执行labelImg.py程序

(2)Labelme

labelme 是一款开源的图像/视频标注工具,标签可用于目标检测、分割和分类。灵感是来自于 MIT 开源的一款标注工具 Labelme。Labelme具有的特点是:

  1. 支持图像的标注的组件有:矩形框,多边形,圆,线,点(rectangle, polygons, circle, lines, points)
  2. 支持视频标注
  3. GUI 自定义
  4. 支持导出 VOC 格式用于 semantic/instance segmentation
  5. 支出导出 COCO 格式用于 instance segmentation

(3)Labelbox

Labelbox 是一家为机器学习应用程序创建、管理和维护数据集的服务提供商,其中包含一款部分免费的数据标签工具,包含图像分类和分割,文本,音频和视频注释的接口,其中图像视频标注具有的功能如下:

  1. 可用于标注的组件有:矩形框,多边形,线,点,画笔,超像素等(bounding box, polygons, lines, points,brush, subpixels)
  2. 标签可用于分类,分割,目标检测等
  3. 以 JSON / CSV / WKT / COCO / Pascal VOC 等格式导出数据
  4. 支持 Tiled Imagery (Maps)
  5. 支持视频标注 (快要更新)

(4)RectLabel

RectLabel 是一款在线免费图像标注工具,标签可用于目标检测、分割和分类。具有的功能或特点:

  1. 可用的组件:矩形框,多边形,三次贝塞尔曲线,直线和点,画笔,超像素
  2. 可只标记整张图像而不绘制
  3. 可使用画笔和超像素
  4. 导出为YOLO,KITTI,COCO JSON和CSV格式
  5. 以PASCAL VOC XML格式读写
  6. 使用Core ML模型自动标记图像
  7. 将视频转换为图像帧

(5)CVAT

CVAT 是一款开源的基于网络的交互式视频/图像标注工具,是对加州视频标注工具(Video Annotation Tool) 项目的重新设计和实现。OpenCV团队正在使用该工具来标注不同属性的数百万个对象,许多 UI 和 UX 的决策都基于专业数据标注团队的反馈。具有的功能

关键帧之间的边界框插值;自动标注(使用TensorFlow OD API 和 Intel OpenVINO IR格式的深度学习模型)

(6)VIA

VGG Image Annotator(VIA)是一款简单独立的手动注释软件,适用于图像,音频和视频。 VIA 在 Web 浏览器中运行,不需要任何安装或设置。 页面可在大多数现代Web浏览器中作为离线应用程序运行。

支持标注的区域组件有:矩形,圆形,椭圆形,多边形,点和折线

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[附源码]宠物领养管理系统+SpringBoot

今天带来一款优秀的项目:宠物领养管理系统源码 。 系统采用的流行的前后端分离结构,内含功能包括"管理端",“用户领养端”,“宠物管理”,“权限登录”等功能。 如果您有任何问题,也请联系小编&a…

nginx+keepalived健康检查案例详解(解决nginx出现故障却不能快速切换到备份服务器的问题)

文章目录 简介配置过程前置环境请看创建健康检查脚本结果测试 简介 在我们通过nginxkeepalived实现高可用后,会发现nginx出现故障的时候keepalived并不会将虚拟ip切换到备份服务器上其原理就是nginx和keepalived是两个独立的服务,Nginx的故障状态不会触…

机器学习_神经网络_深度学习

【神经网络——最易懂最清晰的一篇文章 - CSDN App】https://blog.csdn.net/illikang/article/details/82019945?type=blog&rId=82019945&refer=APP&source=weixin_45387165 参考以上资料,可对神经网络有初步了解。接下来可参考书籍等投身实际项目中使用。 书…

羽毛球场馆预约系统,便捷管理预约

全国羽毛球运动的热度不断上升,在健身行业中掀起了一股羽毛球热潮。同时羽毛球运动的风靡,也吸引了不少人入局,各种大大小小的羽毛球馆不断出现,为大众的羽毛球喜好提供了场地。 随着互联网的发展,羽毛球馆也开始向线…

thinkPHP 8.0.4 安装

windows 上安装最新版 thinkPHP8.0.4 下载phpStudy V8.1:小皮面板安装Composer2.x,Composer是PHP的一个依赖管理工具,主要功能包括依赖管理、版本控制、自动加载、扩展开发以及集成其他工具。安装 php8.0.2 4. 网站-管理-compose&#xff0c…

【MySql】在ubuntu下安装MySql数据库

目录 查看操作系统版本 添加 MySql APT源 访问下载页面并下载发布包 安装发布包 执行安装命令 从MySql APT源更新包信息 安装MySql 执行安装命令 查看MySql状态 开启自启动 登录MySql 查看操作系统版本 rootVM-24-2-ubuntu:~# lsb_release -a No LSB modules are ava…

[翟旭发射器]python-推导式-列表list表达式练习

# 简单的列表生成 numbers00[x for x in range(1,11)] print(numbers00) # 带条件的列表生成 numbers01[x for x in range(1,11) if x%20] print(numbers01) # 带表达式的列表生成 numbers10[x**2 for x in range(1,11)] print(numbers10) # 嵌套循环的列表生成 coordinates[(x…

Python连接Kafka收发数据等操作

目录 一、Kafka 二、发送端(生产者) 三、接收端(消费者) 四、其他操作 一、Kafka Apache Kafka 是一个开源流处理平台,由 LinkedIn 开发,并于 2011 年成为 Apache 软件基金会的一部分。Kafka 广泛用于构…

CentOS 安装 JAVA环境(JDK 1.8)

镜像选择 推荐国内镜像直接下载 清华镜像 https://mirrors.tuna.tsinghua.edu.cn/Adoptium 关于重命名 AdoptOpenJDK 镜像为 Adoptium 的通知 编程宝库 http://www.codebaoku.com/jdk/jdk-index.html 这个镜像站,包含Oracle JDK、OpenJDK、AdoptOpenJDK、阿里…

视频汇聚EasyCVR视频监控平台调取接口提示“认证过期”是什么原因?

视频汇聚EasyCVR视频监控平台,作为一款智能视频监控综合管理平台,凭借其强大的视频融合汇聚能力和灵活的视频能力,在各行各业的应用中发挥着越来越重要的作用。EasyCVR平台具备强大的拓展性和灵活性,支持多种视频流的外部分发&…

【Elasticsearch】-实现图片向量相似检索

1、http请求方式 如果elasticsearch服务设置账号密码,则在请求的header中添加 Basic Auth 认证 请求方式:Post 请求地址:/index_name/_search 请求body:json格式 {"size": 10, //返回条数"min_score": 0.…

利用低代码快速搭建电商小程序之商品列表页

目标: 搭建商城的一个商品列表页面(先做静态页) 开发环境: 访问白码低代码平台:https://www.bnocode.com/ 白码的新自定义页功能(使用vue框架) 前期准备: 需要先准备商品数据表…

用 Pygame 实现一个乒乓球游戏

用 Pygame 实现一个乒乓球游戏 伸手需要一瞬间,牵手却要很多年,无论你遇见谁,他都是你生命该出现的人,绝非偶然。若无相欠,怎会相见。 引言 在这篇文章中,我将带领大家使用 Pygame 库开发一个简单的乒乓球…

Servlet入门:服务端小程序的初试(自己学习整理的资料)

目录 一.前言 二.建立基础结构​编辑 三.具体步骤 找到Tomcat文件并打开Tomcat。 在webapps中创建一个自己的文件夹。 在classes中新建一个Java文件。 在lib中导入需要的jar文件包。 配置环境变量 在Java文件的目录下打开cmd并输入 javac -d . HelloServlet.java进行…

如何设计出一个比较全面的测试用例

目录 1. 测试用例的基本要素(不需要执行结果) 2. 测试用例的给我们带来的好处 3. 用例编写步骤 4. 设计测试用例的方法 4.1 基于需求进行测试用例的设计 4.2 具体的设计方法 1.等价类 2.边界值 3.判定表(因果图) 4.正交表法 5.场景设计法 6.错误猜测…

[产品管理-33]:实验室技术与商业化产品的距离,实验室技术在商业化过程中要越过多少道“坎”?

目录 一、实验室技术 1.1 实验室研究性技术 1.2 技术发展的S曲线 技术发展S曲线的主要阶段和特点 技术发展S曲线的意义和应用 二、实验室技术商业化的路径 2.1 实验室技术与商业化产品的距离 1、技术成熟度与稳定性 - 技术自身 2、市场需求与适应性 - 技术是满足需求 …

快递物流短信API接口代码

官网:快递鸟 API参数 用户信息类 一.短信模版 1.接口说明 使用快递鸟短信功能时,预先设置好短信模板和对应的发送规则,快递鸟短信API将根据设置的好的模板和规则,进行短信的发送和反馈。 (1)仅支持Json格式。 (2)请求指令810…

org.eclipse.paho.client.mqttv3.MqttException: 无效客户机标识

需求背景 最近有一个项目,需要用到阿里云物联网,不是MQ。发现使用原来EMQX的代码去连接阿里云MQTT直接报错,试了很多种方案都不行。最终还是把错误分析和教程都整理一下。 需要注意的是,阿里云物联网平台和MQ不一样。方向别走偏了。 概念描述 EMQX和阿里云MQTT有什么区别…

国标GB28181视频融合监控汇聚平台的方案实现及场景应用

Liveweb国标视频融合云平台基于端-边-云一体化架构,部署轻量简单、功能灵活多样,平台可支持多协议(GB28181/RTSP/Onvif/海康SDK/Ehome/大华SDK/RTMP推流等)、多类型设备接入(IPC/NVR/监控平台),在视频能力上&#xff0…

CNS-WRFID-01地标卡读写器|写卡器DEMO软件读、写操作说明

CNS-WRFID-01地标卡读写器|写卡器是一款高频读写设备,支持ISO15693协议芯片卡,地标标签读写,支持兴颂系列抗金属|非抗金属RFID标签,如:CNS-CRFID-01、CNS-CRFID-02、CNS-CRFID-03、CNS-CRFID-04、CNS-CRFID-05、CNS-CR…