上一篇提到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,然而多次修改后仍出现数据维度错误,遂暂时搁置。
蜗牛式更新中~
好优秀喔(´∀`*)
Thankssss~
01?
10