Optimize ORT graph execution and Linux webcam latency
- Enable ORT_ENABLE_BASIC graph optimization instead of fully disabling it, yielding CPU fallback performance improvements without crashing the GPU on FusedConv. - Set cv2.CAP_PROP_BUFFERSIZE to 1 on Linux VideoCapture to eliminate webcam tracking lag/latency.
This commit is contained in:
parent
ad2015d897
commit
4f66151a6f
3 changed files with 5 additions and 4 deletions
|
|
@ -15,6 +15,7 @@ class VideoReader():
|
|||
self.cap = cv2.VideoCapture(capture, cv2.CAP_DSHOW)
|
||||
else:
|
||||
self.cap = cv2.VideoCapture(capture)
|
||||
self.cap.set(cv2.CAP_PROP_BUFFERSIZE, 1)
|
||||
if self.cap is None:
|
||||
print("The video source cannot be opened")
|
||||
sys.exit(0)
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ class RetinaFaceDetector():
|
|||
options.inter_op_num_threads = 1
|
||||
options.intra_op_num_threads = threads
|
||||
options.execution_mode = onnxruntime.ExecutionMode.ORT_SEQUENTIAL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_DISABLE_ALL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_ENABLE_BASIC
|
||||
options.log_severity_level = 3
|
||||
providersList = ['CPUExecutionProvider']
|
||||
self.session = onnxruntime.InferenceSession(model_path, sess_options=options, providers=providersList)
|
||||
|
|
|
|||
|
|
@ -499,7 +499,7 @@ class Tracker():
|
|||
options.inter_op_num_threads = 1
|
||||
options.intra_op_num_threads = min(max_threads,4)
|
||||
options.execution_mode = onnxruntime.ExecutionMode.ORT_SEQUENTIAL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_DISABLE_ALL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_ENABLE_BASIC
|
||||
options.log_severity_level = 3
|
||||
self.model_type = model_type
|
||||
self.models = [
|
||||
|
|
@ -547,7 +547,7 @@ class Tracker():
|
|||
elif i < extra_threads:
|
||||
options.intra_op_num_threads += 1
|
||||
options.execution_mode = onnxruntime.ExecutionMode.ORT_SEQUENTIAL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_DISABLE_ALL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_ENABLE_BASIC
|
||||
self.sessions.append(onnxruntime.InferenceSession(os.path.join(model_base_path, model), sess_options=options, providers=providersList))
|
||||
self.input_name = self.session.get_inputs()[0].name
|
||||
|
||||
|
|
@ -555,7 +555,7 @@ class Tracker():
|
|||
options.inter_op_num_threads = 1
|
||||
options.intra_op_num_threads = 1
|
||||
options.execution_mode = onnxruntime.ExecutionMode.ORT_SEQUENTIAL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_DISABLE_ALL
|
||||
options.graph_optimization_level = onnxruntime.GraphOptimizationLevel.ORT_ENABLE_BASIC
|
||||
options.log_severity_level = 3
|
||||
self.gaze_model = onnxruntime.InferenceSession(os.path.join(model_base_path, "mnv3_gaze32_split_gpu.onnx"), sess_options=options, providers=providersList)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue