From 00e56299c4640ce4cb3f46ef5f7e9e305a6a3c96 Mon Sep 17 00:00:00 2001 From: iperov Date: Mon, 18 Mar 2019 00:30:08 +0400 Subject: [PATCH] S3FD: wrong small face check fix --- facelib/S3FDExtractor.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/facelib/S3FDExtractor.py b/facelib/S3FDExtractor.py index b7aa80a..961b589 100644 --- a/facelib/S3FDExtractor.py +++ b/facelib/S3FDExtractor.py @@ -33,20 +33,19 @@ class S3FDExtractor(object): olist = self.model.predict( np.expand_dims(input_image,0) ) detected_faces = self.refine (olist) - + #filtering faces < 40pix by any side #enlarging bottom line a bit for 2DFAN-4, because default is not enough covering a chin new_detected_faces = [] - for l,t,r,b in detected_faces: + for ltrb in detected_faces: + l,t,r,b = [ x*input_scale for x in ltrb] bt = b-t if min(r-l,bt) < 40: continue - new_detected_faces.append ((l,t,r,b+bt*0.1)) + b += bt*0.1 + new_detected_faces.append ( [int(x) for x in (l,t,r,b) ] ) - return [ (int(face[0]*input_scale), - int(face[1]*input_scale), - int(face[2]*input_scale), - int(face[3]*input_scale)) for face in new_detected_faces ] + return new_detected_faces def refine(self, olist): bboxlist = []