基于YOLO目标检测 识别 APP页面点击跳转页面加载时间,视频拆帧统计应用场景,场景数获取时间差,前端性能测试和统计

news/2025/3/16 9:18:29/

项目背景

        前端竞品性能对比测试提效

        竞品间前端性能对比测试工作,每季度均会花费较长的时间;且均为重复性工作;使用模型训练或AI的方式,对视频进行自动拆分和识别,快捷输出报表,提升产出效率

实际场景

1、录制某app,由首页点击跳转到列表页,列表页跳转到详情页,详情页跳转到填写页3次场景视频

2、通过视频拆帧的方法获得图片,手动标记首页点击、列表页点击,详情页点击图片,计算跳转完成的时间差值,获得点击到跳转完成的时间。

3、重复步骤2,某app采集10次 或 20次,获取时间平均值

要求

1、步骤2可以利用人工智能或者ai的方法简化手动标记的人工成本吗?

2、请给出可实现的思路

3、请给出可执行的完整代码

ChatGPT 回答

解决方案

针对你的需求,我可以给出一种利用计算机视觉和机器学习的方法来简化手动标记的过程。
具体而言,可以使用目标检测模型来自动识别视频中的页面跳转动作,从而减少手动标记的工作量。以下是一种可能的实现思路,以及一些伪代码来说明:实现思路数据收集和准备收集包含首页点击、列表页点击和详情页点击的视频数据。将视频数据拆帧并转换为图像。训练目标检测模型使用已标记好的图像数据(包含首页、列表页、详情页等)来训练目标检测模型,例如使用 TensorFlow 的 Object Detection API 或 PyTorch 的 torchvision 库。目标检测模型的目标是自动识别视频中的页面跳转动作。模型评估对训练好的模型进行评估,确保其能够准确地识别页面跳转动作。自动识别页面跳转动作使用训练好的目标检测模型对视频进行处理,自动识别页面跳转动作的发生时间点。计算时间差值根据识别到的页面跳转动作的时间点,计算跳转完成的时间差值。重复采集重复进行步骤 1 到步骤 5,采集足够的数据以获取时间平均值。伪代码示例以下是一个简单的伪代码示例,用于说明如何使用目标检测模型来自动识别页面跳转动作:完整代码由于这是一个复杂的任务,实际的完整代码可能会涉及到大量的数据处理、模型训练和视频处理等步骤。由于篇幅有限,这里无法提供完整的可执行代码。然而,我鼓励你按照上述思路逐步实现,并在实际开发中遇到问题时,随时向我寻求帮助。  

训练次数

问:

        6个标签,280张图,训练300轮,实际是总共多少次

答:

        假设每个标签有 280 张图像,训练轮数为 300 次,那么每个标签的训练次数为:

[280 \times 300 = 84000]

如果有 6 个标签,那么总共的训练次数为:[6 \times 84000 = 504000]

因此,在这种情况下,总共的训练次数为 504,000 次。

解决方案

        统计app应用点击页面跳转和加载时间,场景加载分析,视频拆帧,目标识别+简单的算法

1、人工:肉眼识别x个标识点,场景,跳转过程中到骨架屏加载,最后数据呈现(抛出图片懒加载)

2、匹配:图片指定区域识别,采集3个点(图片模板匹配相似度、颜色、OCR)分场景

3、模型:YOLO,打标和预训练模型

参考流程和参数

初始流程

1、打标,手动,费时费力

2、训练,电脑拉跨,没得显卡,50次,32个标签,训练50轮,要6个多小时

3、检测,开启显示和存储,卡的批爆,慢。不开显示和存储获取结果比较快

4、本质还是目标匹配,1页面多个标签,根据标签去识别场景

5、计算场景标签次数(x图片张数)获取到页面跳转时间,每张图片的时间是固定的

训练和识别 参考参数

训练参数

任务类型

        检测

        分割

        姿态

        分类

        OBB

数据集目录:xxx

训阵轮数:100

批显大小:16,显卡性能,显存大小

图像尺寸:640

包含测试集

        测试集比例

        验证集比例

高级选项

        框损失增益

        类例损失增益

        姿态损失增益

        关健点目标损失增益

        ...

        重叠遮罩

                遮罩比例

                Dropout率

识别参数

高级选项

        置信度阈值

        I0U阈值

        最大检测数

        类列过滤(运号分隔的索引)

                类别无关NMS

                使用TTA

导出模型

模型转换 pt 转 onnx

个人实操

实际操作 1000张 32个标签 训练数据记录

500次 未训练完成

50次 训练完成

2025-1-21 16:52 左右,开始训练 0%

2025-1-21 19:45 左右,训练进度 46%

模型训练 前,后 对比

基座模型,通用(宽度),别人训练的

垂直模型,定制(深度),自己训练的

未训练前

Kike 风筝

Keyboard 键盘

refrigerator 冰箱

book 书

训练后

自定义标签识别,自定义框选区域

模型结果检测

开启显示、开启或关闭存储 慢

开启显示、开启存储 速度慢

开启显示,关闭存储 速度较慢

5-10分钟才50张图片不到

图1

图2

关闭显示、关闭存储 速度快

图标识别场景日志
image 1/1 D:\code_path\Python\testVideoSceneTime\TCVideoSplitImg\88.jpg: 640x320 1 中间-tc-APP, 36.7ms
Speed: 2.0ms preprocess, 36.7ms inference, 0.0ms postprocess per image at shape (1, 3, 640, 320)
Results saved to runs\detect\predict7image 1/1 D:\code_path\Python\testVideoSceneTime\TCVideoSplitImg\219.jpg: 640x320 1 骨架-tcH-首, 58.6ms
Speed: 2.0ms preprocess, 58.6ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 320)
Results saved to runs\detect\predict7image 1/1 D:\code_path\Python\testVideoSceneTime\TCVideoSplitImg\243.jpg: 640x320 2 完成-tcH-首2s, 41.0ms
Speed: 1.0ms preprocess, 41.0ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 320)
Results saved to runs\detect\predict7image 1/1 D:\code_path\Python\testVideoSceneTime\TCVideoSplitImg\498.jpg: 640x320 1 完成-tcH-首3, 43.9ms
Speed: 2.0ms preprocess, 43.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 320)
Results saved to runs\detect\predict7

实操方案实现策略和调整

人工手动实现思路

1、找出页面开始跳转

2、白屏过度

3、骨架屏幕预加载过度

4、直到页面出现酒店数据

程序实现思路

场景打标签

时间差计算
1、列表页
2、过度页
3、骨架屏
4、填写页
每1秒就是1张图片,1张图片的时间固定,那就计算 场景2、场景3 有多少次再乘时间,就是 过度和骨架,到完成的时间 本质上还是 多模板匹配,识别页面场景,过度了多少张图片

企业微信截图_17376005726070.png



问题或讨论记录
1、细节(过度页+骨架,过度页(无骨架),这两个场景的时间),还有识别精确度(还没验证)
2、还有一个问题,换了ui 就得重新去搞一次,AI截止目前只能回答 截止xxxx年xx月xx日,因为训练的知识只能到这里,一个原理

若有收获,就点个赞吧


http://www.ppmy.cn/news/1579536.html

相关文章

python使用openai的api的时候声明不要走系统代理,默认是走的

配置了以上的方式,还是不行。因为项目默认使用的是国内的大模型服务商,但是接口是和openapi通用的,所以可以直接使用,但是项目中有的链接还是要走系统代理的,所以就需要将两者区分开,配置openapi不走系统代…

AI与人的智能,改变一生的思维模型【7】易得性偏差

目录 **易得性偏差思维模型:大脑的「热搜算法」与反操纵指南****病毒式定义:你的大脑正在被「热搜」劫持****四大核心攻击路径与史诗级案例****1. 信息过载时代的「认知短路」****2. 媒体放大器的「恐怖滤镜」****3. 个人经验的「数据暴政」****4. 社交茧…

在1688平台上如何实现铺货和上传商品的自动化?

在1688平台上实现铺货和上传商品的自动化,可以通过以下几种方式来实现: 1. **使用1688开放平台API** 1688提供了开放平台API,允许开发者通过编程接口实现商品上传、库存管理、订单处理等操作。你可以通过以下步骤实现自动化: …

有线数字通信的一些问题

一、直接用电线通信 传输的是矩形波信号。 (一)通信模式 1、单向通信只需要两根导线 双方规定相同的比特时长单位。 双方约定比特1代表5伏电压,比特0代表0伏电压。 2、双向通信 如果是半双工: 需要2根导线,但是需要规定本次谁通信&#xff0c…

数据挖掘导论——第二章:数据

谈数据之前,我们要先知道数据有哪几种类型。数据的维度,数据的频率、位置、分布(方差或标准差衡量)等。 接着就是数据的质量,数据挖掘着眼于要么是对数据质量问题的检测和纠正,要么是使用可以容忍低质量数…

摄像头模块ISP处理流程

摄像头模块的ISP(图像信号处理器)处理流程是对图像传感器输出的原始信号进行系统性优化的过程,主要分为以下关键步骤及对应功能模块: 一、原始信号输入与预处理 ‌传感器信号捕获‌ CMOS/CCD传感器将光信号转换为模拟电信号&…

原生微信小程序实现导航漫游(Tour)

效果&#xff1a; 小程序实现导航漫游 1、组件 miniprogram/components/tour/index.wxml <!--wxml--> <view class"guide" wx:if"{{showGuide}}"><view style"{{guideStyle}}" class"guide-box"><view class&quo…

linux下的进程

linux下的进程 1、冯诺依曼体系结构2、操作系统2.1 概念2.2 设计OS的目的2.3 定位2.4 如何理解 "管理" 3、进程3.1 基本概念3.2 描述进程-PCB3.3 最早版本task-struct&#xff08;linux&#xff09;3.4 查看进程3.5 getppid&#xff08;副id&#xff09; 4 系统调用&…