请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

widerface.py中的数据清洗代码没看懂

##保留resize到640×640 尺寸在8×8以上的人脸
if infos[2] * 80 < im_data.shape[1] or infos[3] * 80 < im_data.shape[0]:
continue

        bbox = (infos[0] + off_w, infos[1] + off_h, infos[2], infos[3])

老师,这一段widerface中数据清洗代码视频中没有讲解,就是为什么能到640,为什么又是8×8了,没看懂代码。

##需要注意的一点是,图片直接经过resize之后,会存在更多的长宽比例,所以我们直接加pad
sc = max(im_data.shape)
im_data_tmp = numpy.zeros([sc, sc, 3], dtype=numpy.uint8)
off_w = (sc - im_data.shape[1]) // 2
off_h = (sc - im_data.shape[0]) // 2

    ##对图片进行周围填充,填充为正方形
    im_data_tmp[off_h:im_data.shape[0]+off_h, off_w:im_data.shape[1]+off_w, ...] = im_data
    im_data = im_data_tmp

老师,这两小段widerface.py里的代码我也没看懂

正在回答 回答被采纳积分+3

1回答

会写代码的好厨师 2021-05-22 03:12:54

第一代码的意思就是把图片放大到640×640以后,图片中的人脸框也会发生相应的变化,然后,我们只取8×8以上尺寸的框来训练,太小的人脸就不要了。
第二段,选择长边来作为输出正方形的尺寸,然后,短边进行pad,把矩形pad为正方形,防止拉伸。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号