乒乓球比赛场景目标检测与行为分析实战解析

聊一个比较有意思的方向:乒乓球比赛场景目标检测与行为分析。这个题目听起来像学术任务,实际上落地价值非常实在。核心就是让计算机既“看见”比赛中的人和球,又“看懂”每一拍发生了什么。要做到这一点,只靠目标检测远远不够,还要完成击球事件识别、回合结构划分、落点统计和行为理解,最后才能输出一套真正有用的比赛分析结果。这个方向适合做体育智能分析、自动训练复盘系统的朋友参考,也适合刚接触目标检测、想找一个复杂小目标场景练手的同学,因为乒乓球场景几乎把计算机视觉里的经典难点都凑齐了:目标极小、运动极快、遮挡频繁、镜头还有俯拍和侧拍的变化。

我最初接触这个题目时也以为只是“检测乒乓球+识别运动员动作”两个任务拼起来,实际动手才发现,真正的难点在于怎么把一帧一帧的检测结果串成有逻辑的行为链。下面我会从任务拆解、数据准备、模型选型、行为分析、训练部署到问题排查,完整讲一遍我在这类项目中的处理思路和踩过的坑。

1. 项目到底做什么:从目标检测到行为分析的完整链路

1.1 拆解任务需求:不是单个模型,而是一条多任务流水线

乒乓球比赛场景的目标检测与行为分析,拆开来看至少包含几个层次:感知层要输出乒乓球的位置、运动员位置、球台位置、球拍位置;理解层要回答“这一拍是什么动作”“球到底落在哪里”“这个回合是否得分”;再往上还要能生成统计数据和精彩片段。实际项目中,我习惯把整个系统分成两条链路:一条是“球与球台的感知链路”,负责跟踪球的轨迹、判断落点和上台/下台;另一条是“人体与球拍的行为链路”,负责运动员姿态估计和动作分类。两条链路最终在“击球事件”处汇合,一旦检测到球拍和球在时空上发生交互,就触发一次行为分析。

一开始如果只奔着目标检测去做,很快会发现单帧结果没太大意义。举个常见例子:检测器在一帧里正确框出了球,但下一帧漏检了,单纯看评估指标mAP并不低,可回合分析的时候轨迹断了,后续落点判断就全乱了。所以这个项目在设计上必须从一开始就考虑时序信息,检测只是中间产物,轨迹跟踪、事件识别才是真正出价值的地方。

1.2 典型应用场景与输出形态:训练复盘、自动集锦、辅助判罚

这类系统最常见的落地场景有三个。第一个是训练复盘,教练想统计运动员连续正手攻球的板数、每次击球的落点分布、正手和反手的动作比例,纯靠人工录像回放效率很低,尤其是长线路对拉,肉眼数板容易错。第二个是智能转播和自动集锦,系统自动把多拍回合、精彩防守反击片段截取出来,减少剪辑工作量。第三个是辅助判罚,判断擦网、擦边、出界这类视觉争议点,但它更适合做裁判辅助,而不是替代裁判,因为纯视觉存在遮挡和视角盲区,直接下结论有风险。

输出形态一般包括三类:落点热力图、回合事件表、精彩片段列表。落点热力图很好理解,把每次击球落点映射到球台平面,按频率生成色块图;回合事件表记录每一拍的时刻、动作类型、球速估算、落点区域;精彩片段列表则是把满足条件(比如超过20拍、出现大角度变线)的回合自动保存。这里有个设计经验:一定要让输出结果具备可解释性,不能只给一个“正手”标签,还要给出对应的检测框、轨迹线、关键帧截图,这样教练才愿意用。

2. 数据是第一道坎:标注规范与数据增强怎么做

2.1 数据来源与标注格式:小目标必须做关键点标注

数据是这类项目里最花时间的环节。乒乓球比赛视频样本相对容易获得,但高质量标注很难。如果直接用公开的体育视频数据集,往往只有通用目标框,没有击球事件和落点标注,还是要自己补充。自建数据集时,我建议按照COCO格式组织,但要对乒乓球这类小目标做特殊处理。类别至少包括ball、player、table、racket四个大类,个别项目还会加net和umpire。除了目标框,关键点标注很关键:球的球心点、球台四个角点、球拍中心点,以及运动员的肘部、手腕、肩膀关键点。

为什么要标这么多关键点?因为乒乓球在高速运动时,目标框本身不稳定,检测模型直接预测球心坐标往往比预测一个框更可靠。球台角点则是为了后续做视角归一化和落点映射,有了四个角点,就可以通过单应性变换把任意视角的落地像素坐标映射到标准球台平面。球拍关键点是击球事件判断的基础,后续要计算球和球拍的距离,就需要两者的空间坐标。

2.2 数据增强策略:空域增强不够,时域增强才是点睛之笔

乒乓球场景和普通目标检测数据集差异很大:视频背景相对单调,但球和人的尺度差异大。空域增强方面,除了常规的随机裁剪、亮度抖动、翻转之外,一定要针对小目标做专门处理。我实测比较有效的是复制粘贴增强:把视频中真实出现过的乒乓球区域小图抠出来,随机贴到训练帧的球台附近位置,同时把对应的检测框一起复制过去。这一步能显著提升小球召回率,代价是可能带来少量上下文冲突,但只要限制粘贴位置在球台及其周边范围内,问题不大。

时域增强往往被忽略,但在这个项目里非常关键。常见做法包括随机抽帧、帧插值模拟不同帧率、时序裁剪整个回合片段作为训练样本。比如训练击球事件模型时,如果只随机剪单帧,模型很难学到“球接近球拍后再反向离开”这种时序模式。我习惯把每个完整回合作为一个样本单元,在回合内随机取一个起始帧和一个窗口长度,确保训练数据覆盖击球前、击球中、击球后的状态。还有一个细节:对高速运动产生的模糊帧,不要强行标注,宁可跳过,否则模型反而会被噪声误导。

3. 检测模型怎么选:小目标检测与多目标联动的实战对比

3.1 主流检测器对比与选型逻辑:不是越复杂越好

在乒乓球场景里,候选检测器主要有几类:曾经的经典Faster R-CNN,现在工程上主流的一阶段YOLO系列,以及端到端的RT-DETR这类Transformer方案。我做过对比,结论是YOLO系列在精度、速度、部署难度上平衡得最好。Faster R-CNN作为baseline做学术对比没问题,但转成实时系统时推理速度太慢,在嵌入式设备上几乎跑不动。RT-DETR省去了NMS,理论上对小目标更友好,但训练调参成本高,而且乒乓球这种强运动场景,Transformer检测器不一定比成熟的CNN检测器稳。

从实际项目选型看,推荐使用带FPN和PANet结构的单阶段检测器,输入分辨率至少保持1280。通过实验对比,模型结构并不是最大的瓶颈,输入分辨率和数据质量的影响往往更大。给一个参考对比表:

模型方案球目标召回率(参考)推理延迟部署难度适合阶段
Faster R-CNN中高中学术对比
YOLO系列高低低工程落地
RT-DETR中高中高小目标专项优化

注意这些数值会因为数据分布不同而变化,但整体趋势是稳定的。工程上不要盲目追新,先用YOLO系列跑通完整链路,如果球小目标漏检严重,再考虑加一个针对球的高分辨率检测分支。

3.2 小目标球的检测技巧:球台先定位,球再局部放大

乒乓球在视频里往往只有十几个甚至几个像素大小,直接在大场景图像上检测非常吃亏。我的做法是分两级处理:第一步用检测器定位球台区域;第二步在球台四角点外扩一定范围裁剪出感兴趣区域,放大后再检测小球。这样相当于把“大海捞针”缩小到“在球桌上找球”,检测难度大幅下降。球台区域相对固定,检测模型可以很轻量,甚至可以用语义分割代替检测。

除了裁剪放大,还可以利用运动信息辅助小目标检测。乒乓球高速运动时,相邻帧之间球的位置变化在背景中非常明显。可以在检测模型的输入端增加一个光流或帧差图通道,让网络学会利用运动线索。但引入光流会增加计算量,部署实时系统时要谨慎。一个折中方案是只在训练阶段用光流做辅助监督,推理阶段仍然只输入RGB,让模型自己提取运动特征。

3.3 多目标联动与跟踪:检测和跟踪必须配合

单纯逐帧检测在乒乓球场景里一定不稳定。球速极快时,相邻帧位移可能超过球的尺寸数倍,普通目标的IoU匹配方式直接失效。我建议采用“检测+运动预测”的方案:用卡尔曼滤波预测球的下一帧位置,在预测位置附近重新匹配检测框,轨迹中断时用预测位置补洞。实测下来,这种做法能把轨迹完整率从不到70%提升到90%以上。

跟踪算法方面,ByteTrack这类基于关联的算法在公开数据集表现不错,但在乒乓球这种高速小目标场景需要修改匹配策略。需要把运动预测的权重调高,外观特征权重调低,因为小球外观信息太少,主要靠位置连续性。还有一个容易被忽视的问题:双打或者裁判入镜时,人形目标会干扰分组,所以实践中最好把球和人的跟踪器分开管理,球用纯运动模型,运动员再用目标外观特征。

4. 行为分析:从“看到球”到“看懂球”

4.1 基于姿态估计的动作识别:局部姿态比全身姿态更实用

乒乓球动作识别最常见的路线是:先做运动员姿态估计,再用时序分类网络识别动作类别。姿态估计用HRNet这类模型效果比较稳定,提取出肩、肘、腕等关键点坐标后,可以通过时序图卷积网络(比如ST-GCN)或者简单点的LSTM/TCN来完成动作分类。但有一个关键经验:不要把全身姿态都塞进分类器。乒乓球动作主要集中在上半身,双腿移动幅度小且被球台遮挡严重,用全身关键点反而引入大量噪声。

我的做法是只提取手腕、肘部、肩膀这几组关键点,再加上球拍中心的估计位置,作为动作识别输入。把这些坐标相对化,比如以肩膀为原点,计算手腕的相对位移和速度方向,模型会把同一个动作在不同站位下统一起来。动作类别一般聚焦在正手攻球、反手推挡、搓球、拉球、发球这几类基本技术上,太多类别的细分在实际中不好标注,模型精度也会下降。

4.2 击球事件检测与回合结构建模:最核心的环节

行为分析的基石是击球事件检测,也就是准确判断“这一拍什么时候发生”。一个实用的判定方法是对球和球拍进行联合跟踪:维护球轨迹的最后N帧位置,同时跟踪球拍位置,计算两者之间的距离曲线。当球拍和球距离连续几帧下降低于阈值且出现局部最小值时,再验证球在这段时间内的运动方向是否发生反转。如果反转,就判定为一次击球。这个规则能覆盖大部分正常击球情况。

击球事件识别完成后,回合结构就很好建立了。连续两次击球之间的时间间隔就是一个“单拍时间段”,一个回合由若干拍组成。根据击球时的球拍挥动方向和球的轨迹,可以推断是正手还是反手,再结合球在回合中的上下台变化判断得失分。这里要提醒一下:规则判定不能太过绝对。比如“球从球台边界上方经过算擦边”在视觉上非常模糊,帧率不够时几乎不可能稳定判定,所以系统设计上要把这类结果标记为“疑似”而不是“确定”。

4.3 落点热力图与得分判定的实现思路

落点定位是这个项目最高价值的部分。具体做法是:预先标注球台四个角点在图像中的坐标,建立图像平面到标准球台平面的单应性变换矩阵。然后在轨迹跟踪过程中,找到球第一次碰到台面后的弹跳点,也就是球轨迹中速度方向在接触台面后发生变化的那个点,把该点的图像坐标投影到标准球台平面。累计一个训练周期内所有落点,就可以生成二维热力图。这个热力图对教练分析运动员落点分布能力非常有用。

得分判定光靠球轨迹不太容易做准。因为球可能被运动员身体遮挡,或者出界后飞出镜头导致轨迹丢失。我通常在系统中引入辅助信号:击球声音能量检测、裁判手势识别、比分牌OCR。击球声音能量能帮助确认“球是否被击到”,比分牌OCR可以从转播画面上读取当前比分。多个信号交叉验证后,得分判定的置信度会高很多。即便如此,我仍然建议最终得分结果由人工复核,纯视觉自动判罚在复杂场景下还不够安全。

5. 模型训练与部署细节:损失函数、评价指标与实时推理

5.1 训练配置与超参数:小目标场景下怎么调参

目标检测部分我常见的配置是:输入分辨率1280、batch size尽量拉大、使用Mosaic增强和混合增强,预训练权重用COCO,整个乒乓球数据集上迭代150个epoch左右。实测下来,乒乓球场景背景相对统一,不需要和通用目标检测一样训练300个epoch,150个epoch足够了。训练时要注意针对球这个类别单独统计损失贡献,或者手动调整每类的损失权重。

行为分析和姿态估计部分的训练要分开。姿态估计模型先把运动员身体区域从原图中检测出来,裁剪后输入关键点网络,分辨率用256×192或384×288。击球动作分类网络则是一个轻量时序模型,输入为击球前后各30帧的关键点序列,用交叉熵损失加标签平滑。标签平滑很重要,因为不同运动员动作差异大,硬标签很容易让模型过拟合。

5.2 评价指标怎么定:别被单一mAP骗了

在乒乓球场景里,只看全部类别的mAP会掩盖真实问题。球类的mAP和运动员类的mAP往往差距很大,运动员容易检测,球则很难。所以我会把评价指标拆成几个维度分别看:球目标在远台和近台帧上的召回率、球轨迹跟踪的成功率和ID切换率、击球事件检测的准确率和召回率、动作分类的Top-1准确率。击球事件检测评价时,允许一个容错窗口,比如人工标注击球帧前后3帧内模型检出的都算正确,因为高速视频下精确到帧本来就困难。

举个参考指标的量级:在一场标准单打比赛视频上,球目标检测mAP@0.5能达到0.8以上,运动员检测接近0.95,球轨迹跟踪成功率约0.85,击球事件召回率在0.9左右,动作分类准确率在0.8左右。这个水平已经足够支持训练统计和自动集锦,但离完全自动判罚还有差距,因为判罚要求近乎零错误。

5.3 实时性优化:帧率提升和轻量化部署的取舍

实时分析一般要求30FPS以上。在GPU服务器上跑YOLO系列检测器加姿态估计模型通常没问题,但在普通场馆用的边缘设备上要花不少心思。我常用的优化手段有三个:第一,降低输入分辨率,从1280降到640,但只对全图做检测,球和球台区域再用一个小模型裁剪放大,相当于大图粗检、小图精检;第二,把姿态估计模型的关键点分支减少,只保留上半身关键点,省掉双腿关键点的计算量;第三,检测和跟踪交替运行,每隔几帧跑一次检测器,中间帧用卡尔曼滤波做运动插值和跟踪补全。这三点叠加起来,帧率能提升到原来的两到三倍,同时不会明显降低球轨迹质量。

另外,模型推理阶段可以用FP16量化,对精度影响很小。如果是INT8量化,就要非常小心,因为小目标检测对量化误差更敏感,需要准备专门的校准数据集来评估球的召回率。我在某个边缘设备上试过直接INT8量化,结果球类别召回率掉了将近10个百分点,后来改回FP16才恢复正常。

6. 场景落地中的常见问题与排查技巧

6.1 球太小漏检怎么办:检测与预测配合

漏检是乒乓球项目最常见的问题,尤其是远台球或者球快速穿越画面时。排查思路分三步:先看漏检帧集中在什么场景,再用可视化工具叠加检测框和轨迹,最后针对原因调整策略。如果漏检是因为球太小,优先提高输入分辨率或增加局部放大检测;如果漏检是因为运动模糊,考虑增加视频帧率或插帧;如果漏检是因为球被球拍遮挡,就只能靠轨迹预测补洞。我见过一些项目把所有希望压在一套模型上调参,结果反复折腾都很难解决基础性的检测能力不足问题,不如把“检测加跟踪”结合起来更稳。

6.2 运动模糊和拖影干扰:高帧率才是治本方案

普通25帧或30帧的摄像头拍摄乒乓球,球快速飞行时会拉出长条拖影,检测器很难给出精确框。治本的办法是使用高帧率相机,至少在100FPS以上,这样相邻帧之间的球位移就会变小,拖影也减弱。如果摄像机硬件不支持高帧率,只能在算法上弥补:对模糊帧不强行检测,而是根据前后两帧的清晰位置做时间插值,画出平滑轨迹。还有一个技巧是训练时加入运动模糊增强,让检测器见过类似形态,这样推理时即使遇到拖影也能识别出中心位置。

6.3 球拍和球颜色相近导致粘连:时序信息帮大忙

很多时候球拍挥舞到击球点附近,球拍边缘和球在图像上会重叠甚至粘连,单帧检测很容易把球拍当作球。我的经验是不要试图从单帧里完全解开这个歧义,而是利用时序信息。球拍的运动轨迹是连续的,球在击球瞬间前后的位置也连续,我们可以用球轨迹的线性外推来确定“应该在哪里找球”,即使某个检测框同时覆盖了球拍和球,也优先取离预测轨迹更近的那个框。这种思路听起来简单,实际效果非常好。

6.4 双打遮挡和多人交叉干扰:检测和姿态估计要分离

双打比赛里运动员站位重叠非常严重,直接做多人姿态估计很容易出现错误的肢体连接。我的建议是采用自上而下的处理流程:先用行者检测器把所有运动员框出来,再对每个人的区域单独做姿态估计。这样可以避免不同人的关键点错连在一起。如果出现长时间重叠,还可以加入一个简单的多目标跟踪器,给每个运动员分配稳定的ID,避免动作统计时把两个人的数据混在一起。不要小看这个细节,我见过有人明明检测器很准,但因为跟踪ID频繁切换,最后的统计报表完全不可用。

7. 场景迁移与后续扩展:从单视角到多视角,从统计到战术分析

7.1 多视角相机系统带来的质变

单摄像头方案天然存在遮挡盲区,比如球出界后飞出画面,或者运动员身体挡住球。如果条件允许,搭建一个双相机或三相机系统会质变:主相机跟球和动作,侧俯视角专门负责落点和球台区域。多相机之间通过时间戳同步,再利用球台角点做坐标系转换,可以重建球的三维轨迹,落点判断精度大幅提升,甚至可以计算球的旋转方向。当然,多相机系统的标定和同步工作复杂很多,但产出数据的价值也更高。

7.2 让数据流进入业务系统:自动剪辑和战术报表

技术路线跑通之后,真正让它产生价值的是和业务系统对接。比如把回合事件表输出成标准化JSON流,送入实时记分牌系统;当检测到20拍以上的相持回合时,自动从视频里截取片段并加上时间标签;每场比赛结束后生成运动员正反手使用比例和落点分布报表。这些输出都需要设计好数据格式和接口,我给自己的建议是:先定义一套稳定的“事件Schema”,把击球事件、动作类型、落点坐标、时间戳都结构化,后面接任何前端展示和剪辑系统都会轻松很多。

这个项目延伸下去还可以做战术分析,根据每个回合的落点序列判断运动员习惯线路。比如连续压反手、突然变正手直线这类战术模式,本质上就是从落点热力图上再做序列模式挖掘。做这一层扩展时,前面的检测和跟踪质量会直接决定分析结论的有效性,所以基础工作扎实比模型花哨更重要。

我在实际操作中有个很深的体会:乒乓球场景最磨练人的不是算法设计,而是对数据细节的耐心。球速那么快,球又那么小,稍微偷懒一点,后面每层模型都会连本带利地还回来。如果你也想做类似的项目,我建议先从一场视频开始,把球台角点、球的轨迹和击球事件全部人工标好,再让算法去学习,这样你对“什么是好数据”会有非常直观的理解。还有一个小技巧,调试时一定要打开可视化界面,看着检测框和轨迹线“跑”一遍,很多问题马上就能看出来,比只看数字指标有效得多。

相关新闻

SpringBoot+Vue健身房管理系统:毕业设计核心架构与实现指南

SpringBoot+Vue健身房管理系统:毕业设计核心架构与实现指南

毕业设计选题目,很多人栽在“看起来太简单”上。健身房信息管理系统,光听名字确实带着一股“老牌增删改查系统”的味道,但用SpringBootVue这套组合来做,内核完全不一样。它不只是会员表的CRUD,而是涉及会员生命周期、课…

2026/10/20 4:55:53 阅读更多 →
PyTorch 工程实践:从张量内存到分布式训练的踩坑指南

PyTorch 工程实践:从张量内存到分布式训练的踩坑指南

1. 从一行 import 说起:为什么 PyTorch 值得你花时间啃透如果你写过 Python 深度学习代码,大概率敲过这行:import torch。但很多人对它的理解停留在“能跑模型就行”的层面,一旦遇到显存爆炸、训练不动、梯度消失、多卡同步异常&a…

2026/10/20 4:55:53 阅读更多 →
STM32F407硬件SPI驱动IC_MU芯片实战:从时序配置到DMA批量传输

STM32F407硬件SPI驱动IC_MU芯片实战:从时序配置到DMA批量传输

简介:SPI_IC_MU.rar 是一份面向嵌入式开发者的实战源码工程,聚焦在 STM32F407 微控制器上通过 SPI 接口读取绝对值编码器 IC_MU 的完整实现。STM32F407 基于 ARM Cortex-M4 内核,SPI 作为同步串行总线常用于连接传感器与编码器,而…

2026/10/20 4:55:53 阅读更多 →

最新新闻

文件系统边界才是批量删除的隐形天花板:一次缓存清理引发的思考

文件系统边界才是批量删除的隐形天花板:一次缓存清理引发的思考

48,218 个文件,103 秒,平均每秒删掉 468 个。这个速度放在本地 SSD 上不算惊艳,放在机械盘安全软件钩子的业务机上,已经算靠谱了。真正有意思的是这次清理引发的一场争论:团队里有人坚持说提示词写得不够好&#xff0c…

2026/10/20 5:41:14 阅读更多 →
AI生成内容合规标注的12个硬性字段与落地实践

AI生成内容合规标注的12个硬性字段与落地实践

1. 这份清单不是合规检查表,而是AI内容生产者的“出厂质检单”你刚用大模型生成了一段产品说明、一份用户协议初稿、一组营销文案,或者一段客服应答话术——在点击“发布”前,有没有哪怕一秒停下来问自己:这段内容,如果…

2026/10/20 5:41:14 阅读更多 →
CloudCompare自定义插件开发实战:以SOR统计离群点去除为例

CloudCompare自定义插件开发实战:以SOR统计离群点去除为例

如果你用过CloudCompare做点云处理,大概率能感觉到:这个软件最舒服的地方是点云显示、对比、切剖面都很快,但最不方便的是算法一固定就不太好改,想加的私有功能往往找不到入口。我刚入坑的时候也被这个问题卡了很久,直…

2026/10/20 5:41:14 阅读更多 →
VLA模型全解析:视觉-语言-动作统一模型的关键技术与落地挑战

VLA模型全解析:视觉-语言-动作统一模型的关键技术与落地挑战

很多朋友最近都在讨论 VLA 模型,尤其是在机器人学习和具身智能的圈子里,《VLA Models: Concepts, Progress, Applications and Challenges》这篇论文被频繁提及。VLA 全称是 Vision-Language-Action,也就是视觉-语言-动作统一模型&#xff0c…

2026/10/20 5:41:14 阅读更多 →
CTF文件包含漏洞实战:从路径构造到PHP代码过滤绕过

CTF文件包含漏洞实战:从路径构造到PHP代码过滤绕过

做CTF的Web题做到文件包含这个专题时,很多人会卡在同一个地方:明明看懂了漏洞原理,也知道要用伪协议、路径穿越,但真拿到一道题,还是不知道该从哪里下手。尤其是标题里“构造访问路径过滤php代码”这两个词&#xff0c…

2026/10/20 5:41:14 阅读更多 →
OpenCV 4.8.0源码编译实战:VS2019动态与VS2022静态双链路配置

OpenCV 4.8.0源码编译实战:VS2019动态与VS2022静态双链路配置

简介:面向需要在 Visual Studio 2019 与 2022 中搭建 OpenCV 4.8.0 X64 开发环境的 C 开发者,这份资源同时提供动态与静态两种编译方案:VS2019 动态编译生成 DLL,适合追求可执行文件轻量化的场景;VS2022 静态编译将库代…

2026/10/20 5:40:14 阅读更多 →

日新闻

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/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

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

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

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

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

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在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/19 2:54:50 阅读更多 →
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/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →