计算机视觉(十二):Mask R-CNN

2023-11-17

1 - 引言

Mask R-CNN是在Faster R-CNN架构为基础上改进的一种目标检测架构,并且能够有效的完成高质量的语义分割

Mask R-CNN主要结构如下图所示:
在这里插入图片描述
那我们就来一步步介绍Mask R-CNN的部分

2 - 特征提取方法

通过 ResNeXt-101+FPN 用作特征提取网络,达到 state-of-the-art 的效果。

之前我们学习了残差网络,现在我们来学习一下FPN的作用

2.1 - FPN

论文:feature pyramid networks for object detection

FPN (Feature Pyramid Networks )称为特征金字塔网络,因为低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。另外虽然也有些算法采用多尺度特征融合的方式,但是一般是采用融合后的特征做预测,而本文不一样的地方在于预测是在不同特征层独立进行的。

下图是4中特征融合的方式

(a)图像金字塔,即将图像做成不同的scale,然后不同scale的图像生成对应的不同scale的特征。这种方法的缺点在于增加了时间成本。有些算法会在测试时候采用图像金字塔。

(b)像SPP net,Fast RCNN,Faster RCNN是采用这种方式,即仅采用网络最后一层的特征。

(c)像SSD(Single Shot Detector)采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测小物体是很有帮助的。

(d)本文作者是采用这种方式,顶层特征通过上采样和低层特征做融合,而且每层都是独立预测的。
在这里插入图片描述

论文中除了介绍了这4中融合方法外,还将这两种特征融合进行了对比,如下图

都是由自顶向下进行特征融合,区别在于一个是经过多次上采样并融合特征,使用最后融合的特征来进行预测,而下面的网络则是在每一个特征层中独立进行预测
在这里插入图片描述
在论文中,FPN的模型结构如下图所示:
在这里插入图片描述

主要使用了两种技术手段

(1)Bottom-up pathway(自底向上)
在这里插入图片描述
其实就是网络的前向过程。在前向过程中,feature map的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,作者将不改变feature map大小的层归为一个stage,因此每次抽取的特征都是每个stage的最后一个层输出,这样就能构成特征金字塔。

(2)Top-down pathway and lateral connections(自顶向下和横向连接)
在这里插入图片描述
自顶向下的过程采用上采样(upsampling)进行,而横向连接则是将上采样的结果和自底向上生成的相同大小的feature map进行融合(merge)。在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应(aliasing effect)。并假设生成的feature map结果是P2,P3,P4,P5,和原来自底向上的卷积结果C2,C3,C4,C5一一对应。

之后作者写了FPN在RPN和fast R-CNN上面的应用

  • Feature Pyramid Networks for RPN
    RPN网络是以主网络的某个卷积层输出的feature map作为输入,简单讲就是只用这一个尺度的feature map。但是现在要将FPN嵌在RPN网络中,生成不同尺度特征并融合作为RPN网络的输入。在每一个scale层,都定义了不同大小的anchor,对于P2,P3,P4,P5,P6这些层,定义anchor的大小为 3 2 2 , 6 4 2 , 12 8 2 , 25 6 2 , 51 2 2 32^2,64^2,128^2,256^2,512^2 322,642,1282,25625122,另外每个scale层都有3个长宽对比度:1:2,1:1,2:1。所以整个特征金字塔有15种anchor。

如下表Table1。网络这些结果都是基于ResNet-50。评价标准采用AR,AR表示Average Recall,AR右上角的100表示每张图像有100个anchor,AR的右下角s,m,l表示COCO数据集中object的大小分别是小,中,大。feature列的大括号{}表示每层独立预测。

在这里插入图片描述
从(a)(b)(c)的对比可以看出FRN的作用确实很明显。另外(a)和(b)的对比可以看出高层特征并非比低一层的特征有效。

(d)表示只有横向连接,而没有自顶向下的过程,也就是仅仅对自底向上(bottom-up)的每一层结果做一个11的横向连接和33的卷积得到最终的结果,有点像Fig1的(b)。从feature列可以看出预测还是分层独立的。作者推测(d)的结果并不好的原因在于在自底向上的不同层之间的semantic gaps比较大。

(e)表示有自顶向下的过程,但是没有横向连接,即向下过程没有融合原来的特征。这样效果也不好的原因在于目标的location特征在经过多次降采样和上采样过程后变得更加不准确。

(f)采用finest level层做预测(参考Fig2的上面那个结构),即经过多次特征上采样和融合到最后一步生成的特征用于预测,主要是证明金字塔分层独立预测的表达能力。显然finest level的效果不如FPN好,原因在于PRN网络是一个窗口大小固定的滑动窗口检测器,因此在金字塔的不同层滑动可以增加其对尺度变化的鲁棒性。另外(f)有更多的anchor,说明增加anchor的数量并不能有效提高准确率。

  • Feature Pyramid Networks for Fast RCNN
    在这里插入图片描述

(a)(b)(c)的对比证明在基于区域的目标卷积问题中,特征金字塔比单尺度特征更有效。(c)(f)的差距很小,作者认为原因是ROI pooling对于region的尺度并不敏感。因此并不能一概认为(f)这种特征融合的方式不好,博主个人认为要针对具体问题来看待,像上面在RPN网络中,可能(f)这种方式不大好,但是在Fast RCNN中就没那么明显。

总结

FPN(Feature Pyramid Networks)算法,是一种特征融合算法,将高层的特征与底层的信息融合,得到融合特征,并提取该特征进行预测,可以达到更好的预测效果。

3 - 区域选择方法

3.1 - RPN(Region Proposal Networks)

从Mask R-CNN的结构上我们可以看到选取候选框的方法沿用了Faster R-CNN所采用的RPN网络,下面就研究一下RPN的原理实现

在这里插入图片描述
RPN主要可以包括三步:
(1) 输入图片经卷积网络(如 VGGNet 和 ResNet)处理后, 会输出最后一个卷积层的 feature maps;
在这里插入图片描述
(2)在 feature maps 上进行滑窗操作(sliding window). 滑窗尺寸为 n × n n×n n×n, 如 3 × 3 3×3 3×3.
对于每个滑窗, 会生成 9 个 anchors, anchors 具有相同的中心 c e n t e r = x a , y a c e n t e r = x a , y a , center=x_a,y_acenter=x_a,y_a, center=xa,yacenter=xa,ya, 但 anchors 具有 3 种不同的长宽比(aspect ratios) 和 3 种不同的尺度(scales), 计算是相对于原始图片尺寸的, 如下图:在这里插入图片描述
对于每个 anchor, 计算 anchor 与 ground-truth bounding boxes 的重叠部分(overlap) 值 p ∗ p^∗ p - IoU(intersection over union ):

  • 如果 IoU > 0.7, 则 p ∗ = 1 p^∗=1 p=1;
  • 如果 IoU < 0.7, 则 p ∗ = − 1 p^∗=-1 p=1;
  • 其他, 则 p ∗ = 0 p^∗=0 p=0;

(3) 从 feature maps 中提取 3×3 的空间特征(上图中红色方框部分), 并将其送入一个小网络. 该网络具有两个输出任务分支: classification(cls) 和 regression(reg).

regression 分支输出预测的边界框bounding-box: (x, y, w, h).

classification 分支输出一个概率值, 表示 bounding-box 中是否包含 object (classid = 1), 或者是 background (classid = 0), no object.

在这里插入图片描述

3.1.1 Anchors

在每个滑动窗口位置,我们同时预测多个region proposals,其中每个位置的最大可能建议的数量表示为k。所以reg层有4k输出来编码k个box的坐标(可能是一个角的坐标(x,y)+width+height),cls层输出2k的分数来估计每个proposal是object的概率或者不是的概率。这k个proposals是k个参考框的参数化,我们把这些proposals叫做Anchors(锚点)。锚点位于问题的滑动窗口中,并与比例和纵横比相关联。默认情况下,我们使用3个尺度和3个纵横比,在每个滑动位置上产生k=9个锚点。对于W H大小的卷积特性图(通常为2,400),总共有WH*k个锚点

分析
首先我们需要知道anchor的本质是什么,本质是SPP(spatial pyramid pooling)思想的逆向。而SPP本身是做什么的呢,就是将不同尺寸的输入resize成为相同尺寸的输出。所以SPP的逆向就是,将相同尺寸的输出,倒推得到不同尺寸的输入。

接下来是anchor的窗口尺寸,这个不难理解,三个面积尺寸( 12 8 2 , 25 6 2 , 51 2 2 128^2,256^2,512^2 128225625122),然后在每个面积尺寸下,取三种不同的长宽比例( 1 : 1 , 1 : 2 , 2 : 1 1:1,1:2,2:1 1:1,1:2,2:1).这样一来,我们得到了一共9种面积尺寸各异的anchor。示意图如下:

在这里插入图片描述
并且论文中Anchors还具有两个特性

  • 平移不变性

我们的方法的一个重要特性是是平移不变性,锚点本身和计算锚点的函数都是平移不变的。如果在图像中平移一个目标,那么proposal也会跟着平移,这时,同一个函数需要能够在任何位置都预测到这个proposal。我们的方法可以保证这种平移不变性。作为比较,the MultiBox method使用k聚类方法生成800个锚点,这不是平移不变的。因此,MultiBox并不保证当一个对象被平移式,会生成相同的proposal。

平移不变性也减少了模型的尺寸,当锚点数k=9时MultiBox有一个(4+1)*800维全连接的输出层,而我们的方法有一个(4+2)*9维的卷积输出层。因此,我们输出层的参数比MultiBox少两个数量级(原文有具体的数,感觉用处不大,没有具体翻译)。如果考虑到feature projection层,我们的建议层仍然比MultiBox的参数少了一个数量级。我们希望我们的方法在像PASCAL VOC这样的小数据集上的风险更小

  • 多尺度

在这里插入图片描述
(a.建立了图像和特征图的金字塔,分类器在所有的尺度上运行。b. 具有多个尺寸/大小的过滤器金字塔在feature map上运行。c. 我们在回归函数中使用了参考框的金字塔。)

第一种方法是基于图像/特征金字塔,例如,在DPM和基于cnn方法的方法。这些图像在多个尺度上进行了调整,并且为每个尺度计算特征图(占用或深度卷积特性)(图1(a))。这种方法通常很有用,但很耗费时间。第二种方法是在feature map上使用多个尺度(和/或方面比率)的滑动窗口。例如,在DPM中,不同方面比率的模型分别使用不同的过滤大小(如5 7和7 5)进行单独训练。如果这种方法用于处理多个尺度,它可以被认为是一个过滤器金字塔(图1(b))。第二种方法通常是与第一种方法共同使用的

相比而言,我们基于锚点的方法建立在锚点金字塔上,这更节省成本。我们的方法对多个尺度和纵横比的锚点框进行了分类和回归。它只依赖于单一尺度的图像和feature map,并使用单一大小的过滤器(feature map上的滑动窗口)。我们通过实验展示了这个方案对处理多个尺度和大小的影响(表8)。

在这里插入图片描述

3.1.2 损失函数

为了训练RPNs,我们将一个二进制类标签(是否是object)分配给每个锚点。会给这两种锚点设置成正标签:1)跟真值框的交并比最高的。2)跟真值框的交并比大于0.7的。因此,一个真值框可以对应多个正标签的锚点。通常第二个条件足以确定正样本,我们还用第一种情况的原因是,有的时候第二种情况找不到正样本。如果一个锚点跟所有真值框的交并比小于0.3,那马我们就把它设为负样本。正负样本之间的这些样本对训练没有贡献。

有了这些定义,我们在fast R-CNN的多任务损失之后最小化一个目标函数,一张图片的损失函数定义为:
在这里插入图片描述
i是每个小批量中锚点的序号, p i p_i pi是锚点的概率, p i ∗ p_i^* pi是标签(0或1),t是预测框的参数, t ∗ t^* t是标定框的参数, L c l s L_{cls} Lcls是分类损失函数, L r e g L_{reg} Lreg是回归损失函数

3.1.3 训练RPN

RPN可以通过反向传播和随机梯度下降来端到端训练。我们遵循以图像为中心的采样策略,开始训练这个网络。每个小批次都来自同一张照片,照片包含许多正负锚点示例。对所有锚点的损失函数进行优化是可行的,但这将偏向于负样本,因为它们多。相反,我们在一个图像中随机抽取256个锚点来计算一个小批的损失函数,其中采样的正和负锚点的比例是1:1。如果一个图像中有少于128个正的样本,我们用负样本填充。

我们随机地初始化所有的新层,方法是用标准偏差0.01的零均值高斯分布来初始化权重。通常,所有其他层(共享卷积层)都是通过预先培训练一个用于ImageNet分类的模型来初始化的。我们对ZF网络的所有层进行调优,并对VGG网络的conv3_1层进行调优,以节省内存。我们对60 k小批量的学习速率为0.001,在PASCAL VOC数据集上的下一个20 k小批量的学习速率是0.0001。我们使用0.9的步长和0.0005的重量衰减。用Caffe实现的。

4 - ROI Align

ROI Align 是在Mask-RCNN这篇论文里提出的一种区域特征聚集方式, 很好地解决了ROI Pooling操作中两次量化造成的区域不匹配(mis-alignment)的问题。实验显示,在检测测任务中将 ROI Pooling 替换为 ROI Align 可以提升检测模型的准确性。

那么在学习ROI Align之前,首先要学习ROI Pooling的相关知识

4.1 ROI Pooling

目标检测architecture通常可以分为两个阶段:
(1)region proposal:给定一张输入image找出objects可能存在的所有位置。这一阶段的输出应该是一系列object可能位置的bounding box。这些通常称之为region proposals或者 regions of interest(ROI),在这一过程中用到的方法是基于滑窗的方式和selective search。
(2)final classification:确定上一阶段的每个region proposal是否属于目标一类或者背景。

这个architecture存在的一些问题是:

产生大量的region proposals 会导致performance problems,很难达到实时目标检测。
在处理速度方面是suboptimal。
无法做到end-to-end training。
这就是ROI pooling提出的根本原因,ROI pooling层能实现training和testing的显著加速,并提高检测accuracy。该层有两个输入:

从具有多个卷积核池化的深度网络中获得的固定大小的feature maps;
一个表示所有ROI的N*5的矩阵,其中N表示ROI的数目。第一列表示图像index,其余四列表示其余的左上角和右下角坐标;
ROI pooling具体操作如下:

根据输入image,将ROI映射到feature map对应位置;
将映射后的区域划分为相同大小的sections(sections数量与输出的维度相同);
对每个sections进行max pooling操作;
这样我们就可以从不同大小的方框得到固定大小的相应 的feature maps。值得一提的是,输出的feature maps的大小不取决于ROI和卷积feature maps大小。ROI pooling 最大的好处就在于极大地提高了处理速度。

说了这么多概念,还是看一个动态图比较清晰,具体过程如下:
在这里插入图片描述
说明:在此案例中region proposals 是 5 ∗ 7 5*7 57大小的,在pooling之后需要得到 2 ∗ 2 2*2 22的,所以在 5 ∗ 7 5*7 57的特征图划分成 2 ∗ 2 2*2 22的时候不是等分的,行是5/2,第一行得到2,剩下的那一行是3,列是7/2,第一列得到3,剩下那一列是4。

4.2 - ROI Pooling的局限性

ROI Pooling存在两次量化过程

  • 将候选框边界量化为整数点坐标值。
  • 将量化后的边界区域平均分割成 k ∗ k k * k kk 个单元(bin),对每一个单元的边界进行量化。

事实上,经过上述两次量化,此时的候选框已经和最开始回归出来的位置有一定的偏差,这个偏差会影响检测或者分割的准确度。在论文里,作者把它总结为“不匹配问题(misalignment)。

下面我们用直观的例子具体分析一下上述区域不匹配问题。如 图 所示,这是一个Faster-RCNN检测框架。输入一张 800 ∗ 800 800*800 800800的图片,图片上有一个 665 ∗ 665 665*665 665665的包围框(框着一只狗)。图片经过主干网络提取特征后,特征图缩放步长(stride)为32。因此,图像和包围框的边长都是输入时的1/32。800正好可以被32整除变为25。但665除以32以后得到20.78,带有小数,于是ROI Pooling 直接将它量化成20。接下来需要把框内的特征池化 7 ∗ 7 7*7 77的大小,因此将上述包围框平均分割成 7 ∗ 7 7*7 77个矩形区域。显然,每个矩形区域的边长为 2.86 2.86 2.86,又含有小数。于是ROI Pooling 再次把它量化到2。经过这两次量化,候选区域已经出现了较明显的偏差(如图中绿色部分所示)。更重要的是,该层特征图上 0.1 0.1 0.1个像素的偏差,缩放到原图就是 3.2 3.2 3.2个像素。那么 0.8 0.8 0.8的偏差,在原图上就是接近 30 30 30个像素点的差别,这一差别不容小觑。

在这里插入图片描述

4.3 ROI Align的主要思想和具体方法

