手写单字体的识别,在看过卷积神经网络的mnist例子之后,很容易实现,那么如何实现多字体的同时识别呢? 如下图

LeCun大神所用的是SDNN space displacement neural network,这是什么鬼?

经过一番查询之后,原来它就是滑动窗口+图像金子塔+NMS,2015年yahoo的一篇论文 Multi-view Face Detection using deep convolutional Neural Networks 用的也是这种方法

参考页面:https://www.quora.com/What-is-a-space-displacement-neural-network-SDNN

下面是两位知情人士的回答:

Alessandro Ferrari, I have had a lot of fun playing with convnets.

A neural network that is slided as a detector across all the possible locations in the image. You have a network with an input layer of size NxN pixels, Then, you have an image with size MxM pixels, with M>N. The objects that you want to detect are somewhere in the image but you do not know where. Thus, you sweep your neural network all over the image. At the first position, in the top-left corner, you have certain classification scores for the objects that you want to detect, and you update your score map at that position. Then, you apply your NN on a position shifted of 1 or few pixels horizontally, and you update the score map for that position as well. This process continue until all the image is processed and all the score map completed.

The score map represents a detection map of your objects. A mechanism of non-maxima suppression have to be implemented in order to avoid multiple matches of the same object.

It avoids you to use segmentation. However, also in this case there is not free lunch. For making it scale invariant, you need to create a scale space of your input image. This requires to perform a number of classification on the order of ten thousands for few scale in 1MP image. Even if you can reuse a great part of the computation for convolutional layers for nearby classifications, you have to recompute the fully connected layers all the time, making the process painfully slow.

That is why people started to research in object proposal techniques. Maybe one day enough computational power may let us not think about these problems.

翻译如下:

一个神经网络,像探测器一样,在图像的所有可能的位置进行滑动。假设你有一个输入大小为N×N象素的神经网络,然后,你有大小MXM像素的图像,其中M>N,你要检测图像中的某处,但你不知道在哪里。因此,你用神经网络扫描来遍布图像。在第一个位置,在左上角,你有一定的分类分数的对象,你想检测,你更新你的得分地图在那个位置。然后,你把你的NN水平转移到1或几个像素的位置,你更新该位置的得分地图以及。这个过程继续,直到所有的图像处理和所有的得分图完成。
分数图表示对象的检测图。以避免多个相同的对象的匹配,非最大值抑制的机制。
它避免了你使用分割。然而,在这种情况下也没有免费的午餐。为了使其缩放不变,您需要创建一个输入图像的缩放空间。这就需要对图像1mp几个规模十成千上万的顺序执行一系列分类。即使你可以利用附近的分类卷积层计算的很大一部分,你必须重新计算的全连接层的所有时间,使过程缓慢。
这就是为什么人们开始研究对象的建议技术(术语为region proposal,“区域建议”)。也许有一天足够的计算能力可能让我们不考虑这些问题。

Barath Lakshmanan, works at TVS Motor Company

CNNs extract features from the input and classify them. However, the input has to be size-normalized. In case of a single composite objects, each individual object within them have variable size and it is difficult to segment them. One way to recognize such objects is using a sliding window in the input layer as mentioned by Alessandro Ferrari.

It is to be noted that when convolution is performed, on the inputs which are overlapping regions in an image, same set of features gets extracted repeatedly. In order to avoid this redundant action, convolution is performed on the entire input image till the last conv layer. Finally the classifier is used as sliding window on the obtained feature map to produce the heat map.

Performance of such network should improve drastically as the redundancy is removed. This design is called as Space Displacement Neural Network (SDNN).

翻译如下:

CNN的特征提取和分类的输入。然而,输入必须是尺寸归一化。在一个单一的复合对象的情况下,每个单独的对象内有可变的大小,它是很难分割。认识到这些对象的一个方法是使用在输入层由Alessandro法拉利提到一个滑动窗口。
需要注意的是,当进行卷积,在图像中的重叠区域的输入,相同的一组功能被提取重复。为了避免这种重复的动作,卷积进行对整个输入图像到最后转换层。最后,分类器被用作所得到的特征映射的滑动窗口产生的热映射。
这样的网络的性能应大幅改善冗余被删除。这种设计被称为空间位移的神经网络(SDNN)。

