图像相关任务:
1、物体识别(faster R-CNN)
2、图片识别+定位
3、物体检测
4、图像分割
图片定位:
输入:image
输出:物体边界框(x,y,w,h);x,y是左上角坐标,w是宽度,h是高度。
评价准则:交并准则
思路1:看成回归问题。因为有四个数字
步骤1: 先解决简单问题,搭一个识别图像的神经网络。在经典CNN上进行fine-tuning
步骤2: 在上述神经网络的尾部展开,成为classification + regression 模式。
a、最后的卷积层后
b、全连接层后
步骤3:Regression部分用欧式距离损失,使用SGD训练。
步骤4: 预测阶段把两个“头部”模块拼上。完成不同的功能。
应用:如何识别人的姿势?
思路2: 图窗+识别与整合
步骤1:设定图窗大小,和不同位置。如下图中的黑框。
步骤2: 根据指定的黑框,预测其属于猫的概率,和猫的定位(注意,回归的值域可能会溢出黑框的值域)。
步骤3: 将四个黑框的概率 和 猫的定位都进行merge。得到最终结果。
想办法克服一下过程中的“参数多”与“计算慢”
1) 多卷积层代替全连接层
2)测试/识别阶段的计算是可复用的(卷积分成小格子了)
物体识别(多物体):
思路1: 再次看成回归问题??
很可惜,样本那么大,我并不知道一张图片上面最多有多少个物体。。。。。
思路2: 试着看做分类问题?
我还是不知道有多少类别。。。。。
思路3: 看做分类问题,有没有办法优化下?
1、为什么要先给定框,能不能找到“候选框”?
2、想办法先找到“可能包含内容的图框”
针对第一个问题: 自下而上融合成“区域”;将“区域”扩充为“图框”。
R-CNN:(迁移学习)
步骤1: 找一个预训练好的模型,做一个fine-tuning
步骤2: fine-tuning模型,比如20个物体类别 + 1个背景
步骤3: 抽取图像特征
a、用 “图框候选算法”抠出图窗
b、resize后用CNN坐前向运算,取第5个池化层做特征
c、存储抽取的特征到硬盘/数据库上。
步骤4: 训练SVM识别 是不是 某个物体 (2分类)
步骤5: bbox regression
微调图窗区域
R-CNN -> Fast-rcnn -> Faster-rcnn
迁移学习的应用:
步骤1: 抽取给定图片的内容表征(比如AlexNet的第五个卷积层的输出)
最后我们生成的图片 要跟给定图片在内容上保持一致,所以要计算一个 content loss。
步骤2:抽取风格图片的特征 (比如 第一个卷积层的输出)
风格的损失函数
步骤3: 将内容loss + 风格loss,优化损失函数。