为了解决ROI Pooling的上述缺点,作者提出了ROI Align这一改进的方法(如图)。ROI Align的思路很简单:取消量化操作,使用双线性内插的方法获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作,。值得注意的是,在具体的算法操作上,ROI Align并不是简单地补充出候选区域边界上的坐标点,然后将这些坐标点进行池化,而是重新设计了一套比较优雅的流程,如图所示:

  • 遍历每一个候选区域,保持浮点数边界不做量化。
  • 将候选区域分割成 k ∗ k k * k kk个单元,每个单元的边界也不做量化。
  • 在每个单元中计算固定四个坐标位置,用双线性内插的方法计算出这四个位置的值,然后进行最大池化操作。

在这里插入图片描述
在这里插入图片描述
这里对上述步骤的第三点作一些说明:这个固定位置是指在每一个矩形单元(bin)中按照固定规则确定的位置。比如,如果采样点数是1,那么就是这个单元的中心点。如果采样点数是4,那么就是把这个单元平均分割成四个小方块以后它们分别的中心点。显然这些采样点的坐标通常是浮点数,所以需要使用插值的方法得到它的像素值。在相关实验中,作者发现将采样点设为4会获得最佳性能,甚至直接设为1在性能上也相差无几。

事实上,ROI Align 在遍历取样点的数量上没有ROIPooling那么多,但却可以获得更好的性能,这主要归功于解决了misalignment的问题。值得一提的是,我在实验时发现,ROI Align在VOC2007数据集上的提升效果并不如在COCO上明显。经过分析,造成这种区别的原因是COCO上小目标的数量更多,而小目标受misalignment问题的影响更大(比如,同样是0.5个像素点的偏差,对于较大的目标而言显得微不足道,但是对于小目标,误差的影响就要高很多)。

4.4 ROI Align的反向传播

常规的ROI Pooling的反向传播公式如下:

在这里插入图片描述
这里, x i x_i xi代表池化前特征图上的像素点; y r j y_{rj} yrj代表池化后的第r个候选区域的第j个点; i ∗ ( r , j ) i^*(r,j) i(r,j)代表点 y r j y_{rj} yrj像素值的来源(最大池化的时候选出的最大像素值所在点的坐标)。由上式可以看出,只有当池化后某一个点的像素值在池化过程中采用了当前点Xi的像素值(即满足 i = i ∗ ( r , j ) i=i^*(r,j) i=i(rj)),才在 x i x_i xi处回传梯度。

类比于ROIPooling,ROIAlign的反向传播需要作出稍许修改:首先,在ROIAlign中,是一个浮点数的坐标位置(前向传播时计算出来的采样点),在池化前的特征图中,每一个与 x i ∗ ( r , j ) x_i^*{(r,j)} xir,j横纵坐标均小于1的点都应该接受与此对应的点 y r j y_{rj} yrj回传的梯度,故ROI Align 的反向传播公式如下:
在这里插入图片描述
上式中,d(.)表示两点之间的距离,Δh和Δw表示 x i x_i xi x i ∗ ( r , j ) x_i^*(r,j) xi(r,j) 横纵坐标的差值,这里作为双线性内插的系数乘在原始的梯度上。

5 - Head 层

在ROI Pooling 之后是Head层作为最后的输出分类,网络使用的损失函数为误差分类+检测分类+分割分类,正好对应下图所示

在这里插入图片描述
在这里插入图片描述

mask 层结构如下图所示,提供的mask 结构可以和多种RCNN框架结合,提高泛化能力。
在这里插入图片描述

6 - 总结

