银行数据库国产化替换实战:从Oracle迁移到GBase的完整链路

把数据架构整体搬一遍家,无论放在哪个行业都不是小事,放在银行这种对一致性、可用性要求极高的场景里,更是牵一发动全身。最近我刚好深度参与了某农商银行(以下按惯例以“某农商银行”代称)的全栈数据库国产化替换项目,核心是把原来跑在商业数据库上的业务系统,逐步迁移到GBase数据库上。整个过程从外围系统试点到核心业务切换,从数据迁移到性能调优,踩了不少坑,也沉淀出一套可以复用的方法论。这篇就把这次替换的完整链路拆开讲讲,给同样在推进国产化替代的同行一点参考。

要说清楚这件事,先得理解这次替换的底色。这家农商银行不是第一次做技术栈升级,之前也做过渠道系统重构、数据平台建设,但数据库层面一直比较保守,核心交易、信贷、账务类系统都跑在商业数据库上,外围分析类系统则混用着开源的MySQL。随着信创要求逐步细化,加上商业数据库的授权成本逐年上涨,行里决定把“全栈替换”提上日程。所谓全栈,不是简单地把A数据库换成B数据库,而是从芯片、操作系统、中间件到数据库、应用层,整个技术栈都往国产化方向收敛。数据库作为最核心的底座,自然成了这场改造的硬骨头。

这次项目最大的特点在于,它不是单点替换,而是覆盖了交易型和分析型两大类场景。交易型场景要求高并发、强一致,之前的Oracle是绝对主力;分析型场景偏重复杂查询、海量数据扫描,原先的MySQL集群已经有点吃力。选型时我们把GBase的两条产品线都纳入进来:面向交易场景的GBase 8s和面向分析场景的GBase 8a。这两个产品虽然都叫GBase,但架构差异很大,8s偏传统关系型数据库,强一致性、事务能力强;8a则是MPP架构,列式存储,专门对付分析类负载。理解这个差异,是后续所有工作的前提。

1. 项目背景与全栈替换的整体思路

1.1 为什么选在这个时间点动手

银行的数据库架构普遍是多年积累的产物,核心系统动辄运行了十年以上,牵涉的存储过程、定时任务、报表脚本少说也有上千个。很多团队不是不想换,是真的不敢动。这家农商银行之所以下定决心,有几个直接的驱动力。

首先是外部合规要求。金融行业的国产化替代刻表本身就卡在那里,数据库作为基础软件,属于必须完成替换的品类。早换早主动,拖到最后很可能被业务需求推着走,反而更被动。

其次是成本因素。商业数据库的授权模式通常是按CPU核数或按实例收费,银行的系统数量多、节点规模大,每年的软件授权和维护费是一笔不小的开支。GBase这类国产数据库虽然同样要付费,但整体持有成本明显更低,而且没有那种逐年上涨的License压力。

最后是自主可控的诉求。金融数据的安全性和合规性要求极高,数据库如果完全依赖外部厂商,版本升级、故障排查、安全补丁都得看别人脸色。换成国产数据库之后,至少在响应时效和技术支持上掌握更多主动权。

1.2 全栈替换的范围怎么定义

“全栈”这个词听起来很宏大,但落到操作层面,必须把它拆解成可以管理的粒度。我们在前期沟通中把这次替换的范围明确为三条线。

第一条线是交易型系统,包括核心账务、信贷管理、支付结算这些最敏感的系统。这类系统的特点是高并发、强事务、对数据一致性要求苛刻,替换难度最大,也最能检验目标数据库的真实能力。我们把这些系统放在项目的最后阶段,先用外围系统练兵。

第二条线是分析型系统,包括数据仓库、报表平台、监管报送等。这类系统对事务能力要求不高,但是查询复杂、数据量大,对目标数据库的分析性能和生态兼容性有较高要求。

第三条线是基础配套,包括备份恢复、监控告警、容灾切换等。数据库换了,周边这套设施也得跟着重构,否则出了故障连备份都拉不起来,那就真成事故了。

明确了范围之后,我们形成了一张完整的系统清单,标记出每个系统的业务归属、原数据库类型、数据量规模、关联系统、迁移优先级和风险等级。这张清单是后续所有工作的索引,没有它,项目推进就会变成一团乱麻。

1.3 为什么选择GBase作为目标数据库

