基于YOLOv5算法的APP弹窗检测方案

简介: 基于YOLOv5算法的APP弹窗检测方案

基于YOLOv5算法的APP弹窗检测方案

在软件应用的各种弹窗中,弹窗识别是比较复杂的,比如不同类型弹窗中有不同的特征,比如网页样式或者浏览器类型等。弹窗的识别是涉及多个环节的,需要针对不同类型的网络流量采取不同的检测方法。由于网络流量较大,因此传统算法往往不能对弹窗进行有效识别。同时,由于弹窗具有隐蔽性和流动性,因此对于弹窗的识别有着非常高的要求,因此有针对性的攻击方式将会极大提升应用的安全性。本文基于YOLOv5算法对不同类型弹窗进行检测,并通过统计不同特征提取算法的特征信息进行匹配训练,对弹窗进行检测效果分析,最后通过算法迭代优化来实现不同类型弹窗的识别效果与检测效果的优化效果匹配,进而提高弹窗识别精度并降低攻击成本!


一、算法方案设计

弹窗识别是应用中的关键功能,主要是针对一些网页,比如网页样式、链接等,传统弹窗识别通常是通过人工方法进行检测的,虽然可以做到快速、准确地将弹窗识别出来,但是在某些场景下,人工检测难以保证识别出正确的弹窗,如当前网页类型为 TCP/IP,且存在未加密弹窗的情况下,弹窗识别结果会很差。因此,本文采用YOLOv5算法来处理一些复杂弹窗行为和检测效果不佳后的弹窗,本文使用YOLOv5在保证识别效果的前提下提高弹窗识别准确率。YOLOv5提出的 MovieLens弹窗检测模型是一个快速、准确、检测结果高效、低成本(<30 ms)的弹窗检测方法。它在 FLURE和 MIUMA MapReduce等 MovieLens模型中都得到了应用。相比于其他弹窗检测模型, MovieLens弹窗检测模型对流量比较灵活,能很好地适应各类情景下的网络流量。


1、预处理


弹窗识别之前需要对弹窗进行预处理,即提取弹窗特征进行处理。弹窗特征包括文本和图片两种,文本特征包括文本颜色、字体、大小、语句之间的相互关系等。其中文本特征和图片特征具有非常重要的作用,文本特征是网页最基本的特征,也是本文研究弹窗识别时需要重点提取的特征,它决定着弹窗识别的结果。本文使用 Raidena方法提取文本特征以及图片特征。Raidena方法利用文本数据进行特征提取数据中更多信息来进行弹窗特征提取,这种方法能够提高提取到的弹窗特征数数量。本文采用基于 Java或 Raidena语言进行特征提取。Java或 Raidena语言都能够很好地提取文本特征信息并且较好地适用于 MovieLens弹窗特征提取。


2、提取特征


YOLOv5是一种基于卷积神经网络的分类算法,利用卷积神经网络来检测一个网页的图片特征。卷积神经网络分为三层,分别代表二维图片图像信息、三维图片图像信息和二维图片图像信息,如图1所示。本文使用 CUBE作为内存函数,在内存中预处理二维图片图像信息、三维图片信息以及二维图片图像信息。CUBE是一种通用的算法实现方法,通常用于图像特征提取和图像分类。CUBE和 MovieLens特征提取的方式大致相同:通过 CUBE模型获取每个像素点代表图像特征值,再将每个像素点对应的原始图像特征值的输入; MovieLens模型则是通过 CUBE函数获取每个像素点对应的原始图像特征值的输出;两种方法都可以在不损失特征值的前提下获得较好的分类效果。


3、验证模型


本文用 LIMARA验证模型,具体流程如图5所示。首先要选择一组训练样本,对其初始化后的特征提取、排序和训练,然后进行识别并生成一个对应网页的弹窗类别,如图6所示,从弹窗类别中抽取15个特征,分别以YOLOv5为训练模型输入YOLOv5中含有两个特征值作为输入特征提取,最后以 Slogan为结果输出弹窗类别。对每一个弹窗进行筛选后,分别采用四种不同的算法对弹窗进行特征提取与特征排序。如图7所示,对每一类训练样本进行排序,然后用YOLOv5中含有两个特征值当做结果输出的弹窗类别,最后使用 Slogan为结果反馈机制来进行用户弹窗特征提取。


二、算法验证与优化

本文对弹窗检测方法进行了验证,主要包括两部分内容:一是首先分析弹窗的内容,分析弹窗特征与算法如何实现最佳的匹配;二是利用训练好的YOLOv5算法通过输入数据集验证其有效性。在实验中我们采用样本数量为1000个,每次输入1个样本信息作为测试变量对样本进行实验(见图3),通过上述两步方法验证算法有效性,同时将测试样本中已识别出来的500个样本作为改进数据集进行训练。本文对优化后的YOLOv5算法进行了优化,如图4所示:从上述改进数据集中可以看到本文提高了准确率和精确度,但是由于对数据数量的要求过高,因此优化之后的YOLOv5算法比原先更难实现。


1、样本选择


由于本文的算法目标是检测弹窗,因此首先要考虑样本的鲁棒性和稳定性。样本鲁棒性是指在不同的测试环境下,样本在识别过程中不会产生明显的差异。在测试环境下我们选取1000个样本作为训练集,在不同测试环境下,检测样本都是不同的,如果仅根据一组数据进行训练验证其准确性,那么将会极大地降低算法准确率。因此需要进行多组测试来获得样本之间的鲁棒性,因此选择500个样本作为测试集。


2、训练方法


为了实现YOLOv5,需要将测试样本中已识别出来的样本进行训练,本文采用了预训练(BP)和实时监控(LM)两种方式。预训练主要用于分类识别,在本实验中针对弹窗进行预训练后直接通过ResNet10算法完成;实时监控则采用 TRIM视频分析软件对弹窗进行实时监控分析训练得到实时状态网络输出结果。本测试以一个弹窗作为训练样本开始进行训练。实验按照以下步骤进行:首先使用预训练好的弹窗样本匹配并进行预处理(如图6所示);其次设置测试样本变量为500个并将其训练样本(如表1所示);最后检测样本通过预处理后生成训练样本(如表1所示)与训练样本(如表2所示)。通过上述步骤可以看出,本文在预处理阶段已经根据训练样本中已识别出来并生成训练样本了结果。


3、性能提升


针对YOLOv5算法在数据量巨大的情况下性能提升有限的情况,提出一种改进方法,在数据集数量为1000,提取300个样本后在执行训练过程中进行训练时间提高到50分钟。对数据集进行训练时需要多次刷新不同的分类器(如图7所示)以获取更加精确的分类器样本值,使样本识别效率得到明显提升。首先我们使用 LSTM对训练样本进行处理(如图8所示)。在 LSTM处理时首先对分类器样本信息进行抽取,并用 Hadoop和 Lens滤波后对输入进行预处理:过滤掉不同分类器样本中出现的无关类别数后再经过参数化后得到最后标签。由于数据太多会导致计算量过大,而训练时间过长又会导致学习率过低(如图9所示)。针对上述问题通过 BMP模型与 LSTM结合得到一种优化方法用于训练模型:采用 BMP函数进行训练,先采用 LSTM算法对数据集进行预处理得到训练后标签数量为300个的分类器样本值(见表2)。

三、总结

在本次的YOLOv5算法中,经过多次迭代优化,最终实现了对弹窗中关键字符和图像的识别。对于每个关键字符,从网络侧提取每个字符信息中相应的关键字,并从图像侧提取图像中主要元素组成的多尺度图像特征;对于每个图像特征,使用自适应的模型训练,将训练得到的特征对图像进行分割从而得出重要的特征集合并在其中训练相应的分类图像特征;对于每一个关键字符,利用自适应模型训练不同的特征匹配策略以达到不同的匹配效果;并且,还使用自适应模型来评估弹窗图片的总体特征以及每种弹窗图片中潜在的攻击方式和不同类型弹窗中最常用的攻击方式之间的相似度。此外,基于YOLOv5算法来识别弹窗还可进一步提高检测精度。对于弹窗图像识别系统来说,利用多种检测方法来提升弹窗识别效果具有非常重要的意义。本文在传统机器学习和人工智能领域已经取得了一些优秀的研究成果。

相关文章
|
22天前
|
监控 安全 算法
137_安全强化:输入过滤与水印 - 实现输出水印的检测算法与LLM安全防护最佳实践
随着大语言模型(LLM)在各行业的广泛应用,安全问题日益凸显。从提示注入攻击到恶意输出生成,从知识产权保护到内容溯源,LLM安全已成为部署和应用过程中不可忽视的关键环节。在2025年的LLM技术生态中,输入过滤和输出水印已成为两大核心安全技术,它们共同构建了LLM服务的安全防护体系。
|
29天前
|
传感器 资源调度 算法
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
本文提出一种多子带相干累积(MSCA)算法,通过引入空带和子带相干处理,解决DDMA-MIMO雷达的多普勒模糊与能量分散问题。该方法在低信噪比下显著提升检测性能,实测验证可有效恢复目标速度,适用于车载雷达高精度感知。
250 4
DDMA-MIMO雷达多子带相干累积目标检测算法——论文阅读
|
1月前
|
存储 前端开发 API
可配置化App启动弹窗系统:实现后台动态管理与热更新引导-蜻蜓Q系统laravel+vue3-优雅草卓伊凡
可配置化App启动弹窗系统:实现后台动态管理与热更新引导-蜻蜓Q系统laravel+vue3-优雅草卓伊凡
254 5
可配置化App启动弹窗系统:实现后台动态管理与热更新引导-蜻蜓Q系统laravel+vue3-优雅草卓伊凡
|
18天前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
1月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
143 5
|
6月前
|
人工智能 JSON 小程序
【一步步开发AI运动APP】七、自定义姿态动作识别检测——之规则配置检测
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用自定义姿态识别检测技术开发高性能的AI运动应用。核心内容包括:1) 自定义姿态识别检测,满足人像入镜、动作开始/停止等需求;2) Pose-Calc引擎详解,支持角度匹配、逻辑运算等多种人体分析规则;3) 姿态检测规则编写与执行方法;4) 完整示例展示左右手平举姿态检测。通过这些技术,开发者可轻松实现定制化运动分析功能。
|
2月前
|
数据采集 数据可视化 API
驱动业务决策:基于Python的App用户行为分析与可视化方案
驱动业务决策:基于Python的App用户行为分析与可视化方案
|
4月前
|
机器学习/深度学习 运维 监控
实时异常检测实战:Flink+PAI 算法模型服务化架构设计
本文深入探讨了基于 Apache Flink 与阿里云 PAI 构建的实时异常检测系统。内容涵盖技术演进、架构设计、核心模块实现及金融、工业等多领域实战案例,解析流处理、模型服务化、状态管理等关键技术,并提供性能优化与高可用方案,助力企业打造高效智能的实时异常检测平台。
359 1
|
4月前
《仿盒马》app开发技术分享-- 分类模块顶部导航列表弹窗(16)
上一节我们实现了分类页面的顶部导航栏列表,并且实现了首页金刚区跟首页导航栏的联动,这一节我们实现导航栏列表的弹窗功能,需要学习的知识点有自定义弹窗,同时我们的数据源需要跟分类页保持一一致。
98 1
|
3月前
|
存储 监控 算法
基于跳表数据结构的企业局域网监控异常连接实时检测 C++ 算法研究
跳表(Skip List)是一种基于概率的数据结构,适用于企业局域网监控中海量连接记录的高效处理。其通过多层索引机制实现快速查找、插入和删除操作,时间复杂度为 $O(\log n)$,优于链表和平衡树。跳表在异常连接识别、黑名单管理和历史记录溯源等场景中表现出色,具备实现简单、支持范围查询等优势,是企业网络监控中动态数据管理的理想选择。
107 0

热门文章

最新文章