从阅读Mask R-CNN的论文来看,Mask R-CNN所使用的技术还是很多的,模型结构也十分复杂,但是可以发现这篇论文继承了之前R-CNN、Fast R-CNN、Faster R-CNN的成果。主要相对于Faster R-CNN的创新点在于改进了ROI Pooling 和添加了一个mask 分支。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机视觉(十二):Mask R-CNN 的相关文章

  • 基于ShuffleNetv2-YOLOv4模型的目标检测

    目录 1 引言 摘要 1 1 说明 1 2替换完成的工程请参考gitee 2 网络结构基础 2 1YOLOv3 2 1 YOLOv4算法 2 3 ShuffleNetv2 2 4 替换后的网络结构 3 实验结果 3 1实验环境配置及数据集介
  • 区域生长算法及其实现

    区域生长算法及其实现 背景 前面我们已经介绍了 最大熵分割法 OTSU算法 他们都有各自的优缺点 通常都不是单独使用这些算法 需要和其它算法来结合使用 前面两类算法都是单独对图像的灰度信息进行处理 不包含图像的空间信息 而区域生长算法则包含
  • 【计算机视觉】消融实验(Ablation Study)是什么?

    文章目录 一 前言 二 定义 三 来历 四 举例说明 一 前言 我第一次见到消融实验 Ablation Study 这个概念是在论文 Faster R CNN 中 消融实验类似于我们熟悉的 控制变量法 假设在某目标检测系统中 使用了A B
  • 【论文阅读】learning with noisy correspondence for cross-modal matching ------ 跨模态匹配,噪声对应

    注意 本博客非逐字逐句翻译论文 是作者阅读论文后根据自己的理解所写 预知论文详情 请参阅论文原文 论文标题 Learning with Noisy Correspondence for Cross modal Matching 作者 Zhe
  • Opencv学习笔记(三)线性及非线性滤波

    大纲 1 滤波综述 2 方框滤波 3 均值滤波 4 高斯滤波 5 中值滤波 6 双边滤波 一 滤波综述 图像的滤波指的是在尽量保证图像细节特征的的情况下对图像中的噪声进行抑制 又因为图像的能量大部分集中在低频或者中频的区域 图像大部分区域是
  • 深度学习2015年文章整理(CVPR2015)

    国内外从事计算机视觉和图像处理相关领域的著名学者都以在三大顶级会议 ICCV CVPR和ECCV 上发表论文为荣 其影响力远胜于一般SCI期刊论文 这三大顶级学术会议论文也引领着未来的研究趋势 CVPR是主要的计算机视觉会议 可以把它看作是
  • 图像处理——我理解的傅里叶变换

    1 傅里叶变换的理解 傅里叶变换的相关数学公式目前还没有搞懂 先不整那个东西 我们主要是研究傅里叶变换的一些思想和应用 这个思想起源于牛顿研究那个三棱镜 白光透过棱镜之后会被分解为七种颜色的光 这些光叠加又能形成白光 所以说可以把一种事物分
  • 人体姿态估计算法

    人体姿态估计算法 1 什么是人体姿态估计 2 基于经典传统和基于深度学习的方法 2 1 基于经典传统的人体姿态估计算法 2 2 基于深度学习的人体姿态估计算法 OpenPose AlphaPose RMPE
  • 改了论文查重率依然很高怎么办【保姆教程】

    大家好 今天来聊聊改了论文查重率依然很高怎么办 希望能给大家提供一点参考 以下是针对论文重复率高的情况 提供一些修改建议和技巧 改了论文查重率依然很高怎么办 在学术领域 论文查重是保证学术诚信和论文质量的重要环节 伪原创 然而 有些同学在修
  • 张正友相机标定法原理与实现

    张正友相机标定法是张正友教授1998年提出的单平面棋盘格的相机标定方法 传统标定法的标定板是需要三维的 需要非常精确 这很难制作 而张正友教授提出的方法介于传统标定法和自标定法之间 但克服了传统标定法需要的高精度标定物的缺点 而仅需使用一个
  • 软件测试/人工智能丨常见的计算机视觉的业务场景有哪些?计算原理和测试指标

    计算机视觉在各种业务场景中都有广泛的应用 以下是一些常见的计算机视觉的业务场景 以及与之相关的计算原理和测试指标 图像识别和分类 业务场景 识别图像中的对象 场景或模式 如物体识别 人脸识别 计算原理 使用卷积神经网络 CNN 等深度学习模
  • 软件测试/人工智能丨计算机视觉常见业务场景,计算原理和测试指标

    计算机视觉是利用计算机系统对图像 视频或其他视觉数据进行解释和处理的领域 在各个行业中 计算机视觉被广泛应用 以下是一些常见的计算机视觉的业务场景 计算原理以及相关的测试指标 1 人脸识别 业务场景 安防系统 通过人脸识别技术进行门禁控制
  • 探索人工智能中的AI作画:创意、技术与未来趋势

    导言 AI作画是人工智能领域中一个备受关注的前沿应用 它将传统艺术与先进技术相结合 创造出令人惊艳的艺术品 本文将深入探讨AI作画的创意过程 技术原理以及未来可能的发展趋势 1 AI作画的创意过程 艺术风格迁移 AI作画通过学习大师的风格
  • 【思扬赠书 | 第1期】教你如何一站式解决OpenCV工程化开发痛点

    写在前面参与规则 参与方式 关注博主 点赞 收藏 评论 任意评论 每人最多评论三次 本次送书1 3本 取决于阅读量 阅读量越多 送的越多 思扬赠书 第1期活动开始了 机器视觉 缺陷检测 工业上常见缺陷检测方法 方法一 基于简单二值图像分析
  • 2023长三角(芜湖)人工智能数字生态峰会成功召开!

    聚焦当下 共议数字时代发展 瞩目未来 共谋数字生态蓝图 12月11日 2023长三角 芜湖 人工智能数字生态峰会暨2023长三角 芜湖 人工智能视觉算法大赛颁奖典礼在芜湖宜居国际博览中心盛大召开 本次大会是由安徽省数据资源管理局 安徽省科学
  • 澳鹏干货解答!“关于机器学习的十大常见问题”

    探索机器学习的常见问题 了解机器学习和人工智能的基本概念 原理 发展趋势 用途 方法和所需的数据要求从而发掘潜在的商机 什么是机器学习 机器学习即教授机器如何学习的过程 为机器提供指导 帮助它们自己开发逻辑 访问您希望它们访问的数据 机器学
  • 互操作性(Interoperability)如何影响着机器学习的发展?

    互操作性 Interoperability 也称为互用性 即两个系统之间有效沟通的能力 是机器学习未来发展中的关键因素 对于银行业 医疗和其他生活服务行业 我们期望那些用于信息交换的平台可以在我们需要时无缝沟通 我们每个人都有成千上万个数据
  • 详解数据科学自动化与机器学习自动化

    过去十年里 人工智能 AI 构建自动化发展迅速并取得了多项成就 在关于AI未来的讨论中 您可能会经常听到人们交替使用数据科学自动化与机器学习自动化这两个术语 事实上 这些术语有着不同的定义 如今的自动化机器学习 即 AutoML 特指模型构
  • 友思特分享 | CamSim相机模拟器:极大加速图像处理开发与验证过程

    来源 友思特 机器视觉与光电 友思特分享 CamSim相机模拟器 极大加速图像处理开发与验证过程 原文链接 https mp weixin qq com s IED7Y6R8WE4HmnTiRY8lvg 欢迎关注虹科 为您提供最新资讯 随着
  • 文档扫描与矫正-仿射变换

    图像变换是计算机视觉和图像处理中的关键技术之一 它允许我们对图像进行各种形式的变形 调整和校正 其中 仿射变换是一种常见的变换方式 在文档扫描过程中 由于拍摄角度和畸变等原因 文档图像可能存在一定程度的形变 仿射变换可以用于校正文档图像 使

