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

淮南市网站建设_网站建设公司_一站式建站_seo优化

做的视频发到哪个网站,集团做网站优势,h5营销型网站,厦门集美建设局网站1.1 目标检测原理介 目标检测#xff1a;我们希望找到图像中的不同实例并将它们分配给某一个类别。实例可以部分重叠#xff0c;但仍然可以区分为不同的实例。如图(1)所示#xff0c;在输入图像中找到三个实例并将其分配给某一个类别。 图(1)目标检测示例 实例分割是目标检… 1.1 目标检测原理介 目标检测我们希望找到图像中的不同实例并将它们分配给某一个类别。实例可以部分重叠但仍然可以区分为不同的实例。如图(1)所示在输入图像中找到三个实例并将其分配给某一个类别。 图(1)目标检测示例 实例分割是目标检测的一种特殊情况其中模型还预测了实例的掩码(即在图像的特定区域中标记出该实例)。如图(2)所示在输入图像中找到三个实例每个实例被分配到一个类并获得一个标识其特定区域的掩码。 图(2)实例分割示例 目标检测有两个不同的任务查找(/定位)实例并对查找到的实例进行分类。为此我们采用一个包含三个主要部分的组合网络来实现目标检测。第一部分称为骨干网络它由一个预训练的分类网络(不包括分类层)组成。随着网络的加深在不同的尺度上生成不同的特征映射第二部分称为特征金字塔与第一部分一起构成特征金字塔网络。将第一部分中不同级别(具有相同宽度和高度的特征映射被称为属于同一级别)的特征映射组合在一起得到了包含低级和高级信息的特征映射第三部分为每一层所选的额外网络称为头。它们以相应的特征映射作为输入学习如何对目标进行定位(对重叠边框进行抑制)和分类。 图(3)组合网络原理图 上述三部分原理图如图(3)所示。图(3-1)为主干网络图(3-2)对骨干特征图进行合并生成新的特征图图(3-3)附加网络(称为头部)学习如何对目标进行定位和分类。 在目标检测的第三部分附加网络中实例在图像中的位置是由矩形边界框给出的。因此首要任务是为每个实例找到一个合适的边界框。为了做到这一点网络生成参考边界框(锚框)并学习如何修正它们使其最适合地定位出实例。这些锚框越好的表示不同的ground truth边界框的形状网络就越容易学习它们。为此网络在每个锚点上生成一组锚框。这样的一组锚框包括形状、大小和方向的所有组合。这些锚框的形状由参数anchor_aspect_ratio控制大小由参数anchor_num_subscales控制方向由参数anchor_angles的控制。如果参数生成多个相同的锚框则网络会在内部忽略这些重复的锚框。具体的参见get_dl_model_param()算子。 图(4)特征映射(右)和输入图像(左)中的锚框模式 在图(4-1)中锚框是在不同层级的特征图上创建的例如在特征图上绘制的浅蓝色、橙色、和深蓝色的锚框在图(4-2)中设置参数anchor_num_subscales来创建不同大小的锚框在图(4-3)中设置参数anchor_aspect_ratio来创建不同形状(长宽比不一样)的锚框在图(4-4)中设置参数anchor_angles来创建不同方向的锚框(仅用于实例类型rectangle2)。 网络预测了如何修改锚框以获得更好地拟合实例的边框。它将生成的锚框与相应的ground truth边框进行比较从而得到图像中单个实例的位置信息。 图(5)实例类型为rectangle1的边界框比较 在图(5-1)中网络修正浅蓝色的锚框以预测出更好拟合效果的橙色边界框在图(5-2)中在训练过程中将预测的边界框(橙色)与重叠最多的ground truth边界框(蓝色)进行比较使网络能够学习到必要的修正(偏移量)。 如前所述我们使用了不同层次的特征图。比如较低层次的特征图(可以看到小特征)和较深层次的特征图(只有大特征可见)。它们可以通过参数min_level和max_level来控制它们决定了特征金字塔的层级。 通过这些边界框我们可以定位出实例对象但实例还没有被分类。因此第二项任务包括对边界框中的实例进行分类这是由附加网络来完成的。网络很可能会为单个实例找到多个边界框可以通过非最大值抑制来筛选边界框。最后输出一个带有置信度的预测框表示此图像中的实例与其中某一个类的相关性。 图(6) 实例类型为rectangle1的重叠边界框抑制 在图(6-1)中网络分别为实例苹果(橙色)和实例柠檬(蓝色)找到了多个预测框在图(6-2)中设置参数max_overlap用于抑制同一类实例的重叠预测框不同类的实例重叠预测框不会被抑制在图(6-3)中设置参数max_overlap_class_agnostic也可以抑制不同类的实例的重叠预测框。 实例分割的进一步内容如下获得与预测边界框相对应的特征映射的那些部分作为一个额外网络(头部)的输入由此预测出一个二值掩模图像的类别。此掩码标记了图像中属于预测实例的区域。其概述如图(7)所示。 图(7)mask(掩模)预测示意图 1.2 目标检测通用工作流程 在本节中我们描述了基于深度学习的目标检测任务的一般流程。它分为四个部分数据预处理和模型创建、模型训练、模型评估和模型推理。HDevelop示例中detect_pills_deep_learning的应用程序显示了目标检测的完整工作流程HDevelop示例中dl_instance_segmentation_workflow的应用程序显示了实例分割的完整工作流程。 1数据预处理和模型创建 ① 在HDevelop示例detect_pills_deep_learning_1_prepare.hdev中展示了目标检测模型的创建以及数据预处理。使用determine_dl_model_detection_param()函数估计适合于数据集的参数(比如锚参数)。对于实例分割必须设置参数instance_segmentation以创建相应的模型使用create_dl_model_detection()算子创建目标检测模型。该算子需要有指定主干网络的参数、类别数目参数、在DLModelDetectionParam字典上设置的其他参数。最后该算子返回一个句柄DLModelHandle可以使用read_dl_model算子读取已经用write_dl_model保存的模型。 ② 可以使用read_dict()算子读取DLDataset字典中数据或者使用read_dl_dataset_from_coco()函数读取的一个COCO数据格式的文件并由此创建一个字典DLDataset。字典DLDataset充当一个数据库存储关于数据的所有必要信息。 ③ 使用split_dl_dataset()函数来拆分字典DLDataset所表示的数据集。产生的拆分将在字典DLDataset中的样本字典中通过新键split加以区分保存。 ④ 网络对输入图像有一定的要求比如图像的宽度和高度。可以使用get_dl_model_param()算子检索每个单独的值。可以使用函数create_dl_preprocess_param_from_model()检索所有必要的参数。注意对于由class_ids_no_orientation声明的类边界框需要在预处理期间进行特殊处理。可以使用preprocess_dl_dataset()函数对数据集进行预处理。可以使用dev_display_dl_data()函数对预处理后的数据进行可视化。 2模型训练 在HDevelop示例detect_pills_deep_learning_2_train.hdev中展示了目标检测模型的训练。 ① 设置训练参数并将它们存储在字典TrainingParam中。 ② 使用train_dl_model()函数训练模型。该函数参数有模型句柄DLModelHandle、包含DLDataset数据信息的字典、带有训练参数TrainingParam的字典、和epochs等。 3训练模型的评估 在HDevelop 示例detect_pills_deep_learning_3_evaluate.hdev中展示了目标检测模型的评估。 ① 设置可能影响评估的模型参数。 ② 使用evaluate_dl_model()函数可以方便地对模型进行评估。该函数需要一个带有计算参数的字典GenParamEval将参数detailed_evaluation设置为true以获取可视化所需的数据。 ③ 可以使用dev_display_detection_detailed_evaluation()函数对评估结果可视化。 4对新图像进行推理 在HDevelop示例detect_pills_deep_learning_4_infer_hdev中展示了深度学习目标检测模型的推理。 ① 使用算子get_dl_model_param()或者函数create_dl_preprocess_param_from_model()获取网络对输入图像要求的参数。 ② 使用算子set_dl_model_param()设置模型参数和超参数。 ③ 使用gen_dl_samples_from_images函数()为每个图像生成一个数据字典DLSample。 ④ 使用preprocess_dl_samples()函数对每张图像进行预处理。 ⑤ 使用算子apply_dl_model()进行模型推理并从字典DLResultBatch中检索出推理结果。 1.3 目标检测其他补充说明 (1) 数据(Data) 我们区分用于训练和评估的数据(包含实例信息的图像)和用于推理的数据(裸露图像)。对于前者定义出每个实例属于哪个类以及它在图像中的位置(通过它的边界框)。实例分割需要目标的像素级精确区域(通过掩码提供)。 (2) 用于训练和评估的数据(Data for training and evaluation) 训练的数据用于特定任务的训练和评估网络。有了这些数据网络可以知道哪些类应该被区分这样的实例是什么样子的以及如何找到它们。通过告诉每个图像中的每个对象属于哪个类以及它位于何处可以提供必要的信息。这是通过为每个对象提供一个类标签和一个边界框来实现的。在实例分割的情况下每个实例都需要一个掩码。有不同的方法来存储和检索这些信息。简而言之字典DLDataset可作为训练和评价程序所需信息的数据库。可以使用MVTec深度学习工具(可从MVTec网站获得)以各自的格式标记你的数据并直接创建字典DLDataset。如果你已经用标准的COCO格式标记了你的数据你可以使用函数read_dl_dataset_from_coco (仅适用instance_type rectangle1)来格式化数据并创建字典DLDataset。还需要足够的训练数据来将其划分为三个子集用于训练、验证和测试网络。这些子集最好是独立的、同分布的。注意在目标检测中网络必须学习如何找到实例的可能位置和大小。这就是为什么后面重要的实例位置和大小需要在你的训练数据集中有代表性地出现。 (3) 图像(Images) 不管应用程序如何网络都对图像提出了要求例如图像的尺寸。具体的值取决于网络本身可以使用get_dl_model_param()函数进行查询。可以使用preprocess_dl_dataset()函数对单个样本进行预处理使用preprocess_dl_samples()函数对整个数据集进行预处理。 (4) 边界框(Bounding boxes) 根据目标检测模型的实例类型对边界框进行不同的参数化: ① instance type rectangle1 边界框定义为左上角(bbox_row1bbox_col1)和右下角(bbox_row2 bbox_col2)坐标。这与算子gen_rectangle1()一致。 ② instance type rectangle2 边界框定义为中心坐标(bbox_rowbbox_col)方向Phi和边长bbox_length1和bbox_length2。方向定义为水平轴与bbox_length1(数学上为正)之间的夹角(单位弧度)。这与算子gen_rectangle2一致。 如果在rectangle2的情况下只对定向边界框感兴趣但不考虑边界框内对象的方向则参数ignore_direction可以设置为true。 图(8) 不同目标检测任务的实例类型的边界框格式 图(8-1) 为实例类型“rectangle1”图(8-2)为实例类型“rectangle2”其中边界框朝向香蕉端。图(8-3)为实例类型“rectangle2”在不考虑香蕉在矩形框中的方向的情况下我们只对矩形框的方向感兴趣。 (5) 掩膜(Mask) 实例分割除了需要一个紧密的边界框外还需要学习每个对象的掩模。这样的掩模是一个区域(注意这些区域是相对于图像给出的)。在图(9)中单个图像的掩码以区域对象元组的形式给出(tupel中包含每个要学习的对象的独立区域)。 图(9) 图像掩模说明 (6) 网络输出(Network output) ① 网络输出取决于任务:training 作为输出算子train_dl_model_batch()将返回一个字典DLTrainResult其中包含总损失的当前值以及模型中包含的所有其他的损失值。 ② 网络输出取决于任务:inference and evaluation 函数apply_dl_model()将为每个图像返回一个字典DLResult。对于目标检测该字典将包括每个检测到的实例的边界框和指定类的置信值以及在实例分割情况下的掩码。因此对于图像中的同一对象可以检测到多个实例参见上面对非最大抑制的解释。生成的边界框根据实例类型(在instance_type上指定)进行参数化并以像素为中心的亚像素精确坐标给出。 (7) 模型参数和超参数(Model Parameters and Hyperparameters) 除了深度学习中解释的一般深度学习超参数之外还有与目标检测相关的超参数: bbox_heads_weight、class_heads_weight、class_weights和mask_head_weight(在实例分割的情况下)。这些超参数在get_dl_model_param()函数中有更详细的解释并使用create_dl_model_detection对其进行设置。 对于目标检测模型有两种不同类型的模型参数:固定参数(一旦创建了模型它们就不能再更改了)和可变参数。只与目标检测相关的参数max_num_detections、max_overlap、max_overlap_class_agnostic和min_confidence它们会影响评估和预测的结果。可以在创建模型时使用create_dl_model_detection()函数或在创建模型后使用set_dl_model_param进行参数设置。 (8 ) 目标检测结果的评价方法(Evaluation measures for the Results from Object Detection) 对于目标检测HALCON支持以下评估方法。为了对图像进行评估度量需要相关的ground truth信息。 ① IoU交并比 IOU的全称为交并比(Intersection over Union)是目标检测中使用的一个概念如图(10)所示IoU计算的是预测边框和真实边框的交集与它们并集的比值。其中蓝色为predicted box橙色为 ground truth box。最理想情况下IoU1。 图(10) IoU计算示例图 ② TP、TN、FP、FN的概念理解 T/F表示样本是否被分类正确T分类正确F分类错误。 P/N表示样本原来是正样本还是负样本P样本原来是正样本N样本原来是负样本。 True Positives (TP: predicted positive, labeled positive)被分配为正样本而且分对了(预测对了原来就为正样本)。代表的是被正确分类的正样本即IoU IoUthreshold 的检测框数量(同一Ground Truth只计算一次)。TP示例图如图(11)所示。 图(11) TP示例图 False Positive due to Location and Class (FP mult)预测框和真实标注框的IoU小于所需最小的IoUthreshold即预测的位置是错误的同时预测的类别也是错误的。FP mult示例图如图12所示。 图(12) FP mult示例图 False Positives due to Misclassification (FP class):预测框和真实标注框的IoU大于所需最小IoUthreshold 但是它的预测类别是错误的。FP classs示例图如图(13)所示。 图(13)FP classs示例图 False Positive due to Wrong Location (FP loc)预测框和真实标注框的IoU不为零且低于最小的IoUthreshold并且预测的类别是正确的但是预测的位置被认为是错误的。FP loc示例图如图(14)所示。 图(14)FP loc示例图 False Positive due to Duplicate Detections (FP dup)如果IoU高于最低IoU但存在另一个具有更高分数的同类检测则认为是重复检测的。 图(15) FP dup示例图 False Positive on Background(FP bg):如果预测框(predicted boxes)与所有GT( ground truth boxex)的IoU为零即它与任何ground truth boxex都没有重叠则认为它是假阳性背景检测(False Positive on Background, FP bg)。FP bg示例图如图(16)所示。 图(16)  FP bg示例图 False Negative(FN)对于含有标注框的对象没有被true positive 检测则会发生 false negative。 对于class_id 5和class_id 8的类别我们有false negative这些类别有真实的标注框但它们没有被true positive 检测。FN示例图如图(17)所示。 图(17) FN示例图 True Negatives (TN: predicted negative, labeled negative):被分配为负样本而且分对了(原来就是负样本)。代表的是被正确分类的负样本在mAP评价指标中不会使用到。 False Positives (FP: predicted positive, labeled negative)被分配为正样本但是分错了(事实上这个样本为负样本)。代表的是被错误分类的负样本IoU IoUthreshold 的检测框或者是检测到同一个GT的多余检测框的数量。 False Negatives (FN: predicted negative, labeled positive)被分配为负样本但分错了(事实上这个样本是正样本)。代表的是被错误分类的正样本没有检测到的GT的数量。 TP分类器认为是正样本并且确实是正样本的例子 FP: 分类器认为是正样本但实际上并不是正样本的例子 FN:分类器认为是负样本但实际上不是负样本的例子 Precision(精确率)就是分类器认为是正类并且确实是正类的例子与分类器认为是正类的所有例子的比值PrecisionTP/(TPFP)TP/预测框总数Precision(精确率)就是找的对通常精确率越高分类器越好。 Recall(召回率)就是分类器认为是正类并且确实是正类的部分占所有确实是正类的比例RecallTP/(TPFN)TP/GT框数量Recall(召回率)就是找的全通常召回率越大漏检率越低。 Accuracy(准确率)结果预测正确的数量占样本总数的比例Accuracy(TPTN)/(TPTNFPFN) ③ 混淆矩阵 如图(18)所示可以看出网络对每个类的执行情况。对于每个类它列出了预测到哪个类的实例数量。例如对于区分苹果、桃子和梨这三个类别的分类器混淆矩阵展示了具有多少ground truth的 苹果类图像被分类为苹果有多少被分类为桃子或梨。在HALCON中每一列表示某类具有 ground truth label的实例并在一行中表示预测属于该类的实例。 图(18) 三分类的混淆矩阵示例 从图(11)中可以看出68张苹果图片被归类为苹果(TP) 60张不是苹果的图片被正确归类为桃子(30张)或梨(30张)(TN) 0张显示桃子或梨的图片被归类为苹果(FP) 24张苹果的图片被错误地归类为桃子(21张)或梨(3张)(FN)。 ④ AP (average precision):每个类别的平均精度计算为精确率-召回率曲线下的面积。 ⑤ mean_ap(Mean average precision,mAP):所有类的平均AP的平均值。如图19所示。在训练期间或对不同模型进行比较时采用mean_ap来评估检测模型的性能。 图(19) 三个IoU阈值的示例评估结果
http://www.ihoyoo.com/news/18747.html

相关文章:

  • 建设什么网站赚钱免费建立企业网站
  • 东莞网站制作搭建企业网站需求文档
  • 免费制作网站服务器怎么改版一个网站
  • 做产品网站营销推广网站邮件系统建设招标
  • 网站页面制作做网站需要哪些手续
  • 霍邱县住房和城乡建设局网站如何制作推广网站
  • 网站建设需要了解的信息做网站还是移动开发
  • 网站代建设费用镇江做网站多少钱
  • 沈阳网站关键词if设计大赛官网
  • 衡阳的房地产网站建设郑州网页制作案例
  • 成都 网站制作东莞建设工程公司
  • 网站建设怎么管理业务员怎么在ps里做网站设计
  • 河北恒基建设招标有限公司网站网站建设优化开发公司
  • 专业网站建设公司兴田德润优惠吗衡阳 网络 网站
  • 太原房产网站建设网站建设技术开发
  • 企业网站的首页设计模板制作自己的网站需要什么
  • 中文html5网站欣赏找项目做区域代理
  • 高水平的徐州网站建设东莞网络推广托管
  • 模板网站有利于做seo吗做外贸上阿里巴巴什么网站
  • 网站建设公司 项目经理 的工作指责科技有限公司注册
  • 网站开发app开发培训蓝色高科技网站模板
  • 域名怎么创建网站建筑公司企业网站
  • 郑州工程建设信息网站优酷视频网站开发
  • 威海网站建设开发公司诸城 网站 建设
  • 网站外链带nofollow是什么意思新软件推广平台
  • 淘宝网站的建设目的是什么意思个人建网站
  • html5网站怎么做凡科网代理商登录
  • 做盗版电影网站犯法吗苏州诗华洛网站建设
  • 公司网站建设计入明细科目网页制作素材服装类
  • 先备案 做网站网络营销推广及优化方案