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_thresh_right = f"-THRESHRIGHT{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.main_config = main_config
self.config = main_config.settings
@ -188,7 +189,7 @@ class AlgoSettingsWidget:
),
sg.Text("Blob", background_color="#424042"),
],
[sg.Text("Blink Algo Settings:", background_color="#242224")],
[sg.Text("Eyelid Algo Settings:", background_color="#242224")],
[
sg.Checkbox(
"Intensity Based Openness",
@ -249,6 +250,15 @@ class AlgoSettingsWidget:
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(
"Advanced Tracking Algorithim Settings:", background_color="#242224"
@ -444,6 +454,10 @@ class AlgoSettingsWidget:
self.config.gui_IBO = values[self.gui_IBO]
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]:
self.config.gui_RANSACBLINK = values[self.gui_RANSACBLINK]
changed = True

View File

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

View File

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

View File

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

View File

@ -254,16 +254,18 @@ class EyeProcessor:
def UPDATE(self):
# print(self.eyeopen)
self.pupil_dilation = self.ebpd.intense(
self.pupil_width,
self.pupil_height,
self.rawx,
self.rawy,
self.current_image_white,
self.settings.ibo_filter_samples,
self.settings.ibo_average_output_samples,
)
print(self.pupil_dilation)
if self.settings.gui_pupil_dilation:
self.pupil_dilation = self.ebpd.intense(
self.pupil_width,
self.pupil_height,
self.rawx,
self.rawy,
self.current_image_white,
self.settings.ibo_filter_samples,
self.settings.ibo_average_output_samples,
)
else:
self.pupil_dilation = 0.5
if self.settings.gui_BLINK:
self.eyeopen = BLINK(self)

View File

@ -29,7 +29,8 @@ def eyelid_transformer(self, eye_blink):
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
# self.config.gui_osc_vrcft_v2
# self.config.gui_osc_vrcft_v1
@ -303,7 +304,14 @@ class VRChatOSC:
except:
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: