fix(unraid): switch OpenMMLab registry scope per model
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user