Daddy's output is changed

This commit is contained in:
PallasNeko 2023-03-19 02:58:14 +09:00
parent c91eb003a8
commit 43c216ff1f
2 changed files with 38 additions and 47 deletions

View File

@ -265,28 +265,26 @@ class DADDY_cls(object):
kps = pred.astype(np.int32)
# eyecenter = kps[:6].mean(axis=0).astype(int)
# temp_eyecenter = pred[:6].mean(axis=0)
ear = self.beer.ear(pred)
# ear=self.ear_oef(ear[np.newaxis])#memo: Parameters need tuning
if save_video or imshow_enable:
for i in range(kps.shape[0]):
if i < 6:
color = (0, 0, 255)
elif i == 6:
color = 128 # (0, 255, 0)
else:
color = (255, 0, 0)
cv2.circle(gray_frame, (kps[i, 0], kps[i, 1]), 1, color, 2)
cv2.putText(gray_frame, str(i), (kps[i, 0] - 10, kps[i, 1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 0, 255), 1)
# cv2.circle(gray_frame, (eyecenter.tolist()), 1, (128, 128, 0), 2)
# cv2.circle(gray_frame, (iriscenter.tolist()), 1, (0, 128, 128), 2)
# cv2.circle(gray_frame,(eyecenter.tolist()),int(self.center_dist_med.median()),(0, 0, 255),1)
# cv2.ellipse(gray_frame, (eyecenter.tolist(), (int(self.iris_med_w.median()*2.5), int(self.iris_med_h.median()*2.5)), np.rad2deg(self.eye_med_rad.median())), (255, 0, 0), thickness=1)
cv2.putText(gray_frame, "EAR: "+str(ear), (self.current_image_gray.shape[1]//10, self.current_image_gray.shape[0]//10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (255,0,0), 1)
cv2.imshow("gray_frame", gray_frame)
if cv2.waitKey(1) & 0xFF == ord("q"):
pass
pupil_center = pred[7:].mean(axis=0)
pupil_center_x = int(pupil_center[0])
pupil_center_y = int(pupil_center[1])
for i in range(kps.shape[0]):
if i < 6:
color = (0, 0, 255)
elif i == 6:
color = 128
else:
color = (255, 0, 0)
# todo: We should have a proper variable for drawing.
cv2.circle(self.current_image_gray, (kps[i, 0], kps[i, 1]), 1, color, 2)
# cv2.putText(self.current_image_gray, str(i), (kps[i, 0] - 10, kps[i, 1] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 0, 255), 1)
# cv2.putText(self.current_image_gray, "EAR: "+str(ear), (self.current_image_gray.shape[1]//10, self.current_image_gray.shape[0]//10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (255,0,0), 1)
# global loopnum
# if loopnum < 1350*2:
# # self.video.write(cv2.resize(gray_frame.copy(), (200, 150), None))
@ -302,7 +300,8 @@ class DADDY_cls(object):
# i == [0:6] = Inner and outer corners of eyes and eyelids
# i == [6] = pupil
# i == [7:] = iris
return ear
return pupil_center_x, pupil_center_y, ear
class External_Run_DADDY(object):
@ -311,8 +310,8 @@ class External_Run_DADDY(object):
def run(self, current_image_gray):
self.algo.current_image_gray = current_image_gray
pupil = self.algo.single_run()
return pupil
pupil_x, pupil_y, ear = self.algo.single_run()
return pupil_x, pupil_y, ear
if __name__ == "__main__":

View File

@ -68,6 +68,7 @@ class InformationOrigin(Enum):
FAILURE = 3
HSF = 4
HSRAC = 5
DADDY = 6
bbb = 0
@dataclass
@ -153,6 +154,7 @@ class EyeProcessor:
self.er_hsf = None
self.er_hsrac = None
self.er_daddy = None
self.ibo = IntensityBasedOpeness(eyeside=EyeLR.LEFT if self.eye_id is EyeId.LEFT else EyeLR.RIGHT if eye_id is EyeId.RIGHT else -1)
self.roi_include_set = {"rotation_angle", "roi_window_x", "roi_window_y"}
@ -175,7 +177,6 @@ class EyeProcessor:
self.prev_x = None
self.prev_y = None
self.daddy = None
self.current_algo = InformationOrigin.HSRAC
@ -278,7 +279,13 @@ class EyeProcessor:
self.eyeopen = BLINK(self)
def DADDYM(self):
landmark = self.daddy.run(self.current_image_gray)
# todo: We should have a proper variable for drawing.
self.thresh=self.current_image_gray.copy()
self.rawx, self.rawy, self.eyeopen = self.er_daddy.run(self.current_image_gray)
# Daddy also uses a one euro filter, so I'll have to use it twice, but I'm not going to think too much about it.
self.out_x, self.out_y = cal_osc(self, self.rawx, self.rawy)
self.current_algorithm = InformationOrigin.DADDY
def HSRACM(self):
# todo: added process to initialise er_hsrac when resolution changes
@ -361,11 +368,6 @@ class EyeProcessor:
algolist = [None, None, None, None, None]
#set algo priorities
if self.settings.gui_HSF:
if self.er_hsf is None:
self.er_hsf = External_Run_HSF(self.settings.gui_skip_autoradius, self.settings.gui_HSF_radius)
@ -381,17 +383,16 @@ class EyeProcessor:
else:
if self.er_hsrac is not None:
self.er_hsrac = None
if self.settings.gui_DADDY:
if self.er_daddy is None:
self.er_daddy = External_Run_DADDY()
algolist[self.settings.gui_DADDYP] = self.DADDYM
else:
if self.er_daddy is not None:
self.er_daddy = None
_, self.firstalgo, self.secondalgo, self.thirdalgo, self.fourthalgo = algolist
if self.settings.gui_HSF and self.settings.gui_HSFP == 1: #I feel like this is super innefficient though it only runs at startup and no solution is coming to me atm
self.firstalgo = self.HSFM
elif self.settings.gui_HSF and self.settings.gui_HSFP == 2:
self.secondalgo = self.HSFM
elif self.settings.gui_HSF and self.settings.gui_HSFP == 3:
self.thirdalgo = self.HSFM
elif self.settings.gui_HSF and self.settings.gui_HSFP == 4:
self.fourthalgo = self.HSFM
if self.settings.gui_RANSAC3D and self.settings.gui_RANSAC3DP == 1:
self.firstalgo = self.RANSAC3DM
@ -402,15 +403,6 @@ class EyeProcessor:
elif self.settings.gui_RANSAC3D and self.settings.gui_RANSAC3DP == 4:
self.fourthalgo = self.RANSAC3DM
if self.settings.gui_HSRAC and self.settings.gui_HSRACP == 1:
self.firstalgo = self.HSRACM
elif self.settings.gui_HSRAC and self.settings.gui_HSRACP == 2:
self.secondalgo = self.HSRACM
elif self.settings.gui_HSRAC and self.settings.gui_HSRACP == 3:
self.thirdalgo = self.HSRACM
elif self.settings.gui_HSRAC and self.settings.gui_HSRACP == 4:
self.fourthalgo = self.HSRACM
if self.settings.gui_BLOB and self.settings.gui_BLOBP == 1:
self.firstalgo = self.BLOBM
elif self.settings.gui_BLOB and self.settings.gui_BLOBP == 2: