RetinaNet道路交通多目标检测实战:从原理到工程落地

最近在整理一个做了一段时间的道路交通多目标检测项目,也就是标题里那个“_1”版本——基于RetinaNet的道路交通多目标检测与识别系统,目前已经完成第一版,能在真实道路视频流里同时识别车辆、行人、非机动车和交通设施等多类目标,并且在工程落地层面跑通了从数据准备到推理部署的完整链路。这篇文章想把选型逻辑、原理拆解、训练调参和踩坑全过程写清楚,给正在做类似目标检测项目的朋友一份可参考的“成长记录”。

这类项目的目标很明确:给定一段道路监控或车载摄像头画面,系统需要同时输出画面里所有目标的类别和位置框,而且要在车流密集、行人穿插、目标尺度差异极大的情况下尽量不丢框、不错框。RetinaNet在这个场景里算是一个非常稳妥的起点,尤其是它处理“小目标”和“前景背景样本不平衡”这两件事的思路,刚好对应道路交通场景里最常见的两个痛点。下面从最初选型开始讲。

1. 为什么选RetinaNet做道路交通多目标检测——选型时的一笔账

先交代一下背景。第一版的目标不是追求某个比赛级别的精度,而是要在可控的开发周期内搭出一个真正可运行、可评估、可继续迭代的多目标检测基线。既然方向锁定在“道路交通”这个场景,一开始就要把场景特点拆清楚:目标类别多且大小悬殊、密集遮挡频繁、背景复杂且占像素比例极大。这几个特点直接决定了模型选型的方向。

当时摆在我面前的无非是几类主流方案:两阶段检测器(Faster R-CNN系列)、单阶段检测器(SSD、YOLO系列)、以及基于关键点或Transformer的新方案。我最终选了RetinaNet,核心原因有三条。

第一,RetinaNet是单阶段模型,推理速度快,工程上更容易满足道路场景的实时性要求。道路交通检测往往要部署在边缘设备或车载工控机上,算力预算有限,两阶段模型精度虽好但速度压力很大。

第二,RetinaNet的骨干网络采用特征金字塔结构,能拿到从高分辨率浅层到低分辨率深层的多尺度特征图。道路场景里远处行人可能只有几十个像素,而近处公交车可能占满大半个画面,这种多尺度目标同时出现的情况,恰好是特征金字塔擅长处理的。

第三,它的Focal Loss专门针对“前景样本和背景样本数量极端不平衡”的问题。道路交通画面里,绝大多数锚框都是没有目标的背景区域,如果拿普通的交叉熵去训练,模型会花大量精力去学“背景”,学出来的检测器对稀疏的目标极度不敏感。Focal Loss给“容易分类的背景样本”不断降权,让模型把注意力集中到那些难的、有目标的前景样本上。

顺手做个横向对比表,方便后来者选型:

模型类型精度速度小目标表现道路交通场景适配度
Faster R-CNN高较慢较好适合离线分析,实时性弱
SSD中快较弱小目标易漏检,密集场景一般
YOLO系列中高很快中等,依赖版本需要额外做样本平衡处理
RetinaNet高快好精度/速度平衡,适合第一版落地

第一版选择RetinaNet,本质上是想先把“能不能稳定检测出东西”这个基本问题答好,后续再根据实际数据表现替换骨干或换更强的检测头。

2. RetinaNet的骨架与两个子网络——锚点、金字塔、Focal Loss

选型定了之后,就要真正理解这个模型每个模块在干什么。RetinaNet本身结构并不复杂,但它把骨干网、特征金字塔、锚点匹配、分类子网络、回归子网络和Focal Loss串成了一条完整流水线。任何一环理解不到位,后面的训练都会出问题。

2.1 骨干网络与特征金字塔:多尺度特征是怎么来的

RetinaNet通常用ResNet系列作为骨干网络,我第一版用的是ResNet50,主要是考虑显存和训练速度的平衡。图像输入后会经过ResNet逐层下采样,产生不同分辨率的特征图。但仅靠骨干网络的最后一层特征图做检测,对小的交通目标很不友好,因为深层特征图语义信息强但空间分辨率低,小目标在图上只剩几个像素,很难定位。

RetinaNet没有直接拿骨干网络输出做检测,而是接了一个特征金字塔网络,用自顶向下和横向连接的方式把深层语义信息和浅层细节信息融合,生成P3到P7这几层特征图。P3对应原始图像的1/8分辨率,适合检测小目标;越往后特征图分辨率越低,对应越大的目标。

