fix(unraid): switch OpenMMLab registry scope per model

This commit is contained in:
Codex
2026-08-15 09:49:30 -07:00
parent b5363d7929
commit 38230f55a0
@@ -35,9 +35,11 @@ class Models:
@torch.inference_mode() @torch.inference_mode()
def infer(self, frame: np.ndarray, threshold: float, max_people: int) -> tuple[list[dict], float, float]: def infer(self, frame: np.ndarray, threshold: float, max_people: int) -> tuple[list[dict], float, float]:
from mmdet.apis import inference_detector from mmdet.apis import inference_detector
from mmengine.registry import init_default_scope
from mmpose.apis import inference_topdown from mmpose.apis import inference_topdown
height, width = frame.shape[:2] height, width = frame.shape[:2]
t0 = time.perf_counter_ns() t0 = time.perf_counter_ns()
init_default_scope("mmdet")
result = inference_detector(self.detector, frame) result = inference_detector(self.detector, frame)
pred = result.pred_instances.cpu().numpy() pred = result.pred_instances.cpu().numpy()
keep = (pred.labels == 0) & (pred.scores >= threshold) keep = (pred.labels == 0) & (pred.scores >= threshold)
@@ -48,6 +50,7 @@ class Models:
boxes, scores = boxes[order], scores[order] boxes, scores = boxes[order], scores[order]
det_ms = (time.perf_counter_ns() - t0) / 1e6 det_ms = (time.perf_counter_ns() - t0) / 1e6
t1 = time.perf_counter_ns() t1 = time.perf_counter_ns()
init_default_scope("mmpose")
pose_results = inference_topdown(self.pose, frame, bboxes=boxes) if len(boxes) else [] pose_results = inference_topdown(self.pose, frame, bboxes=boxes) if len(boxes) else []
pose_ms = (time.perf_counter_ns() - t1) / 1e6 pose_ms = (time.perf_counter_ns() - t1) / 1e6
people = [] people = []
@@ -66,4 +69,3 @@ class Models:
"pose_score": float(np.mean(np.nan_to_num(kp_scores[:17]))), "pose_score": float(np.mean(np.nan_to_num(kp_scores[:17]))),
}) })
return people, det_ms, pose_ms return people, det_ms, pose_ms