demi的博客

图像处理之image stitching

背景介绍

图像拼接是一项应用广泛的图像处理技术。根据特征点的相互匹配,可以将多张小视角的图像拼接成为一张大视角的图像,在广角照片合成、卫星照片处理、医学图像处理等领域都有应用。早期的图像拼接主要是运用像素值匹配的方法。后来,人们分别在两幅图像中寻找拐点、边缘等稳定的特征,用特征匹配的方法拼接图像。本实验根据Matthew Brown (2005) 描述的方法,实现多张生活照的拼接。

特征点捕捉 (Interest Point Detection)

首先,拍摄两张场景有重合的照片。为了保证有足够多的公共特征点,照片的重合度应该保证在30%以上。将两张照片转换为灰度图像,对图像做σ=1的高斯模糊。在Matthew的文章中,他建立了一个图像金字塔,在不同尺度寻找Harris关键点。考虑到将要拼接的照片视野尺寸接近,故简化此步骤,仅在原图提取特征点。

人脸检测中几种框框大小的选择~

人脸检测应用极为广泛,内部细节也偏多,尤其是涉及到几种类型的框,这几种框的大小之前有着千丝万缕的联系,对检测性能的好坏影响程度大小不一。本篇文章基于自己在人脸检测方面的经验,说说对这些框之间关系的一些理解。

现在大部分人脸检测效果都已adaboost+LBP(各种改进)的方式实现,adaboost由N个强分类器组成,每个强分类器由M个弱分类器组成,而每个弱分类器其实就是一个特征。

本文以LBP特征为例,人脸检测共涉及到如下几类框:

1. LBP特征矩形框大小(极为重要)
2. 检测框大小(重要)
3. 检测目标大小(次要)
4. 原始训练样本大小(重要)
5. 图像大小(不重要)

其中,LBP特征矩形框大小一般由四个量组成,它们是:矩形框相对于模板的位置(x, y),矩形框的大小(w, h)。这四个变量均可以自由改变,只是有一个约束,那就是原始训练样本的大小(这也是我说的联系1)。

联系1:假设原始训练样本大小为28*28,那么LBP特征矩形框四个变量的取值均在[0-28]之内。

卷积神经网络CNN—— BN(Batch Normalization) 原理与使用过程详解

前言

Batch Normalization是由google提出的一种训练优化方法。参考论文:Batch Normalization Accelerating Deep Network Training by Reducing Internal Covariate Shift

个人觉得BN层的作用是加快网络学习速率,论文中提及其它的优点都是这个优点的副产品。

网上对BN解释详细的不多,大多从原理上解释,没有说出实际使用的过程,这里从what, why, how三个角度去解释BN。

What is BN

Normalization是数据标准化(归一化,规范化),Batch 可以理解为批量,加起来就是批量标准化。
先说Batch是怎么确定的。在CNN中,Batch就是训练网络所设定的图片数量batch_size。

Normalization过程,引用论文中的解释:

LSTM(Long Short-Term Memory)长短期记忆网络

1. 摘要

对于RNN解决了之前信息保存的问题,例如,对于阅读一篇文章,RNN网络可以借助前面提到的信息对当前的词进行判断和理解,这是传统的网络是不能做到的。但是,对于RNN网络存在长期依赖问题,比如看电影的时候,某些细节需要依赖很久以前的一些信息,而RNN网络并不能很好的保存很久之前的信息,随着时间间隔不断增大,RNN网络会丧失学习到很远的信息能力,也就是说记忆容量是有限的。例如,对于阅读一本书,从头到尾一字不漏的阅读,肯定是越远的东西忘得越多。所以引入了LSTM网络,对于LSTM来解决梯度消失梯度爆炸问题。

LSTM其实也是RNN的一种变体,大体结构几乎是一样的,但他们又有区别他的“记忆细胞”被改造过,该记忆的信息会一直传递下去,而不该记忆的东西会被“门”截断。

2. LSTM网络

对于RNN网络都是具有重复神经网络模块的链式形式,在一个标准RNN中这个重复的模块只要一个非常简单的结构,例如一个tanh层。

物联网在2018年迎来了突破性发展

进入2018年,越来越多人开始习惯于让家里的亚马逊Alexa、谷歌助手之类的智能音响完成列购物清单、开灯、关灯之类的工作。相比于几年前已经进入普通人家、且如今看来已不再新鲜的扫地机器人来说,这些新兴的智能设备将加速促进生产生活和社会管理方式向智能化、精细化、网络化方向转变。

虽然我们越来越习惯于跟机器交谈,让其为我们完成一些琐碎的工作,但备受期待的物联网所带来的改变远不止于此,而是更加深远,是在一个充满智慧城市、互联程度越来越高的世界中机器与机器之间的互相联通。

