当前位置: 首页 > news >正文

大型网站 php嘉兴网站建设制作

大型网站 php,嘉兴网站建设制作,物流信息网站,为企业提供网站建设服务Deep Learning - Lecture 6 Deep Learning for Computer Vision 简介深度学习在计算机视觉领域的发展时间线 语义分割语义分割系统的类型上采样层语义分割的 SegNet 架构软件中的SegNet 架构数据标注 目标检测与识别目标检测与识别问题两阶段和一阶段目标检测与识别两阶段检测器… Deep Learning - Lecture 6 Deep Learning for Computer Vision 简介深度学习在计算机视觉领域的发展时间线 语义分割语义分割系统的类型上采样层语义分割的 SegNet 架构软件中的SegNet 架构数据标注 目标检测与识别目标检测与识别问题两阶段和一阶段目标检测与识别两阶段检测器Faster R - CNN一阶段检测YOLOYOLO损失函数非极大值抑制Non - maximum suppressionNMSYOLO 系列模型的发展历程及主要改进点 实例分割 总结引用 本节目标 解释深度学习在计算机视觉中的主要用途为计算机视觉设计并实现深度学习系统 本节中只是粗略介绍用于计算机视觉computer vision, CV的一些网络更加详细的内容我之后会在机械视觉的课程中展示。 简介 深度学习对计算机视觉产生了重大影响。 上图展示了计算机视觉中的四个不同任务分别以牛的图像为例 (a) 图像分类Image Classification对整个图像进行分类判断图像中是否存在牛这一类别这里确定图像中有牛。(b) 目标检测Object Detection不仅要检测出图像中是否存在牛还要用边界框如红、绿、蓝框标出每头牛在图像中的具体位置。© 语义分割Semantic Segmentation将图像中的每个像素分配到特定的类别这里是牛把图像中属于牛的区域用绿色进行分割标记不区分具体是哪头牛。(d) 实例分割Instance Segmentation在语义分割的基础上进一步区分出不同的个体实例每头牛用不同颜色如红、绿、黄进行分割和标记并编号1、2、3 。 深度学习在计算机视觉领域的发展时间线 图像识别Image Recognition2012年出现Alexnet2013年有ZFNet2014年是VGGNet2015年为GoogleNet、ResNet2016年有MobileNet2019年是EfficientNet2020年为NasNet。目标检测Object Detection2014年出现R - CNN2015年有Fast R - CNN2016年是Faster R - CNN、Yolo2017年为SSD、Retinanet、Yolo - v2 。语义分割Semantic Segmentation2015年有FCN2016年是U - Net、SegNet2018年为DeepLabv3 。实例分割Instance Segmentation2017年出现Mask R - CNN2018年有PANet2019年是Yolact2020年为Solo 。 这些模型推动了计算机视觉领域深度学习技术的发展和应用。 语义分割 语义分割是将图像的每个像素与一个类别标签相关联的过程。 语义分割系统的类型 有多种知名的语义分割系统多数采用编码器 - 解码器架构 全卷积网络如FCNLong等人2015年编码器 - 解码器结构如SegNetBadrinarayanan等人2017年带跳跃连接的编码器 - 解码器如U - NetRonneberger等人2015年多尺度编码器 - 解码器如DeepLabV3 Chen等人2018年。 图片下方有一个卷积编码器 - 解码器的示意图展示了从输入RGB图像到输出分割结果的过程。 上图为一个卷积编码器 - 解码器的示意图输入图像经过一系列我们之前学过的网络层诸如卷积Conv、批量归一化Batch Normalisation、ReLU 激活函数操作还有池化Pooling最后和上采样Upsampling这个马上学步骤最终通过 Softmax 得到分割结果。 上采样层 解码器系统中的上采样方法分为两类 固定方法快速、简单。学习方法训练较慢但可能更准确。 最近邻法Nearest neighbour左侧示例图中输入为2×2的矩阵数值分别为1、2、3、4。通过最近邻上采样输出为4×4的矩阵每个小格中的数值由最近邻的输入值填充。此方法是刚刚提到的固定采样方法。最大反池化法Max Unpooling中间示例图中输入同样为2×2的矩阵输出为4×4的矩阵。其中非零位置由编码器层中相应最大池化步骤的索引定义。此方法也是固定采样方法。转置卷积法Transposed Convolution右侧示例图展示了输入2×2的矩阵周围有零填充通过转置卷积操作输出为4×4的矩阵。此方法是学习方法。 语义分割的 SegNet 架构 SegNet 系统采用编码器 - 解码器架构在解码器阶段使用最大反池化max unpooling 软件中的SegNet 架构 Matlab 有一个特定函数 “segnetLayers” 用于实现 SegNet 语义分割系统。 Matlab 使用一种称为层图layer graph‘lgraph’的特定结构来构建 SegNet。层图对于实现具有来自多个层的输入和输出到多个层的深度网络来说是更灵活的结构。 % Create SegNet layers. imageSize [32 32]; numClasses 2; numLayers 3; lgraph segnetLayers(imageSize,numClasses,numLayers) % training data ds combine(imds,pxds); % Set up training options. options trainingOptions(sgdm,InitialLearnRate,1e-3, ... MaxEpochs,20,VerboseFrequency,10); % Train the network net trainNetwork(ds,lgraph,options)Python部分则还是之前的keras需要手搓。 from keras.models import Model from keras.layers import Input, Conv2D, MaxPooling2D, UpSampling2D from keras.layers import Activation# Encoder conv1 Conv2D(64, 3, activationrelu, paddingsame)(inputs) pool1 MaxPooling2D(pool_size(2, 2))(conv1) conv2 Conv2D(128, 3, activationrelu, paddingsame)(pool1) pool2 MaxPooling2D(pool_size(2, 2))(conv2)# Decoder up2 UpSampling2D(size(2, 2))(pool2) deconv2 Conv2D(128, 3, activationrelu, paddingsame)(up2) up1 UpSampling2D(size(2, 2))(deconv2) deconv1 Conv2D(64, 3, activationrelu, paddingsame)(up1)# Output outputs Conv2D(num_classes, 1, paddingsame)(deconv1) outputs Activation(softmax)(outputs)# Create the model model Model(inputs, outputs)数据标注 实施自己的计算机视觉项目时通常需要自行标注数据。 在Matlab 提供了一个有用的工具 “imageLabeler”可在命令行中输入该名称启动。 当然也有许多非 Matlab 的图像标注工具包括 VGG 图像标注器 VGG Image Annotator, VIA网址为https://www.robots.ox.ac.uk/~vgg/software/via/Labelme 网址为 http://labelme.csail.mit.edu/Release3.0/ CVAT网址为 https://www.cvat.ai/ 。 目标检测与识别 目标检测与识别是指在图像中找到一个目标并用边界框框出同时识别框内的物体是什么. 目标检测与识别问题 目标检测与识别是将回归和分类融合成了一个单一的问题。 左边是输入图像作为检测与识别的对象来源。中间是目标检测与识别系统对输入图像进行处理分析。右边是输出结果包含了边界框bounding box和类别class。在右侧的示例图像中用黄色框标注出了汽车并且还标注了类别标签class label、中心 x x x 坐标 x − c e n t r e x - centre x−centre、中心 y y y 坐标 y − c e n t r e y - centre y−centre、高度height和宽度width这些信息用于精准定位和识别目标物体。 过程中的损失函数 J ( θ ) J(\theta) J(θ)为 J ( θ ) ∑ j 1 m e j T e j γ ∑ j 1 m ∑ k 1 K y j , k log ⁡ y ^ j , k J(\theta)\sum_{j 1}^{m} e_{j}^{T} e_{j}\gamma\sum_{j 1}^{m}\sum_{k 1}^{K} y_{j,k} \log \hat{y}_{j,k} J(θ)j1∑m​ejT​ej​γj1∑m​k1∑K​yj,k​logy^​j,k​ 损失函数由两部分构成 左边部分 ∑ j 1 m e j T e j \sum_{j 1}^{m} e_{j}^{T} e_{j} j1∑m​ejT​ej​ 是边界框的平方误差损失Bounding box squared error loss它的作用是衡量边界框预测值和真实值之间的误差情况其中 e j e_{j} ej​ 是与边界框相关的误差向量。右边部分 γ ∑ j 1 m ∑ k 1 K y j , k log ⁡ y ^ j , k \gamma\sum_{j 1}^{m}\sum_{k 1}^{K} y_{j,k} \log \hat{y}_{j,k} γj1∑m​k1∑K​yj,k​logy^​j,k​ 是分类的交叉熵损失Classification categorical cross - entropy loss用于衡量分类的预测结果和真实标签之间的差异。这里的 y j , k y_{j,k} yj,k​ 是真实标签 y ^ j , k \hat{y}_{j,k} y^​j,k​ 是预测标签 K K K 是类别数量 γ \gamma γ 是一个用于平衡这两项损失的参数。 两阶段和一阶段目标检测与识别 目标检测与识别系统中的两种主要类型两阶段和一阶段检测器 两阶段检测器 特点速度较慢但更准确。示例Faster R - CNN。流程第一阶段生成区域建议region proposal第二阶段对目标进行检测和分类。 一阶段检测器 特点速度较快但准确性较低。示例YOLO。流程检测和目标识别在单个阶段完成。 上图展示了从2013 - 2021年一些代表性检测器的发展时间线。2013 - 2016年主要是两阶段检测器的发展如R - CNN、Fast R - CNN、Faster R - CNN2016 - 2021年主要是一阶段检测器的发展如Yolo、SSD、Yolo - v2、Yolo - v3 。 两阶段检测器Faster R - CNN Faster R - CNN是一种流行的两阶段检测/识别系统它使用一个单独的区域建议网络。 第一阶段区域建议Region Proposal 深度学习区域建议网络Deep Learning Region Proposa对目标/无目标进行二分类并生成边界框。 二分类的含义在目标检测场景下区域建议网络会在输入图像中划分出大量不同的候选区域。对于每个候选区域它只判断两件事这个区域里有没有目标物体。因此输出结果只有两种状态即 “有目标物体”正类和 “没有目标物体”负类这就是二分类。 输入图像首先经过深度卷积网络特征提取器Deep Conv Net Feature Extractor然后通过感兴趣区域最大池化Region of Interest Max Pooling, ROI Pooling将特征图转换为固定大小的特征向量为后续的区域建议提供特征。 第二阶段目标检测/识别Object Detection/Recognition 分类层Classification Layers进行目标类别的预测。回归层Regression Layers进行边界框的调整最终输出目标的类别和精确的边界框。 相关发展 R - CNN仅用于类别预测的卷积深度网络。Fast R - CNN深度网络用于类别和边界框预测但不用于区域建议。Faster R - CNN全深度卷积网络但性能较慢。 一阶段检测YOLO YOLOYou Only Look Once模型基于标准卷积网络并对输出层进行了巧妙选择。 网络结构 主干网络Backbone Network由卷积层Conv和最大池化层Maxpool组成。全连接层Fully connected x2位于主干网络之后。头部网络Head Network最终输出维度为 7 × 7 × 30 7\times7\times30 7×7×30 。 输出解释 网络将图像视作被划分为 7 × 7 7\times7 7×7的网格单元因此输出是 7 × 7 × 30 7\times7\times30 7×7×30 。分法就像下面这样。 30个输出包含 2个边界框每个边界框有4个坐标值 ( x , y , w , h ) (x, y, w, h) (x,y,w,h) 共 4 × 2 4\times2 4×2个值。每个边界框对应一个置信度分数共 1 × 2 1\times2 1×2个值。所有类别共20个类别的预测分数。 对于网格单元 i , j i, j i,j 其预测值 y ^ i , j \hat{y}_{i,j} y^​i,j​包含上述共30个元素即 ( x , y , w , h , c , x , y , w , h , c , z 1 , … , z k ) (x, y, w, h, c, x, y, w, h, c, z_1, \ldots, z_k) (x,y,w,h,c,x,y,w,h,c,z1​,…,zk​) 其中 x , y , w , h x, y, w, h x,y,w,h是边界框坐标和尺寸 c c c是置信度 z 1 , … , z k z_1, \ldots, z_k z1​,…,zk​是类别分数。 为什么所有类别是20个 在早期版本的YOLO比如YOLO v1中其训练和应用场景常基于PASCAL VOC数据集。PASCAL VOC数据集包含20个常见的目标类别例如人、汽车、自行车、猫、狗等。所以模型输出会针对这20个类别进行预测以判断每个网格单元中是否存在这些类别的目标。 为什么只输出两个边界框 平衡计算量与检测效果YOLO模型为了在检测速度和一定的检测精度间取得平衡。输出两个边界框可以让模型对每个网格单元内可能存在的目标提供两种不同的定位预测。这样既不会因为边界框数量过多导致计算量大幅增加、检测速度变慢又能在一定程度上提高对目标的定位准确性。目标重叠处理在实际图像中可能存在多个目标部分重叠的情况。两个边界框可以分别去拟合不同的目标或者对同一个目标从不同角度进行更准确的定位。例如当两个较小目标挨得很近时两个边界框有可能分别对应这两个目标从而提高检测的召回率。 为什么图像分为7×7 计算资源与效率考量将图像划分为7×7的网格单元是一种对计算资源和检测效率的权衡。划分的网格数量如果过多虽然能更精细地定位目标但会显著增加计算量和模型的复杂度而划分得过少又可能无法准确捕捉目标的位置和特征。7×7的网格划分在当时被认为是一个相对合理的选择既能在一定程度上覆盖图像中的目标又不会使计算量过大能够在保证一定检测效果的同时实现较快的检测速度。目标尺度适应性对于常见的目标尺度7×7的网格划分可以较好地适应。每个网格单元负责预测其内部或中心位于该单元内的目标这种划分方式对于一般大小的目标能够提供较为有效的检测和定位。 那么假如一张图片里面我要检测3个物体输出的边界框预测一共是多少个对于某一个物体应该是多少个 在YOLO v1中无论图片里有几个物体其边界框预测数量的计算方式都是固定的 输出的边界框预测总数由于YOLO v1将图像划分为7×7的网格每个网格单元输出2个边界框所以不管图片中要检测的物体是3个还是更多输出的边界框预测总数都是7×7×298个。对于某一个物体的边界框预测每个物体可能会由一个或多个网格单元负责检测每个相关网格单元都会输出2个边界框来尝试对该物体进行定位。比如一个物体可能横跨了4个网格单元那么就会有4×28个边界框预测与这个物体相关但最终会通过置信度和非极大值抑制等方法筛选出最能准确代表这个物体的边界框。 YOLO v2和YOLO v3引入了锚框概念每个网格单元通常会预测多个边界框比如YOLO v3每个网格单元一般预测3个边界框。如果同样是检测3个物体以常见的特征图尺寸为例如果特征图尺寸为13×13那么边界框预测总数可能达到13×13×3个甚至更多因为可能在多个不同尺度的特征图上进行预测。对于某一个物体相关的边界框预测数量也会因物体在图像中的位置和大小等因素由多个网格单元及其对应的多个锚框来进行预测数量会比YOLO v1更多。YOLO v5及后续版本在不同尺度的特征图上进行多尺度检测每个尺度的特征图上的网格单元都会根据设定的锚框数量进行边界框预测。对于检测3个物体输出的边界框预测数量会根据具体的模型配置和输入图像大小等因素而变化通常会比前面的版本更多。对于单个物体会有多个来自不同尺度、不同位置的网格单元及其对应的边界框来进行预测以提高对不同大小、不同位置物体的检测精度。 YOLO损失函数 YOLO损失函数由多个部分组成包括边界框损失、类别损失和目标置信度分数损失。 损失函数公式 (损失函数略有改动并进行了简化) J ( θ ) ∑ j 1 m e j T e j λ 1 ∑ j 1 m ∑ k 1 K y j , k log ⁡ y ^ j , k λ 2 ∑ j 1 m ( c ^ − c ) 2 J(\theta)\sum_{j 1}^{m} e_{j}^{T} e_{j}\lambda_{1}\sum_{j 1}^{m}\sum_{k 1}^{K} y_{j,k} \log \hat{y}_{j,k}\lambda_{2}\sum_{j 1}^{m}(\hat{c} - c)^{2} J(θ)j1∑m​ejT​ej​λ1​j1∑m​k1∑K​yj,k​logy^​j,k​λ2​j1∑m​(c^−c)2其中 边界框平方误差损失Bounding box squared error loss ∑ j 1 m e j T e j \sum_{j 1}^{m} e_{j}^{T} e_{j} ∑j1m​ejT​ej​用于衡量边界框预测值 ( x , y , w , h ) (x, y, w, h) (x,y,w,h)与真实值之间的误差。 e j e_j ej​代表边界框相关的误差向量。分类交叉熵损失Classification categorical cross - entropy loss λ 1 ∑ j 1 m ∑ k 1 K y j , k log ⁡ y ^ j , k \lambda_{1}\sum_{j 1}^{m}\sum_{k 1}^{K} y_{j,k} \log \hat{y}_{j,k} λ1​∑j1m​∑k1K​yj,k​logy^​j,k​用于衡量类别预测的准确性。 y j , k y_{j,k} yj,k​是真实标签 y ^ j , k \hat{y}_{j,k} y^​j,k​是预测标签 K K K是类别数量 λ 1 \lambda_{1} λ1​是平衡参数。目标检测置信度损失Confidence in object detection λ 2 ∑ j 1 m ( c ^ − c ) 2 \lambda_{2}\sum_{j 1}^{m}(\hat{c} - c)^{2} λ2​∑j1m​(c^−c)2用于衡量目标置信度分数的预测误差。 c ^ \hat{c} c^是预测的置信度分数 c c c是真实的置信度分数 λ 2 \lambda_{2} λ2​是平衡参数。 交并比IoU指标 使用交并比Intersection over union, IoU作为置信度真实值的度量指标。公式为 c I o U A r e a o f O v e r l a p A r e a o f U n i o n c IoU \frac{Area of Overlap}{Area of Union} cIoUAreaofUnionAreaofOverlap​即交并比等于重叠区域面积除以并集区域面积。当边界框预测完美时IoU 1。 如图蓝色框为真实框黄色框为预测框红色阴影部分为重叠区域红色轮廓内为并集区域。 非极大值抑制Non - maximum suppressionNMS 非极大值抑制用于YOLO网络之后以抑制对同一物体的重复检测。 方法 选择置信度 c ^ \hat{c} c^最大的预测然后抑制所有与该预测的交并比IoU大于阈值的其他预测。 流程 从左到右依次为 输入图像。经过YOLO卷积网络YOLO Conv net处理。再经过非极大值抑制Non - maximum suppression处理。得到最终预测结果Final predictions。 效果对比 非极大值抑制前Before non - maximum suppression图像中的汽车被多个边界框重复检测标注。非极大值抑制后After non - maximum suppression只保留了置信度最高且能较好框定汽车的边界框去除了重复的检测框使检测结果更加简洁准确。 YOLO 系列模型的发展历程及主要改进点 YOLO V12016 年确立了一阶段检测器的关键思想。YOLO V22017 年引入锚框anchor boxes采用全卷积网络。YOLO V32018 年具备多尺度检测能力主干网络基于 ResNet使用二分类器进行多标签分类。YOLO V42019 年采用跨阶段分层网络CSPNet、路径聚合网络PANet以及空间注意力模块SAM。YOLO V52020 年基于 PyTorch 开发。YOLO V6 V72021 - 2022 年图片未详细列出具体改进仅提及版本名称。YOLO V82023 年采用无锚框检测anchor free detection引入自注意力机制self attention改进了训练过程。 代码示例 Matlab最多到V4. % download, unzip, install, load pre-trained detector pretrainedURL https://ssd.mathworks.com/supportfiles/vision/data/yolov4CSPDarknet53VehicleExample_22a.zip; websave(yolov4CSPDarknet53VehicleExample_22a.zip, pretrainedURL); unzip(yolov4CSPDarknet53VehicleExample_22a.zip); pretrained load(yolov4CSPDarknet53VehicleExample_22a.mat); detector pretrained.detector; % test I imread(highway.png); [bboxes,scores,labels] detect(detector,I); I insertObjectAnnotation(I,rectangle,bboxes,scores); figure; imshow(I) % retrain detector trainYOLOv4ObjectDetector(trainingData,detector,trainingOptions);Python都支持下面示例是V8 import keras import keras_cv model keras_cv.models.YOLOV8Detector( num_classes20, bounding_box_formatxywh, backbonekeras_cv.models.YOLOV8Backbone.from_preset( yolo_v8_m_backbone_coco), fpn_depth2 ) # Evaluate model without box decoding and NMS model(images) # Prediction with box decoding and NMS model.predict(images) # Train model model.compile( classification_lossbinary_crossentropy, box_lossciou, optimizertf.optimizers.SGD(global_clipnorm10.0), jit_compileFalse, ) model.fit(images, labels)实例分割 实例分割结合了语义分割和目标检测/识别。 示例 Mask R - CNN是一种流行的实例分割方法它通过添加一个二分类掩码预测输出层对Faster R - CNN进行了扩展。 流程 流程与之前相似只不过在第二部分多了一个掩码二分类器Mask Binary Classifier在边界框内以像素级别输出目标/无目标的掩码。 总结 深度学习对计算机视觉产生了重大影响关键领域包括 图像识别Image recognition涉及的模型有VGG、GoogleNet、ResNet、Mobilenet 。这些模型用于对图像中的内容进行分类和识别。语义分割Semantic segmentation相关模型包括U - Net、Segnet、DeepLabv3 。语义分割旨在将图像中的每个像素分配到预定义的类别中例如区分图像中的道路、天空、建筑物等不同区域。目标检测Object detection 两阶段检测器Two - stage如R - CNN、Fast R - CNN、Faster R - CNN 。这类检测器先生成可能包含目标的区域建议再进行目标检测和分类。一阶段检测器One - stage例如Yolo及其v2、v3、v4、v5、v6、v7、v8等版本。它们在单个阶段内完成目标检测和识别通常检测速度较快。 实例分割Instance segmentation结合了语义分割与目标检测和识别能够在像素级别上区分不同的目标实例例如区分图像中的多个行人并为每个行人生成对应的掩码。 引用 语义分割的 SegNet 架构V. Badrinarayanan, A. Kendall and R. Cipolla (2017). SegNet: A Deep Convolutional EncoderDecoder Architecture for Image Segmentation. IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 39, no. 12, pp. 2481-2495.Faster R - CNNRen, Shaoqing, Kaiming He, Ross Girshick, and Jian Sun. “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks.” Neurips . Vol. 28, 2015.Mask R-CNNHe, K., Gkioxari, G., Dollár, P., Girshick, R. (2017). Mask R-CNN. In Proceedings of the IEEE International Conference on Computer Vision (pp. 2961-2969).
http://www.hkea.cn/news/14424498/

