面部识别和匹配的实现记录
面部识别和匹配的实现记录

面部识别和匹配的实现记录

上一篇提到FacenetEvo使用detect_face(PIL.Image img)方法实现MTCNN下PRO网络的面部识别,而我使用OpenCV得到的帧输入为CV::Mat格式,需要进行一次BGR to RGB的转换再转为PIL Image

img = Image.fromarray(cv.cvtColor(mat, cv.COLOR_BGR2RGB))

其次是输出框选的图片的方法

boxedImg = show_results(img,boundingBoxes,landmarks)

这个方法接受一个PIL Image最后输出被框选的图片。

由于我最后采用OpenCV作为输出画面,所以还需要将boxedImg转换为Mat。

也就是说,在这个过程中,Mat需要被转换为PIL Image再转回Mat输出,这样会产生不必要的性能损失。所以我将show_results方法重写

boxedMat = show_results(mat,boundingBoxes,landmarks)

原方法中使用Draw类对图片进行操作,而OpenCV中则使用rectangle和circle进行绘图。

至于detect_face方法,本想也重写代码使其支持输入Mat,然而多次修改后仍出现数据维度错误,遂暂时搁置。

蜗牛式更新中~

4条评论

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据