Tesseract引擎功能强大,概括地可以分为两部分:

  • 图片布局分析
  • 字符分割和识别

图片布局分析,是字符识别的准备工作。工作内容:通过一种混合的基于制表位检测的页面布局分析方法,将图像的表格、文本、图片等内容进行区分。

字符分割和识别是整个Tesseract的设计目标,工作内容最为复杂。首先是字符切割,Tesseract采用两步走战略:

参考:http://blog.csdn.net/guzhenping/article/details/51019010

物体识别 - 综述

名词解释

  • detection: find all objects (bounding box)
  • classification: classify objects
  • recognition: whether one is object
  • segmentation: cut all objects (pixel wise)
  • localization: find certain object (bounding box)

任务

广义的识别(Object Recognition/visual recognition),包括

  1. 图像分类/识别: 识别图片里是猫是狗
  2. 物体定位/检测: 不仅可以告诉你分类,还可以告诉你目标物体的坐标(框)
  3. 目标识别
  4. 语义分割: 不仅需要把物体检测出来, 还要把它从图片中扣出来
  5. 实体分割
  6. 关键点检测

其他任务:以图搜图、图像生成、 图像风格迁移

再细分

  • Scene categorization
  • Image-level annotation: are there people?

主要模型发展历史:

从最初2013年提出的R-CNN、OverFeat,到后面的Fast/Faster R-CNN,SSD,YOLO系列,再到2018年最近的Pelee。短短不到五年时间,基于深度学习的目标检测技术,在网络结构上,从two stage到one stage,从bottom-up only到Top-Down,从single scale network到feature pyramid network,从面向PC端到面向手机端,都涌现出许多好的算法技术,这些算法在开放目标检测数据集上的检测效果和性能都很出色。

物体检测发展主要集中在两个方向:

two stage算法

  • R-CNN系列
  • FPN 最好的two-stage

one stage算法

  • YOLO
  • SSD
  • RetinaNet 是最好的one stage

两者的主要区别在于two stage算法需要先生成proposal(一个有可能包含待检物体的预选框),然后进行细粒度的物体检测。而one stage算法会直接在网络中提取特征来预测物体分类和位置。

two stage

Faster R-CNN网络包括两个步骤:

  1. 使用RPN(region proposal network)提取proposal信息
  2. 使用R-CNN对候选框位置进行预测和物体类别识别。
  3. Faster R‑CNN是首个利用CNN来完成proposals的预测的,之后的很多目标检测网络都是借助了
    Faster R‑CNN的思想

one stage

reference

title

  • from autoencoder to cnn
  • from fully-connect
  • from small image to large image

可以用autoencoder学习到的filter作为cnn的pre_train filter吧?unsupervised_pretrain是不是更好些

##

UFLDL介绍顺序很好,
图像分类
方法一: 全部串起来,全连接softmax
方法二: 小图片,利用sparse autoencoder全连接学映射,然后再softmax
方法三: 大图片,学习位置无关映射(即filter,类似于crop后的全连接)
其中二和三隐约觉的有什么联系。

大图片如何学习位置无关映射?
方法一:random_crop + autoencoder (unsupervised)
方法二:cnn (supervised)

疑问又来了,方法一学到的映射可否用于分类?与方法二中学到的映射有什么区别?
详见–UFLDL: Learning color features with Sparse
Autoencoders

两者的区别无非是监督与非监督而已(暂不考虑pooling)



semantic hash

加速环节:

检索

v1 bit[] [1 0 0 0 1 0 1],.
v2 bit[] [1 0 0 0 1 1 1]

|v1-V2|

分类

v1 double[] softmax(v1)=
v2 double[]

|v1-v2|
cosine()

局部敏感哈希(Locality Sensitive Hashing,LSH)

  • 传统 Hash 希望即使两个数据有一点点不一样,也要尽可能差异大。
  • 而LSH则是希望相似的 value 对应的 Hash 值越相似越好。

常见的使用场景:

  • 判重 Near-duplicate detection
  • 摘要 Sketching
  • 聚类 Clustering
  • 相似搜索 Near-neighbor search

如果两个文本在原有的数据空间是相似的,那么分别经过哈希函数转换以后的它们也具有很高的相似度;相反,如果它们本身是不相似的,那么经过转换后它们应仍不具有相似性。

参考

局部敏感哈希(Locality Sensitive Hashing,LSH) http://www.cnblogs.com/maybe2030/p/4953039.html

#

索引 VS 检索

索引技术 - 综述

在检索技术中,索引一直需要研究的核心技术。当下,索引技术主要分为三类:基于树的索引技术(tree-based index)、基于哈希的索引技术(hashing-based index)与基于词的倒排索引(visual words based inverted index)[1]。本文主要对哈希索引技术进行介绍。

相似度度量方法 LSH算法
Hamming Sampling Hash
Jaccard Min Hash
Angle Sim Hash

判别式VS生成式中已经说过,生成式模型重在建模联合分布同(联合分布决定了)
无向图与有向图的核心区别就在于—建模联合分布的方式不同

有向图建模条件分布,来间接构建联合分布。
无向图则直接构建联合分布。

图模型画法, 有向图把参数也画出来了,而无向图(RBM)中省略了参数w

举例:
有向图: alpha–> theta–>y. 构建联合分布 p(y, theta) 是参数 alpha 的函数。 目的是寻找参数alpha,使得观测 y 最大似然
无向图: RBM中 x—y, p(x, y) 是参数 w 的函数。目的是寻找参数 w, 使得观测 y 最大似然。

问题集:
为什么RBM中不把x,w都视为参数。 目的寻找合适的x ,w, 使得观测 y 最大似然?

