获取用于面部检测的边界框,然后裁剪图像 [VGGFace2&MTCNN]

技术讨论 tobimarsh43 ⋅ 于 5天前 ⋅ 40 阅读

我正在做一个人脸识别项目。 我决定使用预先训练的模型,然后选择https://github.com/ox-vgg/vgg_face(此处为模型链接)上可用的renet50 PyTorch模型。 解压缩该文件后,我得到一个README文件,一个.pth文件(模型权重)和一个.py文件(模型体系结构)。 我能够轻松加载模型,但是随后出现了问题。 根据自述文件,

MTCNN [2]用于面部检测。 然后将边界框扩展0.3倍(图像外部扩展除外)以包括整个头部,
用作网络的输入(值得注意的是,此版本比边界框扩展1.0倍的松散裁剪版本更严格)。

在Durining训练中,从每个输入中随机裁剪了224x224像素的区域,其较短的大小已调整为256。
对每个像素减去每个通道的平均值(BGR顺序的平均向量[91.4953,103.8827,131.0912])。 有关更多详细信息,请参见VGGFace2。

楷模:

resnet50_256:在ResNet-50模型的最终全局平均池化层上堆叠的256维降维层。

实施参考:

[1] PyTorch:https://pytorch.org

[2] MTCNN:https://github.com/kpzhang93/MTCNN_face_detection_alignment

[3] MMdnn:https://github.com/Microsoft/MMdnn

问题是我不知道如何使用MTCNN来获取边界框,然后如何裁剪它。 我正在使用Google Colab,并且更喜欢使用TensorFlow或PyTorch。 请告诉我一种获取边界框并裁剪图片以进行人脸检测的方法,可以使用MTCNN或其他方法。 有什么简单的方法吗? 我是机器学习的新手,所以请帮帮我。

几乎没有更新=>直到现在我已经尝试了这个东西,但是它不起作用并且收割错误

图片= np.asarray(bytearray(resp.read()),dtype ='uint8')
图片= cv2.imdecode(图片,cv2.IMREAD_COLOR)
img = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

#从mtcnn libraray获取盒子
#在这个诽谤中-
#在“框”键下,边框的格式为[x,y,width,height]。
#因此,我将这些坐标转换为x1,x2,y1,y2格式
#然后我将其除以img_width和img_height
#因为tf.image.crop_and_resize期望来自[0,image_height-1]的“规范化坐标”
检测器= MTCNN()
[x,y,宽度,高度] = detector.detect_faces(img)[0] ['box']
[img_width,img_height,img_channel] = image.shape
img_height- = 1
img_width- = 1
x1 =(int)(最大值((x-(width / 2)),0)/ img_width)
x2 =(int)(min((x +(width / 2)),img.shape [0] -1)/ img_width)
y1 =(int)(max((y-(height / 2)),0)/ img_height)
y2 =(int)(min((y +(height / 2)),img.shape [1] -1)/ img_height)

#转换为张量
im_tensor = tf.convert_to_tensor([img],dtype = tf.float32)
box_tensor = tf.convert_to_tensor([[y1,x1,y2,x2]],dtype = tf.float32)
boxinc_tensor = tf.convert_to_tensor([0],dtype = tf.int32)
crop_size = tf.convert_to_tensor([256,256],dtype = tf.int32)

#使用tensorflow进行裁剪
new_img_tensor = tf.image.crop_and_resize(im_tensor,box_tensor,boxinc_tensor,crop_size)
#cov noteboo的cv2 display命令
cv2_imshow(np.asarray(new_img_tensor [0]))

这是它输出的图像:
img

培训师 https://bit.ly/3nfYiu3

成为第一个点赞的人吧 :bowtie:
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!