梦里风林
  • Introduction
  • Android
    • activity
      • Activity四种启动模式
      • Intent Flag
      • 多task的应用
      • Task和回退栈
    • sqlite
      • 【源码】CursorWindow读DB
      • Sqlite在Android上的一个Bug
    • Chromium
    • ListView读取DB数据最佳实践
    • Android Project结构
    • 一个由Proguard与FastJson引起的血案
    • 琐碎的一些tips
  • Computer Vision
    • 特征提取
    • 三维视觉
    • 计算机视觉常用工具
    • 浅谈深度学习数据集设计
    • 随笔
  • Machine Learning
    • 技巧
      • FaceBook: 1 hour training ImageNet
      • L2 Norm与L2 normalize
    • 实践
      • Pytorch实验代码的亿些小细节
    • 工具
      • Tensorflow学习笔记
      • MXNet踩坑手记
      • PyTorch踩坑手记
      • PyTorch模型剪枝
      • Keras踩坑手记
      • mscnn
      • Matlab
        • Matlab Remote IPC自动化数据处理
    • Papers
      • Classification
      • Re-identification
        • CVPR2018:TFusion完全解读
        • ECCV2018:TAUDL
        • CVPR2018:Graph+reid
        • Person Re-identification
        • CVPR2016 Re-id
        • Camera topology and Person Re-id
        • Deep transfer learning Person Re-id
        • Evaluate
      • Object Detection
        • 读论文系列·干货满满的RCNN
        • 读论文系列·SPP-net
        • 读论文系列·Fast RCNN
        • 读论文系列·Faster RCNN
        • 读论文系列·YOLO
        • 读论文系列·SSD
        • 读论文系列·YOLOv2 & YOLOv3
        • 读论文系列·detection其他文章推荐
      • Depth
      • 3D vision
        • 数据集相关
        • 光流相关
      • Hashing
        • CVPR2018: SSAH
      • 大杂烩
        • CNCC2017 琐记
        • ECCV 2016 Hydra CCNN
        • CNCC2017深度学习与跨媒体智能
        • MLA2016笔记
    • 《机器学习》(周志华)读书笔记
      • 西瓜书概念整理
        • 绪论
        • 模型评估与选择
        • 线性模型
        • 决策树
        • 神经网络
        • 支持向量机
        • 贝叶斯分类器
        • 集成学习
        • 聚类
        • 降维与度量学习
        • 特征选择与稀疏学习
        • 计算学习理论
        • 半监督学习
        • 概率图模型
        • 规则学习
        • 强化学习
        • 附录
  • Java
    • java web
      • Servlet部署
      • 琐碎的tips
    • JNI
    • Note
    • Effective Java笔记
  • 后端开发
    • 架构设计
    • 数据库
    • java web
      • Servlet部署
      • 琐碎的tips
    • Spring boot
    • django
    • 分布式
  • Linux && Hardware
    • Ubuntu安装与初始配置
    • 树莓派相关
      • 树莓派3B+无线网卡监听模式
      • TP-LINK TL-WR703N v1.7 openwrt flashing
  • Python
    • django
    • 原生模块
    • 设计模式
    • 可视化
    • 常用库踩坑指南
  • web前端
    • header div固定,content div填充父容器
    • json接口资源
  • UI
  • kit
    • vim
    • git/github
      • 刷爆github小绿点
    • Markdown/gitbook
      • 琐碎知识点
      • gitbook添加disqus作为评论
      • 导出chrome书签为Markdown
      • Markdown here && 微信公众号
    • LaTex
      • LaTex琐记
    • 科学上网
    • 虚拟机
  • thinking-in-program
    • 怎样打日志
  • 我的收藏
  • 琐记
    • 论文心得
    • 深圳买房攻略
  • 赞赏支持
由 GitBook 提供支持
在本页
  • Object Counting
  • 定义
  • 常用方法
  • CCNN(Counting CNN)
  • Hydra CCNN
  • 实验结果
  • 数据集

这有帮助吗?

  1. Machine Learning
  2. Papers
  3. 大杂烩

ECCV 2016 Hydra CCNN

