1)机器视觉的主要任务:
image classification:即对图片做单一物体识别;
object detection:即对图片做多物体识别,同事用方框框柱物体 ;
neural style transfer:即用一张图片的内容不变,但风格别另一张图片的风格取代。
2)机器视觉面临困难挑战
图片像素多,即数据特征多,导致模型中的参数多;
参数多,如果数据量不能超过参数数量,容易过拟合;
参数量巨大,占用大量内存,计算效率低下;
如果数据量充足,计算量将会是惊人需求,训练效率低效。
3)CNN中padding算不算噪声?
padding是增加各个边的pixels的数量,目的是保持feature map不要太小,单也没必要超过原图的大小,所以不可以任意数量;
padding的上限是维持feature map大小与原图大小一致,具体增加pixel的数量多少,有filter的尺寸和strider大小共同决定;
padding存在的意义:为了不丢弃原图信息,保持feature map的大小与原图一致;为了让更深层的layer的input依旧保持有足够大的信息量。
综上,padding出来的pixel的值都是0,不存在噪音问题。
4)CNN中stride意义
stride实质上就是filter在原图上扫描是,需要跳跃的格数,默认跳一格。通过跳格,减少filter与原图做的扫描时的重复计算,提升效率。stride太小,重复计算较多,计算量大,训练效率降低。stride太大,会造成信息遗漏,无法有效率提炼数据背后的特征。
5)RGB图片,96个filter(3X3),feature map最终长什么样?里面每个值是如何计算的?
RGB图片与黑白图片下的feature map都是width x height x 96,只是每一个彩色feature map中的值 = 三种颜色经过filter处理之后的和。
input上的变化:
(1)灰度图片的input,是2D,width x Height
(2)彩色图片的input,是3D,width x Height x Channels
filter上的变化:
(1)灰度图片,是2D,Width x Height
(2)彩色图片,是3D,Width x Height x Channels
注意:两者的filter的数值是一样的。
feature map上的变化
(1)灰度图片,一个filter,是2D,Width x Height;多个filters,Width x Height x filter数量
(2)彩色图片一样
6)为什么处理图片CNN比DNN高效的多?
举例:面对1000X1000的高清(灰度)图片,同样提取10个特征,需要多少个参数?
DNN:需要10000X1000X10=1千万个参数
CNN:需要5X5X10=250个参数(假设filter是(5X5))
DNN只能接受全局特征,CNN都可以,更倾向于学习小的局部特征。
7)CNN的pooling层有什么作用?
存在的价值:
本质上,是在精简feature map数量的同时,最大化保留空间信息的特征信息的处理技巧。目的是,通过feature map进行压缩浓缩,给到后面hidden layer的input就小了,计算效率能提高。
CNN的invariance的能力,本质是由convolution创造的的。
工作原理:
feature map作为input,用不含参数的filter(小方框自由设计尺寸)对其做扫描,平移,跳格;filter没有参数,但要对方框内的数值做最大值(max pooling)或均值(average pooling)保留,抹去方框内其他值,实现压缩浓缩。把留下的值形成的matrix,也就是浓缩后的feature map传给下一层的hidden layer。
convolution也能对input做压缩,为什么还要用pooling layer?
pooling layer在压缩上比convolution更专注和易用。更好的解释见:CNN学习笔记
8)怎么理解feature map在逐步缩小,feature map的channels在逐步增多
feature channels增多,我们希望负责特征的数量也越来越好,越多我们对图片了解越多。
feature 长与宽越来越小,因为我们希望每个特征都是精炼简洁的,去除不必要的噪音;
每个特征,都是前一层feature map上的多个特征融合而成,本身的信息量充足,无需在长和宽上增加信息量。
9)如何理解convolution layer的设计优势
设计特点:
对原图片和input,做保留空间信息的扫描处理,截取出大量小图片来做数据特征提炼学习(不针对全局input做处理);只提炼小特征pattern,只针对每一个局部小图片做一个小特征的学习和提炼,直到所有局部小图片处理完毕(不针对全局input学习和提炼特征);
设计优势:
每个特征所需要的参数极少,模型变得极小,训练效率大幅提升,避免模型过大的overfitting;(share parameters ,sparsity connection);每个特征都是小特征,可以在原图和input每一个区域得到的应用,产生了模型的invariance能力。
10)在R-CNN【Regions with CNN features】中为什么使用IoU非极大值抑制
问题背景:
一张图里,有两辆车,10个region;任务是:保留最优的两个regions,排除剩下的8个regions。
解决方案:
NMS(non-maximum suppresssion)算法为框架,IoU(Intersection over Union)提供评估尺度
IoU
计算两个region(两个方框)的重合度。
NMS算法原理
先找到车辆概率最高的region1;
在计算所有车辆region和region1之间的IoU值;
再设定一个阈值,比如0.7;
抹去所有IoU值>=0.7的车辆region;
这样一来,region1周边的(与region1高度重合的)车辆region都被排除了。
11)如何理解CV【机器视觉】的现状
在数据多时,机器学习,深度学习模型可以从数据中学习特征和规律;数据少时,不得不依赖人的经验和灵感,去学习特征和规律;学术圈,常用ensemble(训练和叠加多个高度想死的模型结果)和multi-crop(多角度剪切修改原图衍生出更多图片数据)来提升模型表现。但行业内认为这两种方法消耗过多时间和计算成本,不实用。
12)如何通过landmark detection方式完成人脸识别和体态识别
也是一个模型,2个任务:classification and regression;
(1)人脸识别,用的是64个脸部关键点(128个值),这是regression问题;但在做128个值的训练和预测前,首先要确认图片中存在人脸。这是一个分类问题,0或者1判断是否存在人脸,label上的数据总量=129.
(2)物体识别,bounding box 需要中心点和长与宽的偏移值
landmarks的ground truth labels获取成本高昂,且容易数据收集时出错。