物联网技术的话题已经热议了很长时间,现在终于有了一些实质性的进展。在过去的十几年间,全球相继启动智慧城市计划。德勤最新发布的《超级智慧城市报告》显示,目前全球已启动或在建的智慧城市已达1000多个,从在建数量来看,中国以500个试点城市居于首位。随着中国将智慧城市写入国家战略,并投入大量资金,无论是一线城市,或是中小型城市,皆有智能城市项目落地,并且形成了数个大型智慧城市群,分布在东部沿海以及中西部地区。

机器学习:集成学习(ensemble learning)——原理概述

集成学习(ensemble learning)

集成学习通过构建多个个体学习器,然后再用某种策略将他们结合起来,产生一个有较好效果的强学习器来完成任务。基本原理如下图所示。这里主要有三个关键点:个体学习器的同质异质、个体学习器的生成方式、结合策略。

机器学习:集成学习(ensemble learning)(一)——原理概述

  •   同质异质

首先需要明确的是个体学习器至少不差于弱学习器。弱学习器常指泛化性能略优于随机猜测的学习器,例如二分类问题中精度略高于50%的分类器。对于训练数据若集成中的个体学习器为同一类型,例如都为BP神经网络或者都为决策树,则称同质集成。同样的道理,若个体学习器类型不同,例如既有决策树又有神经网络,则称异质集成。

  •   个体学习器的生成方式

深度学习在OCR中的应用

背景

计算机视觉是利用摄像机和电脑代替人眼,使得计算机拥有类似于人类的对目标进行检测、识别、理解、跟踪、判别决策的功能。以美团业务为例,在商家上单、团单展示、消费评价等多个环节都会涉及计算机视觉的应用,包括文字识别、图片分类、目标检测和图像质量评价等方向。本文将通过以OCR(光学字符识别)的场景来介绍深度学习在计算机视觉中的应用。

基于深度学习的OCR

文字是不可或缺的视觉信息来源。相对于图像/视频中的其他内容,文字往往包含更强的语义信息,因此对图像中的文字提取和识别具有重大意义。OCR在美团业务中主要起着两方面作用。一方面是辅助录入,比如在移动支付环节通过对银行卡卡号的拍照识别以实现自动绑卡,辅助运营录入菜单中菜品信息,在配送环节通过对商家小票的识别以实现调度核单,如图1所示。另一方面是审核校验,比如在商家资质审核环节对商家上传的身份证、营业执照和餐饮许可证等证件照片进行信息提取和核验以确保该商家的合法性,机器过滤商家上单和用户评价环节产生的包含违禁词的图片。

一位ML工程师构建深度神经网络的实用技巧

在经历成千上万个小时机器学习训练时间后,计算机并不是唯一学到很多东西的角色,作为开发者和训练者的我们也犯了很多错误,修复了许多错误,从而积累了很多经验。在本文中,作者基于自己的经验(主要基于 TensorFlow)提出了一些训练神经网络的建议,还结合了案例,可以说是过来人的实践技巧了。

作者| Matt H/Daniel R
译者| 婉清
编辑| Jane
出品| AI 科技大本营

通用技巧

有些技巧对你来说可能就是明摆着的事,但在某些时候可能却并非如此,也可能存在不适用的情况,甚至对你的特定任务来说,可能不是一个好的技巧,所以使用时需要务必要谨慎!

▌使用 ADAM 优化器

确实很有效。与更传统的优化器相比,如 Vanilla 梯度下降法,我们更喜欢用ADAM优化器。用 TensorFlow 时要注意:如果保存和恢复模型权重,请记住在设置完AdamOptimizer 后设置 Saver,因为 ADAM 也有需要恢复的状态(即每个权重的学习率)。

▌ReLU 是最好的非线性(激活函数)

卷积神经网络CNN——图像卷积与反卷积(后卷积,转置卷积)

1. 前言

传统的CNN网络只能给出图像的LABLE,但是在很多情况下需要对识别的物体进行分割实现end to end,然后FCN出现了,给物体分割提供了一个非常重要的解决思路,其核心就是卷积与反卷积,所以这里就详细解释卷积与反卷积。

对于1维的卷积,公式(离散)与计算过程(连续)如下,要记住的是其中一个函数(原函数或者卷积函数)在卷积前要翻转180度

【模式识别】MPL,MIL和MCL

Multi-Instance Learning (MIL) 和Multi-Pose Learning (MPL)是CV的大牛Boris Babenko at UC San Diego提出来的,其思想可以用下面一幅图概况。MIL是指一个对象的学习实例可能有很多种情况,学习的时候不是用一个精确的标注对象来学习,而是用一个对象的多个实例组成的“包”来学习;而MPL是指一个对象会有多个姿态(Pose),学习的时候用一个分类器常常难以达到很好的效果,所以可以训练多个分类器来分别学习不同的Pose。其描述的都是对一个对象多种情况的同时学习和对齐的策略,也就是MIL是“adjusting training samples so they lie in correspondence”,而MPL是“separating the data into coherent groups and training separate classifiers for each”。