4577|0

530

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

《机器学习算法与实现 —— Python编程与应用实例》-- 第六贴 目标检测和深度强化学习 [复制链接]

引言:

本贴主要分享10~11章节相关的内容,也是本书的最后两个章节。

本书第10章主要讲解了目标检测相关的内容,从图像中检测出特定的目标。并讲解了目标检测的发展历程,当前常见的算法等;

本书第11章讲解了深度强化学习的相关知识,深度强化学习是一种在交互中学习的理论

 

第十章 目标检测:

目标检测是计算机视觉的一个重要研究方向,在静态图像或者视频中找到某些特定的特征,从而判断图像/视频中出现的类别,一般会输出一个框,框出具体识别到的东西。

 

目标检测的任务:分类,定位,检测,分割。

 

目标检测的发展历程:2013年之前多以传统方法为主,特征提取加分类器。2013年之后,引入了神经网络等概念,促进了目标检测的飞速发展。

 

传统的目标检测分为:区域选取、特征提取、特征分类三个阶段。

传统的方法存在的问题是计算量很大,特征和分类器关联性较弱,而深度神经网络本身具备特征提取能力和分类能力, 可以借助GPU进行计算加速。

 

而卷积神经网络在处理图像分类问题时,一般分为两大类算法。第一大类是以R-CNN(region with CNN features)为代表的两阶算法,step1把所有物体框出来,step2,每个物体使用卷积神经网络进行分类。另外,一种是以YOLO(you only look once)/SSD(single-shot multibox detector)算法的一阶处理算法,框出物体的同时进行物体识别分类。

一阶算法,计算速度快,但精度会差些。二阶算法,计算速度慢,但精度会高一些。

 

Fast RCNN,2015年在RCNN的基础上,Fast RCNN实现了端到端的检测和卷积共享。

 

之后出现的Faster RCNN,首次提出了锚框的思想,即预先给出一些列的大小和宽高不等的先验框,他们均匀的分布在特征图上。利用特征可以预测这些锚框的类被,以及与真实目标包围框的偏移。这样可以提高检测的精度。

 

目标检测的评估方法:

1.IoU=交集/并集,假如图像中只有1个物体,定位这个物体时,输出的结果应该是一个框,但定位不准确时,这个框就会出现偏差。假如输出是B框,而实际是A框,则可以用IoU来评价定位的准确性。--适用于判断1个物体的图像的定位准确性

 

2.mAP(mean Average Precision)

按照IoU评价算法来评估每个类别的精度;

所有图像中某一类别精度的算数平均是平均精度。

平均精度均值:对所有N个类别的平均精度再取平均。

 

目标检测的原理:

由于性能的原因,目前人们基本不在使用传统的方法来进行目标检测,当前的重点是研究基于深度学习的目标检测算法。

YOLO:

You only look once, 顾名思义,看一眼就能判断出目标。它的主要思想:讲目标定位和分类用一个神经网络统一起来,实现端到端的目标检测。把目标检测问题转换为直接从图像中提取边界框和类别概率的单回归问题,一次就可以检测出目标的分类和位置。Yolo模型的运算速度非常快,借助GPU可以实现非常高的检测帧率。

2015年 yolov1

2016年 yolov2

2018年 yolov3

2020年yolov5

2022年 yolov6/7

2023 年yolov8

2024年 yolov9

Yolo的各个版本介绍,网上已经很多了,就不在赘述。

本书,讲解了yolov1~5的基本特点,然后着重讲解了yolov4的原理与实现,可以帮助读者从根本上理解人工智能网络的设计和实现。

 

 

第十一章 深度强化学习

人工智能中,有很多应用问题要求再算法时刻做出决策并执行动作。智能体在与环境的交互过程中根据获得的奖励或者惩罚不断的学习知识,调整自己的动作策略,以达到某个预期目标。解决这类问题的机器学习算法被成为强化学习。

深度强化学习是深度学习与强化学习的结合产物。

 

强化学习要解决的问题可以抽象为马尔可夫决策过程(MDP), 特点是:系统下一时刻的状态由当前时刻的状态决定,而与更早的时刻的状态无关。MDP智能体可以执行动作,以改变自己和环境的状态,并且得到惩罚和奖励。

Q学习算法:如果知道所有状态转移的概率以及结果,理论上可使用动态规划算法求解出最优策略。然而实际当中,无法直接得到所有的状态间的转移概率,无法使用动态规划来求解。从而产生了随机算法来求解。典型的便是Q学习算法。这是一种无模型的算法,他提供智能系统在马尔可夫环境下通过动作序列选择最优动作的学习能力。

 

深度强化学习:传统的Q学习中,Q值存储在Q表中,表中各行是所有可能的状态,各列是所有可能的动作。如果量少,问题不大。当面对一些存在很多可能的情况下,Q表的建立难度非常大,导致Q算法很难应用到解决现实问题当中。

为解决这个难题,可用值近似函数来表示Q表,加入权重,借助神经网络来实现。具体书中讲的很清楚,由于公式比较多,这里就不赘述了。

 

 

点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表