积分图像(Integral Image)和积分直方图

2023-11-19

积分图像文章推荐:http://blog.sina.com.cn/s/blog_4cb0b54301017wwo.html

                               https://blog.csdn.net/u010807846/article/details/50354000


参考文献:

    [1] Viola P., Jones M. J. Rapid Object Detection Using a Boosted Cascade of Simple Features. Computer Vision and Pattern Recognition, 2001, Volume 1, 8-14.
    [2] Lampert C., Blaschko M., Hofmann T. Efficient subwindow search: A branch and bound framework for object localization. IEEE PAMI 31(2009)2129-2142.
    [3] F.Porkili. Integral Histogram: A fast way to extract histograms in cartesian spaces. In Proc.IEEE Conf. on Computer Vision and Pattern Recognition(CVPR), 2005.

在[1]中,有两个重要的思想:

    1 级联弱分类器可以组成强分类器,且最终的结果可以媲美甚至于超越很多强的分类器。这也是至今仍然常用的一种分类器框架---Ensemble Classifier
    2 为了能够快速实时有效的检测物体,利用pre-compute理念,形成积分图像的模式。到要用到pixel值的时候,一个矩形框的像素可以通过4次简单的查表得到,在Real-time下非常的实用。也是至今仍然很多人借用的方法之一。
    积分图像:
    先看这个最原始的玩意。给定一副图像(最好是灰度scale,彩色的话需要对每一个通道都要计算)。灰度值如下图所示:
图1:图像灰度
    图1是一副图像的像素(里面像素都是灰度scale,为了方便解释这里的灰度值都是1~9),要计算图中深度底色的矩形框中的灰度和,最直接的想法就是将这9个像素值直接相加,用数学公式表示就是:
      
公式1:i,j代表位置,image代表图像
    很显然,如果只是针对小区域的话,这样的加减倒也不是很复杂,如果这个区域包含成千上万的像素,那计算起来就比较复杂了。所以随着计算区域的增大,时间复杂度增长也很快。
    那有没有一种比较简单的方法,可以无论需要计算的区域有多大,它的时间复杂度都不变呢,或者变化很小。这就是积分图像最初的考虑策略,尽量减少后续的计算以达到实时的效果。
    
    积分图像,顾名思义,对每一个点的像素值,做相应的积分,其实简单表达就是每一个点的像素值就等于在这之前所有像素值的和。将图1转化为积分图像如图2:
图2:图1的积分图像
    现在计算图中深度区域的值就可以很简单利用4次差别结果得到:120 - 42 - 21 + 6 = 63。
    怎样利用积分图像来计算任意矩形框的值呢?一般来说简单作4次查表,再简单的“--+”运算即可得到矩形框里面的灰度和。
    解释:
图3:积分图像计算
    区域1 : = sum(A);
    区域2 : = sum(A + B);
    区域3 : = sum(A + C);
    区域4 : = sum(A + B + C + D);
    
    所以,如果需要计算D区域中的灰度和,则
    sum(D) = 区域4 - 区域2 - 区域3 + 区域1 (都是灰度值)。
    很明显,这里仅仅只需要通过查表得到 1、2、3、4点的积分图像的值即可得到。
    
    这其实就是积分图像最妙的地方,通过简单的预计算处理,存储整幅图像的积分图像,通过4次快速查表,便可以得到一个矩形框中的灰度和。下图是计算积分图像的公式:
公式2
    直接利用[1]中的解释:s(x,y)是row的积分值,ii(x,y)就是最终的积分图像。
    正因为积分图像实现简单,速度快,从提出以后,后面相应的出现了更多在此基础上做文章的研究。例如“Sub-Window Search”[2]也是通过利用积分图像的原理,从全局进行深度搜索,最终得到一个比较好的定位。另外,[3]也是在原始的灰度积分图像上做出的一点扩展,将这种快速算法扩展到直方图的计算上来,也可以很好的进行图像的定位。

积分直方图:
    还是利用图1中的灰度作为例子。在积分直方图中,最小的积分单元不再是灰度,而是灰度或者彩色的直方图。如果对于图1中,选择9个bin作为基,则将图1通过转化每个bin的 频率,如图4所示:
