缠丝猫 发表于 2025-3-17 14:36:00

基于YOLO目标检测 辨认 APP页面点击跳转页面加载时间,视频拆帧统计应用场

项目配景

        前端竞品性能对比测试提效
        竞品间前端性能对比测试工作,每季度均会花费较长的时间;且均为重复性工作;使用模型练习或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 次,那么每个标签的练习次数为:


如果有 6 个标签,那么总共的练习次数为:

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

解决方案

        统计app应用点击页面跳转和加载时间,场景加载分析,视频拆帧,目标辨认+简单的算法
1、人工:肉眼辨认x个标识点,场景,跳转过程中到骨架屏加载,末了数据出现(抛出图片懒加载)
2、匹配:图片指定区域辨认,收罗3个点(图片模板匹配相似度、颜色、OCR)分场景
3、模型:YOLO,打标和预练习模型

参考流程和参数

初始流程

1、打标,手动,费时费力
2、练习,电脑拉跨,没得显卡,50次,32个标签,练习50轮,要6个多小时
3、检测,开启表现和存储,卡的批爆,慢。不开表现和存储获取结果比较快
4、本质照旧目标匹配,1页面多个标签,根据标签去辨认场景
5、计算场景标签次数(x图片张数)获取到页面跳转时间,每张图片的时间是固定的


练习和辨认 参考参数

练习参数

https://i-blog.csdnimg.cn/direct/37801cdfb4d94b57bbf091dfc06fa65e.png
任务类型

        检测
        分割
        姿态
        分类
        OBB

数据集目录:xxx
训阵轮数:100
批显巨细:16,显卡性能,显存巨细
图像尺寸:640

包含测试集
        测试集比例
        验证集比例
高级选项
        框损失增益
        类例损失增益
        姿态损失增益
        关健点目标损失增益
        ...
        重叠遮罩
                遮罩比例
                Dropout率


辨认参数


https://i-blog.csdnimg.cn/img_convert/7e80e5023a6d65b8a2eab8fe5f65db80.png

https://i-blog.csdnimg.cn/img_convert/f18ce91cbf75ee6c21a971fc6f5b9036.png
高级选项
        置信度阈值
        I0U阈值
        最大检测数
        类列过滤(运号分隔的索引)
                类别无关NMS
                使用TTA

导出模型

模型转换 pt 转 onnx

https://i-blog.csdnimg.cn/img_convert/adad54e067dcd3ef80aa0b5d93a72f99.png

个人实操

现实操纵 1000张 32个标签 练习数据记录

500次 未练习完成


https://i-blog.csdnimg.cn/img_convert/bd5111199b5bd0acc2a491eda546c382.png

50次 练习完成

2025-1-21 16:52 左右,开始练习 0%
2025-1-21 19:45 左右,练习进度 46%

https://i-blog.csdnimg.cn/img_convert/7a4b520519217556c74044e59e752fd9.png

https://i-blog.csdnimg.cn/img_convert/b291147ebd0b5d554af557f6a0fd58d9.png

模型练习 前,后 对比

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

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

未练习前

Kike 风筝
Keyboard 键盘
refrigerator 冰箱
book 书

https://i-blog.csdnimg.cn/img_convert/434b5f3b266578200f41c61ea7ee2858.png


练习后

自定义标签辨认,自定义框选区域

https://i-blog.csdnimg.cn/img_convert/6855c24f0fbb365091c1f30c9a2adef4.png

https://i-blog.csdnimg.cn/img_convert/f8fdac1254622c21384b603171fc0360.png


模型结果检测

开启表现、开启或关闭存储 慢

开启表现、开启存储 速度慢
开启表现,关闭存储 速度较慢
5-10分钟才50张图片不到
图1

https://i-blog.csdnimg.cn/img_convert/972687aeae83edda64acf2449296e088.png
图2

https://i-blog.csdnimg.cn/img_convert/9e694ffc69509ea921bfb6309977715b.png
关闭表现、关闭存储 速度快

https://i-blog.csdnimg.cn/img_convert/f8fdac1254622c21384b603171fc0360.png


图标辨认场景日记

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\predict7

image 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\predict7

image 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\predict7

image 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、直到页面出现酒店数据

https://i-blog.csdnimg.cn/img_convert/7b9369e02230bdf801ca68268d399950.png


https://i-blog.csdnimg.cn/img_convert/e3981893101c4a0966b6116270e90a67.png

步调实现思路

场景打标签


https://i-blog.csdnimg.cn/img_convert/62d27f939a1dd9328c6376bc9b38353c.png


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

https://i-blog.csdnimg.cn/img_convert/ee235cd6711d2ad7f015bbb98c88ffc6.png


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


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 基于YOLO目标检测 辨认 APP页面点击跳转页面加载时间,视频拆帧统计应用场