国产数据库的品牌不少,每一家都有各自的技术路线和适用场景。我们在选型时没有一上来就比功能清单,而是先明确了自身的核心诉求:一是要能兼容存量系统的SQL语法,降低应用改造量;二是要有完整的数据迁移工具链,能在可接受的停机时间内完成数据搬迁;三是厂商要有能力提供现场支持,毕竟银行系统7×24小时在线,出问题不能干等。

GBase在这几个维度上匹配度比较高。8s对Oracle语法的兼容性相对成熟,存储过程、包、触发器等对象迁移成本较低;8a分析性能很强,在百GB级别的大表关联查询上表现稳定。更重要的是,GBase在国内金融行业已经有了一批落地案例,踩过的坑多,意味着解决方案更成熟。对银行这类风险厌恶型客户来说,成熟度比先进性重要得多。

2. 核心细节解析:迁移方法论与关键技术点

2.1 应用兼容性评估:先摸清家底再动手

数据库替换中最大的风险从来不是数据搬不过去,而是应用跑不起来。Oracle的SQL方言非常丰富,很多开发人员习惯了Oracle特有的写法,比如(+)外连接、SYSDATE、DECODE、CONNECT BY等等。换到GBase之后,这些写法不一定都能原生支持,需要逐条改写。

我们在项目初期用两周时间做了一次全量应用兼容性扫描,方法是把各个系统的SQL日志、存储过程源码、定时任务脚本全部收集起来,做语法解析和特征匹配。具体来说,先从数据库端抓取过去三个月的慢SQL和全量SQL审计日志,再做静态扫描,找出使用方言特性的地方。这个过程不建议纯靠人工看代码,几千个存储过程看不过来,最好用工具做自动化初筛,然后人工复核高风险的SQL。

扫描结果出来后,我们把问题SQL分成三类:直接兼容的、需要少量改写的、需要重新设计的。直接兼容的占了大头,大概七成左右;需要改写的占两成出头;真正需要重新设计的不到一成。这个比例给了我们很大的信心——虽然改造不可避免,但不是伤筋动骨的重写。

2.2 迁移路径选型:停机迁移还是双写并行

数据迁移的策略往大了分就两种:停机迁移和不停机迁移。

停机迁移是指在业务低谷期(通常是周末凌晨)暂停源库写入,一次性把全量数据搬到目标库,做完校验后再切换应用。这个方案简单直接,对工具要求低,但停机窗口有限,通常只有几个小时。如果数据量过大,全量迁移加校验根本跑不完,就只能采取不停机方案。

不停机方案的核心是“全量+增量”:先用全量迁移把历史数据搬过去,再通过日志抓取或时间戳增量同步追赶新产生的数据,等到两边数据追平了再切换。这个方案对增量同步工具的要求非常高,一旦出现丢数据或延迟,就很难保证一致性。

我们这次根据系统重要性的不同,两种策略都用了。外围系统和报表类系统数据量相对小,直接走停机迁移,在周六凌晨3点到6点的窗口内完成。核心账务和信贷系统走的是“全量+增量”的方式,提前一天做全量,然后持续做增量追平,最后在周五晚上业务结束后切换。

实际操作中,增量同步环节我们把GBase自带的同步工具和自研的校验工具结合起来用。同步工具负责数据的持续搬运,校验工具则定期对比源库和目标库的表行数、校验和,确保两边一致。切换前再做一次最终校验,确认数据追平后才允许应用切换。

2.3 迁移工具链选型配置:GBase迁移家族怎么组合

GBase官方工具链里,跟迁移最相关的是GBase Migration Toolkit和GBase DataSync。前者主要用于异构数据库的对象迁移和全量数据迁移,后者更偏增量同步场景。实际用下来,这两个工具的定位确实互补。

对象迁移阶段,我们在每个系统迁移前都会先用Migration Toolkit做一次“彩排”,把源库里的表结构、索引、视图、存储过程、函数、触发器全部生成到目标库。这个彩排的意义不在于一次成功,而在于提前暴露不兼容的对象。我第一次跑某个信贷系统的对象迁移时,报了几百条错误,仔细看发现大量是因为自增列的语法差异和字符集不一致导致的。这些问题早暴露早处理,等真到割接窗口才碰到就来不及了。

全量数据迁移阶段,我们关注的是并行度和批次大小。GBase Migration Toolkit支持配置并行度,默认值比较保守。我们根据源库的CPU和IO负载,把并行度从4调到8,再到16,逐步加压测试,最终在源库负载可控的情况下把迁移速度提升了将近3倍。这里有个经验:并行度不是越大越好,过高的并行度会拖垮源库的IO,反而拖慢整体迁移速度。建议用“源库CPU使用率不超过50%”作为调参红线。

增量同步阶段,我们用的DataSync是基于日志解析或轮询方式的,对源库的侵入很小,延迟控制在秒级。需要注意的是增量同步开始之前,必须保证全量迁移的数据是一致的快照,否则增量追平后还是对不上。我们做法是先做全量迁移,同时从全量开始的时间点记录增量日志,等全量完成后,再从记录的位点开始同步增量数据。

3. 实操过程与核心环节实现

3.1 环境准备:硬件规划与部署拓扑

银行的生产环境部署有严格的规范和流程,不是装个数据库就完事的。我们在环境准备阶段花了不少时间,核心是在性能、可用性和安全合规之间找到平衡。

硬件选型方面,交易型数据库GBase 8s采用“两节点主备+仲裁节点”的部署形态,三台服务器都是双路CPU、256GB内存、全闪存阵列。仲裁节点不参与业务,只负责脑裂时的投票判定,这在主备模式下必不可少。分析型数据库GBase 8a是MPP架构,我们部署了3个数据节点加1个管理节点,数据节点之间通过网络互联,每个节点承担部分数据存储和计算任务,形成一种Shared Nothing的架构。

GBase 8s的参数配置里有几个关键项值得单独提一下。共享内存池大小直接决定数据库能缓存多少数据,我们按物理内存的60%进行分配;并发连接数上限,需要考虑应用连接池的大小设定,设小了会抛连接不足,设大了会浪费内存;日志缓冲区和数据缓冲区也需要按业务写比例调整,核心交易系统写多读少,日志缓冲区要适当加大;检查点间隔不宜太频繁,否则会频繁刷盘拖慢性能,但间隔太长会增加故障恢复时间。这些参数在不同业务形态下最优值差别很大,我建议上线前用业务高峰期的真实负载做一次压测,再据此微调,不要直接套默认值。

3.2 数据迁移全流程:从建表到校验的八个步骤

数据迁移是整个替换工程里技术含量最高、也是最能体现经验差异的环节。我们当时总结了一套标准操作流程,总共八个步骤,每一步都有明确的输入和输出。

第一步,目标库表结构初始化。直接用迁移工具把源库的建表脚本转换后在目标库执行,转换不了的手工建表。第二步,禁用目标库的外键和触发器。这一步最容易遗漏,但非常关键——如果带着外键约束做批量导入,数据插入顺序稍有不对就会报错,白白浪费时间。第三步,设置批量提交参数,关闭目标库的自动提交模式,改为手动批量提交。第四步,执行全量数据迁移,这个阶段要盯着源库负载和目标库写入速度,及时调整并行度。第五步,比对全量数据的行数和关键字段校验和。我们用自研脚本对大表做分段count,对关键业务表做聚合校验。第六步,启动增量同步,从全量迁移开始的时间点追平增量数据。第七步,业务验证,由业务人员在前置的测试环境上跑核心交易流程,确认功能无误。第八步,应用切换,把数据库连接串从源库切到目标库。

这套流程我们跑了不下十遍,每跑一遍都会发现新问题,但流程本身越来越顺畅。到后面几个系统迁移时,整个团队已经可以做到按分钟级别的节奏推进,紧张但不慌乱。

3.3 一个真实系统的迁移过程复盘

拿其中的信贷管理系统来举例,这个系统数据库原版本为Oracle 11g,数据量接近1.5TB,表数量超过1800张,其中有大量存储过程和定时任务。在迁移窗口前,我们先花了两周做应用兼容性改造,典型的工作包括把Oracle的(+)外连接改写为标准SQL、把SYSDATE换成GBase的当前时间函数、把DECODE改写为CASE WHEN等。这些改写虽然机械,但数量大、分散在几十个存储过程里,需要逐个验证。

迁移窗口当天,我们的流程是这样的:21:00业务停止后,先停掉所有定时任务和应用服务;21:15开始导出源库数据,使用迁移工具完成全量数据搬运,这里1.5TB的数据全量迁移花了大约2小时40分钟;数据搬完后做行数校验和关键业务表校验,又花了30分钟;之后启动增量追平,由于业务已经停止,增量数据很少,几分钟就追平了;最后业务验证跑了一个小时,确认放款、还款、结息、报表查询等功能都对得上,才正式把连接串切到GBase。

整个过程从停机到切换完成,总共花了6个多小时,比预设的8小时窗口宽裕。这里要特别提一下回退预案。我们当时保留了源库环境和所有应用的旧版本,一旦切换后发现严重问题,可以立即回退。虽然最终没用上,但这个预案给了业务部门很大的信心,也让整个团队在操作时心态更稳。

4. 常见问题与排查技巧实录

4.1 SQL兼容性改造中的典型坑

SQL改写是本次替换中工作量最大的部分,也是最容易出现“看似改了,实际没改对”的环节。我挑几个最具代表性的问题展开说说。

隐式类型转换。Oracle中很多场景会自动做类型转换,比如字符串和数字比较时自动把字符串转数字,但GBase在这方面的行为跟Oracle并不完全一致。有个报表查询原本跑得好好的,迁移后突然走全表扫描,排查了半天发现是日期字段跟字符串参数做比较时,GBase没走索引。解决方案是改写SQL,让参数显式转换为日期类型,避免触发隐式转换。

空值排序差异。Oracle默认空值在升序排序中排在最后,降序排在最前,而GBase的排序逻辑在这方面不完全一致,导致部分分页查询结果顺序不对。这种问题在功能测试阶段不容易发现,往往要到业务人员核对明细清单时才暴露出来。我们最后是在所有涉及排序的SQL里手工加了NULLS FIRST或NULLS LAST来明确规则。

分页查询的改写。Oracle的ROWNUM分页写法在GBase里不适用,需要用LIMIT OFFSET语法替代。表面上看起来只是语法替换,但性能差异很大——LIMIT OFFSET在深分页场景下性能衰减明显,我们果断将近百个高频分页查询做了优化,通过子查询或游标方式避免深分页。

4.2 迁移速度与数据一致性校验的实战经验

数据迁移速度不只是工具参数的锅,源库负载、网络带宽、目标库写入能力都会影响。我们实测下来,最容易被忽视的瓶颈是目标库的磁盘写入速度——如果目标库用的是机械盘,再怎么调并行度都白搭。解决思路是在全量迁移期间,提前把目标库的redo日志和数据文件放到独立的SSD存储上,并且适当增大日志缓冲区,减少磁盘sync频率。

数据一致性校验是另一个容易踩坑的环节。行数一致不代表数据一致,有可能两边行数恰好一样,但某些行内容不同。我们做了两层校验:第一层是行数、主键唯一性、表级校验和,第二层是抽样字段级校验,选择包含金额、日期、字符串等不同类型字段的表,做精确的逐字段比对。抽样比例视表的重要性从1%到10%不等,核心账务表全量校验。

校验工具我们没完全依赖GBase自带的工具,而是写了一套基于JDBC的自研校验脚本,原理很简单:按主键分段读取源库和目标库的数据,对每条记录做MD5,再比对MD5值。虽然朴素,但排查问题时的效率非常高,能精确定位到哪一行哪一列的数据不一致。

4.3 常见问题速查清单

把这次项目中遇到的高频问题整理成一个速查表,给后续项目组少走弯路的参考。

问题现象可能原因排查方法解决方案
迁移工具报对象创建失败语法不兼容或字符集不一致查看具体报错对象和行号手工改写建表语句,统一字符集
批量插入速度慢外键约束、自动提交、磁盘IO瓶颈检查目标库告警日志和IO监控临时禁用外键,批量提交,换SSD
应用查询走全表扫描隐式类型转换导致索引失效查看执行计划显式类型转换,改写SQL
迁移后数据比对不一致增量同步起始位点不对或源库有未捕获变更对比增量同步日志和源库变更记录重新做全量+增量,校正起始位点
应用连接报错目标库连接数或并发参数设置过小查看数据库连接池监控调大连接数参数,优化应用连接池
定时任务执行失败存储过程语法兼容性问题逐条执行存储过程定位错误改写语法,补充异常处理
主备切换后业务中断备库数据延迟未追平检查主备同步状态切换前强制校验同步延迟
内存不足导致数据库OOM共享内存池参数配置过大查看系统内存监控按物理内存比例重新分配

4.4 性能调优心得:从监控到参数调整

数据库替换之后,性能是否达标是业务部门最关心的。坦白说,换库初期性能大概率不会比原库更好,甚至会有明显回退,这是正常的。GBase的优化器行为、索引策略、统计信息收集机制都和Oracle不同,必须有一个磨合期。

我们的做法是上线后的前两周做重点监控,把每条核心交易的响应时间、吞吐量、慢SQL全都记录下来,每天拉出来跟基线对比。发现慢SQL,先看执行计划,再看统计信息是否过期。GBase里统计信息如果长期不更新,优化器很容易选错执行计划。我们后面所有核心表都建立了定期更新统计信息的任务,默认一周一次,大表做增量更新,小表做全量更新。这个动作看起来不起眼,但对性能稳定性的提升是实实在在的。