特征图层下采样倍数适合检测的目标尺度实际对应场景
P38小目标远处行人、车辆尾部
P416中小目标路口中间的非机动车
P532中目标近处轿车、公交车
P664大目标画面主体车辆
P7128超大目标极少出现,主要用于大目标兜底

当时做目标尺度统计时发现,项目里三分之一的目标真实框面积小于32×32像素,这类目标如果只在P5以上层做检测,基本必漏。RetinaNet把P3拉进检测范围,算是解决了这个基础问题。

2.2 锚点机制与正负样本匹配

RetinaNet在每个特征图位置预设一组锚点框。我用的配置是每个位置3个尺度、3个长宽比,共9个锚点。不同特征图层锚点的基础尺寸不同,比如P3层锚点最小、P7层锚点最大,这样每层只负责对应尺度的目标。

训练时,锚点与真实目标框做IoU匹配,IoU大于0.5的锚点被视为正样本,IoU小于0.4的锚点被当作负样本,处于中间地带的锚点直接忽略。这里有一个常被忽略的细节:正负样本匹配策略对道路交通场景非常敏感。比如两个行人挨得很近,某个锚点和行人A的IoU是0.45,和行人B的IoU也是0.45,按默认规则它会被直接忽略。但如果行人B比较远,这个框其实代表了一个“模糊但存在”的目标。第一版我没有做复杂处理,只按默认规则来,结果发现检测器对密集行人的召回率偏低,后面才在数据增强和后处理上补救。

2.3 分类子网络与回归子网络

RetinaNet在每个特征图后分出两个平行子网络,一个是分类分支,输出每个锚点对应每个类别的概率;另一个是回归分支,输出锚点和真实目标框之间的四个偏移量。这两个子网络都是全卷积结构,参数在所有锚点间共享,这样既控制了参数量,也让训练更容易收敛。

回归分支输出的是归一化偏移值,分别是锚点中心坐标和宽高的对数偏移。训练回归分支时用的是Smooth L1损失,相比L2损失它对离群点更不敏感,不容易出现某个难样本把梯度带偏的情况。

2.4 Focal Loss:为什么能压住“易分类背景”

Focal Loss可以理解为在标准交叉熵上乘了一个调制系数。标准交叉熵里,即使一个背景样本被正确分类且置信度很高,它依然会产生一个不小的损失值,大量高置信度背景样本的损失累加起来,会压过少量前景样本的正确梯度。

Focal Loss的形式是,当某个样本的分类概率越高、也就是“越好分”的时候,它的损失会被乘以一个接近0的权重。反之,难分样本保留较大的损失贡献。配合类别平衡系数,可以在训练过程中动态把注意力导向真正困难的前景样本。

道路交通画面里背景锚点数量往往是前景锚点上万倍,没有Focal Loss,模型训练到最后大概率变成“什么框都输出低置信度”的保守模式。用了Focal Loss之后,一个直观感受是训练前几个epoch里分类损失下降更快,后面则剩下难例在拉动损失曲线。

3. 数据标注的类别体系与增强方案——决定模型上限的环节

模型选得再好,数据准备不到位也是白搭。道路交通场景的数据比一般目标检测数据集更麻烦,因为类别之间有大量相似外观和遮挡关系。第一版在数据上投入的时间几乎占整个项目的一半,这部分经历我觉得最值得写。

3.1 类别体系设计:少而清晰,别贪多

第一版我只保留了七个类别:行人、自行车、摩托车、小汽车、公交车、卡车、交通标志。这是一个刻意做减法的结果。最初添加过“电动车”“三轮车”“行人推车”这些细分类别,但标注一致性和模型精度都很难保证,因为不同标注员对“电动车”和“摩托车”的边界判断差异很大,模型学出来的特征也混在一起。

七个类别里,真正容易混的是“自行车”和“摩托车”,在像素较小或者被遮挡时,两者外观确实像。第一版的处理方式是允许这一对误判存在,先不在类别体系里强行细分,后面再通过增加训练样本来改善。

3.2 标注格式与数据划分

数据标注格式我统一转成COCO风格JSON,因为RetinaNet的常见训练框架对COCO格式支持最成熟。标注结构大概是:

{ "images": [ {"id": 1, "file_name": "img_0001.jpg", "width": 1920, "height": 1080} ], "annotations": [ {"id": 1, "image_id": 1, "category_id": 2, "bbox": [x, y, w, h], "area": 30456, "iscrowd": 0} ], "categories": [ {"id": 1, "name": "pedestrian"}, {"id": 2, "name": "car"} ] }

如果你的原始数据是VOC格式的XML,建议写个脚本统一转成COCO JSON,一次性把字段对齐,避免训练时再来回折腾。

训练集和验证集划分要特别注意不能按视频帧随机切。我把同一场景的连续帧全部归到同一集合里,避免模型“背”下视频帧的相似背景,从而在验证集上刷出虚高指标。

3.3 数据增强:别增强过度,也不要漏掉关键变换

道路交通数据天然存在光照变化、天气变化、运动模糊等挑战,但训练数据往往只来自几个晴天时段,这时候增强就是必需品。我用的是随机翻转、多尺度缩放、颜色抖动、随机裁剪组合。

多尺度缩放效果最明显。第一版输入尺寸在600到1000像素之间随机变化,等效于让模型在不同距离下观察目标,小目标检测的鲁棒性明显提升。

有一个容易踩的坑是随机裁剪。在做目标检测的随机裁剪时,如果裁剪框和真实框重叠不合理,会把大量真实框切成残片,甚至把目标一半裁出画面外。这个我单独用工具检查过增强后的可视化结果,凡是把遮挡率提得太高的增强策略,最终训练出来的模型漏检率都会上升,所以一切增强都要以“目标仍然能认出是什么东西”为前提。

3.4 类别样本数量不平衡的补救

类别样本数量不平衡是道路交通数据里必然出现的问题。小汽车样本可能有上万,交通标志只有几百,如果不做处理,交通标志这个类别即使被标出来,模型也会倾向于把它忽略。

我采用的策略是在采样器里给低频类别更高的采样权重,同时用最简单可靠的的Copy-Paste增强:把样本数量少的类别目标按真实尺寸粘贴到道路背景图上,保证粘贴位置符合透视关系,比如交通标志往路边放、行人往人行道放。这种增强虽然土,但对小样本类别的召回率提升非常直观。

4. 训练策略、超参与损失跟踪——怎么把模型“喂”到位

数据准备好了,接下来是整个项目里最磨人的阶段:训练。RetinaNet的训练过程比想象中更依赖对损失函数的拆解,你不能只看一个总损失值就判断模型好坏,而是要分开观察分类损失、回归损失以及各类别AP的变化。

4.1 优化器与初始超参

我用的是带动量的SGD,初始学习率设在0.01,配合warmup。warmup的前500步学习率从0.001线性升到0.01,这个操作非常关键。RetinaNet在训练初期锚点还没适应目标分布,如果直接给大学习率,容易出现分类损失直接发散、边界框回归方向跑偏的情况。

批大小设为8,受限于单卡显存。如果想增大批大小,可以把输入分辨率调低或者改用ResNet50的小变体。第一版我没有用分布式训练,单卡训练完整个流程大概要跑接近两天,属于可接受范围。

4.2 训练过程中的损失观察

训练时,我在每个epoch记录四类信息:总损失、分类损失、bbox回归损失、正样本数量。很多框架默认只打印总损失,但我建议一定要手动记录正样本数量。

最终我的经验是,正常收敛的情况下,分类损失应该呈现快速下降后平缓减小的曲线,回归损失则相对平缓。如果分类损失下降缓慢,大概率是正样本占比过低;如果回归损失振荡,大概率是某些困难样本的损失权重太大。

下面是我用来跟踪训练状态的一段示意代码,你需要根据自己的数据结构调整:

# 训练日志跟踪示意,记录每个epoch的关键指标 def log_training_metrics(epoch, cls_loss, reg_loss, num_pos): avg_cls = cls_loss / num_pos avg_reg = reg_loss / num_pos print(f"epoch={epoch} " f"cls_loss={avg_cls:.4f} " f"reg_loss={avg_reg:.4f} " f"pos_samples={num_pos}")

4.3 遇到损失异常怎么办

第一版训练中遇到过两次典型的异常。

第一次是训练到第10个epoch时,回归损失突然出现一个巨大尖峰,之后整个模型输出的框位置全部飘掉。排查发现是某个训练样本的标注框超了图像边界,导致回归目标计算出异常值。处理方式是清洗数据时统一把超出边界的框裁回图像范围,面积太小的直接删掉。

第二次是损失整体不降。检查发现Focal Loss的γ参数设成了0,等于退化成了普通交叉熵,模型在大量背景锚点的压力下完全学不动。把γ调回2.0之后,损失曲线在几十步内就有了明显反应。

如果你也遇到“损失不降”的问题,第一件事不是调学习率,而是确认Loss实现里有没有应用Focal Loss调制系数,再看正负样本比例是否严重失衡,最后才考虑模型结构。

4.4 学习率调度和停止时机

