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

MATLAB神经网络(五)——R-CNN视觉检测

5.1 目标分类、检测与分割

        在计算机视觉领域,目标分类、检测与分割是常用计数。三者的联系与区分又在哪呢?目标分类是解决图像中的物体是什么的问题;目标检测是解决图像中的物体是什么,在哪里的问题;目标分割时将目标和背景分离出来,找出目标的轮廓线。

        衡量目标检测性能优劣的指标一方面要体现分类特性(准确度、精确率、召回率),另一方面要体现其定位特征,对于定位特征,通常用IoU来评价。交并比用来计算两个边界框交集和并集和并集之比,它衡量了两个边界框的重叠程度,如果重叠程度越高,检测越准确

5.2 R-CNN目标检测算法原理与实现

        R-CNN利用候选区域+卷积神经网络的方法,解决了图像中的定位问题,对于小规模数据集的问题,R-CNN利用AlexNet在ImageNet上预训练好的模型,基于迁移学习的原理,对参数进行微调。

     

        第一步:首先会有很多候选框区域,这些区域是由图像分割的方法得到的原始区域然后进行合并,得到的一个层次化的区域,这些区域内就可能存在需要的内容

        第二步:因为使用的为AlexNet,上一章我们很详细的说明了。将我们的候选区域压缩到  227*227,输入到神经网络中获得4096维的矩阵,每个候选区域都有一个矩阵。

        第三步:判断类别,候选框个数*4096特征与20哥SVM支持向量机组成的全职矩阵 4096*20,获得  2000 * 20维矩阵,分别对上述2000×20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框。

         SVM是线性分类器,相当于绘出一条线,让两组不同的数据距离他的距离最远。

        最后修正这个框,得到得分最高的框

  基于上面的过程,下面给出步骤:

        首先通过Image Labeler App构建R-CNN目标检测器,并导入图片

        并利用标签对图像进行标志

        标签完成后导出到工作空间内

trainingdate=objectDetectorTrainingData(gTruth);

        objectDetectorTrainingData函数可以将我们上面导出的图片转换为用于训练的数据,就可以导入网络进行使用了,给出完整代码如下:



%%  进行数据类型的转化
trainingdate=objectDetectorTrainingData(gTruth);
%%  导入网络
net=alexnet;
%%  设置训练策略参数并进行训练
% 设置训练策略参数
options = trainingOptions('sgdm', ...
        'MiniBatchSize', 128, ...
        'InitialLearnRate', 1e-3, ...
        'LearnRateSchedule', 'piecewise', ...
        'LearnRateDropFactor', 0.1, ...
        'LearnRateDropPeriod', 100, ...
        'MaxEpochs',10, ...
        'Verbose', true);

% 训练网络.
    rcnn = trainRCNNObjectDetector(trainingdate, net, options, ...
    'NegativeOverlapRange', [0 0.3], 'PositiveOverlapRange',[0.5 1]) ;

%%  显示测试结果
% 读取数据
I = imread('E:\MATLAB_DeepLearning\chapter_9\stop_sign_ch\slowtest.jpg');
% 用检测器测试
[bboxes,scores] = detect(rcnn,I);
% 标注测试结果并显示
I = insertObjectAnnotation(I,'rectangle',bboxes,scores);
figure
imshow(I)

效果如下:

111                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           


http://www.kler.cn/a/409221.html

相关文章:

  • 一文学会Golang里拼接字符串的6种方式(性能对比)
  • 零基础学指针(上)
  • 量子卷积神经网络
  • 01Web3.0行业
  • 泷羽sec学习打卡-超文本协议和内外网划分
  • Android Gradle 插件和 Android Studio 兼容性
  • 什麼是ISP提供的公共IP地址?
  • 低成本TYPE-C转DP线
  • 企业OA系统:Spring Boot技术实现与管理
  • 对传统加密算法降维打击?!——量子计算
  • springMVC重点知识
  • Centos-stream 9,10 add repo
  • 对元素为 pair 的数组的各元素进行排序的方法
  • 基于之前的秒杀功能的优化(包括Sentinel在SpringBoot中的简单应用)
  • 学习记录:js算法(一百零二):使用最小花费爬楼梯
  • 9.10Ubuntu网络编程环境配置,已解决
  • 力扣 41. 缺失的第一个正数
  • 【tomcat】tomcat的默认配置
  • 【Linux】详解shell代码实现(上)
  • postman 调用 下载接口(download)使用默认名称(response.txt 或随机名称)
  • A045-基于spring boot的个人博客系统的设计与实现
  • 数据结构 ——— 希尔排序算法的实现
  • 鸿蒙NEXT开发案例:二维码的生成与识别
  • Redis核心数据结构与高性能原理
  • LLM的原理理解6-10:6、前馈步骤7、使用向量运算进行前馈网络的推理8、注意力层和前馈层有不同的功能9、语言模型的训练方式10、GPT-3的惊人性能
  • leetcode 面试150之 156.LUR 缓存