Skip to content

Commit 176b64f

Browse files
Merge branch 'Project-Babble:main' into main
2 parents 84ef751 + 4cec4ff commit 176b64f

12 files changed

+27
-18
lines changed

BabbleApp/babble_model_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616

1717
def run_model(self):
18-
if self.runtime == "ONNX" or self.runtime == "Default (ONNX)":
18+
if self.runtime in ("ONNX", "Default (ONNX)"):
1919
frame = cv2.resize(self.current_image_gray, (256, 256))
2020
frame = transforms.to_tensor(frame)
2121
frame = transforms.unsqueeze(frame, 0)

BabbleApp/babble_processor.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,14 @@ def __init__(
8989
self.calibrate_config = np.empty((1, 45))
9090
self.min_max_array = np.empty((2, 45))
9191

92+
ort.disable_telemetry_events()
9293
self.opts = ort.SessionOptions()
94+
self.opts.inter_op_num_threads = 1
9395
self.opts.intra_op_num_threads = settings.gui_inference_threads
9496
self.opts.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_ALL
95-
if self.runtime == "ONNX" or self.runtime == "Default (ONNX)": # ONNX
97+
self.opts.add_session_config_entry("session.intra_op.allow_spinning", "0") # ~3% savings worth ~6ms avg latency. Not noticeable at 60fps?
98+
self.opts.enable_mem_pattern = False
99+
if self.runtime in ("ONNX", "Default (ONNX)"): # ONNX
96100
if self.use_gpu:
97101
provider = "DmlExecutionProvider"
98102
else:

BabbleApp/babbleapp.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,10 @@ def main():
215215
# GUI Render loop
216216
while True:
217217
# First off, check for any events from the GUI
218-
event, values = window.read(timeout=2)
218+
event, values = window.read(timeout=30)
219219

220220
# If we're in either mode and someone hits q, quit immediately
221-
if event == "Exit" or event == sg.WIN_CLOSED:
221+
if event in ("Exit", sg.WIN_CLOSED):
222222
for (
223223
cam
224224
) in (

BabbleApp/camera_widget.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def __init__(self, widget_id: Tab, main_config: BabbleConfig, osc_queue: Queue):
6363
self.capture_event = Event()
6464
self.capture_queue = Queue(maxsize=2)
6565
self.roi_queue = Queue(maxsize=2)
66-
self.image_queue = Queue(maxsize=500)
66+
self.image_queue = Queue(maxsize=4)
6767

6868
self.babble_cnn = BabbleProcessor(
6969
self.config,

BabbleApp/config.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ def save(self):
9191
BabbleConfig(**json.load(settings_file))
9292
shutil.copy(CONFIG_FILE_NAME, BACKUP_CONFIG_FILE_NAME)
9393
# print("Backed up settings files.") # Comment out because it's too loud.
94+
except shutil.SameFileError:
95+
pass
9496
except json.JSONDecodeError:
9597
# No backup because the saved settings file is broken.
9698
pass

BabbleApp/general_settings_widget.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,4 +336,4 @@ def render(self, window, event, values):
336336
if changed:
337337
self.main_config.save()
338338

339-
self.osc_queue.put((Tab.SETTINGS))
339+
self.osc_queue.put(Tab.SETTINGS)

BabbleApp/landmark_model_loader.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616

1717
def run_model(self): # Replace transforms n shit for the pfld model
18-
if self.runtime == "ONNX" or self.runtime == "Default (ONNX)":
18+
if self.runtime in ("ONNX", "Default (ONNX)"):
1919
frame = cv2.resize(self.current_image_gray, (256, 256))
2020
frame = transforms.to_tensor(frame)
2121
frame = transforms.unsqueeze(frame, 0)

BabbleApp/landmark_processor.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,15 @@ def __init__(
8888
#self.calibrate_config = np.empty((1, 45))
8989
#self.min_max_array = np.empty((2, 45))
9090

91-
91+
ort.disable_telemetry_events()
9292
self.opts = ort.SessionOptions()
93+
self.opts.inter_op_num_threads = 1
9394
self.opts.intra_op_num_threads = settings.gui_inference_threads
9495
self.opts.graph_optimization_level = ort.GraphOptimizationLevel.ORT_ENABLE_ALL
95-
if self.runtime == "ONNX" or self.runtime == "Default (ONNX)": # ONNX
96-
if self.use_gpu: provider = 'DmlExecutionProvider'
96+
self.opts.add_session_config_entry("session.intra_op.allow_spinning", "0") # ~3% savings worth ~6ms avg latency. Not noticeable at 60fps?
97+
self.opts.enable_mem_pattern = False
98+
if self.runtime in ("ONNX", "Default (ONNX)"): # ONNX
99+
if self.use_gpu: provider = 'DmlExecutionProvider'
97100
else: provider = "CPUExecutionProvider" # Build onnxruntime to get both DML and OpenVINO
98101
self.sess = ort.InferenceSession(f'{self.model}onnx/model.onnx', self.opts, providers=[provider, ], provider_options=[{'device_id': self.gpu_index}]) # Load Babble CNN until PFLD has been converted
99102
self.input_name = self.sess.get_inputs()[0].name
@@ -219,7 +222,7 @@ def run(self):
219222
self.current_image,
220223
self.current_frame_number,
221224
self.current_fps,
222-
) = self.capture_queue_incoming.get(block=True, timeout=0.2)
225+
) = self.capture_queue_incoming.get(block=True, timeout=0.1)
223226
except queue.Empty:
224227
# print("No image available")
225228
continue

BabbleApp/one_euro_filter.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@ def __call__(self, x):
3131

3232
t = time()
3333
t_e = t - self.t_prev
34-
if (
35-
t_e != 0.0
36-
): # occasionally when switching to algos this becomes zero causing divide by zero errors crashing the filter.
34+
if t_e != 0.0: # occasionally when switching to algos this becomes zero causing divide by zero errors crashing the filter.
3735
t_e = np.full(x.shape, t_e)
3836

3937
# The filtered derivative of the signal.

BabbleApp/osc.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,10 @@ def run(self):
100100
return
101101
try:
102102
(self.cam_id, cam_info) = self.msg_queue.get(block=True, timeout=0.1)
103-
except:
103+
except TypeError:
104+
continue
105+
except queue.Empty:
104106
continue
105-
106107
output_osc(cam_info.output, self)
107108

108109

@@ -135,7 +136,7 @@ def shutdown(self):
135136
pass
136137

137138
def recalibrate_mouth(self, address, osc_value):
138-
if type(osc_value) != bool:
139+
if not isinstance(osc_value, bool):
139140
return # just incase we get anything other than bool
140141
if osc_value:
141142
for cam in self.cams:

0 commit comments

Comments
 (0)