积分图像(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)和积分直方图 的相关文章

  • 【计算机视觉

    文章目录 一 分割 语义相关 20篇 1 1 VideoCutLER Surprisingly Simple Unsupervised Video Instance Segmentation 1 2 Compositional Semant
  • CVPR 2020

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

    文章目录 一 网络结构 1 总体网络结构 2 主干网络介绍 backbone 2 1 多分支模块堆叠 2 2 下采样网络结构 2 3 整个backbone代码 3 FPN特征金字塔 二 预测结果的解码 1 获得预测框 置信度 种类的数值 2
  • 深度学习图像分割算法—FCN代码实现

    FCN 全卷积网络 原论文链接 https arxiv org pdf 1411 4038 pdf 官方源代码 https github com shelhamer fcn berkeleyvision org截图如下 data文件夹 官方
  • 【计算机视觉

    文章目录 一 分割 语义相关 11篇 1 1 Two Approaches to Supervised Image Segmentation 1 2 Boundary Refined Prototype Generation A Gener
  • 基于深度学习的图像分割总结

    一 图像分割类别 随着深度学习的发展 在分割任务中出现了许多优秀的网络 根据实际分割应用任务的不同 可以大致将分割分为三个研究方向 语义分割 实例分割 全景分割 这三种分割在某种意义上是具有一定的联系的 语义分割 像素级别的语义分割 对图像
  • 全卷积网络(FCN)与图像分割

    从图像分类到图像分割 卷积神经网络 CNN 自2012年以来 在图像分类和图像检测等方面取得了巨大的成就和广泛的应用 CNN的强大之处在于它的多层结构能自动学习特征 并且可以学习到多个层次的特征 较浅的卷积层感知域较小 学习到一些局部区域的
  • 【计算机视觉】三种常用的分割数据集:室内场景(ADE20K)、室外场景(Cityscapes)和驾驶场景(BDD100K)

    文章目录 一 室内场景 ADE20K 1 1 背景介绍 1 2 数据集的介绍 二 驾驶场景 BDD100K 三 室外场景 Cityscapes 一 室内场景 ADE20K 1 1 背景介绍 ADE20K 数据集是 2016 年 MIT 开放
  • 深度对抗学习在图像分割和超分辨率中的应用

    深度学习已经在图像分类 检测 分割 高分辨率图像生成等诸多领域取得了突破性的成绩 但是它也存在一些问题 首先 它与传统的机器学习方法一样 通常假设训练数据与测试数据服从同样的分布 或者是在训练数据上的预测结果与在测试数据上的预测结果服从同样
  • 图像分割中的损失函数

    图像分割中的损失函数 文章目录 图像分割中的损失函数 前言 一 交叉熵损失 二 Dice loss 三 Focal loss 四 IOU损失函数 总结 前言 在深度学习中 所有算法都依赖于最小化或最大化一个函数 称之为损失函数 损失函数用于
  • 【计算机视觉

    文章目录 一 分割 语义相关 12篇 1 1 MeViS A Large scale Benchmark for Video Segmentation with Motion Expressions 1 2 Likelihood Based
  • 计算机视觉:分割一切AI大模型segment-anything

    1 segment anything介绍 Segment Anything Model SAM 来源于Facebook公司Meta AI实验室 据Mata实验室介绍 SAM 已经学会了关于物体的一般概念 并且它可以为任何图像或视频中的任何物
  • Criss-Cross Attention for Semantic Segmentation论文及代码分析

    先附上论文及代码 该工作于2019年发表于ICCV会议 1 Introduction 由于固定的几何结构 传统的FCN受限于局部的感受野 只能提供短程的上下文信息 这对于提升分割任务的精度起到相反的影响 为了弥补FCN的缺陷 ASPP和PP
  • 局部自适应阈值分割方法

    github地址 https github com radishgiant ThresholdAndSegment git Local Yanowitz 由于光照的影响 图像的灰度可能是不均匀分布的 此时单一阈值的方法分割效果不好 Yano
  • Pyramid Scene Parsing Network

    Pyramid Scene Parsing Network Keras实现代码链接 https github com BBuf Keras Semantic Segmentation Contribution 提出了金字塔场景解析网络 以将
  • 论文解析:基于深度卷积神经网络的城市遥感图像小物体语义分割及不确定性建模

    一 引言 首先贴下论文链接 http www cv foundation org openaccess content cvpr 2016 workshops w19 papers Kampffmeyer Semantic Segmenta
  • 【MATLAB教程案例23】基于MATLAB图像分割算法仿真——阈值分割法、Otsu阈值分割法、K均值聚类分割法等

    FPGA教程目录 MATLAB教程目录 目录 1 软件版本 2 通过二值图实现图像分割 3 通过Otsu阈值分割实现图像分割
  • 1.3 【Mask-RCNN训练自己的数据集】---- Part Three: 用自己训练的模型进行测试(全部流程总结+部分释义)

    三 模型测试 import os import sys sys path remove opt ros kinetic lib python2 7 dist packages import random import math import
  • 图像分割2021

    cvpr2022总结 CVPR 2022 图像分割论文大盘点 大林兄的博客 CSDN博客 图像分割最新论文 尽管近年来实例分割取得了长足的进步 但如何设计具有实时性的高精度算法仍然是一个挑战 本文提出了一种实时实例分割框架OrienMask
  • 《图像分割Unet网络分析及其Pytorch版本代码实现》

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

随机推荐

  • 能力成熟度模型集成(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 参考文献