我正在使用OpenCV
或dlib
来检测图像中的脸部。结果非常好。这是一个例子:
我试图寻找一个图书馆或框架来帮助我实现这一目标,但我找不到。
有没有办法做到这一点?
答案 0 :(得分:0)
使用此代码按百分比增加边界框。
rects = detector(original_image, 1)
for rect in rects:
(x, y, w, h) = rect_to_bb(rect)
x_inc = int(w*0.3)
y_inc = int(h*0.3)
sub_face = original_image[y-y_inc:y+h+y_inc, x-x_inc:x+w+x_inc]
newimg = cv2.resize(sub_face,(int(224),int(224)))
答案 1 :(得分:0)
如果要精确提取头发和脖子的区域,则需要训练自己的模型,因为当前的dlib模型不包括它们。
否则,您只想相对捕获,可以使用Openpose,它为您提供了面孔+耳朵+肩膀(甚至是手和手指)的地标。从这些地标中,您可以绘制您感兴趣的区域。
示例:
矩形的宽度=肩的长度(点2->点5)
高度=从脖子到(点1)到鼻子(点0)的长度x2。(点1-点0)* 2