第一版采用余弦退火学习率,总共训练了20个epoch。从实际效果看,验证集mAP在使用数据增强后,大约在第8个epoch基本稳定,第16到第20个epoch有小幅提升。如果再往后训练,就会见到验证集指标开始震荡,那是过拟合的信号。

5. 从“检测出框”到“系统可用”——推理、后处理与评估

训练完成只是第一步,检测系统真正能不能用,要看推理阶段的执行效率和后处理策略。道路交通场景里,车辆和行人往往密集,NMS参数的一点差异直接影响最终输出的可用性。

5.1 NMS参数调优

RetinaNet输出的原始框数量非常多,必须经过置信度筛选和NMS去重。第一版里我把置信度阈值设在0.4,NMS的IoU阈值设在0.5。这个组合对稀疏道路场景效果不错,但在一个公交站附近的小型拥堵场景里,检测器会输出大量重叠框,NMS的IoU阈值太严就会把同一个目标的多个框全部留下,导致重复计数。

后来我把NMS IoU阈值提高到0.6,重复框明显减少,代价是某些紧密挨着的行人可能被合并成一个框。这类参数没有通用最优值,最好按场景单独验证一遍。我的调法是把几种典型道路截图各取20张,在0.4到0.7之间逐档测试,每档看输出框数量和实际目标数量的匹配程度。

5.2 推理速度与模型简化

第一版最初直接使用训练框架的原始PyTorch模型推理,输入1920×1080图像时,单帧在GPU上约耗时80毫秒,大约是12FPS,对多目标检测系统来说偏慢。

之后做了几件简化:把输入分辨率统一缩放到1280×720,同时把P6和P7层的前向计算从完整特征图改为只在候选区域密集时启用,相当于一种“动态层跳过”的思路。这样在空旷路段能把平均帧率提升到22FPS左右,而密集场景仍然保持全量计算,保证精度不塌。

如果你需要更进一步的加速,可以把模型导出为ONNX,再用推理引擎做FP16或INT8量化。不过要注意的是,量化后小目标类别(比如远处行人)的召回率往往会下降,必须用验证集去复测各类别的AP,而不是只看整体mAP。

5.3 评价指标怎么用

多目标检测不能只盯一个mAP。道路交通场景里,我要同时看三类指标:mAP@0.5表示宽松定位条件下的整体检测能力;mAP@0.75表示精确框位置的检测能力,这个对交通轨迹分析很重要;各类别的AP则用来发现某个被“欺负”的类别。

我第一版在验证集上的mAP@0.5约为0.78,但其中交通标志类别只有0.51,小汽车类别达到0.88。如果只报一个mAP,这个差距就被掩盖了,后续优化方向也会跑偏。建议每一位做同类系统的朋友,在评估时把每个类别的AP打印出来,做成表格。

6. 第一版踩过的坑和可以复用的经验

最后这部分,我按“问题—原因—解决”的方式把第一版遇到的主要坑整理成一张表,再补一些个人心得。

现象根因解决方案
小目标漏检严重特征金字塔低层特征参与检测不足,或小目标样本太少启用P3层检测,增加远处目标样本,多尺度训练
行人和非机动车误检类别外观相似,标注边界不统一统一标注规则,增加难例样本,适当合并相似类别
分类损失不降Focal Loss参数无效或正样本过少校验γ、α参数,检查正样本锚点匹配比例
回归损失尖峰标注框出界或异常目标数据清洗,框回归目标做截断
推理速度慢输入分辨率过高,全层特征图都参与计算动态跳层,缩放输入分辨率,模型导出量化
密集场景重复框NMS阈值设置过严调整NMS IoU阈值,引入更精准的框回归目标

个人心得方面,有几个点我觉得比技术本身更值得记住。

模型第一版不需要追求一次性把所有问题解决,先把“能稳定检测出常见大目标”这件事做扎实,再逐步加难例、加类别,迭代节奏会健康很多。

数据处理的时间和训练时间不是浪费,交通场景的数据集中注意力放在光照、遮挡和多尺度这三件事上,能覆盖大部分模型后续的大坑。

做类似系统时,一定把自动化的评估脚本提前写好,每次改完参数,立刻跑同一套验证集,用指标对比而不是肉眼感觉来判断好坏。肉眼感觉在少数几张图上特别容易被骗,只有整个验证集的统计数字是诚实的。

第一版项目到了这个阶段,已经能连续稳定处理城市道路视频流中的常见目标。下一步我自己的计划是先把交通标志类别的样本数量补上来,再针对夜间和雨天场景做一次专门的数据采集,然后升级骨干网络验证精度的提升幅度。如果你也在做类似的检测系统,希望这篇文章能让你少走一点弯路,尤其是把数据、损失、评估这三件事想清楚,整个项目推进起来会顺畅很多。