相关文章:

  • 游戏网站开发计划书wordpress 火车头 教程
  • 湖州 网站建设公司网络优化工程师是干什么的
  • 哈尔滨网站建设网络优化网络营销与电子商务
  • 做咖啡网站wordpress显示文章列表的主题
  • 网站短片怎么做wordpress 用户 关注
  • 扁平化设计网站 国内本地网站搭建
  • 哈巴狗模式网站开发帮人做违法网站
  • 泸州工投建设集团网站wordpress 后台主题
  • 知名大型网站搭建公司最火爆的网络游戏排行榜
  • 网站建设推广费怎么做账wordpress 小说多站
  • 媒体网站怎么申请深圳代理记账多少钱一月
  • 石家庄网站建设维护网站写手怎么做
  • 深圳印刷网站建设wordpress转nodejs
  • 网站建设在哪里办公wordpress 又拍云插件
  • 江苏建设通网站表白制作图神器软件
  • 企业网站怎么做才能留住客户高清视频网络服务器
  • 网站外包价格 北京网站制作公司wordpress响应式企业主题
  • 深圳公司网站建设设计慈溪网页设计
  • 南京地区网站开发网站建设管理教程视频教程
  • 网站建设需求说明书举例做自行车车队网站的名字
  • 做智能网站系统下载地址wordpress建站站长之家
  • 试管婴儿网站建设查排名的网站
  • 开源企业网站程序问卷调查网站建设
  • 网站备案基础知识一般设计网站页面用什么软件
  • 站群源码安徽建设人才网官网
  • 网站设计制作费wordpress小说主题模板下载地址
  • 网网站制作开发无二制造 网站升级建设中
  • 手机微信怎么创建公众号网站搜索引擎优化公司
  • the7 做的网站优化电池充电是关闭还是打开好
  • 上海 网站开发 外包网站建设的个人总结