• 论文阅读之《Color Constancy Using CNNs》


    CVPR2015

    Simone Bianco
    University of
    Milano-Bicocca

    米兰比可卡大学,意大利

    Claudio Cusano
    University of Pavia
    帕维亚大学,意大利

    作者在论文中用CNN来估计场景的光源值。以图像patch作为输入(1.解决训练数据少问题2.解决多光源估计问题)。该网络由一个最大池化的卷积层、一个全连接层和三个输出节点组成。在网络结构中,将特征学习和回归整合到一个优化过程中,从而得到一个更有效的场景光照估计模型这种方法在原始图像的标准数据集上实现了最先进的性能。在光照空间变化的图像上进行的实验证明CNN局部光源估计能力的稳定性。

    Introduction & Related work

    1.计算颜色恒常性步骤

    (1)估计光源颜色;

    (2)用估计值对图像进行调整;

    2.颜色不变性

    利用特征来表示图像,这些特征在特定的成像条件下保持不变。

    3.已有的解决办法

    (1)基于统计的方法

    根据单一图像的内容估计场景的光照,利用统计或物体属性对彩色图像性质进行假设。

    (2)基于学习的方法

    在估计光照之前通过训练数据建立一个统计图像模型。

    4.论文工作概述

    主要工作:

    使用CNN学习特征的光源估计来计算颜色的恒常性。

    优点:

    将原始图像作为输入并将特征学习融入到训练过程中。CNN可以学习复杂的映射,而只需要很少的领域知识。

    贡献:

    (1)提出了一种新的方法,允许在局部区域上学习和预测场景光源。

    (2)第一个使用CNN研究光照估计的工作。

    Proposed method

    对于给定的彩色图像,从中抽取不重叠的小块,并通过直方图拉伸对每个小块进行对比度归一化。使用CNN来估计每个patch的光源,并将patch的分数结合起来得到图像的光源估计。

    图像分块——>块光源估计——>全局光源估计

    网络结构

    共五层网络,32*32*3->32*32*240->4*4*240->40->3

    Input: 32x32的对比度归一化的图像patch

    Output:光源估计值。

    第一层是卷积层,它使用240个大小为1x1x3stride=1核进行滤波。卷积层产生240个大小为32x32的特征映射,然后使用8x8核和stride=8像素的最大池操作将每个特征映射缩减为4x4特征映射。这些被重塑成3840 (4x4x240)矢量。然后接着是一层40个节点的全连接层。最后一通过线性回归得到光源RGB值。

    对比度归一化:

    为在不同的照明条件下保持鲁棒性,并且由于在色恒性中必须对发光体进行尺度系数估计,所有提取的斑块都进行对比归一化。该论文选择全局直方图拉伸,因为它不改变三个颜色通道相对贡献。

    2.池化

    在卷积层中,对比度归一化图像块与240个滤波器进行卷积,每个滤波器生成一个特征图。然后在每个特征映射上应用最大池化来降低滤波器响应的维数。因为图像的局部信息一般具有相同的光源,因此可以采用更大的池化操作进行降维。

    3.ReLU代替tanh神经元

    相同性能的情况下处理速度快好几倍。

    Experiment

    数据集568张的原始相机捕获的图像数据集。

    误差估计:估计光源的RGB三元组与真实光源RGB三元组之间的角度。

    基准算法Gray worldWhite pointShades of gray, Gray edge, Gamut mapping……

    网络训练:从原始格式图像随机提取32x32patch来训练CNN。对数据集用thee-fold交叉验证来学习网络:对于每次运行,一个用于训练,一个用于验证,其余用于测试。训练中给每个patch分配与相关联的光源groundtruth。测试时通过池化预测的patch光源,为每张图像生成一个单一的光源估计。

    Conclusion

    1.文章首次尝试使用CNN对光源进行估计。

    2.对图像进行分块解决了CNN中需要大量训练数据的问题。

    2.对图像的每一个块使用CNN进行光源估计最终在结合所有块的估计得到全局的光源估计,这样解决多光源问题(多光源问题认为一幅场景中包含多个光源,块足够小的话就可以假设在该块上的光源是均匀的,分别估计后再进行聚类处理得到全局光源估计)

    我的想法:

    1.模型提供了一个很好的使用CNN解决多光源问题的思路。

    2.该模型是基于有监督学习,需要groundtruth,应用于水下图像的话就是考虑通过目前比较常用的模拟真实图像的水下环境图来构造含有groundtruth的水下数据集来进行训练。

    3.不同的卷积核(高斯滤波,中值滤波…),不同的池化方式(最大池化,平均池化…),等操作对最终的输出结果都是有影响的,可以根据水下图像进一步的去设置和微调。

  • 相关阅读:
    24考研王道408数据结构-第三章“栈、队列、数组”-p96课后算法题
    @Transactional和普通自定义切面执行顺序的思考
    Qt-network-http
    mysql存储过程与函数
    Tauri 2.0.0 beta环境搭建
    [附源码]计算机毕业设计JAVA恒星学院网络计费系统
    9.在canvas绘制图片和视频
    pytorch-fastrcnn识别王者荣耀敌方英雄血条
    java-jni 十进制转十六进制应用,根据基址获取包裹首地址
    练[watevrCTF-2019]Cookie Store
  • 原文地址:https://blog.csdn.net/xs1997/article/details/126069833