深度学习Mask R-CNN等实例分割网络
Mask R-CNN
单独添加了一个和cls/reg并行的mask分支,
通道数就是cls的个数,即为每一类预测一个mask。
mask的特征图都要大于cls/reg,因为mask是像素级别的,分辨率应该高些。
最后使用的下图右边的结构,因为有FPN效果更好。
毕设项目演示地址: 链接
毕业项目设计代做项目方向涵盖:
OpenCV、场景文本识别、机器学习、风格迁移、视频目标检测、去模糊、显著性检测、剪枝、活体检测、人脸关键点检测、3D目标跟踪、视频修复、人脸表情识别、时序动作检测、图像检索、异常检测等
SOLOv1
-
直接假设图中有S×S个目标,共有C个类别
-
两个分支
分类分支:S×S×C。即每个实例所属于的类别。
掩膜分支:H×W×S×S。即每个实例的掩膜图。
从而由分类分支确定那个实例是有物体的,从而从掩膜分支找出对应的掩膜图。
SOLOv2
主要目标:v1参数量太大,v2减少计算量。
SOLO v2中的mask branch 被分解为mask kernel branch和mask feature branch,分别对应卷积核的学习和特征的学习。两个分支的输出最终组合成整个mask branch的输出。
Mask kernel branch
Mask kernel branch用来学习卷积核,即分类器的权重,有点类似STN和Dynamic Filter的思路。这里输入为H×W×E的特征F,其中E是输入特征的通道数;输出为卷积核S×S×D,其中S是划分的网格数目,D是卷积核的通道数。对应关系如下:1×1×E的卷积核,则D=E,3×3×E的卷积核,则D=9E,以此类推。注意到这里不需要激活函数。
- 输出(以3×3卷积核为例):
由分类分支确定S×S大小的特征图中,哪个位置有实例。
从kernel branch中找出对应位置的特征(D维=9E);
将D维特征向量reshape成3×3×E的卷积核;
利用这个卷积核对feature branch进行卷积得到的就是掩膜图。