精华内容
下载资源
问答
  • 本文主要针对Wavelet pooling for convolutional neural networks,ICLR 2018. 简而言之,我认为这篇文章存在一些问题,当然可能是自己理解有误。于是把自己看法分享出来,希望各位批评指正。论文地址:Wavelet ...

    本文主要针对Wavelet pooling for convolutional neural networks,ICLR 2018. 简而言之,我认为这篇文章存在一些问题,当然可能是自己理解有误。于是把自己的看法分享出来,希望各位批评指正。

    论文地址:

    Wavelet Pooling for Convolutional Neural Networksopenreview.net

    论文讲了什么?

    首先,池化是以舍弃信息来实现正则化的效果。传统的池化操作有问题。max pooling, average pooling和probabilistic pooling都有一些局限性。例如,当主要的特征幅度值低于不重要的特征时,重要的特征在max pooling中就丢失了。而average pooling接收了幅值大的特征和幅值小的特征,会稀释幅值大的特征。具体如图所示,

    c64c82e361f9034f8a37a67d5cc8b650.png

    于是相对于traditional neighborhood pooling,这篇文章从wavelet domain进行操作。具体来说,首先介绍了如何变换到wavelet domain,

    e5992b2f95604fb781145c18b86abea2.png

    这两个公式(6) (7)分别是小波变换的近似函数和细节函数,分别用于计算输入map的低频子带和高频子带。二维的输入分别在行方向和列方向应用这两个公式,于是得到四个子带LL,LH,HL和HH。其中LL表示低频特征,其余带H的表示高频特征。由于小波变换引入了下采样,因此四个子带map的边长是输入的一半。反变换可以将四个子带完美地重建出输入。

    小波变换可以进行多级。对于输入map I,一级小波变换记为

    LL1, LH1, HL1, HH1 = DWT(I)

    对应的逆变换为

    I = IDWT(LL1, LH1, HL1, HH1)

    二级小波变换针对LL1,为

    LL2, LH2, HL2, HH2 = DWT(LL1)

    对应的逆变换为

    LL1 = IDWT(LL2, LH2, HL2, HH2)

    介绍完这些基本知识,来看文章的方法是怎样的:

    739f08b39afbbe47df7e5468e7382a21.png

    文章没有给出公式表达,我用公式总结一下。对于输入图像I,进行两级小波变换,得到了

    LL2, (LH2, HL2, HH2), (LH1, HL1, HH1) = DWT(DWT(I))

    舍弃最高频的子带LH1, HL1和HH1,保留相对低频的LL2, (LH2, HL2, HH2)。最后对保留的二级小波系数进行反变换重建池化后的图像,即

    I‘ = IDWT(LL2, LH2, HL2, HH2)

    根据之前对小波变换的介绍,不难发现I‘=LL1。所以为什么要对输入图像I进行两次小波变换,再进行一次逆变换呢?进行一次小波变换,舍弃(LH1, HL1, HH1),保留LL1不就完成了小波池化吗?这两种做法有什么区别?我是觉得完全相同。

    另外一个槽点在于,文章的实验只使用了Haar小波基。Haar小波基产生的LL1分量对应的卷积核为[[1, 1], [1, 1]],这和average pooling没有任何区别呐。文章开始说average pooling具有的缺点,文章实验用的方法也逃不掉。然后,实验结果是不相同的。

    当然这个思路(进行一次小波变换,舍弃(LH1, HL1, HH1),保留LL1)已经发表在了ECCV 2018 Workshop了,论文题目为Multiple Wavelet Pooling for CNNs。另外Haar小波基等同于average pooling的问题也被消除了——该文选取了两种不同的小波基做pooling然后concat起来。这样,就算用了Haar小波基,另一个小波基也能产生不同于average pooling的效果。

    adf57d6c2901a692f4aca589a26266b6.png

    Multiple Wavelet Pooling的故事听着合理多了,但我仍然想不明白Wavelet Pooling的作者为什么要做两次正再做一次逆变换,是不是有什么理解不到位的地方,于是抱着求证的心态就去联系作者了。为了更高效的交流,我把自己的理解拆分成yes或no的选择来征求作者的意见。例如,我这样理解wavelet pooling是否正确,haar-based wavelet pooling和average pooling的输出是否相等,如果只用haar bases的话wavelet pooling和multiple wavelet pooling输出相同等等。作者没有正面回复所有问题,而是回答的比较宏观,给了几张图像(分别是wavelet pooling的输出,average pooling的输出)和对应代码,通过这几张图的不同来说明haar wavelet pooling和average pooling是不相同的。但我检查了代码,发现wavelet pooling的小波基参数是'db2'而非‘haar’小波基,这结果当然是不同的。于是我将修改成haar小波基的结果(跟average pooling相同)反馈给他并指出代码的问题。这轮依然没有正面回应yes或no的问题,而是

    1e059ceaad09ac5f899f7c0f0dc51672.png

    感觉作者并不想理我了 。作为一个强迫症,就把自己的想法分享出来,想和大家讨论确认下。

    Reference:

    [1] Williams, Travis, and Robert Li. "Wavelet pooling for convolutional neural networks." ICLR2018.

    [2] Liu, Pengju, et al. "Multi-level wavelet-CNN for image restoration."Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops. 2018.

    展开全文
  • 基于Haar小波挖掘多个数据流相关性,陈安龙,唐常杰,在涉及多个流数据应用中,流之间相关性非常重要, 此文工作包括 (1)引入了带过滤全序概念,利用小波压缩特性,描述数据流
  • 小波变换基本思想是用一组小波函数或者基函数表示一个函数或者信号,例如图像信号。为了理解什么是小波变换,下面用一个具体例子来说明小波变换过程。 1. 求有限信号均值和差值 [例8. 1] 假设有一幅...

    小波变换的基本思想是用一组小波函数或者基函数表示一个函数或者信号,例如图像信号。为了理解什么是小波变换,下面用一个具体的例子来说明小波变换的过程。

    1. 求有限信号的均值和差值

    [例8. 1] 假设有一幅分辨率只有4个像素 的一维图像,对应的像素值或者叫做图像位置的系数分别为:
    [9 7 3 5]
    计算它的哈尔小波变换系数。

    计算步骤如下:
    步骤1:求均值(averaging)。计算相邻像素对的平均值,得到一幅分辨率比较低的新图像,它的像素数目变成了2个,即新的图像的分辨率是原来的1/2,相应的像素值为:

    [8 4]

    步 骤2:求差值(differencing)。很明显,用2个像素表示这幅图像时,图像的信息已经部分丢失。为了能够从由2个像素组成的图像重构出由4个像 素组成的原始图像,就需要存储一些图像的细节系数(detail coefficient),以便在重构时找回丢失的信息。方法是把像素对的第一个像素值减去这个像素对的平均值,或者使用这个像素对的差值除以2。在这个 例子中,第一个细节系数是(9-8)=1,因为计算得到的平均值是8,它比9小1而比7大1,存储这个细节系数就可以恢复原始图像的前两个像素值。使用同 样的方法,第二个细节系数是(3-4)=-1,存储这个细节系数就可以恢复后2个像素值。因此,原始图像就可以用下面的两个平均值和两个细节系数表示,

    [8 4 1 -1]

    步骤3:重复第1,2步,把由第一步分解得到的图像进一步分解成分辨率更低的图像和细节系数。在这个例子中,分解到最后,就用一个像素的平均值6和三个细节系数2,1和-1表示整幅图像。

    [6 2 1 -1]

    这个分解过程如表8-1所示。

    表8-1 哈尔变换过程

    分辨率

    平均值

    细节系数

    4

    [9 7 3 5]

    2

    [8 4]

    [1 -1]

    1

    [6]

    [2]

    由此可见,通过上述分解就把由4像素组成的一幅图像用一个平均像素值和三个细节系数表示,这个过程就叫做哈尔小波变换(Haar wavelet transform),也称哈尔小波分解(Haar wavelet decomposition)。这个概念可以推广到使用其他小波基的变换。
    从这个例子中我们可以看到:
    ① 变换过程中没有丢失信息,因为能够从所记录的数据中重构出原始图像。
    ② 对这个给定的变换,我们可以从所记录的数据中重构出各种分辨率的图像。例如,在分辨率为1的图像基础上重构出分辨率为2的图像,在分辨率为2的图像基础上重构出分辨率为4的图像。
    ③ 通过变换之后产生的细节系数的幅度值比较小,这就为图像压缩提供了一种途径,例如去掉一些微不足道的细节系数并不影响对重构图像的理解。

    展开全文
  • 背景 图片搜索是继文字搜索后又一个比较常用搜索引擎。 市面上常见搜索引擎有谷歌、...例如在搜索引擎提供接口中上层了一张雪人图片,搜出来一堆和雪人近似图片。 图片搜索是怎么做到呢? 万能Pos...

    背景

    图片搜索是继文字搜索后又一个比较常用的搜索引擎。

    市面上常见的搜索引擎有谷歌、百度、搜狗等图片搜索引擎。
    http://image.baidu.com/
    http://images.google.com.hk

    例如在搜索引擎提供的接口中上层了一张雪人的图片,搜出来一堆和雪人近似的图片。
    screenshot

    图片搜索是怎么做到的呢?

    万能的PostgreSQL绝不落下这么好玩的东东,通过PG万能的API,可以扩展它的图片搜索功能。

    如果你对PostgreSQL扩展开发感兴趣,可以参考我写的文章
    《找对业务G点, 体验酸爽 - PostgreSQL内核扩展指南》
    https://yq.aliyun.com/articles/55981

    PostgreSQL 图像搜索插件背景技术

    PostgreSQL的图像搜索插件使用了非常主流的Haar wavelet技术对图像进行变换后存储,可以参考WIKI和一篇关于HW的文献。
    https://en.wikipedia.org/wiki/Haar_wavelet
    http://www.cs.toronto.edu/~kyros/courses/320/Lectures.2013s/lecture.2013s.10.pdf
    截取几页,注意烧脑。
    screenshot

    screenshot

    screenshot

    screenshot

    PostgreSQL 图像搜索插件介绍

    依赖gd.h

    # yum install -y gd-devel

    下载安装imgsmlr

    $ git clone https://github.com/postgrespro/imgsmlr
    $ cd imgsmlr
    $ export PGHOME=/home/digoal/pgsql9.5
    $ export PATH=$PGHOME/bin:$PATH:.
    
    $ make USE_PGXS=1
    $ make USE_PGXS=1 install

    安装插件

    $ psql
    psql (9.5.3)
    Type "help" for help.
    postgres=# create extension imgsmlr;
    CREATE EXTENSION

    imgsmlr新增了两个数据类型

    Datatype Storage length Description
    pattern 16388 bytes Result of Haar wavelet transform on the image
    signature 64 bytes Short representation of pattern for fast search using GiST indexes

    gist 索引方法(支持pattern和signature类型), 以及KNN操作符,可以用于搜索相似度

    Operator Left type Right type Return type Description
    <-> pattern pattern float8 Eucledian distance between two patterns
    <-> signature signature float8 Eucledian distance between two signatures

    新增了几个函数
    将图像的二进制转换为pattern类型,将pattern中存储的数据转换为signature类型

    Function Return type Description
    jpeg2pattern(bytea) pattern Convert jpeg image into pattern
    png2pattern(bytea) pattern Convert png image into pattern
    gif2pattern(bytea) pattern Convert gif image into pattern
    pattern2signature(pattern) signature Create signature from pattern
    shuffle_pattern(pattern) pattern Shuffle pattern for less sensitivity to image shift

    PostgreSQL 图像搜索插件测试

    导入一些图片,例如(越多越好)
    screenshot

    建立图片表

    create table image (id serial, data bytea);

    导入图片到数据库

    insert into image(data) select pg_read_binary_file('文件路径');

    将图片转换成 patten 和 signature

    CREATE TABLE pat AS (
        SELECT
            id,
            shuffle_pattern(pattern) AS pattern, 
            pattern2signature(pattern) AS signature 
        FROM (
            SELECT 
                id, 
                jpeg2pattern(data) AS pattern 
            FROM 
                image
        ) x 
    );

    创建索引

    ALTER TABLE pat ADD PRIMARY KEY (id);
    CREATE INDEX pat_signature_idx ON pat USING gist (signature);

    近似度查询,例如查询与id = :id的图像相似的图像,按相似度排行,取出前10条

    SELECT
        id,
        smlr
    FROM
    (
        SELECT
            id,
            pattern <-> (SELECT pattern FROM pat WHERE id = :id) AS smlr
        FROM pat
        WHERE id <> :id
        ORDER BY
            signature <-> (SELECT signature FROM pat WHERE id = :id)
        LIMIT 100
    ) x
    ORDER BY x.smlr ASC 
    LIMIT 10

    这里可以用到KNN索引,快速按相似度排行输出结果。

    小结

    • PostgreSQL是一个非常强大的数据库,功能高度可定制。而且不需要动到PostgreSQL的内核。 安全可靠。
    • 使用图像搜索的技术就是PostgreSQL功能扩展的例子,速度杠杠的,还记得我以前给出的关于地理位置近邻查询的性能指标吗。
      《PostgreSQL 百亿地理位置数据 近邻查询毫秒级反馈》

    https://yq.aliyun.com/articles/2999

    • 如果你对PostgreSQL扩展开发感兴趣,可以参考我写的文章
      《找对业务G点, 体验酸爽 - PostgreSQL内核扩展指南》

    https://yq.aliyun.com/articles/55981

    祝大家玩得开心,欢迎随时来 阿里云促膝长谈 业务需求 ,恭候光临。

    阿里云的小伙伴们加油,努力做 最贴地气的云数据库

    展开全文
  • 见到一些中文文献、博客、师兄们简历都出现以一个叫“Harr”特征,有些疑惑。刨根问底一下,最后得出结论Harr应该... Haar所提出,是小波转换(Wavelet transform)中最简单一种转换,也是最早提出小波转换。

    见到一些中文文献、博客、师兄们的简历都出现以一个叫“Harr”的特征,有些疑惑。刨根问底一下,最后得出结论Harr应该是对Haar的误写。

    Haar特征因为使用的是Haar小波变换而得名,哈尔小波转换是于1909年由Alfréd Haar所提出,是小波转换(Wavelet transform)中最简单的一种转换,也是最早提出的小波转换。

    展开全文
  • Haar Daubechies Biorthogonal Coiflets Symlets Morlet Mexican Hat Meyer Other Real Wavelets Complex Wavelets References 2 Using Wavelets Introduction to Wavelet Toolbox GUIs and ...
  • 级联分类器是将若干个分类器进行连接,从而构成一种多项式级...Haar特征是由M.Oren,C.Papageorgious等人在论文“Pedestrian detection using wavelet templates”中首次提出,后续经过改进与发展,C.H.Messom和A....
  • matlab实现haar小波分解

    2012-05-01 09:31:21
    从源代码的角度实现了小波的haar分解,有利于初学者对小波分解的理解,不单纯的使用matlab wavelet工具箱
  • 今天介绍这篇文章是 Ren Ng 等人在2003年发表于 Siggraph 会议上经典论文 《All-Frequency Shadows Using Non-linear Wavelet LightingApproximation》,目前该篇文章引用次数已经超过400次。在这篇论文中,...
  • 看了很多文章,认为liulina603和nk_wavelet对adaboost算法讲解比较详细,查阅相关资料后,本文将介绍haar+adaboost算法理论和具体实现。 adaboost由来 adaboost方法是Boosting方法提升版,Boosting方法又...
  • 哈尔小波转换是于1909年由Alfréd Haar所提出,是小波变换(Wavelet transform)中最简单一种变换,也是最早提出小波变换。 Alfréd Haar,1885~1933,匈牙利数学家。哥廷根大学博士,导师是David ...
  • 我看过最深入浅出小波书籍:该书以haar小波为具体实例逐步扩展,既有实例,也有理论深入!
  • SSE2实现HAAR小波变换(dwt2与idwt2)

    千次阅读 2016-04-14 16:15:55
    wiki链接:http://en.wikipedia.org/wiki/Haar_wavelet   可用SSE2实现HAAR小波变换,达到实时,关于HAAR小波介绍可参考以上维基链接  参考MATLAB中dwt2与idwt2函数原型,基于OpenCV框架进行了汇编优化...
  • Matlab 小波变换降噪小波...首先我们新建wavelet_demo.m文件清除之前代码:clc;clear;加载数据集:%加载数据集loadleleccum;%设置窗口标题figure('Name',"WaveletReconstruction");首先显示原来信号:subplot(3,...
  • 到学校维普网上查找基于形态学小波变换图像去噪方法研究论文 matlab小波变换图像处理实现程序 %这个是2D-DWT函数是haar小波 %c是图像像素矩阵 steps是变换阶数 function dwtc = dwt_haar(c, steps) % DWTC =...
  • 1.从ImageNet和CNN说起 图像分类和识别一直是计算机视觉...在典型图像分类和识别问题中,通常有两个重要步骤,一个是特征提取,常见有GLCM, HOG, LBP, Haar Wavelet, 一个是分类器, 例如SVM, Random Fo
  • 1 小波漫谈 小波变换是20世纪最辉煌...20世纪 70年代,当时在法国石油公司工作地球物理学家 Jean Morlet提出了小波变换 WT(Wavelet Transform)概念。 进入 20世纪 80年代,法国科学家 Y.Meyer和他同事开始研究系
  • 1 前言 今天看CV文献,看到了“Haar-wavelet”,感觉跟小波变换应该有关系,所以觉得应该学习一下。 2小波变换介绍 刚刚看完哈尔变换。
  • 从ImageNet和CNN说起 图像分类和识别一直是计算机视觉...在典型图像分类和识别问题中,通常有两个重要步骤,一个是特征提取,常见有GLCM, HOG, LBP, Haar Wavelet, 一个是分类器, 例如SVM, Random Forest
  • 摘要: PostgreSQL 在视频、图片去重,图像搜索业务中应用作者digoal日期2016-11-26标签PostgreSQL , Haar wavelet , 图像搜索 , 图片去重 , 视频去重背景图像处理业务场景比较多,例如 图像搜索、视频去重、...
  • 因此,本文提出了一种基于 Haar-DWT(Haar-Discrete Wavelet Transform)同态加密域中图像可逆水印技术:1)通过利用数据搬移及量化方法,分别解决了 Haar-DWT 过程中可能遇到负数和小数问题,实现了加密域...
  • PostgreSQL在视频、图片去重,图像搜索业务中的应用图片搜索PostgreSQL的图像搜索插件使用了非常主流的Haar wavelet技术对图像进行变换后存储gist 索引方法(支持pattern和signature类型), 以及KNN操作符,可以用于...
  • 图像工作回顾之四:图像检索

    千次阅读 2013-01-22 23:11:18
    2007年在创业公司做基于内容图像检索,用于...花点时间复原出原来程序样子,实现了基于颜色(Histogram/Color Structure/Dominant Color)、形状(Haar Wavelet/Contour Based Shape Descriptor)、纹理(Homo
  • 小波

    千次阅读 2015-03-15 13:16:23
    定义:wavelet是指小型波(在傅里叶分析里弦波是大型波),简单说来,小波(wavelet)是一个衰减迅速振荡。 小波函数:小波只有时域表示,作为小波函数。例如墨西哥帽小波。   小波历史: 1909年: 第一个小...
  • PostgreSQL , haar wavelet , 图像识别 , 人工智能 , 动态图像识别 , 最强大脑 背景 水哥王昱珩不用多介绍,在最强大脑第六期晋级赛第五场,在“微观辨水”环节中,520杯同质同量同水源水被他一眼辨认出,Dr.魏...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

wavelet的haar