libfacedetection icon indicating copy to clipboard operation
libfacedetection copied to clipboard

The difference between v2 and v3 version

Open sxhzju opened this issue 5 years ago • 2 comments

I compiled the v2 and v3 version code to dll and run by python and I found the result of v2 is correct but the v3 is incorrect, even the num of faces.. Below are the results. v3 image v2 image

the code snippet I use

# coding: utf-8

import numpy as np
import cv2
from ctypes import *
import types
import sys

if len(sys.argv) < 2:
    print(
        "Call this program like this:\n"
        "  ./ex.py ./jpg/001.jpg\n")
    exit()


Max_Faces = 256
Size_one_Face = 6 + 68 * 2
Size_FaceLandMarks = Size_one_Face * Max_Faces
class FaceResults(Structure): 
    _fields_ = [("face_num", c_int32), 
                ("datas", c_int16 * Size_FaceLandMarks)
               ]


img = cv2.imread(sys.argv[1])
h,w = img.shape[:2]
st = w*3

p_img = img.ctypes.data_as(POINTER(c_ubyte))

dll = CDLL('./dlls/facedetection_v2.dll')
dll.shiqi_fd.restype = POINTER(FaceResults)

p_results = dll.shiqi_fd(p_img,w,h,st) 
face_num = p_results.contents.face_num
print(p_results.contents.datas[:Size_one_Face])
print(p_results.contents.datas[Size_one_Face:Size_one_Face*2])

for i in range(face_num):
    j =  Size_one_Face * i
    x = p_results.contents.datas[j]
    y = p_results.contents.datas[j+1]
    w = p_results.contents.datas[j+2]
    h = p_results.contents.datas[j+3]
    confidence = p_results.contents.datas[j+4]
    angle = p_results.contents.datas[j+5]

    print("Face : %d ; [%d,%d]-[%d,%d] ; Conf=%d, Angle=%d"%(i,x,y,w,h,confidence,angle))
    cv2.rectangle(img, (x, y), (x+w, y+h), (0,255,0), 1)
    font = cv2.FONT_HERSHEY_SIMPLEX
    cv2.putText(img, str(i),(x, y-10),font, 0.8,  (0,0,0), 1, cv2.LINE_AA)


# show the output image
cv2.imshow("Output", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Besides, the cv2 version is 4.2.0. Am I miss something here?

sxhzju avatar Feb 02 '21 07:02 sxhzju

Below are the dlls I compiled. image

链接:https://pan.baidu.com/s/1IZ_iaSBXFYrtrqZbZOCZCg 提取码:52cv

sxhzju avatar Feb 02 '21 07:02 sxhzju

I am also having the same issue, V3 always gives the WRONG bounding boxes

lynnwilliam avatar Nov 14 '22 01:11 lynnwilliam