随机推荐

  • Android MediaPlayer播放本地音频

    reference Android 第一行代码 MediaPlayer类常用的方法 setDataSource 设置要播放的音频文件的路径 prepare 开始播放之前调用这个方法完成准备工作 start 开始或继续播放 pause 暂停播
  • 基于SSM的图书馆借阅管理系统

    全网粉丝20W csdn特邀作者 博客专家 CSDN新星计划导师 java领域优质创作者 博客之星 掘金 华为云 阿里云 InfoQ等平台优质作者 专注于Java技术领域和毕业项目实战 文末获取项目下载方式 一 项目背景介绍 随着社会的发展
  • 重新梳理DeepFaceLab(DeepFake)最近动态:简要且全面的信息

    DeepFaceLab相关文章 一 简单介绍DeepFaceLab DeepFake 的使用以及容易被忽略的事项 二 继续聊聊DeepFaceLab DeepFake 不断演进的2 0版本 三 如何翻译DeepFaceLab DeepFak
  • 外置USB供电与内置锂电池供电自动切换电路

    外置USB供电与内置锂电池供电自动切换电路 便携电子设备常用 经典电路必须掌握 本文要分析的电路 很多内置有锂电池的便携电子设备 比如手机 通常采用这样的供电方式 1 没有插入USB电源时 使用内置的锂电池供电 2 当插入USB电源时 切换
  • JAVA体系书籍大全

    二哥 能不能给一套 Java 电子书的链接啊 最好是成体系的 我现在就想好好的学习 感觉和公司的一些同事差距有点大 想追赶上 纸质书有点沉 天天带在手边很不方便 尤其是上下班坐地铁的时候 都感觉看纸质书不太好意思 电子书不仅携带方便 还能不
  • 安装Tensorflow教程

    安装Tensorflow教程 1 环境要求 pychon3 5 可以在cmd下查看python3版本号 要求必须是3 5以及以上 python3 version Python 3 9 8 2 anaconda安装 打开anaconda en
  • Pyqt5 在线/离线安装教程

    在线安装 在线安装很简单 两行命令搞定 pip3 install PyQt5 pip install PyQt5 tools 如果访问外网不是很顺畅建议使用豆瓣的镜像下载 pip install PyQt5 i https pypi dou
  • window.open完美替代window.showModalDialog

    var url http www baidu com var name 百度 var iWidth 1100 弹窗宽度 var iHeight 700 弹窗高度 var iTop window screen availHeight 30 i
  • 组件化学习-3-源码分析ARouter

    之前我们学习了Arouter的使用 今天分析下源码实现原理 主要分3步 生成路由表 加载路由表 使用路由表 生成路由表 RouteProcessor负责生产路由表 ARouter框架使用编译时注解工具 Annotation Processi
  • 【项目:坦克大战】

    v1 25 新增功能 1 音效的处理 import pygame time random display pygame display COLOR BLACK pygame Color 0 0 0 COLOR RED pygame Colo
  • 华为OD机试 - 处理器问题(Java)

    题目描述 某公司研发了一款高性能AI处理器 每台物理设备具备8颗AI处理器 编号分别为0 1 2 3 4 5 6 7 编号0 3的处理器处于同一个链路中 编号4 7的处理器处于另外一个链路中 不通链路中的处理器不能通信 如下图所示 现给定服
  • msvcp140.dll丢失的详细修复教程

    打开电脑上的浏览器在顶部网址栏目输入 dll修复程序 site 然后按下键盘的回车键打开 电脑 dll中文简称动态链接库 把下载好的修复工具右键压缩文件进行解压操作 解压完成打开修复工具 修复工具中可以看到修复工具右侧中的检测与修复的项目
  • etcd 集群搭建及常用场景分析

    概述 etcd 是一个分布式一致性k v存储系统 可用于服务注册发现与共享配置 具有以下优点 简单 相比于晦涩难懂的paxos算法 etcd基于相对简单且易实现的raft算法实现一致性 并通过gRPC提供接口调用 安全 支持TLS通信 并可
  • 项目import其他class类失败,解决办法:清楚缓存

    如题 今天导入新的项目的时候遇到一些问题 这里记录一下 1 问题 所有的类都是 java文件而不是 class pom文件全部报错 maven 加载不进来 解决 一阵排查发现是加载项目的包目录加载错了 在最外层打开的导致找不到下级的目录 2
  • Too many open files的四种解决办法【转】

    摘要 Too many open files有四种可能 一 单个进程打开文件句柄数过多 二 操作系统打开的文件句柄数过多 三 systemd对该进程进行了限制 四 inotify达到上限 领导见了孔乙己 也每每这样问他 引人发笑 孔乙己自己
  • opencv-光流法

    import numpy as np import cv2 import sys cap cv2 VideoCapture video2 mp4 feature params dict maxCorners 100 qualityLevel
  • matlab实现三自由度机械臂旋转

    matlab实现三自由度的机械臂旋转 1 内容与要求 根据表一机械臂长度 以及图一机械臂配置为机械臂开发一个控制器 使其能够执行特定的任务 更具体地说 让机械臂的末端执行器移动到特定的点 项目要求 你的控制器应该能够控制一个3 自由度的机械
  • 《消息队列高手课》缓存策略:如何使用缓存来减少磁盘IO?

    现代的消息队列 都使用磁盘文件来存储消息 因为磁盘是一个持久化的存储 即使服务器掉电也不会丢失数据 绝大多数用于生产系统的服务器 都会使用多块儿磁盘组成磁盘阵列 这样不仅服务器掉电不会丢失数据 即使其中的一块儿磁盘发生故障 也可以把数据从其
  • 解决 windows 下浏览器无法上网,QQ/微信正常上网

    解决 windows 下浏览器无法上网 QQ 微信正常上网 解决 windows 下浏览器无法解析DNS配置 gt 注意 本处只 提供一种解决思路 并不代表所有问题都能被解决 可以尝试一下 这种问题 一般在浏览器中会 直奔主题 原因 1 查
  • 计算机视觉(十二):Mask R-CNN

    1 引言 Mask R CNN是在Faster R CNN架构为基础上改进的一种目标检测架构 并且能够有效的完成高质量的语义分割 Mask R CNN主要结构如下图所示 那我们就来一步步介绍Mask R CNN的部分 2 特征提取方法 通过