opencv 图像上画出目标运动的轨迹_OpenCV中的显著性检测(Saliency Detection)

b94c8fc37b9865fa99b8351f599461eb.png

前言

显著性检测,就是使用图像处理技术和计算机视觉算法来定位图片中最“显著”的区域。显著区域就是指图片中引人注目的区域或比较重要的区域,例如人眼在观看一幅图片时会首先关注的区域。例如下图,我们人眼一眼看过去首先注意到的不是草坪,而是躺在草坪上的内马尔,内马尔所在的区域就是显著性区域。这种自动定位图像或场景重要区域的过程称为显着性检测。显著性检测在目标检测、机器人领域有很多应用。

13c445146a9812138dc03e297d0ada79.png

三种显著性检测算法

在OpenCV的saliency模块中有三种显著性检测算法:

  • Static saliency:此类显着性检测算法依赖于图像特征和统计信息来定位图像中显著性区域。
  • Motion saliency: 此类显着性检测算法输入为视频或一系列连续帧。运动显着性算法处理这些连续的帧,并跟踪帧中“移动”的对象。这些移动的对象被认为是显着性区域。
  • Objectness:这类显著性检测算法计算出一个个的建议区域(proposals),这些建议区域被认为是目标可能存在的区域。

需要注意的是显著性检测不是目标检测,显著性检测算法并不能判断图片中是否有“目标”,它只能检测出图片中它“认为”有目标的区域,这些区域可能真的包含目标,也可能不包含目标。通常显著性检测算法是许多计算机视觉任务的第一步,检测出显著性区域后再对这些显著性区域进一步判断和预测。

显着性检测器通常是非常快速的算法,能够实时运行。显着性检测器的结果随后被传递到计算量更大的算法中。这样后续计算量大的算法不必在图像的每个区域运行,而只需在显著性区域上运行。

OpenCV中的显著性检测算法

OpenCV的显著性检测算法在contrib包中,所以要使用显著性检测算法需要安装OpenCV_contrib包。OpenCV中显著性检测模块Saliency的类关系如下:

ce7d3c18121496404823f36e83fe02c8.png

OpenCV提供类4种显著性检测算法的实现:

  • cv2.saliency.ObjectnessBING_create()
  • cv2.saliency.StaticSaliencySpectralResidual_create()
  • cv2.saliency.StaticSaliencyFineGrained_create()
  • cv2.saliency.MotionSaliencyBinWangApr2014_create()

下面我

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值