AI优化回归测试套件:从全量回归到智能执行集的工程实践
提到“用AI优化回归测试套件”不少测试同学的第一反应是是不是又要引入一堆高大上的平台把团队折腾一遍最后沦为汇报材料我过去也这么想。直到我所在的团队真正被回归测试套件压得喘不过气——五千多条用例夜间全量回归从四十分钟一路涨到三个多小时线上还漏过一个本可以在回归阶段拦截的低级问题我们才下决心认真做一次“让套件变聪明”的改造。这篇文章不是理论科普而是我们整个过程的复盘。我会从问题拆解、数据底座、特征设计、模型选型、工程落地到踩坑实录完整讲清楚“AI优化回归测试套件”到底在解决什么问题哪些环节值得做哪些是伪需求以及一个普通团队怎么一步步把这件事落地。如果你想做类似的智能化测试改造这篇文章应该能帮你在开始之前就避开我们趟过的大多数坑。1. 回归测试套件为什么越来越“重”——先搞清楚要解决的问题1.1 套件膨胀带来的不只是“跑得慢”回归测试套件最大的问题是慢性膨胀。每个迭代都在加功能、加用例但几乎没人主动删用例。看起来这是“测试资产丰富”的表现但当套件规模超过一定阈值后它会带来三个连锁反应。第一个是反馈变慢。全量回归从四十分钟变成三个多小时意味着开发提交代码后等CI结果的时间被拉长到无法忍受。反馈越慢修复成本越高因为开发者可能已经切到下一个任务看到失败报告时上下文已经丢了。第二个是信号噪音。套件大了用例之间的耦合和依赖变多环境波动、数据残留、并发竞争都会造成偶发失败。团队每天早晨做的第一件事变成了“刷失败用例”久而久之大家对失败通知开始麻木。等到真正的回归问题出现时反而可能被当成又一轮flaky。第三个是维护成本失控。接口变了、页面改了、数据逻辑调整了都要连带维护对应用例。当用例本身的信息不完整——比如没人知道这条用例当初为什么加、验证的是什么业务规则——维护动作就变成猜谜。猜错了用例就成了“假阳性常客”。我在好几个团队见过类似的规律套件规模超过一定程度后新增用例的边际价值是递减的但维护成本和执行成本是递增的。这个拐点就是值得认真考虑做智能化优化的时机。1.2 靠人力清理套件为什么不可持续有人会说定期组织一次用例清理不就完了我们试过而且不止一次。人工清理的典型做法是把用例执行数据导出来看最近三个月有没有失败过然后开会讨论哪些可以删。听起来合理但实际执行时问题很多。业务同学不敢确认“这条用例真的可以删”因为一旦出问题责任说不清开发同学没时间逐条分析历史记录测试同学手工分析上千条用例的执行轨迹本身就是几天的高强度工作。最要命的是清理完过了两个迭代新用例又塞了回来没有人持续维护“用例生命周期”。这就是为什么纯人工的“套件瘦身”大多是一次性运动而不是可持续机制。我们需要的不是一次清理而是一套机制让套件在任何一次代码变更面前都能自动生成一个“够用且精简”的执行子集。这正是AI和机器学习能介入的地方。1.3 AI优化回归测试的四个真实切入点把这件事拆开看AI能做且值得做的方向主要有四个。第一个是测试用例优先级排序TCPTest Case Prioritization。不减少用例但通过预测哪些用例更容易发现问题把它们排到最前面让缺陷尽可能早暴露。第二个是测试用例选择Test Selection。从全量套件中预测“本次变更需要跑哪些用例”直接减少执行数量这是效率收益最直观的方向。第三个是失败用例智能聚类与归因。大量用例失败后自动把失败原因相似的分到一组辅助判断“是代码问题还是环境问题”减少人工逐条查看的负担。第四个是断言自愈与用例修复建议。当页面结构或接口响应变化导致断言失败时通过对比历史响应差异自动给出修复建议。我们最终落地的是前三个。第四个方向我们也做了技术验证但因为收益不够稳定没有铺开。这里也想提醒一下看到智能化测试方案时先分辨它是“演示型功能”还是“生产可用”再用自己的数据验证别只看厂商的Demo。2. 方案整体设计与数据底座——模型之前最关键的工程2.1 从“全量固定执行”到“动态生成执行集”我们的整体方案可以概括成一句话把回归测试从“每次全量固定执行”变为“每次基于变更内容和历史数据动态生成执行集”。具体流程是这样的。每一次代码合并到主干之前CI系统触发一个决策服务。这个服务读取当前变更涉及的代码模块、改动文件、提交信息、关联需求和历史测试结果数据然后生成一个建议的回归子集同时给出排序。CI拿到这个子集后执行再把结果回传给决策服务形成闭环。我们把它设计成一个闭环因为静态模型是不会长久的。代码在变业务在变测试数据也在变模型必须能持续吸收新的执行结果不断修正自己的判断。这也是AI优化和普通规则优化最大的区别规则是写死的模型是长出来的。这个设计的好处是对现有CI流程侵入很小。团队只需要在CI流水线里加上一个“获取测试集”的步骤替换掉原来“固定跑某几个套件”的配置。我们没有要求测试团队改变用例编写方式也没有要求开发者改变提交流程。2.2 数据底座先把测试事件结构化做AI优化最容易被低估的是数据工程。模型训练和推理的前提是有干净、连续、可分析的历史数据但大多数团队的测试数据都散落在CI日志、测试报告HTML、和数据库表里完全没有结构化。我们做的第一件事不是选模型而是把事件数据打通。需要统一记录的关键事件包括代码提交信息、变更文件列表、触发的流水线、执行的测试用例集合、每条用例的结果通过/失败/跳过、运行时长的毫秒数、失败时的异常类型与堆栈摘要、以及用例与代码模块的映射关系。这里有个很重要的细节测试用例与代码模块的映射关系大多数团队的CI系统里是没有的。通常只能拿到“用例属于哪个测试类”而测试类跟业务模块的关联并不直观。我们当时通过静态分析把用例对应到的被测类和方法提取出来再映射到代码目录结构这一步花了不少功夫但它几乎是所有后续分析的基础。另外一个容易被忽略的数据问题是历史数据的连续性。如果CI跑得很乱、经常停用套件、用例频繁改名那么历史数据的可用性会大打折扣。我们在前期就发现很多用例历史上改了名导致旧结果和新结果对不上。后来我们专门做了用例标识的稳定性治理用“代码路径方法签名业务标签”三重信息做唯一标识才把数据链续上。2.3 特征工程怎么把测试用例变成模型能读的数对回归测试套件来说特征设计比模型选择更重要。我们按三个维度来组织特征用例自身维度的特征包括历史失败率、最近失败距今天数、历史平均执行时长、稳定性评分过去十次执行中失败次数的平滑值、用例所属模块的历史缺陷密度、用例创建时长、最近一次修改时间等。变更内容维度的特征包括本次变更涉及的文件是否被该用例直接覆盖、间接覆盖通过类间调用关系推断、变更文件的历史缺陷记录、变更代码行数、涉及模块的耦合度、变更模块的测试覆盖率变化等。执行环境维度包括执行的并发数、运行批次、基础设施状态依赖服务健康度、用例在队列中的位置等。这些特征里最有预测力的是“变更文件是否被用例覆盖”和“用例的历史失败率”。覆盖率类特征直接反映相关性历史失败率反映先验怀疑度。两者结合基本能预测出大部分真实有效的子集。我们当时用Python写了一个特征计算模块挂在CI事件总线上每当一次测试运行结束就为每条用例更新一次特征。这个过程不阻塞任何流程是异步的。2.4 标签定义与样本平衡不要忽略这个“脏活”模型要学习的是“哪些用例该跑”所以标签的定义很关键。我们的正样本是历史上实际失败的用例且在后续人工确认中确实对应了代码缺陷的用例。负样本是跑了很多次、一次都没失败过或失败后确认是环境问题的用例。听起来简单实际做起来有两个坑。第一个坑是flaky标签污染。一条用例失败了但它其实是偶发环境波动导致的并不是代码问题。如果把这类用例打成正样本模型会学到“这类用例需要特别关注”导致推荐结果里混入大量噪声。我们的处理方法是先用一个“三分法”过滤掉明显flaky的用例——同一个提交上重试通过、或在多个环境中结果不一致的用例直接降权不让它们参与训练。第二个坑是样本不平衡。正样本出过问题的用例通常只占全量用例的百分之几如果不处理模型会学成“全都预测不跑”的无脑模式。我们采用了两级采样策略训练时把正样本按时间权重放大同时保留一部分负样本作为“困难样本”。困难样本挑的是哪些“虽然没失败过但覆盖了热门代码的用例”它们是模型最容易忽略的部分。这些脏活累活才是AI优化套件真正费时间的地方。数据干净了模型的准确率是水到渠成的事。3. 核心模型与算法选型的实操拆解3.1 先跑通一个“朴素的启发式版本”我们的经验是不要一上来就上深度模型。原因很简单深度模型训练门槛高、解释性差出了问题很难排查。回归测试套件优化的场景本身对算法复杂度的要求并不高关键是特征是否有效。我们首先实现了一个启发式版本核心思路是给每条用例打分得分 变更覆盖率权重 × 历史失败率 最近失败时间衰减因子 核心链路加权值这个版本不依赖任何历史训练规则写好就能跑。好处是我们用它先跑了两周收集到了“模型推荐集”在真实环境中的表现数据同时让团队对这套机制建立直观认知。两周后我们才发现启发式版本已经能稳定推荐出真实缺陷用例中的大部分了这让我对后续的ML版本更有底气。这个版本的缺点是规则固定没法根据数据自动调整权重。比如某个模块变更频繁但质量稳定启发式版本会一直高估它的风险。这个弱点正好是用机器学习模型来弥补的。3.2 排序任务的模型选型为什么我们用Learning to Rank回归子集推荐本质上不是一个“分类问题”而是一个“排序问题”。我们需要的是把全量用例按“本次变更下值得执行的程度”从高到低排出来然后根据时间预算从前往后取。我们实验过直接做二分类预测跑/不跑效果不太理想原因是对“不跑”的那部分预测精准但召回低错过的用例正好是变更相关但训练样本很少的边角场景。后来我们换成了Learning to RankLTR的思路通过构造“同一代码变更下失败用例排序应高于未失败用例”的pair来训练。具体用到的模型是GBDTGradient Boosted Decision Trees框架下的LambdaMART直接借用了成熟的XGBRanker实现。它的好处是能自动处理特征间的非线性关系训练速度快还支持一定的可解释性分析。核心训练代码简化后大概长这样import xgboost as xgb dtrain xgb.DMatrix( feature_matrix, labellabels, weightweights ) dtrain.set_group(group_sizes) params { objective: rank:pairwise, eta: 0.05, max_depth: 6, eval_metric: ndcg, tree_method: hist } model xgb.train(params, dtrain, num_boost_round500)训练数据是由历史提交记录导出的每次训练都是“按时间窗口”构建的后面我会专门讲这个坑因为它直接决定模型的泛化能力。3.3 怎么决定“这次跑多少用例”预算策略与兜底策略模型给出的是排序结果但真正决定执行数量的是一个“预算控制策略”。我们试过两种方式。第一种是固定比例预算比如总用例数的30%。优点简单缺点是不考虑变更规模。小改动跑30%纯属浪费大改动跑30%又可能不够。第二种是风险自适应预算根据变更内容的风险评分动态调整。风险评分的输入包括变更模块历史缺陷率、改动行数、涉及核心链路的比例、是否有新增依赖等因素。风险高就扩大预算风险低就收缩预算。上线后我们发现这个策略能把执行数量方差拉得很大但是漏测率的稳定性反而更好。无论用哪种预算策略兜底逻辑都必须有。我们设了三个强制全量的触发条件一是涉及资金、账户等核心链路的变更二是CI上出现了模型无法理解的新增模块三是距离上一次全量回归已超过一定周期。满足任何一个条件无条件执行全量回归。这样做的目的是给模型一个“认错”的机会。3.4 失败聚类与智能归因让开发者少刷一小时日志套件优化不只是“减少用例数”也包括“减少失败分析时间”。我们做的失败聚类模块是把一次回归中所有失败用例按异常堆栈、失败日志文本、关联模块、失败时间窗口四个维度做聚类。具体用到的技术不复杂先把失败日志做清洗提取出异常类型、错误消息、堆栈中的关键方法名然后通过TF-IDF转成文本向量再做带阈值的层次聚类。效果最直观的场景是某次我们内部基础设施升级导致一批用例集体超时失败聚类模型把这些失败归到了“环境类”而不是“代码类”运维同学看了一眼就定位了根因比之前逐条点开日志至少省了二十分钟。但这里要特别提醒失败聚类的准确率不会百分之百。如果堆栈信息相似但实际失败原因不同聚类会把它们错误归并。我们后续加了一个人工反馈机制让开发同学可以在失败页面上把聚类错误的地方标记出来这些标记会回流到模型做增量训练。3.5 评估指标别用准确率这几个指标才有意义在智能化测试的评估上最容易踩的坑就是看“模型推荐的用例执行通过率”。这个指标高恰恰说明模型推荐的用例都是本来就稳定的用例没有任何价值。我们真正关注的指标有三个。第一是缺陷命中召回率也叫漏测率的人工核对版本。统计每次回归中真实缺陷对应的用例有多大比例被模型推荐出来执行了。这个数字越高代表模型漏掉风险的几率越低。第二是APFDAverage Percentage of Faults Detected平均故障检测百分比。它衡量的是“排在越前面的用例能越快发现缺陷”。APFD的计算公式是APFD 1 - (TF1 TF2 ... TFm) / (n × m) 1 / (2n)其中TF_i表示第i个缺陷第一次被检测到时执行到的用例序号n是总用例数m是缺陷总数。APFD越接近1说明排序越优。第三是执行时间节省率。统计智能回归的总时长对比全量回归的时长节省了多少同时要结合缺陷命中率一起看不能只看速度。这三个指标组合起来才算完整刻画了“快”和“准”这两个维度。我们当时把这三个指标做成了数据看板每次迭代后自动出报告团队里的同学都能看到变化这对长期推进很有帮助。4. 工程落地与效果验收——从模型到生产力的最后一公里4.1 分阶段上线先旁路再门禁最后替代任何涉及“减少测试执行”的方案团队第一反应都是信任问题。我们当时定了严格的三个阶段。第一阶段叫旁路模式。模型推荐结果只做展示CI还是执行全量回归。我们拿着推荐结果和全量结果做离线对比看推荐子集是否覆盖了全量回归中暴露的全部缺陷。这个阶段跑了近一个月积累了可靠的数据。第二阶段叫建议模式。模型推荐结果作为CI流水线的默认参数但可以一键声明“此次改用全量回归”。我们给开发同学留了一个强制开关任何人觉得不放心都可以强制全量。这个阶段跑了两周收集到的反馈基本都是“推荐的子集跑一次只要几十分钟结果跟全量基本一致”。第三阶段才是自动模式。默认跑智能推荐集强制全量的触发条件只保留我上一节说的三条兜底逻辑。到这里整个机制的形态才算完整。4.2 CI集成细节怎么把模型服务平滑嵌入流水线模型训练和推理是两套服务。训练服务跑在离线任务里每次代码仓更新后用最新数据重新训练模型生成模型文件发布到模型仓库。推理服务是一个独立的HTTP服务部署在CI集群里接收CI传来的变更信息返回推荐用例列表。CI侧集成时的关键点有两个。一是要能准确拿到“变更文件列表”。我们用的代码管理平台有API能拿到合并请求的变更文件这一步很顺利。但如果是提交比较乱、频繁rebase的流程变更文件列表会失真需要多做一层diff合并处理。二是超时和容错。推理服务如果超时或异常CI不能卡死。我们的实现是设置300毫秒超时超时后直接返回“全量用例集”回归流程退化为原来的行为。这个设计让模型服务对CI的影响降到了最低。4.3 效果数据复盘我们到底得到了什么用阶段对比数据来说改造前后的效果大致如下全量回归的平均执行时间是186分钟智能回归的平均执行时间是42分钟时间节省率约77%。缺陷命中召回率在旁路阶段为94.6%进入建议阶段后提升到96.8%自动模式运行三个月后稳定在97%左右。有一两次漏掉的情况大多发生在边缘模块新建用例、历史执行记录过少时。更明显的变化是团队的CI排队时间。原来每天下午都是流水线最拥堵的时候现在整个回归队列的长度大幅缩短开发同学能更早拿到结果白天的等待时间明显减少。这里要强调的是数据是我们团队在自身业务形态下的结果不代表任何方案都能达到这个幅度。如果你的套件历史数据混乱、用例质量和代码没有清晰映射前期需要投入的治理时间会显著更长。4.4 人员与流程转型AI不是“替代测试”而是“重构测试”智能化改造最大的阻力不是技术而是团队习惯。我们遇到的问题包括部分测试同学担心模型推荐结果不可靠宁可继续每天手动点全量部分开发同学认为智能回归“少跑了用例”是变相降低质量要求。解决方式是两个。一是把评估指标透明化让每个人都能看到“缺陷命中召回率”的变化用数据说话。二是把测试同学的角色从“翻日志的排查者”变成“定义问题的专家”他们负责确认聚类结果的正确性、维护用例与业务模块的映射关系、设定风险预算策略。这不是削弱测试的价值而是把测试的价值从重复劳动挪到决策层面。5. 常见问题与排查教训实录——这些坑我们替你踩过了5.1 数据泄漏时间窗口分割是底线中的底线机器学习里最典型的错误是用“未来数据”训练模型。在测试用例选择这个场景里特别容易犯的错误是随机划分训练集和验证集导致同一条用例的多次执行记录被拆到了两边。模型已经“见过”了验证集里的历史失败验证效果虚高一上线就现原形。我们的做法是严格按时间序列划分前80%的时间段作为训练集后20%的时间段作为验证集。每次重训都只使用截止到发布时刻之前的历史数据。另外还要避免在特征里混入从未来才能拿到的信息比如用“本次执行结束后才知道的全局失败率”参与排序这就是直接作弊了。5.2 如何过滤flaky用例宁可错杀也不让脏标签进模型flaky用例是套件优化里的干扰源。我们的处理策略分两层。第一层在数据上游连续三次以上执行失败但在重试后通过的用例直接标记为flaky候选第二层在训练阶段将这些用例的权重下调到普通用例的三分之一同时不让它们的失败结果参与正样本统计。这样做的坏处是如果某条用例偶尔因为真实缺陷失败但恰好前面几次跳过它可能被误降权。这是我们有意接受的代价因为flaky污染的负面影响远大于误降权。5.3 模型漂移代码体系变了模型也要跟着变业务代码、测试框架和依赖库都在持续更新模型的特征分布也会跟着漂移。最典型的案例是团队做了一次大型技术栈迁移把旧的页面渲染框架换掉了大量测试用例的失败模式发生了改变模型预测力在两周内明显下降。我们的应对是建立“漂移监控”每个星期统计模型推理结果中被人工标记为“不合理”的比例一旦超过阈值触发自动重训流程。同时设定强制重训周期最长不超过14天保证模型不脱离实际情况。5.4 信任比算法更重要怎么让开发同学主动用起来最后说一个不太技术但非常关键的经验。再准的模型如果团队不相信也起不到作用。我们的经验是不要在第一天就追求完美的算法指标而是快速做出一个“看得见、摸得着”的版本哪怕它还很粗糙。我们在旁路模式阶段就做了一个“每周风险提示”的小功能把模型预测的高风险用例列表发到项目群里偶尔就会碰到还真猜中了当天的问题。这样几次下来开发和测试同事对这套机制的信任度自然会提升。信任建立起来之后后续的迭代推进就要顺利得多。我个人在实际操作中的体会是AI优化回归测试套件这件事真正的难点从来不在模型精度而在数据质量、工程化能力和团队信任建设。如果你也想做这件事我建议从最基础的一步开始把测试执行数据结构化地存下来把用例和代码模块的映射关系补齐。有了这两个前提哪怕只用一个简单的评分公式你都能立刻感受到“套件变聪明”带来的不同。再往后等历史数据积累到足以支撑训练再上更复杂的模型也不迟。

