文献阅读

face recognize/verification

测试集:LFW

DeepFace

facebook, 97.5%,

检测 -> 对齐 -> 人脸表示 -> 分类

4000人, 4M img

feature:4096

DeepID(Deep hidden IDentity features)

  • 99.5%

  • 两步走

  • 12,000 人, 290,000 img

  • feature: 30,000 / 50 * 512 -> 300

从输入patch学习到一个维的向量,多个patch学习到的多个向量。然后连接这些向量,套用各种现成的分类器分类。

注解

将图片多尺度多通道多区域地切分成多个patch训练获取向量,然后将向量连接 是增大数据集的一种方法

切分patch

每张人脸在一个尺度上切分10个patch,共3个尺度,另分彩图(3channel)和灰度图(1channel),因此一张图可得 10*3*2 = 60 张patch

训练
  • 网络模型跨层连接、unshared conv layer

  • 因为有200 patchs/face,因此可以训练200个网络,每个网络提取 2*512 维的特征(原图和翻转后的图像各512),这样,每图有 2*512*200 = 204,800 维特征; 但实际上这样的信息是有冗余的,因此此用前向后向贪婪算法选取25个patch 训练网络,得到 25* 512 = 12,800 维的特征,然后用PCA 降维到180

  • 训练集分为A、B两份,A用于训练DeepID vector,B 用于validate;然后B分为训练集和测试集选取特征;最后B用于训练 classifier。2 step 分训练集训练以避免过拟合。

  • 人脸识别的关键是特征要能减少类内差别、增大类间差别。因此同时使用face verification和 identification 信号进行监督学习,即两个信号的加权和作为损失函数 (注意 验证信号中m的更新方法, m 是动态调整的,调整策略是使最近的训练样本上的验证错误率最低。)

  • 每次迭代时随机抽取两个样本训练。

  • 分类采用Joint Bayesian,采用前面训练得到的 bottleneck 层特征。

FaceNet

  • google, 99.6%

  • end-to-end

  • 8M人,2亿 img

  • fearure: 128

与其他的深度学习方法在人脸上的应用不同,FaceNet并没有用传统的softmax的方式去进行分类学习,然后抽取其中某一层作为特征,而是 directly learns a mapping from face images to a compact Euclidean space where distances directly correspond to a measure of face similarity,然后基于这个embedding再做人脸识别、人脸验证和人脸聚类等。

  • verification simply involves thresholding the distance between the two embeddings;

  • recognition becomes a k-NN classification problem;

  • clustering can be achieved using off-the-shelf techniques such as k-means or agglomerative clustering.

FaceNet主要创新点:
  • 去掉了最后的softmax,用元组计算距离的方式来进行模型的训练。使用这种方式学到的图像表示非常紧致,使用128位足矣。

  • 元组的选择非常重要,选得好可以很快收敛。

元组的选择方法:

最直接的方法就是对于每个样本,从所有样本中找出离他最近的反例和离它最远的正例,然后进行优化。这种方法有两个弊端:

  • 耗时,基本上选三元组要比训练还要耗时;

  • 容易受不好的数据的主导,导致得到的模型很差。

所以论文中提出了两种策略:

  • Generate triplets offline every n steps, using the most recent network checkpoint and computing the argmin and argmax on a subset of the data.

  • Generate triplets online. This can be done by selecting the hard positive/negative exemplars from within a mini-batch.

对于online 方法,为了使mini-batch中生成的triplet合理,生成mini-batch的时候,保证每个mini-batch中每个人平均有40张图片,然后随机加一些反例进去。在生成triplet的时候,找出所有的anchor-pos对,然后对每个anchor-pos对找出其hard neg样本。这里,并不去找hardest anchor-pos对,因为实际训练时,使用所有的anchor-pos对更稳健、收敛速度也稍快。使用hardest neg样本可能导致训练初期陷入极小值,因此除了上述策略外,还会选择一些semi-hard的样例,所谓的semi-hard即不考虑alpha因素。

网络模型:
  • ZF

  • GoogleNet

Object Detection

RCNN(Region CNN)

  • 13s/images in GPU

  • 53s/images in CPU

Region proposals:(selective search)

The first generates category-independent region proposals. These proposals define the set of candidate detections available to our detector.

Feature extraction:(4096, AlexNet)

The second module is a large convolutional neural network that extracts a fixed-length feature vector from each region.

  • 本阶段,如果候选框与物体的人工标注矩形框的重叠区域IoU大于0.5,那么我们就把这个候选框标注成正样本,否则我们就把它标注为负样本。

  • 图像缩放有各项异性、各向同性、不同padding的方法。

Classifier:

The third module is a set of class-specific linear SVMs.

  • 本阶段,正负样本的IoU 阈值为0.3

BBox Regression

为分好类的Proposal Region 校正边框

  • 训练集是BBox 的中心点及长宽(x,y,w,h), 输入是CNN 提取到的特征(pool5)

  • 只用判定为本类的候选框中IoU大于0.6的候选框训练。