上一页CNCC2017 琐记下一页CNCC2017深度学习与跨媒体智能

最后更新于3年前

这有帮助吗?

Towards perspective-free object counting with deep learning,这是一篇发在ECCV 2016上的论文,提出一种多输入的CNN模型来解决Object Counting的问题。

Object Counting

定义

给定一张图片,输出图片中目标对象的个数,比如下面两张图,左图有36个车,右图有8个猪

常用方法

  • Counting by detection

    用检测器去检测图中有多少个对象,检测到多少个就认为是多少个

检测有三种方法,整体的检测(图a,检测整个人),部分的检测(图b,检测头),形状的匹配(图c,人的形状抽象成几何图形)

  • Counting by Clustering

  • 在摄像头捕捉到的连续视频帧里,目标移动时,在多个帧之间的位置比较相近,将这些运动物体在多帧图片之间做聚类,聚类中心的个数就是目标的个数

  • 不适用于静止物体

  • 优点:无监督

更多细节可看Related work部分的参考文献

  • Counting by Regression

  • 给定输入图片,ROI,透视图(场景中由远及近的几何关系,用于缩放对象)

  • 提取特征(背景分离,边缘检测,纹理识别)

  • 学习一种映射,将特征回归到对象数量上

回归又分两种,

  • 回归对象数量

  • 回归对象密度图

具体讲一下对象密度图:

  • 先给出原图和目标对象的坐标(可以根据坐标画出质心图)

  • 对质心图做一个高斯滤波,可以得到密度图,作为回归的目标,对质心图进行求和,反过来可以得到目标的数量

进入正题,Hydra CCNN

  • 方法: 回归密度图,多尺度输入组合

  • 优势:不需要透视图,多尺度鲁棒性,训练简单,误差小

CCNN(Counting CNN)

  • Regression: 用一个CNN将原始图像映射为对象密度图

Dpred(P)=R(P∣ω)D_{pred}^{(P)} = R(P|\omega)Dpred(P)​=R(P∣ω)

其中P是image patch,ω\omegaω是CNN参数

  • Conv1, Conv2, Conv3后面都跟着一个max pooling层

  • Conv4和Conv5都是卷积层(比全连接层更快,参数更少)

  • 对比论文中提到的另一种方法:Zhang et al:卷积后接全连接层,损失为密度图和数量的回归误差,两个损失交替进行优化,CCNN更快,并且训练更简单。

  • Loss: l(ω)=12N∑n=1N∣∣Dpred(Pn)−Dgt(Pn)∣∣22l(\omega) = \frac{1}{2N}\sum_{n=1}^{N}||D_{pred}^{(P_n)}-D_{gt}^{(P_n)}||_2^2l(ω)=2N1​∑n=1N​∣∣Dpred(Pn​)​−Dgt(Pn​)​∣∣22​,gt是ground truth的意思,这个损失就是求每张图的密度图的预测插值的l2模,然后求平均,N为图片数量

  • 训练:滑动窗口将图片划分为多个网格,对每个网格做回归,将回归的密度图拼接成一个完整尺寸的密度图

Hydra CCNN

Hydra: 海德拉是希腊神话中的九头蛇

  • Motivation: 多尺度范围内的对象大小不同,会导致计数出错

  • Solution: 用多个CCNN各自回归多个尺度的密度图,组合成最终密度图

举个例子:n=3时,也就是回归三个尺度的密度图,

  • S0: 整个patch(不是整张图,是一个patch,前面讲了会做滑窗划分)

  • S1:在中间抠出面积为2/3的图

  • S2:在中间抠出面积为1/3的图

私以为这个地方还有改进空间

实验结果

数据集

  • TRANCOS(汽车),UCSD(行人),UCF_CC_50(行人)

  • 评价指标:

    • MAE(Mean Absolute Error)

    • GAME(Grid Average Mean Absolute Error):GAME(L) = \frac{1}{N}\sum{n=1}^{N}\sum{l=1}^{4^L}|D{I_n}^{l}-D{I_n^{gt}}^{l}|

      • N是图片总数

      • L: 对于每张图,划分成4L4^L4L个小格,计算每个小格的误差

      • L为0时就是MAE