游戏安全-从找色到预测:AI auto-aim是怎么一步步走到今天的
说起 AI 自瞄,很多人脑子里冒出来的第一个东西就是三角洲的什么obs吸附,qq音乐吸附。再加上商家最喜欢挂在嘴边的 YOLO、TensorRT、神经网络、硬件盒子,听起来像是一个非常高深的新东西。
其实把外面的包装拆掉以后,它并没有那么神秘。
一套完整的 AI 自瞄,真正干的事情无非是:取得游戏画面,从画面里认出目标,判断应该追踪谁,估算目标下一刻会出现在什么位置,再把计算出来的偏差变成鼠标输入。YOLO 只是其中负责“看见敌人”的一环;KMBox、MAKCU 只负责最后的输入;贝塞尔曲线、PID、卡尔曼滤波处理的是中间那段移动过程。把任何一个模块单独拿出来,都称不上完整的 AI 自瞄。
它真正的发展史,也不是 YOLOv5 换成 YOLOv8、Python 换成 C++ 这么简单。真正有意义的迭代,是从“发现敌人后把准星拉过去”,逐渐变成“连续理解目标运动,补偿整条系统延迟,预测几毫秒甚至几十毫秒后的落点,并根据武器弹速、目标距离和相对运动给出不同提前量”。
这一篇就沿着这条线讲。
一、AI 自瞄出现以前,视觉自瞄早就存在了
AI 自瞄并不是凭空冒出来的东西。早在深度学习普及以前,FPS 游戏里就已经存在大量不读取游戏内存、只分析画面的自瞄程序。
最早一批常见方案是找色。
当年的游戏人物模型、敌我标识和 UI 都比较固定。某些游戏会给敌人显示红色名字,有些角色的头盔、血条或者人物描边具有比较稳定的颜色。程序只需要在准星周围截取一块区域,搜索预先记录的 RGB 或 HSV 色值,就能得到一个疑似目标坐标。
这套东西在今天看来很原始,但基本框架已经和后来的 AI 自瞄十分接近:
text复制代码
截取画面 → 找到目标像素 → 计算目标与准星的偏差 → 输出鼠标相对位移区别只是当年的“视觉模型”不是神经网络,而是一段颜色判断。
后来单点找色不够用了,程序开始加入 HSV 滤色、图像二值化、膨胀与腐蚀、连通区域分析、OpenCV 轮廓提取等处理。简单来说,就是先把可能属于目标的颜色保留下来,再把零散像素连成一片,最后从中找出一个像人物轮廓的区域。
再往后又有模板匹配。程序保存敌人头部、血条、准星提示等小图片,在当前画面里寻找相似区域。这些方案不需要碰游戏内存,所以长期被称为“视觉自瞄”“图像自瞄”或者“找色自瞄”。
它们的问题同样非常明显。换一张地图、换一个皮肤、换一套光照,识别效果就可能崩掉;人物和背景颜色接近时会误锁;爆炸、烟雾和技能特效也会造成大量干扰。
因此,早期视觉自瞄最大的瓶颈根本不是鼠标怎么移动,而是它连敌人都不一定能稳定看见。
二、YOLO 带来的变化,不只是“识别得更准”
2015 年 YOLO 论文公开,2016 年以后目标检测逐渐进入大众开发者视野。YOLO 最大的特点,是可以直接从一张图像里输出目标类别、置信度和边界框,不需要像过去那样人工规定“红色像素是什么”“轮廓应该长什么样”。
对于视觉自瞄来说,这等于把过去最难维护的一部分替换掉了。
开发者只要收集一批游戏截图,把人物、头部或者特定目标标出来,再训练一个检测模型,程序就能从复杂背景里识别目标。不同皮肤、不同光照和不同姿态仍然会影响效果,但只要训练数据覆盖得足够广,泛化能力就远远超过固定找色。
不过早期的 YOLO 自瞄并没有今天宣传得那么夸张。2018—2020 年前后的常见实现,大多还停留在“可以跑起来”的阶段。模型推理慢、显卡占用高、截图效率低,加上 Python 数据转换和线程调度,整条链路经常已经积累了明显延迟。
画面中的敌人在移动,模型看到的却是十几毫秒甚至更早以前的画面。程序算出的目标中心点,在鼠标真正开始移动时可能已经过期。结果就是准星一直追在目标屁股后面,目标移动得越快,这种拖尾越明显。
所以早期 AI 自瞄虽然能够识别人,但实际效果往往更像一个反应慢半拍的辅助瞄准。它解决了“看不见”的问题,却没有解决“看到以后来不及”的问题。
2020 年以后,YOLOv4-tiny、YOLOv5、YOLOv7、YOLOv8 等模型和部署生态快速成熟,CUDA、TensorRT、ONNX Runtime、DirectML 等推理方案也越来越普及。AI 自瞄才从单纯的模型演示,逐渐走向一套完整的实时系统。
到了这个阶段,模型版本反而不再是决定效果的唯一因素。一个推理很快的模型,如果截图链路慢、队列积压、追踪器不稳定,最终体验仍然很差;一个检测精度稍低但延迟稳定、数据始终是最新帧的系统,实战表现可能反而更好。
说白了,AI 自瞄从这一时期开始,竞争的已经不是“谁会调用 YOLO”,而是谁能把整条延迟链压下来。
三、一套完整的 AI 自瞄,实际上是六个系统拼在一起
很多网上流传的源码只展示了截图、YOLO 推理和鼠标移动,于是给人一种“几十行代码就能做 AI 自瞄”的错觉。真正能够连续工作的系统,至少需要下面六个部分。
text复制代码
画面采集
↓
图像预处理与模型推理
↓
目标筛选与身份保持
↓
速度、加速度与位置预测
↓
轨迹控制与移动分配
↓
系统接口 / KMBox / MAKCU 等输入输出画面采集负责拿到最新图像;YOLO 负责在单帧里找出目标;追踪器负责判断这一帧的人和上一帧是不是同一个;预测器负责估算目标下一刻的位置;控制器负责决定准星应该怎么追过去;最后才轮到鼠标接口或者硬件盒子执行移动。
这里面任何一层处理不好,都会在最终画面里表现出来。
截图不稳定,会导致模型输入帧间隔忽长忽短;检测框抖动,会导致准星跟着抖;目标身份丢失,会在两个人之间来回切换;预测过头,会让准星总是跑到目标前面;预测不足,又会长期追在目标后面;控制器过硬,表现为明显吸附;控制器过软,又会跟不上快速移动。
这也是为什么成熟系统真正花时间的地方,通常不是 YOLO 的那几行调用代码,而是模型前后大量不起眼的工程处理。
四、真正的第一代迭代:从单帧坐标变成连续目标
最初的 AI 自瞄是典型的单帧逻辑:这一帧检测到一个框,就取框中心;下一帧重新检测,再取一次框中心。程序并不知道两帧里的目标是不是同一个人,也不理解目标正在向左还是向右移动。
YOLO 返回的预测框本身会有抖动。哪怕敌人站着不动,框的左上角、宽度和高度也可能在相邻帧里变化几个像素。直接把框中心当作鼠标目标,准星就会产生细碎抖动。
后来的实现开始加入追踪器。常见思路是根据边界框重叠面积、中心点距离、外观特征和历史运动方向,为目标分配一个临时 ID。这样程序才能知道:屏幕左边这个人,和上一帧向左跑的那个人,是同一个目标。
有了连续目标,程序才第一次拥有了“时间”这个概念。
它不再只知道目标现在在哪,还能根据过去几帧的位置变化,估算目标在屏幕坐标上的速度:
text复制代码
速度 ≈ 当前坐标与上一帧坐标的差 ÷ 两帧真实时间间隔注意这里必须是真实时间间隔,而不是简单假设程序永远以固定帧率运行。系统忙的时候可能隔得久,空闲时隔得短,如果直接按固定帧数计算,速度估计会忽快忽慢。
这一代改进看上去只是加了一个追踪器,实际上非常关键。没有连续追踪,后面的速度预测、遮挡恢复、弹道提前量都无从谈起。
五、真正的第二代迭代:补偿“看见到执行”之间的时间差
目标检测不是发生在现实时间里的瞬间动作。从一帧画面出现在显卡,到程序最后输出鼠标移动,中间会经过一整条延迟链:
text复制代码
画面生成延迟
+ 截图等待与复制延迟
+ 图像预处理时间
+ 模型推理时间
+ 后处理和目标筛选时间
+ 轨迹计算时间
+ 输入设备通信时间
+ 游戏下一次读取输入的等待时间每一段可能都不算长,但全部加在一起以后,目标位置已经不是程序刚刚看到的那个位置了。
假设敌人一直向右移动。模型检测到的位置记作 p(t),而鼠标真正执行时已经过去了 τ。最基础的预测可以写成:
text复制代码
p(t + τ) ≈ p(t) + v(t) × τ这里的 v(t) 是目标在屏幕坐标中的运动速度。只要目标保持近似匀速,程序就可以把瞄准点放到当前检测框前方,而不是机械地追着旧坐标跑。
如果再考虑目标加速,公式会进一步变成:
text复制代码
p(t + τ) ≈ p(t) + v(t)τ + 1/2·a(t)τ²这就是所谓的提前预测。它并不一定要预测很久,有时仅仅补偿十几毫秒的系统延迟,视觉效果就会出现明显差别。
但事情没有公式看起来那么简单。FPS 玩家经常左右急停、反向拉枪、蹲起或者突然改变速度。使用单纯匀速模型时,只要敌人突然反向,预测点就会在短时间内继续向旧方向冲出去。
因此后来的实现会使用 α-β 滤波、卡尔曼滤波、恒加速度模型,甚至多个运动模型之间切换。它们的目的不是让坐标单纯变平滑,而是根据噪声和历史状态估计一个更可信的速度与加速度。
再往后,一些实验性方案会把连续若干帧的位置、框大小和姿态交给 LSTM、GRU 或轻量 Transformer,让模型学习玩家横移、急停和转向的短期模式。不过这类方法并不一定比传统滤波器更实用。模型越复杂,延迟越高;而预测时间本来就只有很短一段,工程稳定性通常比模型听起来高级更重要。
六、真正的第三代迭代:从延迟补偿走向弹道提前量
前面讲的预测,只是在补偿整套系统本身的延迟。对于命中即判定的 Hitscan 武器,这已经能解决相当一部分问题。但只要游戏里的子弹具有飞行速度,情况就完全不同了。
子弹从枪口飞到目标需要时间。目标在这段时间内仍然会移动,所以瞄准当前身体位置,子弹到达时目标可能已经走开。这时需要计算的就不只是系统延迟,而是:
text复制代码
总预测时间 = 系统端到端延迟 + 子弹飞行时间在最简化的情况下,子弹飞行时间近似为:
text复制代码
子弹飞行时间 ≈ 目标距离 ÷ 子弹速度然后再根据目标的横向速度,估算这段时间内它会移动多少。
这也就解释了为什么不同武器不能共用一套提前量。狙击枪、步枪、弓箭、火箭弹或者投掷物的弹速不同;同一武器在不同游戏、不同配件和不同射击模式下也可能发生变化。弹速越慢、距离越远,所需提前量通常越大。
如果游戏还模拟弹丸下坠,就要继续考虑重力。一个最朴素的近似是:
text复制代码
下坠量 ≈ 1/2 × 游戏内重力 × 飞行时间²但纯视觉 AI 自瞄在这里遇到了一个天然难题:它从屏幕截图中只能直接获得二维像素坐标,并不知道目标在三维世界中的真实距离,也不知道游戏当前使用的准确弹道参数。
因此,视觉方案想做动态提前量,必须另外估计距离和武器状态。
有些方案会根据人物框在屏幕中的高度粗略判断远近。同一个角色越远,框通常越小;越近,框越大。问题是人物蹲下、侧身、坡度变化和相机 FOV 都会影响框高,所以这种距离估计只能算近似。
还有一些方案会识别游戏 HUD,通过 OCR、图标分类或者固定区域模板匹配,判断玩家当前拿的是什么武器,再切换对应的弹速、重力和弹道模型。更进一步,还会识别倍镜状态,因为开镜后的 FOV 改变会影响屏幕像素与实际视角之间的换算关系。
这才是 AI 自瞄从“识别人形”走向“理解射击条件”的关键一步。
传统内存类程序可以直接取得三维坐标、速度、武器编号和弹道参数,而纯视觉方案必须从二维画面里猜。也正因为如此,视觉 AI 自瞄想做好远距离抛射武器,难度远高于近距离、快速弹速或者 Hitscan 场景。
七、从二维预测框到“伪三维”理解
早期 AI 自瞄只关心检测框中心。目标框在哪里,准星就往哪里走。这种处理方式在平地、中近距离和人物完整可见时尚且能用,遇到复杂情况就会暴露问题。
人物蹲下以后,框中心会向下移动;人物只露出上半身时,框的比例会改变;敌人躲在掩体后面,只露出头部,完整人体检测器可能直接漏掉;两个人重叠时,预测框还可能互相干扰。
后来的模型会把类别分得更细,例如人物、头部、身体、倒地目标,或者直接使用姿态估计输出头、肩、胸、髋等关键点。关键点比固定使用“框高度乘以某个比例”更加灵活,因为它能够根据人物姿态改变目标位置。
再进一步,会加入单目深度估计或者专门的距离回归模型。它不一定能恢复准确的游戏三维坐标,但可以把目标粗略分成近、中、远距离,再为不同距离选择不同的预测和控制策略。
这里的重点不是恢复一个完美三维世界,而是从二维画面里提取足够多的上下文:目标多远、是否在横移、是否被遮挡、当前姿态是什么、使用的武器是什么、镜头 FOV 是否发生变化。
所谓 AI 自瞄的“智能”,大部分就体现在这些过去只能写死的判断,逐渐被模型和连续状态估计替代了。
八、目标选择也经历了明显变化
最早的逻辑非常粗暴:谁离准星最近,就选谁。
这种方法在只有一个敌人时没什么问题,一旦画面里同时出现多个目标,就容易在两个预测框之间来回跳。尤其是两个敌人交叉移动时,框中心距离会不断变化,程序可能上一帧追左边的人,下一帧突然切到右边。
后来目标选择逐渐变成一个带状态的过程。程序会考虑当前已经锁定的目标、目标持续可见时间、移动方向、预测稳定性、框置信度和遮挡情况。只要当前目标仍然有效,就不会因为另一个人短暂靠近准星而立刻切换。
这可以看作从“每帧重新选择”变成“建立一次追踪关系”。
再往后,目标筛选还会和武器特性产生联系。近距离武器更重视快速响应,远距离武器更重视目标运动稳定性和预测可信度;弹速较慢时,频繁切换目标会导致提前量反复改变,准星表现得更乱。
因此,成熟系统往往不是一个简单的检测循环,而是一个状态机:发现目标、确认目标、进入追踪、预测位置、允许输出、目标丢失、短暂保持、重新搜索。很多看起来像“吸附手感”的差异,实际上来自这套状态机,而不只是平滑系数。
九、KMBox 为什么会火起来
目标位置算出来以后,程序还要把结果变成鼠标移动。
早期方案通常直接调用系统提供的输入接口,或者使用某些驱动和虚拟设备生成鼠标事件。优点是简单,缺点是输入来源和程序调用链都集中在游戏主机上。
KMBox 一类设备的思路,是把输入执行从主机程序中拆出去。上位机只发送“鼠标向某个方向移动多少、按下或松开什么键”之类的指令,外置设备再把它转换成键鼠输入。
KMBox 并不是 AI 芯片,也不会自己运行 YOLO。它更像整条链路的最后一只手:前面的截图、检测、追踪、预测都做完了,最后由它负责执行。
不同 KMBox 型号的连接方式并不完全相同,有些使用串口,有些使用网络通信。网络型号受到关注,很大程度上是因为它容易和副机、DMA 或独立计算机组合:副机负责计算,主机负责游戏,中间通过网络和输入设备连接。
这种模块化结构后来逐渐成为一套生态。画面可以来自主机截图、采集卡或者另一条图像链路;推理可以放在本机,也可以放在副机;输入可以走系统接口,也可以走硬件盒子。开发者可以替换其中某一部分,而不需要推翻整套系统。
这也是 KMBox 真正重要的地方:它不是提升识别率,而是让计算和输入进一步解耦。
十、MAKCU 又是什么东西
MAKCU 可以看作近两年出现的一条开源、低成本键鼠控制路线,常见硬件基础是 ESP32-S3。它在定位上与 KMBox 有相似之处,都是接收上位机指令,再对键鼠输入进行处理。
MAKCU 受到关注的原因并不难理解。KMBox 相关设备和协议长期比较封闭,价格、固件和接口由厂商控制;而 ESP32-S3 硬件便宜、开发资料多、社区活跃,开源实现允许开发者自己修改固件和通信方式。
MAKCU 也因此很快被各种自动化、输入转发和游戏辅助项目采用。它可以针对不同鼠标做适配,也可以根据固件设计支持不同通信接口。
但从 AI 自瞄的整体结构来看,MAKCU 与 KMBox 所处的位置没有发生变化:它们都不负责识别和预测,只负责接收已经计算好的移动结果。
如果前面的目标框是错的,盒子只会非常忠实地把准星移动到错误位置;如果预测提前量过大,硬件设备同样会把准星带到目标前方。外置设备解决的是输入链路问题,不会自动解决视觉、延迟和弹道计算问题。
网上经常有人把硬件输入简单等同于“无检测”。这个说法并不准确。硬件设备只是让传统的软件调用特征变少了,但最终鼠标轨迹、瞄准反应、目标同步性和射击数据仍然会反映到游戏行为中。
十一、贝塞尔曲线是怎么被加进来的
早期自瞄取得目标坐标后,最简单的做法就是计算准星到目标的横纵差值,然后一次性移动过去。这种轨迹看起来像瞬间吸附,起点和终点之间没有正常的加速、减速和修正过程。
之后出现了线性平滑。程序把一次大移动拆成若干次小移动,每次只走一部分。这样虽然不再瞬间跳转,但路径通常还是一条过于笔直的线,速度变化也比较机械。
贝塞尔曲线被引入以后,移动路径可以出现自然弯曲。二阶贝塞尔曲线可以表示为:
text复制代码
B(t) = (1-t)²P0 + 2(1-t)tP1 + t²P2其中 P0 是准星起点,P2 是预测后的目标点,P1 是控制弯曲方向和程度的控制点。三阶贝塞尔则增加一个控制点,可以形成更加复杂的路径。
但这里经常存在一个误区:有了弯曲路径,不代表有了真人轨迹。
路径形状只是其中一部分。鼠标怎么加速、什么时候减速、是否会过冲、到达目标后有没有二次修正、目标突然反向时如何中断旧轨迹,这些都比单纯“是不是一条曲线”更重要。
因此后来的轨迹控制并不是只套一个贝塞尔公式,而是开始把路径和速度分开处理。贝塞尔负责几何路线,速度曲线负责不同阶段走多快,PID 一类反馈控制负责根据当前误差不断修正;卡尔曼滤波更多用于估计目标状态,而不是直接生成鼠标轨迹。
还有一些实现会使用 minimum-jerk,也就是最小化加加速度变化的运动模型。人类手臂在完成指向动作时,确实常呈现比较平滑的速度轮廓,所以这种模型经常被拿来描述人类运动。
不过,真实玩家并不是提前算好一条完美曲线再照着走。人眼会不断观察画面,手部也会持续修正。目标动了,玩家会改变方向;准星过头了,会向回拉;看丢目标,会短暂停顿或者重新寻找。它本质上是一个视觉反馈闭环,而不是一段预先播放的动画。
这也是轨迹控制后续真正的迭代方向:从“生成一条从 A 到 B 的曲线”,变成“每一个输入周期都根据目标新位置、当前准星误差和历史速度重新决定下一小步”。
十二、为什么加了贝塞尔,仍然会留下很重的机器味
单次观察时,贝塞尔曲线确实比直线吸附自然。但把大量瞄准过程放在一起,问题就会逐渐暴露。
程序生成的轨迹通常具有稳定结构。相似距离下的加速段长度接近,曲率变化接近,停止位置也接近;随机偏移如果来自固定分布,长期统计以后同样会形成稳定边界。
真人轨迹则会受到更多因素影响。玩家可能正在压枪,可能同时移动人物,可能因为紧张用力过猛,也可能因为目标突然变向而产生多次修正。同一个人在不同武器、不同灵敏度和不同状态下,轨迹也不会完全一样。
行为检测因此早已不只是检查“是不是直线”。它会观察目标出现后多久开始移动、移动速度怎样变化、是否存在正常过冲和回拉、准星与目标之间是否长期保持异常同步,以及进入目标区域和开火之间的时间关系。
如果一套程序每次都能在极短时间内识别目标,并以结构相似的轨迹停在相似部位,那么即使每条路径都画成不同的贝塞尔曲线,整体行为仍然可能表现出机器一致性。
所以所谓“通过贝塞尔躲行为检测”,更多是早期对抗思路。它可以去掉最明显的瞬移和直线特征,却不能把一个确定性控制系统变成真正的人类运动。
后续那些 PID、随机扰动、最小加加速度和多段曲线,本质上也都在解决同一问题:怎样减少固定控制器留下的重复模式。但控制越复杂,并不一定越自然。如果多个算法互相打架,准星反而会出现细碎震荡、反复过冲或者不符合目标运动的无意义摆动。
十三、从“移动到目标”变成“和目标一起运动”
早期自瞄更像一次次独立点击:发现目标,移动过去,结束。目标继续移动后,再重新计算一次。
后来的追踪型自瞄不再把目标看成一个静止点,而是把它看成一个持续变化的运动状态。控制器不仅要消除当前准星误差,还要尽量匹配目标的运动速度。
假设目标在屏幕上持续向右移动。如果准星只是不断追赶当前位置,就会始终落后。更合理的控制需要同时考虑两部分:一部分消除准星与预测点之间的距离,另一部分跟随目标当前速度。
这和传统控制系统里的位置环、速度环很相似。位置误差决定应该往哪个方向拉,目标速度决定准星到达以后应该以什么速度继续跟随。
当目标突然反向时,系统还要快速判断这是真实转向,还是检测框的一次抖动。如果滤波太重,准星反应迟钝;如果滤波太轻,又会被检测噪声牵着走。
从这一点开始,AI 自瞄的核心难题已经不再是“鼠标怎么移动”,而是如何在噪声、延迟和突然变向中估计一个可信的目标状态。
十四、这个地方删掉了,影响有点大
xxxxxx
十五、为什么帧率高不代表延迟低
这是 AI 自瞄领域里另一个经常被混淆的概念。
程序显示每秒可以推理几百帧,不代表它使用的是最新画面。假如截图线程不断把图像塞进队列,而推理线程来不及处理,模型虽然一直在高速运行,实际处理的却可能是队列里积压的旧帧。
对于普通视频分析,晚几十毫秒影响不大;对于快速移动目标,这些旧帧会直接造成预测误差。
因此成熟实现更关心的是端到端延迟和帧的新鲜度,而不只是 FPS。宁可丢掉没有处理完的旧图,也要优先分析最新一帧。截图、推理、追踪和控制可以并行,但队列不能无限堆积。
另外,显示器刷新率、游戏帧率和输入设备回报率也不是同一个概念。游戏可能高帧率运行,但截图接口取得画面的节奏不同;鼠标可能具有很高回报率,但上位机发送指令和游戏读取输入之间仍然存在调度延迟。
真正要补偿的 τ,不是模型推理时间,而是从目标状态被画出来,到对应输入在游戏中产生效果的完整时间差。
十六、到了今天,YOLO 反而只是最普通的一环
现在再看一套相对完整的 AI 自瞄,它已经不是“YOLO 加鼠标移动”这么简单了。
检测器负责找到候选目标;追踪器负责保持目标身份;状态估计器计算速度和加速度;预测器补偿系统延迟和弹丸飞行时间;HUD 模块识别武器、倍镜和其他状态;控制器根据预测点与准星误差产生连续输入;KMBox、MAKCU 或其他设备执行最终动作。
真正体现代际差异的地方,大致是下面这条变化路线:
text复制代码
只会寻找固定颜色
→ 能识别人形
→ 能连续追踪同一个人
→ 能估算目标速度与加速度
→ 能补偿整条系统延迟
→ 能根据距离和弹速计算提前量
→ 能识别武器、姿态与开镜状态
→ 能在目标突然变向和短暂遮挡时维持状态这才是 AI 自瞄真正的迭代。
模型换代当然有作用。更轻的网络能降低推理时间,更好的数据集能减少漏检,更细的类别和关键点能改善部位判断。但如果没有追踪、预测、弹道和控制这些模块,再新的 YOLO 也只是每帧输出几个矩形框。
十七、目前AI自瞄的形态
发展到今日,也就是二六年七月二十八日,大多游戏都对ai自瞄进行了大规模的清洗,比如三角洲的200t,目前也不知道200t的依据是什么,站长并不常玩三角洲,瓦罗兰特从去年的obs进行推流开始,对obs进行了特征封禁,后续又加入了行为封禁,比如鼠标轨迹,开枪速度等因素,直至今日,行为封禁依然是最多的一个封禁。
obs被特征封禁之后,短时间又出了一堆魔改obs,随机窗口名,随机文件名称,或者源码级魔改,去掉多数功能,只保留采集和推流。后面obs进行推流会被软硬件10年封禁,obs就此落幕。
后面登场了发射器,自写程序进行屏幕区域采集并使用UDP协议进行推流,后来游戏官方对于ai自瞄进行了协议上的封堵,比如udp,tcp等这种网络协议进行了封堵,使用就会被三方插件封禁一天。
后来研究出来了以太网帧直发模式,绕过了ip栈,直至今日。
AI也是各种称出不穷,比如知名的奶龙,太奶,tdd等,都可以达到一帧拉枪锁死并且使用自动扳机
十八、结语
AI 自瞄的发展过程,实际上是一条很典型的工程演化路线。
最早的找色解决的是“能不能在画面里找到东西”;YOLO 解决的是“复杂场景里能不能认出敌人”;追踪器解决的是“前后几帧是不是同一个人”;状态估计解决的是“目标正在往哪里移动”;延迟补偿解决的是“鼠标执行时目标已经不在原地”;弹道预测又进一步解决了“子弹飞到那里时目标会在哪里”。
KMBox 和 MAKCU 的出现,则让输入执行从主机软件中拆了出来。贝塞尔曲线、PID 和 minimum-jerk 一类方法,处理的是准星如何从当前位置过渡到预测位置。但轨迹看起来平滑,只是整个问题里很小的一部分。
真正成熟的系统,靠的不是某个神秘模型,也不是某个所谓无检测盒子,而是整条链路的时序能够对得上:画面必须足够新,目标身份不能乱,速度估计不能飘,预测时间要符合实际延迟,武器弹速和距离需要匹配,最终控制还要跟得上目标的突然变化。
把这些问题全部摊开以后就会发现,所谓 AI 自瞄,并不是 AI 突然学会了枪法,而是计算机视觉、目标追踪、弹道物理、控制算法和硬件输入被人一点点拼成了一套系统。
这套系统仍然在继续迭代。下一代真正拉开差距的,恐怕也不会是 YOLO 后面的版本号,而是谁的算法更拟人化,可以让反作弊系统认为是真人玩家