相关新闻

artcraft:参数化与分层渲染的创意编程实践

artcraft:参数化与分层渲染的创意编程实践

1. 从“artcraft”这个名字说起:它到底想解决什么问题第一次看到“artcraft”这个标题,我脑子里蹦出来的第一反应是“艺术”加“手艺”的组合词。直觉告诉我,这不是一个纯技术向的命名,它更像是在强调某种“把创意变成实物”的过程…

2026/10/22 9:00:40 阅读更多 →
玻璃瓶cap缺陷检测:125张小样本如何跑通基线流程

玻璃瓶cap缺陷检测:125张小样本如何跑通基线流程

简介:本资源为玻璃瓶缺陷检测数据集,聚焦瓶盖(cap)类缺陷的识别任务,面向从事工业质检、机器视觉算法开发与深度学习模型训练的研究人员及学生。包内共255个文件,以125张jpg图像和121个xml标注文件为核心&a…

2026/10/21 11:45:56 阅读更多 →
OpenClaw三天实测:开源AI执行框架如何让你掌控自己的AI工具链

OpenClaw三天实测:开源AI执行框架如何让你掌控自己的AI工具链

这周我本来在比较几款商业AI助手工具的开销,结果被订阅费用和按量计费的两套账单搞得头大。正好圈子里有人提了个名字——OpenClaw,说是可以自己跑起来的开源AI执行框架,我当晚就开始了尝试。连着三个晚上折腾下来,我得先给结论&a…

2026/10/22 11:01:35 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/21 21:32:28 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 16:24:48 阅读更多 →