相关新闻

从命令到协作:AI编程工具的五个关键范式,告别“时而惊艳时而智障”

从命令到协作:AI编程工具的五个关键范式,告别“时而惊艳时而智障”

说实话,我一开始接触 AI 编程工具的时候,心态和大多数人是完全一样的:把它当成一个不会抱怨的搜索引擎,或者一个永远在线、随叫随到的外包程序员。我给 Copilot、Cursor 这种工具发一段需求描述,然后等着它把代码吐出来…

2026/10/21 5:10:03 阅读更多 →
AI知识管理落地的三阶段模型:资产化、引擎化、业务化

AI知识管理落地的三阶段模型:资产化、引擎化、业务化

1. 为什么你的知识库总是建成"电子垃圾桶"做AI应用架构这几年,我接手过不少"知识管理"相关的项目,也复盘过各种失败案例。一个非常扎心的现象是:很多企业和团队搭建知识库,花了大价钱采购系统,制度…

2026/10/21 5:10:03 阅读更多 →
lingbot-map实战:移动机器人地图模块的边界设计与导航对接

lingbot-map实战:移动机器人地图模块的边界设计与导航对接

lingbot-map 是我在维护轮式机器人 lingbot 时单独拆出来的一个地图模块。如果你做过几台移动机器人实验,大概率见过那种把所有逻辑揉在同一个进程里的工程:激光数据、地图更新、路径规划、电机控制全挤在一起,调试时想调一下地图算法&#x…

2026/10/21 5:09:03 阅读更多 →

最新新闻

Elasticsearch集群安全配置:TLS/SSL与密钥库管理全解析

Elasticsearch集群安全配置:TLS/SSL与密钥库管理全解析

给Elasticsearch集群做安全配置这件事,远比想象中麻烦。很多人以为在elasticsearch.yml里加几行TLS/SSL配置就能收工,结果往往是节点之间互相不认证书、Kibana连不上、客户端报handshake failed,最后只能回滚。我这次把一套三节点ES集群从裸H…

2026/10/21 5:49:18 阅读更多 →
嘎嘎降AI实战教程:从注册到多轮降重,让AI文本更自然

嘎嘎降AI实战教程:从注册到多轮降重,让AI文本更自然

"嘎嘎降AI"这名字听起来有点随意,但用起来确实能解决一个实际问题:AI生成的内容,如何改得更像人写的。很多朋友现在写材料、做方案、写公众号,第一稿都习惯让AI对话软件先起个草,然后再自己改。可草稿一到手…

2026/10/21 5:49:18 阅读更多 →
广播、未知、同网、异网:交换机转发与排障核心解析

广播、未知、同网、异网:交换机转发与排障核心解析

干网络这行久了,最常被新人追问的一个问题是:交换机把一个帧从某个端口收进来之后,它凭什么决定从哪个端口送出去?教科书上会讲查MAC地址表、泛洪、丢弃,但真到排障时,大家还是容易懵。后来我发现&#xff…

2026/10/21 5:49:18 阅读更多 →
嘎嘎降AI工具详解:从注册到实操的AI文本自然化处理指南

嘎嘎降AI工具详解:从注册到实操的AI文本自然化处理指南

“你手头有一段AI生成的文章,第一眼读起来特别工整,逻辑也没什么毛病,但总觉得有点‘板’,像戴着面具在说话”——这就是我最初接触到“嘎嘎降AI”这个工具时最想解决的问题。它不是用来做文案初稿的,也不是单纯改错别…

2026/10/21 5:49:18 阅读更多 →
技能管理系统:从技能地图到刻意练习的完整框架

技能管理系统:从技能地图到刻意练习的完整框架

很多人看到“skills”这个词,第一反应是“又一篇讲职场技能提升的文章”。但我今天想换个角度聊:技能不是一个名词,而是一套需要持续维护的系统。你收藏过一堆课程、买过一堆书、报过训练营,最后真正变成自己能力的,其…

2026/10/21 5:49:18 阅读更多 →
AI信息挖掘实战:从提问到交叉验证,把碎片信息串成认知

AI信息挖掘实战:从提问到交叉验证,把碎片信息串成认知

元旦的钟声刚敲过,我猜不少人正把“新的一年多学点东西、把手头的事做精”写进计划表。这几天我发现一个很有意思的现象:大家不是不想查资料,而是被资料淹没了。打开浏览器想看某个行业的最新动态,结果十条链接里八条是去年的&…

2026/10/21 5:48:18 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于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/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →