Keypoints Detection of Apparel-Challenge the Baseline
服装关键点检测。
训练集集格式:
image_id,image_category,neckline_left,neckline_right,center_front,shoulder_left,shoulder_right,armpit_left,armpit_right,waistline_left,waistline_right,cuff_left_in,cuff_left_out,cuff_right_in,cuff_right_out,top_hem_left,top_hem_right,waistband_left,waistband_right,hemline_left,hemline_right,crotch,bottom_left_in,bottom_left_out,bottom_right_in,bottom_right_out
Images/blouse/d21eab37ddc74ea5a5f1b4a5d3d9055a.jpg,blouse,241_135_1,301_135_1,259_136_1,216_142_1,319_144_1,212_186_1,307_202_1,-1_-1_-1,-1_-1_-1,203_236_1,195_256_1,278_241_1,283_261_1,206_243_0,292_252_0,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1
Images/blouse/02b54c183d2dbd2c056db14303064886.jpg,blouse,244_76_1,282_76_1,257_99_1,228_81_0,303_85_1,222_134_1,295_131_1,-1_-1_-1,-1_-1_-1,199_153_1,178_100_0,293_173_1,332_150_1,229_161_1,297_162_0,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1,-1_-1_-1
测试集格式:
image_id,image_category
Images/blouse/00009cb5cebc3fe3d7502d6fb2cfe71c.jpg,blouse
Images/skirt/fffeeda340a2865c1c508e2323b1ea1c.jpg,skirt
Images/trousers/000d474348e8e079b24d402650c1447c.jpg,trousers
由于不同服装种类不同,存在的关键点种类有差异(详见链接表格)
关键点有三种状态:-1:不存在,0:存在但被遮挡,1:存在并无遮挡
评价公式:
dk是预测点和真实点的欧式距离,sk是归一化系数,δ(vk==1) 中 vk为关键点的状态,当且仅当vk=1的时候δ()=1,也就是说只考虑关键点可见时的结果。这其实已经降低了难度。
先贴一个标准YOLOv3模型图:
yolov3 的关键或者说YOLO相较于之前的入Faster-rcnn等模型的 特点在于这几条:
将最终输出n * n * 255 改为 n * n * (24种关键点 * ( 2个坐标 + 3种状态 + 1可信度)) = n * n * 144 ,
即讲原图分为若干个格子,每个格子都要预测24个关键点相对格子左上角的坐标,以及对应关键点的状态,和可信度。
由于改动比较小,就不贴代码了。
之所以尝试用YOLOv3解决问题,是因为刚刚学了YOLOv3 , 实际上这么修改模型去解决关键点是比较粗糙的。实际上loss也非常大,维持在200左右降不下来。无法收敛。
但是通过实践,有以下收获和思考: