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

来源:6-17 数据清洗与数据打包-实操(2)

慕无忌7596857

2021-05-19

##保留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里的代码我也没看懂

写回答

1回答

会写代码的好厨师

2021-05-22

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

0
0

Python3+TensorFlow打造人脸识别智能小程序

理论与实战项目双管齐下,让AI技术真正落地应用,适合毕设展示。

1086 学习 · 538 问题

查看课程