本文共 1141 字,大约阅读时间需要 3 分钟。
Part 1 Hog Representation
通过feature.hog函数生成face_feature和hog_image,图片如下:Part 2 Sliding Window
使用特定大小的窗口进行滑窗,完成Sliding_window函数,主要思路是先将原有图片进行填充,然后建立二重循环,计算每一个点的hog_score,完成response_map的建立,通过resize函数将response_map缩放到image大小,完成准备工作,开始测试,图片如下: 然而,我们发现,缩放比例后,再次调用Sliding_window函数,目标检测效果达不到我们的预期,偏差较大: 于是我们提出了以下解决方案(图像金字塔):Part 3 Image Pyramids
不停地缩小图片比例,并检测图片是否满足要求,同时将满足要求的图片放入一个list中,如果图片过小,就跳出循环,生成一个“倒金字塔”,共七张图片。之后,完成Pyramid_score函数,通过对图片金字塔里的每一张图片使用滑窗函数遍历,找到打分最高的识别图片和缩放比例,图片如下:
Part 4 Deformable Parts Detection
生成五官的特征图,在此不再赘述。Part 5 Human Parts Location
完成compute_displacement函数,求出偏移量mu和标准差std。其中,标准差的求解办法正如数学数学标准差求解所述。 此后,完成shift_heatmap函数,用heatmap矩阵中的每一个位置上的元素除以矩阵元素总和,以此保证每一个位置的元素都不大于1。再用interpolation.shift函数处理heatmap,偏移量参数采用mu,获得新的四张heatmap,如下图所示。Part 6 Gaussian Filter
完成gaussian_heatmap函数,叠加五张heatmap,完成。图片如下滑窗函数问题:做的时候并没有真正理解pad_image究竟是填充后的整张图片还是仅仅是填充边框。此外,把窗口左上角点的分数当成了整个小窗口的份数,导致response_map的绘制出现问题,缩放后,大块的区域都是一种颜色。通过不断的试验和研究文档,对于第一个问题我采用imshow函数,展示了pad_image,搞清楚了pad_image到底代表什么图片。对于第二个问题,我在不断地尝试后,终于把问题解决掉了。
特征金字塔问题:在一开始,由于没有仔细看要求,误把第一张不符合要求的照片也放入images中,在后续运行中出现问题。于是我查看了文档注释并且修改了函数逻辑,实现了此处功能。
转载地址:http://ecugf.baihongyu.com/