使用SDNN (space displacement neural network)进行多字体手写识别的更多相关文章

  1. Recurrent Neural Network[survey]

    0.引言 我们发现传统的(如前向网络等)非循环的NN都是假设样本之间无依赖关系(至少时间和顺序上是无依赖关系),而许多学习任务却都涉及到处理序列数据,如image captioning,speech ...

  2. How to implement a neural network

    神经网络的实践笔记 link: http://peterroelants.github.io/posts/neural_network_implementation_part01/ 1. 生成训练数据 ...

  3. (转)The Neural Network Zoo

    转自:http://www.asimovinstitute.org/neural-network-zoo/ THE NEURAL NETWORK ZOO POSTED ON SEPTEMBER 14, ...

  4. 深度神经网络如何看待你,论自拍What a Deep Neural Network thinks about your #selfie

    Convolutional Neural Networks are great: they recognize things, places and people in your personal p ...

  5. A Neural Network in 11 lines of Python

    A Neural Network in 11 lines of Python A bare bones neural network implementation to describe the in ...

  6. Recurrent Neural Network系列2--利用Python,Theano实现RNN

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  7. Recurrent Neural Network系列4--利用Python,Theano实现GRU或LSTM

    yi作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORK ...

  8. What is “Neural Network”

    Modern neuroscientists often discuss the brain as a type of computer. Neural networks aim to do the ...

  9. 通过Visualizing Representations来理解Deep Learning、Neural network、以及输入样本自身的高维空间结构

    catalogue . 引言 . Neural Networks Transform Space - 神经网络内部的空间结构 . Understand the data itself by visua ...

随机推荐

  1. Falsk的模板分配和蓝图、定制错误信息、 和补充

    Flask的模板渲染: Flask的模板在进行渲染的时候是默认选则templates下的html文件 我们可以在实例化app的时候,指定文件来进行选择: 模板渲染更改文件夹:template_fold ...

  2. 转载:从程序员的角度看ASCII, GB2312, UNICODE, UTF-8

    以下内容转自博客:http://blog.chinaunix.net/uid-22670933-id-1771613.html. 一.字符编码是怎么回事 0. 概念 字节是计算机的最基本存储单位,一个 ...

  3. php面试题2018

    一 .PHP基础部分 1.PHP语言的一大优势是跨平台,什么是跨平台? PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows.Linux等)上配 ...

  4. css实现梯形

    使用伪元素before和after分别在矩形元素前后加三角形或者直接设置border 使用3d旋转矩形,使之看起来像矩形 <html> <head> <meta char ...

  5. php面试题之一——php核心技术

    一.PHP核心技术 1.写出一个能创建多级目录的PHP函数(新浪网技术部) <?php /** * 创建多级目录 * @param $path string 要创建的目录 * @param $m ...

  6. nginx配置解析之客户端真实IP的传递

    前后端分离之后,采用nginx作为静态服务器,并通过反向代理的方式实现接口跨域的方式,在降低开发成本的同时也带来了诸多问题,例如客户端真实IP的获取. 在一些特殊场景下,比如风控和支付流程,往往需要获 ...

  7. 超链接<a>标签用法

    1.a标签点击事件 1>1a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题,而且 ...

  8. [SDOI2010]Hide and Seek

    题目 非常显然就是求一下距离每一个点曼哈顿距离最近的点和最远的点就好了 最远点非常好算,我们建完\(kd-tree\)之后直接暴力就好了 找最近点的时候会有这样一个问题,就是自己找到了自己 所以我们需 ...

  9. 【bzoj 2839】集合计数

    权限题 根据广义容斥的套路就很好做了 设\(g_i\)表示交集至少有\(i\)个元素,\(f_i\)表示交集恰好有\(i\)个元素 显然有 \[g_i=\sum_{j=i}^n\binom{j}{i} ...

  10. docker 不同版本 添加--insecure-registry

    docker  17.0.3 vim /lib/systemd/system/docker.service 然后重启 systemctl  daemon-reload , systemctl rest ...