问题:

  1. CNN训练的时候,本来就是对bounding box的物体进行识别分类训练,是一个端到端的任务,在训练的时候最后一层softmax就是分类层,那么为什么要先用CNN做特征提取(提取fc7层数据),然后再把提取的特征用于训练svm分类器?

    这是因为svm训练和cnn训练过程的正负样本定义方式各有不同,导致最后采用CNNsoftmax输出比采用svm精度还低。cnn在训练的时候,对训练数据做了比较宽松的标注——采用这个方法的主要原因在于因为CNN容易过拟合,需要大量的训练数据;然而svm训练的时候,因为svm适用于少样本训练,所以对于训练样本数据的IOU要求比较严格。

fast-RCNN

  • 和RCNN相比,训练时间从84小时减少为9.5小时,测试时间从47秒减少为0.32秒

Feature extraction & Classifier & BBox Regression(VGG16):

RCNN一张图像内候选框之间大量重叠,提取取特征操作冗余。 为加快速度

  • 训练时,先将一张图像送入网络,在pool5送入从这幅图像上提取出的候选区域(ROI pooling layer)。这些候选区域的前几层特征不需要再重复计算。

  • 测试时,将整张图像归一化后直接送入深度网络。在pool5 才加入候选框信息,在末尾的少数几层处理每个候选框。

RCNN中独立的分类器和回归器需要大量特征作为训练样本。 本文把类别判断和位置精调统一用深度网络实现,不再需要额外存储。

同时, 因为网络末端同步训练的分类和位置调整,提升准确度,因此直接输出最后一层作为分类结果。

注解

pool5 将patch 均分成 H*W 的区域pool, 因此形成固定大小的特征,类似 SPP-net

faster-RCNN

参考链接

  • 5-17 fps

  • ZF, VGG16

Region proposals:(RPN)

在提取好的特征图上,对所有可能的候选框进行判别。由于后续还有位置精修步骤,所以候选框实际比较稀疏。

  • 结构:多加一层 conv ,然后时是并行的分类(object or not)和校正网络(x,y,w,h)

  • 训练样本

    1. 对每个标定的真值候选区域,IoU最大的anchor记为前景样本

    2. 对a)剩余的anchor,如果其与某个标定重叠比例大于0.7,记为前景样本;如果其与任意一个标定的重叠比例都小于0.3,记为背景样本

    3. 对a),b)剩余的anchor,弃去不用。

    4. 跨越图像边界的anchor弃去不用

    注解

    Note that a single ground-truth box may assign positive labels to multiple anchors.

训练的3种方法:
  • 轮流训练

  • 近似联合训练

  • 联合训练

Mask RCNN

  • extends Faster R-CNN by adding a branch for predicting segmentation masks on each RoI

  • RoIAlign

  • decouple mask and class prediction: with a per-pixel sigmoid and a binary loss

  • models can run at about 200ms per frame(5 fps) on a GPU

  • human pose estimation

  • network-depth-features: ResNet-50-C4, Feature Pyramid Network (FPN)

Pedestrain Detection

评价指标

  • Precision Recall Curve

  • Average Precision

  • Log-Average Miss Rate under IoU > 0.5 (0.7 is better)

方法

  • deformable Part Model, DPM

  • Aggregated Channel Feature, ACF

  • Locally Decorrelated Channel Feature, LDCF

Pedestrain reidentification

评价指标

  • mean Average Precision (mAP)

  • rank-1, 10, 20 accuracy

置信加权相似度(Confidence Weighted Similarity, CWS) Online Instance Matching, OIM

方法

  • ID-discriminative Embedding, IDE

Handwritten Chinese Character Recognition(HCCR)

NLP(natural language processing)

  • 2013 富士通公司的团队采用改进的CNN (Convolutional neural network)网络,获得了脱机手写汉字识别的第一名,识别率高达94.77%

  • 2015 改进的HCCR-GoogLeNet模型,在ICDAR2013比赛数据集上取得了96.74%的识别率(首次超越人类)

深度学习方法的问题

训练和测试时间较长,字典存储偏大等问题,

ocr 识别方法: - - sequence-based model(based on HMMs, Connectionist Temporal Classification, Attention based models, etc.) - attention-based models :Attention就是在网络中加入关注区域的移动、缩放机制,连续部分信息的序列化输入。 关注区域的移动、缩放采用强化学习来实现。 - third party solutions like Abbyy(收费) or Tesseract

android 方案: tensorflow caffe react native –> tesseract 库 云服务 –> tensorflow server / docker

Tesseract

1. app/build.gradle 添加依赖 tess-two 依赖(tess-two 网页) 2.

EHR

concept representation

作用:

  • 检索相关concept : 表征空间的最近邻

  • 病人相似性:

  • 电子分型

  • 一些用于预测疾病或再入院时间的机器学习算法可以使用更少的数据

To Be Continue

价值迭代网络

  • SA-GAN(Self-Attention GAN): 生成图片, 对生成器和判别器应用谱归一化(spectral normalization)

  • ST-GAN(Spatial Transformer GAN):

  • ATA-GAN(Attention-Aware GAN):生成图片, a novel attention transfer mechanism

  • DA-GAN(Deep Attention GAN): instance-level image translation, 非监督, 可用于 text-to-image