还有一个容易被忽略的参数是并发控制相关的锁等待时间。原库在并发写冲突时对锁等待的容忍度较高,GBase的默认值相对较小,导致业务高峰期偶尔出现锁超时。我们把锁等待时间参数适当调大,同时要求应用侧在代码里统一了事务提交顺序,减少了死锁概率。这类调优问题每个系统情况都不一样,建议结合业务请求链路的实际瓶颈来对症处理,不要盲目照搬别人的参数。

5. 替换效果复盘与经验沉淀

5.1 替换后的整体效果

整个项目历时大约八个月,一共完成了二十多个业务系统的数据库迁移。交易型系统全部跑在GBase 8s上,分析型系统全部跑在GBase 8a上,周边配套的备份、监控、容灾体系也同步完成了改造。

从业务影响来看,核心账务的日均交易处理量在替换后保持了稳定,峰值时段的响应时间比替换前有少量增加但控制在可接受范围内,业务人员感知不明显。分析类系统的表现反而超出了预期,原先几个跑十几分钟的大报表在GBase 8a上压缩到了几分钟,业务部门对这块的反馈是积极的。

从运维角度来看,GBase的图形化管理工具比Oracle的运维体验要友好,监控指标更直观,分区、备份等操作也更简化。团队成员经过项目锻炼,已经可以独立处理常见故障和性能问题,不再依赖原厂支持。

5.2 全栈国产化替换的三条核心经验

八个月的项目做下来,踩了不少坑,也攒了一些真正有用的经验。我总结成三条,分享给后面要搞类似项目的团队。

第一条经验是替换路径一定要从外围到核心,不要一上来就动核心系统。我们先用报表系统、历史数据查询这类价值高、影响可控的系统试点,验证了GBase的能力,也磨合了团队的操作流程。等外围系统稳定运行一两个月后,再逐步推向信贷、账务这些核心系统,风险就可控得多。

第二条经验是应用改造量比预想的大,但也没有大到不可控。兼容性扫描和SQL改写一定要前置,不要等到迁移窗口才去处理。我们首次迁移时,因为没有做充分的兼容性测试,一个系统就有大几百条SQL报错,手工改都改不过来。后期我们摸索出一套“扫描-分类-改写-回归”的标准流程,一个中型系统从扫描到改造完成只需要两周左右,效率天差地别。

第三条经验是回退预案必须做,而且要做实。数据库替换项目即使做足了准备,也可能在割接时刻出现预想不到的问题。每一次割接我们都保留了完整的源库环境、应用旧版本和回退脚本,并且做过至少一次回退演练。回退预案不是给失败找退路,而是让团队在割接时能保持稳定心态,反而降低了操作失误的概率。

5.3 后续可以接着做的优化方向

数据库替换完成只是第一步,让新架构真正发挥价值还有很多空间,这里简单列几个我们正在推进的方向。

持续做SQL性能打磨。随着业务发展,新功能的SQL越来越多,要建立慢SQL的常态化治理机制,结合GBase的执行计划特征持续优化索引和查询写法。

把高可用能力再向前推一步。目前核心系统已经做到了主备秒级切换,但同城双活的容灾架构还在规划中,如果能把数据同步和容灾切换做完整,整个架构的健壮性会再上一个台阶。

数据架构的治理可以顺势深化。GBase 8a的分析能力和数据压缩特性都很好,我们正在逐步把原先散落在外围的贴源数据统一收拢到分析平台里,形成更规范的数据资产体系。

数据库国产化替换这件事,真正做下来最大的感受是:没有想象中那么可怕,但也绝不是换个软件那么简单。它考验的是团队对存量系统的理解深度、对迁移工具的熟练度,以及应对未知问题的冷静程度。这篇文章里写的每一段实操经验,都是我们拿时间换来的,希望能给正在规划或正在推进类似项目的同行一些踩在实处的参考。如果你也在做国产数据库迁移,或者在GBase的适配过程中遇到了文中没覆盖到的问题,欢迎在评论区交流,一起把这套方法论打磨得更完善。

相关新闻

海量小文件删除慢?揭秘文件系统元数据瓶颈与优化方案

海量小文件删除慢?揭秘文件系统元数据瓶颈与优化方案

1. 项目概述:当“删文件”变成一场系统级压力测试你有没有试过在终端里敲下rm -rf,然后盯着光标一动不动地等?不是卡死,是真等——等它把几万个零散小文件一个个从磁盘上抹掉。这次不是误操作后的抢救现场,而是一次刻意…

2026/10/20 15:12:56 阅读更多 →
NLTK情感分析实战:朴素贝叶斯文本分类与特征工程

NLTK情感分析实战:朴素贝叶斯文本分类与特征工程

开头我先交代一个背景。去年我接了一个某售后团队的文本处理需求,他们每个月有近万条用户反馈,需要把表达不满的留言单独捞出来,让客服优先跟进。一开始大家都以为这种“情绪识别”要上什么重磅模型,结果我用了NLTK这套老牌工具&a…

2026/10/20 15:11:55 阅读更多 →
H3C防火墙双机热备:RBM+VRRP原理与Web配置实战

H3C防火墙双机热备:RBM+VRRP原理与Web配置实战

做网络运维这些年,防火墙双机热备是我见过最务实、也最容易被忽视的一项配置。很多朋友一提到RBMVRRP,脑子里就浮现一堆命令行,要么对着文档一行行抄,要么在设备上死记硬背,最后改一个接口就全乱了。其实H3C防火墙这套…

2026/10/20 15:11:55 阅读更多 →

最新新闻

TensorFlow鞋类识别实战:Fashion MNIST图像分类全流程

TensorFlow鞋类识别实战:Fashion MNIST图像分类全流程

前段时间重新整理之前的深度学习实验笔记,翻到鞋类识别(Fashion MNIST)这个项目时,觉得特别值得拿出来单独写一篇。原因很简单:很多人入门深度学习时,都会被建议先跑通手写数字识别(MNIST&#…

2026/10/20 20:57:37 阅读更多 →
用AI辅助Kamailio路由排错:一场人机讨论实录与故障切换实践

用AI辅助Kamailio路由排错:一场人机讨论实录与故障切换实践

最近接手一套老的SIP通信平台,核心信令是Kamailio撑着。业务要新增一个较复杂的路由策略:同一个主叫号码,在不同时间段、针对不同被叫前缀,要分别走不同的网关;而其中一路网关做故障切换时,还要保证已经建立…

2026/10/20 20:57:37 阅读更多 →
LibVLC轻量级视频播放模块:嵌入C/C++工程的硬件解码方案

LibVLC轻量级视频播放模块:嵌入C/C++工程的硬件解码方案

简介:本资源是一份基于C/C与VLC开源库开发Windows视频播放器的完整工程实践包,面向具备基础C编程能力、希望掌握多媒体开发技能的中级开发者及高校课程设计学习者。资源聚焦于在Visual Studio 2022环境下集成libvlc实现视频加载、播放控制、窗口渲染等核…

2026/10/20 20:57:37 阅读更多 →
AI Agent创业团队如何配置一支高效的Harness Engineering团队

AI Agent创业团队如何配置一支高效的Harness Engineering团队

1. 为什么需要一支专门的Harness Engineering团队先从一个很现实的场景说起:你所在的创业团队花三个月做出了一个基于大模型的Agent产品Demo,演示给投资人看时效果炸裂,但真正进入客户试用阶段,问题接踵而来——模型给出正确意图却…

2026/10/20 20:57:37 阅读更多 →
视觉语言模型与RGB-D感知融合:三条进化主线与工程实践

视觉语言模型与RGB-D感知融合:三条进化主线与工程实践

1. 从 Transformer 到多模态感知的演进逻辑视觉语言模型和 RGB-D 感知这两个方向,过去几年基本是各走各的路。做 VLM 的人盯着图文对齐、指令跟随、视觉问答这些任务,做 RGB-D 的人则埋头于点云配准、深度补全、SLAM 建图。但最近一年,这两条…

2026/10/20 20:57:37 阅读更多 →
VTI介质地震波数值模拟:MATLAB实现与各向异性正演避坑指南

VTI介质地震波数值模拟:MATLAB实现与各向异性正演避坑指南

简介:这份资源面向地震勘探与地球物理方向的学习者和研究者,提供一套基于Matlab的VTI介质地震波场数值模拟程序,用于分析各向异性介质中地震波的传播规律。VTI介质在垂直与平行层理方向上纵波速度存在差异,是实际地壳中常见的各向…

2026/10/20 20:56:32 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

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

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

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

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

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

2026/10/20 1:01:30 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 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/20 10:02:08 阅读更多 →
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/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练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/20 9:50:45 阅读更多 →