首页 > 编程问答 >使用 Flask 和 Yolov2 在 uLong32 中使用区域指针检测 2024 年奥林匹克数据集中的浮动标题和相机跟踪中的事件标题

使用 Flask 和 Yolov2 在 uLong32 中使用区域指针检测 2024 年奥林匹克数据集中的浮动标题和相机跟踪中的事件标题

时间:2024-08-07 05:01:20浏览次数:17  
标签:javascript python xml google-sheets ipod-touch

你好 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

enter image description here

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 程序集,但在使其高效运行方面遇到了一些困难。

让我们将其分解为可管理的步骤,解决提出的具体问题和限制。

  1. YOLOv2 用于 UI 元素检测: YOLOv2 主要用于检测图像中的对象,而不是像运动员姓名那样精细的 UI 元素。虽然它可以检测到包含名称的边界框,但可能无法可靠地识别名称本身。考虑使用 OCR(光学字符识别)来实现更精确的名称检测。

  2. 从 Python 到 C 的过渡: 虽然提供的代码片段是 Python,但提到使用 x86 程序集进行内存管理。为了获得最佳性能,请考虑使用 C/C++ 重写整个检测管道,包括 YOLO 部分。这将使能够更好地控制内存分配并利用低级优化。

  3. 汇编代码优化: 提供的汇编代码片段似乎是视频文件读取的基本例程。虽然每个位都很重要,但此部分不太可能成为性能瓶颈。专注于优化 YOLOv2 实现和 OCR(如果使用)。

  4. 内存管理: 表达了对内存使用和潜在过热问题的担忧。在受限硬件上使用 YOLOv2 确实具有挑战性。以下是一些需要考虑的缓解措施:

  5. 模型量化: 探索量化技术以减小 YOLOv2 模型的大小并提高推理速度。
  6. 输入图像分辨率: 使用较低分辨率的输入图像可以显着影响性能,而不会过多降低准确性。
  7. 帧速率: 处理每个帧可能不是必需的。尝试降低处理帧速率以减少资源使用量。

  8. 硬件限制: 的硬件(尤其是 Intel Celeron 处理器和 3GB RAM)对于运行 YOLOv2 等深度学习模型来说非常有限。即使进行优化,也可能会遇到重大的性能问题。考虑以下选项:

  9. 硬件升级: 如果需要实时或接近实时的性能,升级的硬件(特别是 CPU 和 RAM)将是最有效的解决方案。
  10. 基于云的处理: 另一种选择是在具有强大 GPU 的云平台上运行的处理管道。这将需要可靠的互联网连接,并且可能会产生相关成本。

建议的路线图:

  1. 可行性评估: 在投入大量精力进行优化之前,请使用的当前硬件和一小部分视频数据测试 YOLOv2 和 OCR 管道的可行性。这将帮助确定是否可以在可接受的性能水平内实现的目标。
  2. 优化 C/C++ 实现: 如果可行性测试有希望,请专注于使用 C/C++ 优化 YOLOv2 和 OCR 的实现。探索模型量化、输入分辨率降低和帧速率调整等技术。
  3. 硬件升级: 如果优化不足,请考虑升级的硬件。专注于更强大的 CPU 和增加 RAM。
  4. 基于云的解决方案: 如果无法升级硬件,请研究基于云的解决方案来卸载处理。

请记住,深度学习任务(如对象检测)在资源密集型方面,在旧硬件上实现它们需要仔细优化和潜在的权衡。

标签:javascript,python,xml,google-sheets,ipod-touch
From: 78840947

相关文章

  • Python 内联函数最佳实践
    如果我有一个可以用一行表示的python函数,那么以下哪一个选项通常被认为最适合可读性和一般最佳实践?或者还有其他更好的选择吗?选项2对我来说似乎是最好的,但我是初学者,所以我不想假设任何事情。我尝试过搜索PEP8、StackOverflow和一两个博客,但我找不到任何关于python的明......
  • 在Python中抽象出具有相同接口的真实硬件和模拟设备
    我正在寻找一种更惯用或更简洁的OOP模式来实现与以下内容等效的功能。接口和实现fromabcimportABC,abstractmethodfromtypingimportoverrideclassDevice:"""Maininterfacethathideswhetherthedeviceisarealhardwaredeviceorasimulated......
  • Python Django,使用外部MSSQL数据库
    我正在尝试创建一个连接到外部MSSQL数据库以仅检索信息(只读)的django网站。这个数据库非常庞大,有数百个表。我目前可以通过在django应用程序中创建一个函数来使其工作,该函数使用connectionString并运行原始SQL查询并将其返回到pandas数据帧中。不知何故,我感觉......
  • 使用 Python 中的 Matplotlib 和时间序列索引生成奇怪的图
    我正在尝试使用Python中的Matplotlib绘制一些时间序列数据,但生成的图看起来很奇怪,我不明白为什么。这是我正在使用的代码:filtered_df=df.loc[(df.index>'2010-01-01')&(df.index<='2010-01-08')]#Plottingthedatafig,axs=plt.subplots(1,1,figsize=(12,......
  • Dash Python:通过 @callback 链接选项卡
    这个问题是下面链接的问题的扩展:DashPython:布局函数中的@Callback未被调用我有一个简单的数据框:importpandasaspddf=pd.DataFrame({'Class1':[1,2,3,4,5],'Class2':[6,7,8,9,10]})我创建了一个数据提取函数,该函数根......
  • 如何在 Python 中使用 Langchain 返回已使用的上下文以进行回答
    我已经构建了一个像这样的RAG系统:defformat_docs(docs):return"\n\n".join(doc.page_contentfordocindocs)response_schemas=[ResponseSchema(name="price",description="Price",type="float"),ResponseSchema(......
  • 如何从 python socket.sendmsg 获取套接字 Tx 时间戳
    在阅读此处、此处和此处时,我发现在Linux系统上,您可以通过设置套接字选项来请求接收和传输的数据包的时间戳。我目前可以使用SO_TIMESTAMPNS和SO_TIMESTAMPING来通过recvmsg获取Rx时间戳。使用sendmsg我不知道......
  • Python 类型注释中“|”两边是否“强制”使用空格?
    “Union运算符”|没有出现在PEP8的其他建议中的“始终被空格包围的运算符”列表中因此,应该可以将其样式设置为类似于算术运算符,并删除圆括号、方括号内的空格,或者如果该运算符比表达式中的其他运算符具有更高的优先级。在我看来,删除空格可以提高表达式......
  • ArcPro (3.2+) Python 脚本工具中从 .atbx Toolbox 相对导入本地模块
    我设置了一个库和关联的ArcGISToolbox,以便:/root├──Toolbox.atbx├──mylib│└──my_function.py├──my_tools│└──my_gp_script.py我将代码存储库的开发克隆保存在公司共享服务器上的一个位置,并在GitHub上托管一份副本。当我进行更新时,我会......
  • Python vs. R:揭秘机器学习领域的双璧
    一、引言1.1背景介绍随着大数据和人工智能技术的飞速发展,机器学习已经成为了一个热门领域。在机器学习领域,Python和R是两种广泛使用的编程语言。Python因其简洁易读的语法和强大的库支持,成为了最受欢迎的编程语言之一。而R则以其强大的统计分析和数据可视化能力,在统计学......