主要内容

yolov4ObjectDetector

检测对象使用YOLO v4意思对象探测器

描述

yolov4ObjectDetector对象创建一个你只看一次版本4 (YOLO v4意思)单程对象检测器来检测对象在一个图像。使用这个对象,您可以:

  • 创建一个pretrained YOLO v4对象探测器利用YOLO v4意思意思深度学习网络可可训练数据集。

  • 创建一个自定义YOLO v4意思对象探测器通过使用任何pretrained或未经训练的YOLO v4意思深学习网络。

创建

描述

Pretrained YOLO v4意思对象探测器

例子

探测器= yolov4ObjectDetector (的名字)创建一个pretrained YOLO v4对象探测器利用YOLO v4意思意思深度学习在可可网络训练数据集。

自定义YOLO v4意思对象探测器

探测器= yolov4ObjectDetector (的名字,,aboxes)创建一个pretrained YOLO v4意思对象探测器,并配置它来执行转移学习使用一组指定的对象类和锚箱。为获得最佳的结果,你必须训练检测器之前新的训练图像进行检测。使用trainYOLOv4ObjectDetector功能训练检测器。

探测器= yolov4ObjectDetector (,,aboxes)创建一个对象探测器通过深入学习网络

如果是一个pretrained YOLO v4意思深学习网络,该函数创建一个pretrained YOLO v4意思对象探测器。的aboxes值用于训练网络。

如果是一个未经训练的YOLO v4意思深学习网络,这个函数创建一个YOLO v4意思对象探测器用于培训和推理。aboxes指定对象类和锚箱,分别训练YOLO v4意思网络。

使用trainYOLOv4ObjectDetector功能训练网络执行对象检测之前。

例子

探测器= yolov4ObjectDetector (baseNet,,aboxes“DetectionNetworkSource”,)创建一个YOLO v4意思对象探测器通过添加检测头基地网络,baseNet

指定的函数将检测头添加到特征提取层在基础网络。指定的名称特征提取层,使用名称-值参数“DetectionNetworkSource”,

如果baseNetpretrained深入学习网络,有人知道由罗v4函数创建一个对象探测器,并配置它来执行转移学习与指定的对象类和锚盒子。

如果baseNet是一个未经训练的深度学习网络,该函数创建一个YOLO v4意思对象探测器和配置对象检测。aboxes指定对象类和锚箱,分别训练YOLO v4意思网络。

你必须训练检测器在训练数据集执行对象检测。使用trainYOLOv4ObjectDetector功能训练检测器。

探测器= yolov4ObjectDetector (___,名称=值)设置InputSizeModelName对象的属性检测器通过使用名称,值对参数。的名字属性名和吗价值相应的价值。你必须在报价附上每个属性的名字。

请注意

使用pretrained YOLO v4意思可可训练数据集对象检测网络,您必须安装计算机视觉工具箱YOLO v4意思™模型对象检测。你可以下载并安装计算机视觉工具箱YOLO v4意思对象模型检测从附加的探险家。关于安装插件的更多信息,请参阅获取和管理插件。要运行这个函数,您将需要深度学习工具箱™。

输入参数

全部展开

的名字pretrained YOLO v4意思深学习网络,指定为其中的一个:

  • “csp-darknet53-coco”——pretrained YOLO v4意思深入学习网络使用CSP-DarkNet-53创建为基础网络和可可训练数据集。

  • “tiny-yolov4-coco”——pretrained YOLO v4意思深入学习网络使用一个小基地创建网络和可可训练数据集。

数据类型:字符|字符串

培训对象类探测器的名字,指定为字符串向量,单元阵列特征向量,或分类向量。这个参数设置一会财产的yolov4ObjectDetector对象。

数据类型:字符|字符串|分类

锚箱训练检测器,指定为一个N1单元阵列。N是输出层的数量YOLO v4意思深学习网络。每个单元包含一个2矩阵,是锚箱的数量在这一层。中的每一行2的矩阵表示形式锚箱的大小(高度宽度]。

细胞数组中的第一个元素指定了锚箱与第一输出层单元数组中的第二个元素指定了锚箱与第二个输出层,等等。对于准确的检测结果,指定大锚箱第一输出层和小锚箱输出层。即锚箱尺寸必须为每个输出层减少层的顺序出现在YOLO v4意思深学习网络。

这个参数设置AnchorBoxes财产的yolov4ObjectDetector对象。

数据类型:细胞

YOLO v4意思深学习网络,作为一个指定dlnetwork(深度学习工具箱)对象。输入网络可以是一个未经训练或pretrained深度学习网络。输入网络输入层和必须有一个形象归一化图像的属性值必须设置为输入层“没有”

基础网络创建YOLO v4意思深入学习网络,作为一个指定dlnetwork(深度学习工具箱)对象。网络可以是一个未经训练或pretrained深度学习网络。输入网络输入层和必须有一个形象归一化图像的属性值必须设置为输入层“没有”

特征提取层基础网络的名称,指定为一个单元阵列的特征向量,或一个字符串数组。这个函数创建一个YOLO v4意思网络通过添加检测头层到输出层特征提取的基础网络。

例子:层= {‘conv10’,‘fire9-concat’,‘fire8-concat}

例子:层= [“conv10”、“fire9-concat”,“fire8-concat”)

数据类型:字符|字符串|细胞

属性

全部展开

YOLO v4意思深入学习网络用于目标检测,存储为一个dlnetwork(深度学习工具箱)对象。

对象类的名字来检测,存储为一个分类向量。你可以设置这个属性使用输入参数

这个属性是只读的。

锚箱,存储为一个N1单元阵列。计算单元中的每个元素2矩阵。中的每一行2的矩阵表示形式的锚箱的大小(高度宽度]。表示锚箱的数量。N是输出层的数量YOLO v4意思深入学习网络的定义锚箱。细胞数组中的第一个元素指定了锚箱第一输出层单元数组中的第二个元素指定了锚箱的第二输出层,等等。您必须指定相同数量的锚箱的每个输出层。

你可以设置这个属性使用输入参数aboxes

这个属性是只读的。

图像大小用于训练,存储为一个向量的形式(高度宽度]或[高度宽度渠道]。设置此属性,指定对象创建。训练图像的大小必须是32的倍数。

例如,探测器= yolov4ObjectDetector(净类、aboxes InputSize = (220 - 220))

的名字对象探测器,存储为一个特征向量或字符串标量。设置此属性,指定对象创建。

例如,yolov4ObjectDetector(净、类aboxes ModelName =“customDetector”)设置对象探测器的名称“customDetector”

对象的功能

检测 检测对象使用YOLO v4意思对象探测器

例子

全部折叠

指定的名称pretrained YOLO v4意思深学习网络。

name =“tiny-yolov4-coco”;

创建YOLO v4意思对象探测器利用pretrained YOLO v4意思网络。

探测器= yolov4ObjectDetector(名称);

显示和探测器检查YOLO v4意思的属性对象。

disp(探测器)
yolov4ObjectDetector属性:网络:[1×1 dlnetwork] AnchorBoxes:{2×1细胞}一会:{80×1细胞}InputSize: [416 416 3] ModelName:“tiny-yolov4-coco”

使用analyzeNetwork显示YOLO v4意思网络体系结构和网络层的信息。

analyzeNetwork (detector.Network)

检测对象在一个未知的图像通过使用pretrained YOLO v4意思对象探测器。

img = imread (“highway.png”);[bboxes、分数、标签]=检测(探测器,img);

显示检测结果。

detectedImg = insertObjectAnnotation (img,“矩形”、bboxes、标签);图imshow (detectedImg)

这个例子展示了如何创建一个YOLO v4意思对象检测网络使用pretrained ResNet -50卷积神经网络为基础的网络。

加载一个pretrained深入学习网络作为基础网络。这个示例使用ResNet-50 pretrained网络为基础网络。其他可用pretrained网络的信息,请参阅Pretrained深层神经网络(深度学习工具箱)

basenet = resnet50;

使用analyzeNetwork显示基础网络的体系结构。

analyzeNetwork (basenet)

第一层在基地网络图像输入层。检查图像的属性输入层的基础网络。

basenet.Layers (1)
ans = ImageInputLayer属性:名称:“input_1”InputSize: [224 224 3] Hyperparameters DataAugmentation:“没有”正常化:“zerocenter”NormalizationDimension:“汽车”的意思是:(224×224×3个)

创建一个YOLO v4意思深入学习网络必须使这些更改基础网络:

  1. 设置归一化财产的ImageInputLayer基础网络的没有一个”。

  2. 删除分类完全连接层。

定义一个图像输入层归一化属性值为“没有一个和其他属性值相同的基础网络。

图象尺寸= basenet.Layers (1) .InputSize;layerName = basenet.Layers (1) . name;newinputLayer = imageInputLayer(图象尺寸,“归一化”,“没有”,“名字”,layerName);

基础网络提取层图用于创建YOLO v4意思深入学习网络. .

lgraph = layerGraph (basenet);

删除完全连接层的基础网络。

lgraph = removeLayers (lgraph,“ClassificationLayer_fc1000”);

替换图像输入层与新的输入基础网络层。

lgraph = replaceLayer (lgraph layerName newinputLayer);

创建一个dlnetwork对象的层

dlnet = dlnetwork (lgraph);

指定的名称特征提取层基础网络使用的检测头。

featureExtractionLayers = [“activation_22_relu”,“activation_40_relu”];

指定要使用的类名和锚箱培训使用创建的YOLO v4意思深入学习网络resnet50为基础网络。

类= {“汽车”,“人”};anchorBoxes = {(122177, 223, 84, 80, 94];[111,38岁,33岁,47岁,37岁,18]};

创建一个YOLO v4意思对象探测器通过使用指定的基础网络和检测。

探测器= yolov4ObjectDetector (dlnet类、anchorBoxes DetectionNetworkSource = featureExtractionLayers);

显示和探测器检查YOLO v4意思的属性对象。

disp(探测器)
yolov4ObjectDetector属性:网络:[1×1 dlnetwork] AnchorBoxes:{2×1细胞}一会:{2×1细胞}InputSize: [224 224 3] ModelName:“

使用analyzeNetwork显示YOLO v4意思网络体系结构和网络层的信息。

analyzeNetwork (detector.Network)

扩展功能

版本历史

介绍了R2022a