DBM的优化的pretraining中,利用的是两层两层的优化。有向图中是否可以这样做?
答:

  • 共同之处
    • 将复杂的联合分布分解为多个因子的乘积
  • 不同之处
    • 无向图模型因子是势函数,需要全局归一
    • 有向图模型因子是概率分布,无需全局归一
  • 优缺点
    • 无向图中的势函数设计不受概率分布约束,设计灵活,但全局归一代价高
    • 有向图无需全局归一、训练相对高效

——-归一化—–
普通归一化,不能搞定负值
softmax归一化, 能搞定负值

——-降维—–
单模态:
PCA:选取最大方差的方向(选择一组映射/基,使得映射后的数据方差最大)。做法:协方差矩阵的特征值分解,取最大几个。
SPM:对图像取不同层次的特征,构成金字塔
LDA:线性判别分析,
sparse coding: 即矩阵分解时,编码是稀疏的,字典未必稀疏。目的:学习compact representations of images

Dictionary learning:
represent learning:
compressive sensing:
validation set:验证集,决定什么时候应该停止训练。
test set: 测试现场运行性能

CCA: (典型相关分析)两个模态映射到同一空间,使person相关系数最大。寻找同一对象两组变量间线性相关性的一种常用的多元统计分析方法
ECA:增强相关分析
ICA:
ISOMAP(等距映射): 定义了一种新的距离度量,首先对所有样本点做全连接,定义两点间的距离是两点间的最短路距离(比较新颖,但是计算量较大)
LE: laplace eigenmaps (拉普拉斯特征图法)–
LPP: locality preserving projection(局部保持投影)– 引入graph laplace项,使得降维前后保持近邻关系
LLE: locally linear embedding(局部线性嵌入)–
哈尔小波:降采样+残差

—–特征选择—–
决策树–根据信息量大小(信息增益,或区分能力,或其他策略),决定先选哪个特征。

—–聚类—–
K-Means:把n的对象根据他们的属性分为k个分割(k < n)。它与处理混合正态分布的最大期望算法(本十大算法第五条)很相似,因为他们都试图找到数据中自然聚类的中心。
它假设对象属性来自于空间向量,并且目标是使各个群组内部的均方误差总和最小。

—–回归分类—–
感知机: 分类超平面 f(x) = sign(wx+b),损失函数是误分类点到划分超平面S(w.x+b=0)的总距离
KNN: 给定一个样本,找到k个近邻,k近邻多数属于的类别,判定为该样本的类别。
sigmoid函数: 实数域 到 自然数域 的一个映射。
logistc回归: 似然服从sigmoid函数,的 MLE。多类问题采用softmax函数
probit回归: 似然服从正态分布的累积分布
最大熵模型:max H(y|D),跟logistic回归形式类似,都称为对数似然模型。
最小二乘法: 误差服从gauss分布,的MLE
SVM:最大类间几何间隔,误差服从 hinge loss
pagerank: Ax=x ,已知A求x的问题。一个高等级的页面指向可以使其他低等级页面的等级提升。
naive bayes: 一种分类方法;类条件独立假设,减少了参数数目。 p(Y) P(X|Y) –> P(Y|X)。 详见李航书
bayesian estimation: 一种参数估计方法,P(X) P(Y|X) –> P(X|Y)
核函数: 低维空间线性不可分,可以通过非线性映射,映射到高维空间去

——优化—–
共轭梯度法: 固定其他变量,优化一个

拉普拉斯分布: 就是背靠背的双指数分布

低维空间内,线性不可分时,可以采用非线性。这样等同于映射到高维空间,然后采用线性分类器分类。

比如二类分界面是 y=3x^2+2x+6,我们可采用把原始x映射到(1,x,x^2)空间中,进行线性分类。

核函数可以简单理解成 一种相似性度量
大部分核函数可以归结为两种,内积和1/d
比如矩阵分解中,两个向量的内积来作为相似性度量。
高斯核函数是, 1/exp(d)

也可以用KL距离吧

雷军
IsanSVMassimpleassayingit'sadiscriminativeclassifierthatsimplyoptimizesthehingeloss?
雷军
SVMissimplya**linearclassifier,optimizinghingelosswithL2regularization**.
雷军
Orisitmorecomplexthanthat?
雷军
No,itisjustthat,howevertherearedifferentwaysoflookingatthismodelleadingtocomplex,interestingconclusions.Inparticular,thisspecificchoiceoflossfunctionleadstoextremelyefficientkernelization,whichisnottrueforlogloss(logisticregression)normse(linearregression).Furthermoreyoucanshowveryimportanttheoreticalproperties,suchasthoserelatedtoVapnik-Chervonenkisdimensionreductionleadingtosmallerchanceofoverfitting.
雷军
支持向量有什么作用?
雷军
Supportvectorsaresimplysamplesplacednearthedecisionboundary(loselyspeaking).Forlinearcaseitdoesnotchangemuch,butasmostofthepowerofSVMliesin**itskernelization**-thereSVsareextremelyimportant.Onceyouintroducekernel,duetohingeloss,SVMsolutioncanbeobtained**efficiently**,andsupportvectorsaretheonlysamplesrememberedfromthetrainingset,thusbuildinganon-lineardecisionboundarywiththesubsetofthetrainingdata.
雷军
为什么CNN通常采用logloss(softmax),为什么很少采用hingeloss?CNN+hinge-loss能叫deepSVM吗?
雷军
https://www.reddit.com/[object Object]comments/40680m/why_isnt_cnns_with_hinge_loss_popular_can_we_call/
雷军
hingeloss和ReLU很像,有什么关系吗?

参考