yoooger
This commit is contained in:
parent
0ea0d1a81a
commit
91ba7882e3
@ -149,8 +149,6 @@ def process_frames(frame_queue, processed_frame_queue, ov_model, cls, confidence
|
|||||||
|
|
||||||
# 优化推理性能
|
# 优化推理性能
|
||||||
try:
|
try:
|
||||||
# 导入torch库
|
|
||||||
import torch
|
|
||||||
# 尝试启用ONNX Runtime加速
|
# 尝试启用ONNX Runtime加速
|
||||||
ov_model.to('cuda:0' if torch.cuda.is_available() else 'cpu')
|
ov_model.to('cuda:0' if torch.cuda.is_available() else 'cpu')
|
||||||
# 调整批处理大小为1,减少内存占用
|
# 调整批处理大小为1,减少内存占用
|
||||||
@ -215,14 +213,24 @@ def process_frames(frame_queue, processed_frame_queue, ov_model, cls, confidence
|
|||||||
results = ov_model(process_frame, classes=cls, show=False)
|
results = ov_model(process_frame, classes=cls, show=False)
|
||||||
last_results = results[0] # 保存检测结果用于后续帧
|
last_results = results[0] # 保存检测结果用于后续帧
|
||||||
|
|
||||||
# 如果尺寸调整过,需要将结果转换回原始尺寸
|
# 统计数量
|
||||||
|
num_objs = len(last_results.boxes) if hasattr(last_results, "boxes") else 0
|
||||||
|
|
||||||
|
# 统计各类别数量
|
||||||
|
class_counts = {}
|
||||||
|
if hasattr(last_results, "boxes") and hasattr(last_results.boxes, "cls"):
|
||||||
|
for c in last_results.boxes.cls.cpu().numpy():
|
||||||
|
class_counts[int(c)] = class_counts.get(int(c), 0) + 1
|
||||||
|
|
||||||
|
# # 绘制检测框
|
||||||
if resize_scale < 1.0:
|
if resize_scale < 1.0:
|
||||||
# 绘制检测框
|
|
||||||
annotated_frame = cv2.resize(results[0].plot(conf=False, line_width=1, font_size=1.5),
|
annotated_frame = cv2.resize(results[0].plot(conf=False, line_width=1, font_size=1.5),
|
||||||
(frame.shape[1], frame.shape[0]))
|
(frame.shape[1], frame.shape[0]))
|
||||||
else:
|
else:
|
||||||
annotated_frame = results[0].plot(conf=False, line_width=1, font_size=1.5)
|
annotated_frame = results[0].plot(conf=False, line_width=1, font_size=1.5)
|
||||||
|
# 在画面左上角写入统计信息
|
||||||
|
text = f"Total: {num_objs} " + " ".join([f"cls{c}:{n}" for c, n in class_counts.items()])
|
||||||
|
cv2.putText(annotated_frame, text, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,255,0), 2)
|
||||||
# 在负载高时启用跳帧处理
|
# 在负载高时启用跳帧处理
|
||||||
if frame_queue.qsize() > frame_queue.maxsize * 0.5:
|
if frame_queue.qsize() > frame_queue.maxsize * 0.5:
|
||||||
skip_counter = max_skip
|
skip_counter = max_skip
|
||||||
|
Loading…
x
Reference in New Issue
Block a user