【天池比赛服装关键点检测fashionAI_landmark_detect踩坑笔记(一)】

 

原有思路:利用已有的在ImageNet数据集上分类效果好的网络为基础,对服装图像数据集进行特征提取,然后进行回归,分别得到需要定位的关键点。
注意:由于convNet越往深层提取的特征越是高层特征,视野更广,而相对一些边缘信息等浅层特征会被忽略,因此在用VGG16进行回归时NE效果是28%,比较差。
改进点:
(1)可以通过减少网络的层数来看关键点检测的准确率

 

 

(2)可以把 每层学习到的权重通过热力图进行可视化,通过不同准确率结果的对比从而观察检测关键点更关注的是图像的哪些特征。
 
(3)在训练时可以从后往前冻结预训练权重参数或者都不进行冻结,对比实验效果;可以对图像进行随机旋转,对数据集进行裁剪(去均值与归一化预处理可以考虑看对实验的效果)

 

 

(4)对关键点进行比例变化,把坐标转换为相对原点的比例值,比如图像大小为200*200,关键点标签为(100,100),则可以转换为(0.5,0.5),方便标签关键点的比例缩放计算。
 
(5) 加入heatmap的思路:可以把标签关键点映射成一张服从高斯分布的二维曲面图。这样可以减少误差。因为这样从网络回归出来的不是一个个点,而是一张张二维曲面图,这样与标签的生成的二维曲面图进行误差比较,设计出一个lossFunction,进行学习迭代,以减少误差。这样一来把一个点的误差映射成一个平面的误差来学习,显然会提高准确率。(对loss Function需要进一步设计与研究)
(6)正如前面所说,卷积神经网络学习的特征没有层次信息,不注重图像的关联结构,而服装关键点之间的关联性与相对地理位置比较强,因此可以改用近期机器学习领域的大神提出的胶囊网络(capsuleNet)来进行特征提取,从而提高关键点检测的准确率。
编程时需要注意的:在定义已有网络时,keras中对输入的shape需要定义(即属性
input_shape=(299, 299, 3)
),不然会报错。。。

(7)没必要训练五个模型,可以把所有的点都集成起来训练成一个模型,这样一个模型就可以定位五类不同种类的服装。

开了一个技术交流的公众号,里面记录一些在学习有关深度学习,推荐系统与机器学习过程中的笔记与心得,欢迎关注~

                                                                      

 

 

 

 

你可能感兴趣的:(机器学习学习心得,比赛经历与总结分享)