图4:频率图
    参考直方图的概念[4],不作详细解释为什么会是这样的频率。
    但是,想把上面的图变成积分图的形式,与最初的积分图像不一样的地方在于,并不能把这些数字积分相加起来,而应该把 每一部分的bin进行对应的处理。即bin与bin之间的相加。例如在图中点(1,1)处的bin与点(1,2)处的bin如下图:
图5:左图为点(1,1)处原始直方图,右图为点(1,2)处
的原始直方图
    而点(1,2)处的积分直方图为点(1,1)处的原始直方图加上点(1,2)处的原始直方图(对应的bin)相加。得到结果如下图:
图6:积分直方图
    在点(1,2)处利用积分的思想,存入的值应该是上图的直方图。以此类推,后面的每一个点的直方图都是前面所有点的直方图的和。
    其实积分直方图的过程包括计算积分以及后续的查表得到某一个区域的值都与积分图像非常的相似。
     心得:
    积分图像的好处就在于能够很快的处理某一个区域的值,但如果预计算包括预存储的空间非常的大,也可能这种空间换时间的方法就不再成为通用的解决办法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

积分图像(Integral Image)和积分直方图 的相关文章

  • 【计算机视觉

    文章目录 一 检测相关 8篇 1 1 Explainable Cost Sensitive Deep Neural Networks for Brain Tumor Detection from Brain MRI Images consi
  • 卷积神经网络应用之图像分割

    SPP结构主要学自该博客 深度学习 十九 基于空间金字塔池化的卷积神经网络物体检测 FNC FNC主要做的是基于像素的图像分割预测 其做法是先按照传统的CNN结构得到feature map 将传统的全连接层替换成相应的卷积层 如最后一层特征
  • anylabeling安装与使用说明

    文章目录 一 anylabeling说明 二 安装教程 1 可执行程序方式 2 python程序 一 anylabeling说明 官网 https anylabeling nrl ai docs 该工具作为一个具有Segment Anyth
  • 硬币系列二

    最近搞了一些稀奇硬币 老潘把他们都用手机拍了下来 但是由于手机镜头焦距所限 并不能让硬币充满整个画面 所以很自然的想法就是 把硬币从图片中裁剪出来 一个正常人的做法是 把需要拍摄特写的物品放在纯净颜色的背景上 这种做法其实也有利于后期的抠图
  • CVPR 2020

    性能优于PDA MDA和SWDA等网络 作者团队 北京航空航天大学 1 引言 近年来 在基于深度学习的目标检测中见证了巨大的进步 但是 由于domain shift问题 将现成的检测器应用于未知的域会导致性能显著下降 为了解决这个问题 本文
  • 【计算机视觉

    文章目录 一 分割 语义相关 11篇 1 1 Two Approaches to Supervised Image Segmentation 1 2 Boundary Refined Prototype Generation A Gener
  • 深度可分离卷积的计算量

    深度可分离卷积将传统的卷积分解为一个深度卷积 depthwise convolution 一个 1 1的卷积 pointwise convolution 如下图所示 a 是传统卷积 b c 分别对应深度可分离卷积的深度卷积和 1 1的卷积
  • priorityQueue优先级队列 (python、c++)

    优先级队列 优先级队列 python C 最近用优先队列写了一个SNIC超像素分割的工程 有兴趣的可以下载看看 VIP大佬让我赚一点下载积分吧 感激不尽 https download csdn net download koffee f 1
  • 1.2【Mask-RCNN训练自己的数据集】---- Part Two: 模型训练(全部流程总结+部分释义)

    二 编写模型训练代码 打开MaskRCNN文件夹下的samples文件夹 存在以下四个文件夹 下述模型训练代码将对shapes文件夹下的train shapes ipnyb 进行修改 这里是jupyter的文本格式 笔者不太习惯使用这种格式
  • 计算机视觉:分割一切AI大模型segment-anything

    1 segment anything介绍 Segment Anything Model SAM 来源于Facebook公司Meta AI实验室 据Mata实验室介绍 SAM 已经学会了关于物体的一般概念 并且它可以为任何图像或视频中的任何物
  • 【Semantic Segmentation】语义分割综述

    Semantic Segmentation 语义分割综述 metric 为mIOU year method PASCAL VOC 2012 PASCAL Context Cityscapes ADE20K 2019 HRNet 54 0 8
  • 语义分割——SegNet(四)

    简介 补充一下2015年发表的SegNet模型 它是由剑桥大学团队开发的图像分割的开源项目 该项目可以对图像中的物体所在区域进行分割 SegNet是在FCN的语义分割任务基础上 搭建encoder decoder对称结构 实现端到端的像素级
  • U2Net、U2NetP分割模型训练---自定义dataset、训练代码训练自己的数据集

    前言 博客很久没有更新了 今天就来更新一篇博客吧 哈哈 最近在做图像分割相关的任务 因此 写这么一篇博客来简单实现一下分割是怎么做的 内容简单 枯燥 需要耐心看 哈哈 博客的内容相对简单 比较适合刚接触分割的同学参考学习 这篇博客在算法训练
  • 关注公号: AI深度视线

    1 引言 摘要 在这项工作中 我们旨在构建一个性能强大的简单 直接和快速的实例分割框架 我们遵循SOLOv1方法的原理 SOLO 按位置分割对象 重要的是 我们通过动态学习目标分割器的mask head 具体来说 将mask分支解耦为mas
  • 医学图像分割研究思路

    医学图像分割的主流方法之一是基于水平集 Level Set 的分割方法 目前针对主流的分割方法 我们主体研究思路如下图 在模型凸化以及形状先验两个方面 未开展相关工作 参考文献 部分演示代码 参数随图像需要调整 7 Xiaomeng Xin
  • 【MATLAB教程案例23】基于MATLAB图像分割算法仿真——阈值分割法、Otsu阈值分割法、K均值聚类分割法等

    FPGA教程目录 MATLAB教程目录 目录 1 软件版本 2 通过二值图实现图像分割 3 通过Otsu阈值分割实现图像分割
  • 深度学习训练之optimizer优化器(BGD、SGD、MBGD、SGDM、NAG、AdaGrad、AdaDelta、Adam)的最全系统详解

    文章目录 1 BGD 批量梯度下降 2 SGD 随机梯度下降 2 1 SGD导致的Zigzag现象 3 MBGD 小批量梯度下降 3 1 BGD SGD MBGD的比较 4 SGDM 5 NAG 6 AdaGrad Adaptive Gra
  • 《图像分割Unet网络分析及其Pytorch版本代码实现》

    最近两个月在做学习图像分割方面的学习 踩了无数的坑 也学到了很多的东西 想了想还是趁着国庆节有时间来做个总结 以后有这方面需要可以来看看 神经网络被大规模的应用到计算机视觉中的分类任务中 说到神经网络的分类任务这里不得不提到CNN 卷积神经
  • 积分图像(Integral Image)和积分直方图

    积分图像文章推荐 http blog sina com cn s blog 4cb0b54301017wwo html https blog csdn net u010807846 article details 50354000 参考文献
  • 1.1【Mask-RCNN训练自己的数据集】---- Part One:制作数据集(全部流程总结+部分释义)

    写在前面 该实现基于Tensorflow Keras框架 在Ubuntu16 04下运行 官方github MaskRCNN demo 一 制作数据集 1 1 下载安装Labelme Labelme用来制作图像分割数据集 在安装Labelm

随机推荐

  • 能力成熟度模型集成(CMMI)

    实施CMMI意义 质量和进度 能保证软件开发的质量与进度 能对 杂乱无章 无序管理 的项目开发过程进行规范 成功控制 因为质量有所保证 浪费在修改 解决客户的抱怨方面的成本降低很多 绩效管理水平 公司通过过程改进 简历财富库以共享经验 而不
  • postman使用过程中body中的form-data,x-www-form-urlencoded,raw,binary的简单记录

    引言 初次使用postman不是很清楚怎么使用 就直接上手 不想看postman的使用文档 故而采用直接上手实验的方式 下面记录一下 body在使用的时候的四种类型 类型说明 form data 既可以上传键值对 也可以上传文件 当上传的字
  • Gradle 庖丁解牛(构建源头源码浅析)

    http blog csdn net yanbober article details 60584621 是一个基于 Groovy 的框架了 也就是说我们得按照他的约束来玩了 和我们平时 Android 开发使用框架类似 一旦引入框架 我们
  • pandas---数据处理(excel文件)

    近期在弄一个项目的前期数据 所以总结了一下 内容如下 以下以csv文件为例 1 DataFrame常用操作 1 1 DataFrame去除空行 1 对于一般空行 2 对于列表式 list 空行 1 2 数据的填充 1 表格中填充0 1 3
  • Jenkins安装及基础环境配置

    原文地址 Jenkins安装及基础环境配置 BIGTREE Jenkins服务安装 方式1 下载jenkins war包 直接tomcat或者java jar jenkins war运行 方式2 直接jenkins msi安装 Window
  • mybatis逆向工程之动态web项目

    有了逆向工程 单表的增删改查以及相关的实体类 还有属性注释都不用自己写了 都可以自动化生成 只需如下三步即可 逆向工程的优点是 自动化生成实体类和对应的增删改查 效率相对于之前个人开发时一个个写增删改查要高的多 逆向工程的缺点是 xml中的
  • 《硬件接入》3288板刷机及屏幕参数配置探索

    最近在工控机上做了项目 涉及到地磅接入 打印机接入 海康威视摄像头接入等功能 摸索下来其实硬件接入都是比较简单的事 一般1 2天就可以完成一个单独模块开发了 不过也遇到一些比较麻烦的事 比如买的3288板工控机 刷的固件是6 0 1 这个固
  • C++ 获取文件版本号的代码

    Test cpp 定义控制台应用程序的入口点 include stdafx h include
  • HTML连载85-添加选择圆点

    一 添加选择圆点 先上个半成品 div class top div class top in div class top left div div div
  • 云计算——ACA学习 云计算核心技术

    作者简介 一名云计算网络运维人员 每天分享网络与运维的技术与干货 座右铭 低头赶路 敬事如仪 个人主页 网络豆的主页 写在前面 本系列将会持续更新云计算阿里云ACA的学习 了解云计算及网络安全相关从业的基础知识 以及阿里云产品的使用部署 提
  • 2023智慧城区统一运营白皮书

    本白皮书讨论的 智慧城区 概念 是围绕多种服务业态 特定区域的智慧统一运营管理服务 我们从管理属性 服务业态 管理面积 智慧化程度4个方面对智慧城区分析 把以企业为主导 政府相关部门 社会组织 城区居民等多方协同治理 通过跨业态 跨空间的智
  • matlab中产生随机点,如何在matlab中制作圆形并在里面生成随机点

    这里的另一种选择 Set parameters R 0 5 radius C 3 4 center x y N 50 number of points inside circle generate circle boundary t lin
  • MATLAB2012a下载、安装及破解方法

    下载地址如下 http yunpan cn cyjGMugpDGsse 提取码 32e8 安装步骤如下 1 解压压缩包 打开文件夹内的setup exe 2 选择 不使用Internet安装 3 接受许可协议条款 点击 是 4 选择 我已有
  • Python,燃气火焰检测主要步骤!

    问题描述 在现有的基础上 燃气火焰的检测主要是基于火焰颜色特征 由于燃气火焰不同于普通火焰 其中蓝色分量较多 一般的检测方法准确度不够 故采取其他方法来检测火焰 下面主要介绍4个步骤的思路和主要的 python 代码 解决方案 1 背景差分
  • Python和Matplotlib电磁一维二维三维模拟

    自由空间中传播的脉冲一维模拟 自由空间的时间相关麦克斯韦旋度方程为 E
  • vue3中的readonly

    接受一个对象 不论是响应式还是普通的 或是一个 ref 返回一个原值的只读代理 只读代理是深层的 对任何嵌套属性的访问都将是只读的 它的 ref 解包行为与 reactive 相同 但解包得到的值是只读的 类型 function reado
  • VS2019版本下载详细介绍~

    一 下载地址 第一种方法 VS官网 Visual Studio 2022 IDE 适用于软件开发人员的编程工具 因为官网现在主推2022版本的VS 所以需要选择老旧版本下载 点击下载按钮 向下滑动 该方法需要登录微软账户 才能选择老旧版本的
  • sort的用法

    sort的用法 详细见cplusplus 1 默认的sort函数是按升序排 对应于1 sort a a n 两个参数分别为待排序数组的首地址和尾地址 2 可以自己写一个cmp函数 按特定意图进行排序 对应于2 例如 sort algorit
  • SOIL在VS2015搭建

    这是SOIL库的主页 http www lonesock net soil html 下载好解压 进project vc9 用Vs打开项目 编译记得用release 如果用的OPengl是64位的就用64位编译 不然生成的lib不能用 运行
  • 积分图像(Integral Image)和积分直方图

    积分图像文章推荐 http blog sina com cn s blog 4cb0b54301017wwo html https blog csdn net u010807846 article details 50354000 参考文献