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

  • 开源SOLOv2,让动态实例分割更快更强更精准

    作者 介绍 作者建立一个性能强大的简单 通过动态学习对象分割器的蒙版头 使蒙版头以位置为条件 进一步提升性能 具体来说 将遮罩分支解耦为遮罩内核分支和遮罩特征分支 分别负责学习卷积内核和卷积特征 利用矩阵NMS 非最大抑制 以显着减少由于掩
  • 【计算机视觉

    文章目录 一 分割 语义相关 6篇 1 1 Consistency guided Meta Learning for Bootstrapping Semi Supervised Medical Image Segmentation 1 2
  • 卷积神经网络应用之图像分割

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

    文章目录 一 anylabeling说明 二 安装教程 1 可执行程序方式 2 python程序 一 anylabeling说明 官网 https anylabeling nrl ai docs 该工具作为一个具有Segment Anyth
  • 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文件夹 官方
  • 语义分割简单介绍

    文章目录 什么是语义分割 语义分割和图像分割的区别 语义分割的步骤 数据准备 模型构建 模型训练 模型评估 预测和应用 常用工具和框架 总结 什么是语义分割 语义分割是计算机视觉领域的一种图像分割技术 其目标是将一张图像中的每个像素分配给预
  • priorityQueue优先级队列 (python、c++)

    优先级队列 优先级队列 python C 最近用优先队列写了一个SNIC超像素分割的工程 有兴趣的可以下载看看 VIP大佬让我赚一点下载积分吧 感激不尽 https download csdn net download koffee f 1
  • 全卷积网络(FCN)与图像分割

    从图像分类到图像分割 卷积神经网络 CNN 自2012年以来 在图像分类和图像检测等方面取得了巨大的成就和广泛的应用 CNN的强大之处在于它的多层结构能自动学习特征 并且可以学习到多个层次的特征 较浅的卷积层感知域较小 学习到一些局部区域的
  • 图像分割高铁扣件

    图像分割 针对高铁扣件 在对图像的研究和应用中 人们往往仅对图像中的某些部分感兴趣 这些部分通常被称为前景或目标 其余部分则称为背景 目标一般对应于图像中特定的 具有独特性质的区域 独特性质可以是像素的灰度值 物体轮廓曲线 颜色和纹理等 为
  • 【计算机视觉】三种常用的分割数据集:室内场景(ADE20K)、室外场景(Cityscapes)和驾驶场景(BDD100K)

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

    深度学习已经在图像分类 检测 分割 高分辨率图像生成等诸多领域取得了突破性的成绩 但是它也存在一些问题 首先 它与传统的机器学习方法一样 通常假设训练数据与测试数据服从同样的分布 或者是在训练数据上的预测结果与在测试数据上的预测结果服从同样
  • 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
  • Criss-Cross Attention for Semantic Segmentation论文及代码分析

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

    在Windows上的安装 首先安装Anaconda 可以安装Python2 7版本或Python3 6版本 百度一下官网 选择对应版本即可 安装成功后 打开Anaconda Prompt 然后依次输入以下命令 python2 conda c
  • 【AI视野·今日CV 计算机视觉论文速览 第215期】Tue, 8 Jun 2021

    AI视野 今日CS CV 计算机视觉论文速览 Tue 8 Jun 2021 showing first 100 of 133 entries Totally 100 papers 上期速览 更多精彩请移步主页 Daily Computer
  • 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

随机推荐

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