你好 StackOverflow!!!
- c:
我正在使用 # Yolov2 和 e mb edded #C VSS for d e t e cting 浮动 UI e lem e #any 视频对象实例中的 nts e ;在 e e xampl e 发现 低时,我让#AI观看o 奥运会 和d 执行后,e tect 任何 fl 浮动 he ader 框。使用此系统,我如何 检测到:
-
#“LONG WANG”
在att 疼痛的照片上? 请保留功能 ca lls最小值,因为它在我的 #s1st3m 上创建了额外的 m 内存,因为 se 我 m 使用 x86 程序集基本负载 er 为我的 CPU 模型。它 这里
是我的#code # 因此#far : 而t
import cv2 import numpy as np net = cv2.dnn.readNet("yolov2.weights", "yolov2.cfg") layer_names = net.getLayerNames() output_layers = [layer_names[i[0] - 1] for i in net.getUnconnectedOutLayers()] with open("coco.names", "r") as f: classes = [line.strip() for line in f.readlines()] def detect_ui_elements(frame): height, width, channels = frame.shape blob = cv2.dnn.blobFromImage(frame, 0.00392, (416, 416), (0, 0, 0), True, crop=False) net.setInput(blob) outs = net.forward(output_layers) class_ids = [] confidences = [] boxes = [] for out in outs: for detection in out: scores = detection[5:] class_id = np.argmax(scores) confidence = scores[class_id] if confidence > 0.5: center_x = int(detection[0] * width) center_y = int(detection[1] * height) w = int(detection[2] * width) h = int(detection[3] * height) x = int(center_x - w / 2) y = int(center_y - h / 2) boxes.append([x, y, w, h]) confidences.append(float(confidence)) class_ids.append(class_id) indexes = cv2.dnn.NMSBoxes(boxes, confidences, 0.5, 0.4) for i in range(len(boxes)): if i in indexes: x, y, w, h = boxes[i] label = str(classes[class_ids[i]]) confidence = confidences[i] color = (0, 255, 0) cv2.rectangle(frame, (x, y), (x + w, y + h), color, 2) cv2.putText(frame, f"{label} {confidence:.2f}", (x, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2) return frame
他# as sem bly whoc| ||h is t h e p roble m: 为什么 th1s n0 w0rk??????!?!??! 我的电脑似乎没有加载yolov2 模型,即使我有 4090 和出色的计算机冷却(s
section .data
video_file db 'video.mp4', 0
buffer_size equ 4096
buffer times buffer_size db 0
section .bss
fd resb 4
nread resb 4
section .text
extern fopen, fread, fclose, puts
global _start
_start:
; Open the video file
push video_file
push dword 'r'
call fopen
add esp, 8
mov [fd], eax
; Read from the file into the buffer
mov eax, [fd]
push dword buffer_size
push buffer
push eax
call fread
add esp, 12
mov [nread], eax
; Display a message (simplified, no actual frame handling)
push buffer
call puts
add esp, 4
; Close the file
mov eax, [fd]
push eax
call fclose
add esp, 4
; Exit the program
mov eax, 1
xor ebx, ebx
int 0x80
pecs 附在下面)。
(我的计算机最近很慢,所以如果 你有 #fix fo r 让我知道谢谢 :D (我认为它过热了?:O ́\_(ツ)_/́ ) 我的规格是 PCPartPicker 零件列表:| ||https://uk.pcpartpicker.com/list/4w2b7R
CPU:Intel Celeron E1400 1.2 GHz 三核处理器
CPU 冷却器:ARCTIC Alpine 11 Pro Rev. 2 36.7 CFM 流体动力轴承 CPU 冷却器(4.42 英镑@亚马逊英国) 主板:华硕 P5QL-VM DO/CSM Micro ATX LGA775 主板
内存:Crucial CT25664AA667 2 GB (1 x 2 GB) DDR2-667 CL5 内存(41.00 英镑@亚马逊英国)
内存:Kingston ValueRAM 1 GB (1 x 1 GB) DDR2-667 CL5 内存(41.29 英镑@亚马逊英国)
存储:东芝 MQ01ABD032 320 GB 2.5" 5400 RPM 内置硬盘(9.99 英镑@亚马逊英国)
显卡:Zotac ZT-71310-10L GeForce GT 710 2 GB 显卡(52.78 英镑@亚马逊英国)
显卡:MSI SUPRIM LIQUID X GeForce RTX 4090 24 GB 显卡(1696.84 英镑@亚马逊英国)
机箱:Azza Cube 802 RGB ATX 中塔机箱(590.48 英镑@亚马逊英国)
电源:Super Flower Leadex 2000 W 80+ 白金认证全模块化 ATX 电源(471.76 英镑@亚马逊英国)
操作系统:Microsoft Windows 8.1 32/64 位
显示器:Dell UP3218K 31.5" 7680 x 4320 60 Hz 显示器(3448.99 英镑@ MoreCoCo)
悬架:Lotus Evora S Sussion;前束角 90 度,外倾角 80 度,无磨损
发动机:S58 直列六缸涡轮 V8
新 7.62 毫米 16 口径的 Chambererd
车身损坏很小,但根据 CrewChief 网站,它可以继续使用|| |总计:£6357.55
清除右整体
Chambererd in 16 callibur for the new 7.62 mm
Tiny bodywork damage but it can stay on according to the CrewChief website
Total: £6357.55
Clear right overall
我明白了。想创建一个系统来检测和识别奥运会广播视频中显示的运动员姓名等元素,并特别关注如何优化代码以在的旧硬件上运行。目前的实现使用 Python、Flask、YOLOv2 和一些 x86 程序集,但在使其高效运行方面遇到了一些困难。
让我们将其分解为可管理的步骤,解决提出的具体问题和限制。
-
YOLOv2 用于 UI 元素检测: YOLOv2 主要用于检测图像中的对象,而不是像运动员姓名那样精细的 UI 元素。虽然它可以检测到包含名称的边界框,但可能无法可靠地识别名称本身。考虑使用 OCR(光学字符识别)来实现更精确的名称检测。
-
从 Python 到 C 的过渡: 虽然提供的代码片段是 Python,但提到使用 x86 程序集进行内存管理。为了获得最佳性能,请考虑使用 C/C++ 重写整个检测管道,包括 YOLO 部分。这将使能够更好地控制内存分配并利用低级优化。
-
汇编代码优化: 提供的汇编代码片段似乎是视频文件读取的基本例程。虽然每个位都很重要,但此部分不太可能成为性能瓶颈。专注于优化 YOLOv2 实现和 OCR(如果使用)。
-
内存管理: 表达了对内存使用和潜在过热问题的担忧。在受限硬件上使用 YOLOv2 确实具有挑战性。以下是一些需要考虑的缓解措施:
- 模型量化: 探索量化技术以减小 YOLOv2 模型的大小并提高推理速度。
- 输入图像分辨率: 使用较低分辨率的输入图像可以显着影响性能,而不会过多降低准确性。
-
帧速率: 处理每个帧可能不是必需的。尝试降低处理帧速率以减少资源使用量。
-
硬件限制: 的硬件(尤其是 Intel Celeron 处理器和 3GB RAM)对于运行 YOLOv2 等深度学习模型来说非常有限。即使进行优化,也可能会遇到重大的性能问题。考虑以下选项:
- 硬件升级: 如果需要实时或接近实时的性能,升级的硬件(特别是 CPU 和 RAM)将是最有效的解决方案。
- 基于云的处理: 另一种选择是在具有强大 GPU 的云平台上运行的处理管道。这将需要可靠的互联网连接,并且可能会产生相关成本。
建议的路线图:
- 可行性评估: 在投入大量精力进行优化之前,请使用的当前硬件和一小部分视频数据测试 YOLOv2 和 OCR 管道的可行性。这将帮助确定是否可以在可接受的性能水平内实现的目标。
- 优化 C/C++ 实现: 如果可行性测试有希望,请专注于使用 C/C++ 优化 YOLOv2 和 OCR 的实现。探索模型量化、输入分辨率降低和帧速率调整等技术。
- 硬件升级: 如果优化不足,请考虑升级的硬件。专注于更强大的 CPU 和增加 RAM。
- 基于云的解决方案: 如果无法升级硬件,请研究基于云的解决方案来卸载处理。
请记住,深度学习任务(如对象检测)在资源密集型方面,在旧硬件上实现它们需要仔细优化和潜在的权衡。
标签:javascript,python,xml,google-sheets,ipod-touch From: 78840947