feat: pupil dilation initial imp

This commit is contained in:
Prohurtz 2023-10-05 09:45:43 -05:00
parent e694054cb4
commit 6200ddfcab
6 changed files with 41 additions and 15 deletions

View File

@ -57,6 +57,7 @@ class AlgoSettingsWidget:
self.gui_legacy_ransac = f"-LEGACYRANSACTHRESH{widget_id}-" self.gui_legacy_ransac = f"-LEGACYRANSACTHRESH{widget_id}-"
self.gui_legacy_ransac_thresh_right = f"-THRESHRIGHT{widget_id}-" self.gui_legacy_ransac_thresh_right = f"-THRESHRIGHT{widget_id}-"
self.gui_legacy_ransac_thresh_left = f"-THRESHLEFT{widget_id}-" self.gui_legacy_ransac_thresh_left = f"-THRESHLEFT{widget_id}-"
self.gui_pupil_dilation = f"-EBPD{widget_id}-"
self.gui_LEAP_lid = f"-LEAPLID{widget_id}-" self.gui_LEAP_lid = f"-LEAPLID{widget_id}-"
self.main_config = main_config self.main_config = main_config
self.config = main_config.settings self.config = main_config.settings
@ -188,7 +189,7 @@ class AlgoSettingsWidget:
), ),
sg.Text("Blob", background_color="#424042"), sg.Text("Blob", background_color="#424042"),
], ],
[sg.Text("Blink Algo Settings:", background_color="#242224")], [sg.Text("Eyelid Algo Settings:", background_color="#242224")],
[ [
sg.Checkbox( sg.Checkbox(
"Intensity Based Openness", "Intensity Based Openness",
@ -249,6 +250,15 @@ class AlgoSettingsWidget:
background_color="#424042", background_color="#424042",
), ),
], ],
[sg.Text("Pupil Dilation Algo Settings:", background_color="#242224")],
[
sg.Checkbox(
"Ellipse Based Pupil Dilation",
default=self.config.gui_pupil_dilation,
key=self.gui_pupil_dilation,
background_color="#424042",
)
],
[ [
sg.Text( sg.Text(
"Advanced Tracking Algorithim Settings:", background_color="#242224" "Advanced Tracking Algorithim Settings:", background_color="#242224"
@ -444,6 +454,10 @@ class AlgoSettingsWidget:
self.config.gui_IBO = values[self.gui_IBO] self.config.gui_IBO = values[self.gui_IBO]
changed = True changed = True
if self.config.gui_pupil_dilation != values[self.gui_pupil_dilation]:
self.config.gui_pupil_dilation = values[self.gui_pupil_dilation]
changed = True
if self.config.gui_RANSACBLINK != values[self.gui_RANSACBLINK]: if self.config.gui_RANSACBLINK != values[self.gui_RANSACBLINK]:
self.config.gui_RANSACBLINK = values[self.gui_RANSACBLINK] self.config.gui_RANSACBLINK = values[self.gui_RANSACBLINK]
changed = True changed = True

View File

@ -404,7 +404,7 @@ class CameraWidget:
graph.draw_circle( graph.draw_circle(
(eye_info.x * -100, eye_info.y * -100), (eye_info.x * -100, eye_info.y * -100),
15], eye_info.pupil_dilation * 25,
fill_color="black", fill_color="black",
line_color="white", line_color="white",
) )

View File

@ -83,6 +83,7 @@ class EyeTrackSettingsConfig(BaseModel):
gui_osc_vrcft_v1: bool = False gui_osc_vrcft_v1: bool = False
gui_osc_vrcft_v2: bool = False gui_osc_vrcft_v2: bool = False
gui_vrc_native: bool = True gui_vrc_native: bool = True
gui_pupil_dilation: bool = True
class EyeTrackConfig(BaseModel): class EyeTrackConfig(BaseModel):

View File

@ -1,6 +1,7 @@
from dataclasses import dataclass from dataclasses import dataclass
from enum import Enum, IntEnum from enum import Enum, IntEnum
class EyeId(IntEnum): class EyeId(IntEnum):
RIGHT = 0 RIGHT = 0
LEFT = 1 LEFT = 1
@ -24,5 +25,5 @@ class EyeInfo:
info_type: EyeInfoOrigin info_type: EyeInfoOrigin
x: float x: float
y: float y: float
pupil_dialation: float pupil_dilation: float
blink: float blink: float

View File

@ -254,6 +254,7 @@ class EyeProcessor:
def UPDATE(self): def UPDATE(self):
# print(self.eyeopen) # print(self.eyeopen)
if self.settings.gui_pupil_dilation:
self.pupil_dilation = self.ebpd.intense( self.pupil_dilation = self.ebpd.intense(
self.pupil_width, self.pupil_width,
self.pupil_height, self.pupil_height,
@ -263,7 +264,8 @@ class EyeProcessor:
self.settings.ibo_filter_samples, self.settings.ibo_filter_samples,
self.settings.ibo_average_output_samples, self.settings.ibo_average_output_samples,
) )
print(self.pupil_dilation) else:
self.pupil_dilation = 0.5
if self.settings.gui_BLINK: if self.settings.gui_BLINK:
self.eyeopen = BLINK(self) self.eyeopen = BLINK(self)

View File

@ -29,7 +29,8 @@ def eyelid_transformer(self, eye_blink):
se = False se = False
def output_osc(eye_x, eye_y, eye_blink, last_blink, self): def output_osc(eye_x, eye_y, eye_blink, last_blink, pupil_dilation, self):
print(pupil_dilation)
global se global se
# self.config.gui_osc_vrcft_v2 # self.config.gui_osc_vrcft_v2
# self.config.gui_osc_vrcft_v1 # self.config.gui_osc_vrcft_v1
@ -303,7 +304,14 @@ class VRChatOSC:
except: except:
continue continue
output_osc(eye_info.x, eye_info.y, eye_info.blink, last_blink, self) output_osc(
eye_info.x,
eye_info.y,
eye_info.blink,
last_blink,
eye_info.pupil_dilation,
self,
)
class VRChatOSCReceiver: class VRChatOSCReceiver: