风力叶片缺陷检测数据集解析:COCO标注、格式转换与训练避坑指南
简介面向风力叶片缺陷检测任务的数据集提供COCO JSON格式标注覆盖排水孔受损、雷击、污垢、漏油、PU胶带、表面裂纹、侵蚀等典型缺陷类型适用于目标检测模型的训练与评测。图像采集自不同叶片型号与拍摄场景标注包含目标类别与边界框信息可直接用于YOLO、MMDetection等常见检测框架减少数据预处理与标注时间。整个压缩包共2000个文件包含1997张JPG图片和3个JSON标注文件包体约74.32MB标注与图像一一对应便于按缺陷类别筛选样本也方便自行划分训练集与验证集。目前已有820人学习下载适合风电场运维、无人机巡检以及高校科研人员开展风机叶片缺陷识别实验也可作为迁移学习或算法对比的基准数据帮助降低风电智能巡检项目早期数据成本。1. 风力叶片缺陷检测数据集2249 张图、7 类缺陷COCO 标注怎么用风力叶片的巡检在业内基本都是“上天容易落图难”无人机飞一圈能带回几百张叶片图片真正值钱的是这些图片有没有被准确标注。这份数据集正好落在这个环节——2249 张真实叶片运行图像覆盖排水孔受损、雷击、污垢、漏油、PU 胶带、表面裂纹、侵蚀这 7 类常见缺陷标注格式是 COCO JSON。如果你正在做叶片缺陷检测的入门验证、模型对比或者想拿真实工业场景数据跑通一套检测训练流程这份数据集能省掉你大量清洗和标注的时间。下面从数据组织开始拆讲清楚怎么读、怎么转、怎么避坑。2. 解析 COCO 标注图片命名、类别设置与 JSON 组织方式拿到数据集之后我习惯第一件事不是直接扔进训练脚本而是先把数据和标注的家底摸清楚。这个环节看起来不产生模型收益但能帮你判断后续训练管线该怎么设计。下面按图片文件、类别表、JSON 结构三层来拆。2.1 图片文件名叶片编码、拍摄时间与哈希后缀怎么看数据集里每张图片的命名是有规律的。抽样看几个名字ASP47BladeC1703859112_jpg.rf.721ccfc57d1b2244b8a4a1dcc41814c5.jpgMAN320BladeB1705596408_jpg.rf.9ee10415942caf9865588610a12291ca.jpgASP54BladeC1703858309_jpg.rf.638c53633a6657553ccd67d74bd20dd7.jpg这串名字可以拆成几段片段示例含义前缀编码ASP47、MAN320、ASP54常见叶片厂家缩写 叶片型号编号用于区分不同来源机组叶片位置BladeA、BladeB、BladeC一个风机通常三支叶片A/B/C 区分位置时间戳1703859112Unix 时间戳表示拍摄或采集时刻导出标记_jpg.rf.标注平台导出时附加的重命名标记哈希串721ccfc57d1b2...文件唯一哈希避免不同批次重名文件互相覆盖从工程角度看前缀编码 叶片位置这两段最有价值。如果你后续要做跨叶片泛化测试或者按机组划分训练集和验证集可以从文件名里直接把ASP47、BladeC这类分组键提取出来而不需要额外维护一个映射表。这里的常见做法是训练管线读取图片时不要直接拿完整文件名当样本 ID 存进数据库因为完整名里有哈希串不便于人读。更好的做法是拆出原始分组前缀 叶片编码作为元数据字段把哈希串保留在文件系统层做去重用。2.2 七类缺陷标注不同缺陷的呈现形式与识别难度差异这份数据集的标注类别对应七种实际巡检关注对象每类的视觉表现差别很大训练时的难易度也不同类别视觉特征识别难点排水孔受损叶片根部或腹板排水孔边缘破损、开裂目标小孔洞本身在叶片表面占比低雷击叶片表面烧灼痕迹、黑斑常带放射状裂纹与污垢、表面裂纹视觉上易混淆污垢叶片表面灰尘、油泥附着边界模糊边界不清晰标注框主观性大漏油叶片接缝或后缘溢出油渍呈深色条带颜色与雷击痕迹接近PU 胶带叶片表面粘贴的保护胶带形状规则形态和颜色可能伪装成叶片本体表面裂纹细线状裂纹走向沿叶片展向或弦向目标细长小目标检测压力大侵蚀前缘或表面材料脱落、坑洼与污垢、老化区域边界混淆不建议把 7 类直接当成同等重要去训练。巡检场景里雷击、排水孔受损、表面裂纹这类缺陷会更受关注而污垢和漏油的紧急程度相对低。如果后续要做模型迭代可以考虑把紧急缺陷类别在损失函数里加大权重或者对低频类别做过采样。这个数据集的标注分布需要你加载 JSON 后自己统计一下不同来源批次之间类别平衡差异可能不小。2.3 COCO JSON 的父子结构categories、images、annotations 三个字段怎么对应COCO 格式的标注文件是单个 JSON顶层通常包含info、licenses、categories、images、annotations五个数组。训练时最关心后三个。先写段代码把结构读出来import json with open(annotations/instances_coco.json, r, encodingutf-8) as f: coco json.load(f) print(顶层字段, list(coco.keys())) print(categories 数量, len(coco[categories])) print(images 数量, len(coco[images])) print(annotations 数量, len(coco[annotations])) # 看前 3 个类别 for cat in coco[categories][:3]: print(cat) # 看第一个图像记录 print(coco[images][0]) # 看第一个标注记录 print(coco[annotations][0])逻辑说明先加载整个 JSON再逐层查看结构。categories里每条记录有id、name、supercategoryimages里每条记录有id、file_name、width、heightannotations里每条记录有id、image_id、category_id、bbox、area、segmentation、iscrowd。image_id把标注和图片对应起来category_id把标注和类别对应起来这就是父子关系的核心。参数说明不同的标注平台导出的 COCO 文件字段会有偏差有的会把segmentation留空数组只给bbox有的会多出keypoints这类无关字段。所以加载后先打印字段名再确认数据里有没有segmentation这决定了你后续是走目标检测还是实例分割路线。另外注意annotations里的area字段是标注面积和bbox面积不一定完全一致做统计时自己重算一遍更稳妥。3. 把标注跑出价值类别统计、可视化与格式转换实战读完 JSON 结构只是第一步接下来要把这份数据真正变成可以喂给模型的训练集。这块我会给出三个平时最常用的脚本逻辑你可以直接照着跑。3.1 统计各类缺陷数量和图片数判断数据平衡度工业缺陷数据集最怕的就是类别严重不平衡比如表面裂纹几百个框雷击只有几十个框。先统计import json from collections import Counter, defaultdict with open(annotations/instances_coco.json, r, encodingutf-8) as f: coco json.load(f) # 建立 category_id 到名字的映射 cat_id2name {cat[id]: cat[name] for cat in coco[categories]} # 统计每类标注数量 ann_per_cat Counter() for ann in coco[annotations]: ann_per_cat[cat_id2name[ann[category_id]]] 1 print(各类别标注数量) for name, cnt in ann_per_cat.most_common(): print(f{name}: {cnt}) # 统计每张图片包含的标注数量 imgs_with_anns defaultdict(int) for ann in coco[annotations]: imgs_with_anns[ann[image_id]] 1 print(图片平均标注数, sum(imgs_with_anns.values()) / len(coco[images])) print(无标注图片数量, len(coco[images]) - len(imgs_with_anns))逻辑说明用Counter统计每类出现的标注次数用defaultdict统计每张图上的标注密度。这两项数据决定了后续增强策略的取向。如果雷击只有几十个标注那训练时需要针对性过采样如果大量图片完全没有标注可能需要检查是不是存在漏标情况。参数说明encodingutf-8这个参数一定要带上很多标注 JSON 里含中文类别名时默认编码打开会直接报错。如果你的机器上defaultdict用不惯换成普通 dict 加if key not in dict判断也行逻辑一样。3.2 可视化边界框确认标注是否贴合真实目标我见过不少翻车案例标注文件统计起来挺正常画出来才发现框歪了大半根本原因是标注人员操作时滚轮缩放比例不一致。所以训练前强烈建议抽一批图人工看看。import json import cv2 import numpy as np with open(annotations/instances_coco.json, r, encodingutf-8) as f: coco json.load(f) cat_id2name {cat[id]: cat[name] for cat in coco[categories]} # 取前 5 张图做可视化 for img_info in coco[images][:5]: img_path fimages/{img_info[file_name]} img cv2.imread(img_path) if img is None: print(图片加载失败, img_path) continue # 找这张图的所有标注 anns [ann for ann in coco[annotations] if ann[image_id] img_info[id]] for ann in anns: x, y, w, h [int(v) for v in ann[bbox]] label cat_id2name[ann[category_id]] cv2.rectangle(img, (x, y), (x w, y h), (0, 255, 0), 2) cv2.putText(img, label, (x, max(0, y - 5)), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2) out_path fvis_{img_info[id]}.jpg cv2.imwrite(out_path, img) print(已保存, out_path)逻辑说明遍历前几张图取回该图的全部标注用cv2.rectangle画框用cv2.putText写类别名。这里用max(0, y - 5)防止文字画到图像范围外报错。参数说明bbox字段在 COCO 里是[x, y, width, height]注意不是[x1, y1, x2, y2]很多人转格式时在这里踩坑。另外cv2.rectangle的坐标必须是 int 类型所以先int(v)转换。如果你用的图片分辨率很大画完的图可能超出屏幕显示范围建议cv2.resize到宽度 1280 再保存。3.3 转成 YOLOv8 格式COCO 到 txt 的完整脚本很多现成检测框架默认不吃 COCO JSON而是用 YOLO 的 txt 标注格式每张图一个 txt每行是class_id center_x center_y width height坐标归一化到 0~1。转换脚本如下import json import os with open(annotations/instances_coco.json, r, encodingutf-8) as f: coco json.load(f) # 生成类别列表按 id 排序 cat_id2name {cat[id]: cat[name] for cat in coco[categories]} sorted_cats sorted(cat_id2name.items()) class_names [name for _, name in sorted_cats] print(类别列表, class_names) # 建立 image_id - 图片信息的映射 image_id2info {img[id]: img for img in coco[images]} out_dir yolo_labels os.makedirs(out_dir, exist_okTrue) for ann in coco[annotations]: img image_id2info[ann[image_id]] img_w img[width] img_h img[height] # COCO 的 bbox 是 [x, y, width, height] x, y, w, h ann[bbox] # 转成 YOLO 中心点格式 cx (x w / 2) / img_w cy (y h / 2) / img_h nw w / img_w nh h / img_h # 类别 id 在 COCO 中可能从 1 开始这里重映射到 0 开始的索引 class_id list(cat_id2name.keys()).index(ann[category_id]) # 每个图一个 txt文件名与图片名一致 txt_path os.path.join(out_dir, os.path.splitext(img[file_name])[0] .txt) with open(txt_path, a, encodingutf-8) as f: f.write(f{class_id} {cx:.6f} {cy:.6f} {nw:.6f} {nh:.6f}\n) print(转换完成标注文件输出到, out_dir)逻辑说明循环遍历每个标注找到对应图片的宽高把左上角加宽高的格式转成中心点格式再分别除以图片宽高得到归一化值。类别 ID 做了重映射确保从 0 开始编号。参数说明如果你的模型框架要求类别从 1 开始那最后一行写class_id 1。还有几个细节值得注意第一os.path.splitext会去掉.jpg后缀保证 txt 名和图片名一一对应第二这个脚本用追加模式写文件第二次运行前要手动清空输出目录否则重复标注会叠加我一般会在脚本开头加一段shutil.rmtree谨慎一点还是写进代码里好。4. 训练前的常见问题与避坑指南这五个地方最容易翻车把数据集真正用起来之前有几个问题几乎每个拿类似数据集的人都会碰到。下面每条都是实战中踩过的坑按现象、原因、解决三步写清楚。4.1 类别 ID 从 0 还是从 1 开始映射错位导致全盘错乱现象写转换脚本时直接拿category_id当作模型分类索引训练起来之后 loss 降不下来或者推理出来的结果永远偏向某一个类别。原因COCO 官方规范里category_id是从 1 开始编号的但很多转换工具和开源脚本默认类别从 0 开始。更隐蔽的是有的平台导出时会按照标注顺序重新编号原 JSON 里category_id可能是 3、7、9 这种不连续的值。如果直接用category_id传给模型而模型的输出通道数是按类别个数建好的就会出现越界或者错位。解决转换时先读 JSON 里的categories列表动态生成category_id - 0~N-1的映射表不要在所有代码里写死数值。我最开始就是图省事硬编码了category_id - 1结果某个类别的 id 从 5 开始减 1 之后还是错的。从那以后凡是做数据集转换第一件事就是打印类别字典人工核对一遍再往下走。4.2 长文件名里的点和哈希切分提取信息时误伤现象从文件名提取叶片分组时用split(.)想把_jpg.rf.后面的哈希去掉结果分割出来的数组长度和预期不一致拿错了片段。原因文件名里包含多个点如ASP47BladeC1703859112_jpg.rf.721ccfc...jpg直接用split(.)会得到四个以上的片段。如果用固定下标取值非常容易拿到rf或者哈希串。解决按项目实际需要的粒度做切分我会先按_下划线切成一大段提取前缀和叶片编码再单独对末尾哈希串做处理或者在切分前先限制只 split 一次filename.split(., 1)[0]。如果文件名格式统一也可以直接用正则提取你关心的那段re.match(r^([A-Z]\\d)(Blade[ABC])(\\d), filename)。正则匹配一次到位可读性也更好。4.3 bbox 浮点置 int 越界画框时数组下标溢出现象可视化或者数据处理时把bbox里的浮点坐标直接int()强转结果框画到了图像外面或者cv2.imread返回的数组下标为负值直接报错。原因COCO 标注里的坐标可能是浮点而有些标注工具生成的框本身就在图像边缘转成 int 并加宽高后x w可能超过图片宽度。解决在绘制或裁剪前做一步 clamp把所有边界限制在[0, width]和[0, height]内x, y, w, h [float(v) for v in ann[bbox]] x1 max(0, int(x)) y1 max(0, int(y)) x2 min(img_w, int(x w)) y2 min(img_h, int(y h))如果用 PIL 做裁剪也是同理先 clamp 再crop。如果只写检测模型不管可视化这个坑可以跳过但只要做数据展示、裁剪增强就绕不开。4.4 低频缺陷样本太少雷击类几十个框直接训飞现象把整个数据集扔进去训练跑完几十个 epoch雷击类的 AP 一直是 0其他类 AP 倒是正常。原因工业缺陷数据里低频类别天然存在雷击不是每天都发生能采集到几十个框已经不错。类别不平衡让模型倾向于把这类目标当成背景。解决先从 3.1 的统计脚本拿到各类别数量如果低频类别占比低于 5%就要在训练策略上做文章。常见做法有三个方向一是直接做图像切片或复制粘贴增强把这几个低频框人工复制到不同背景里二是对低频类别做过采样让每个 epoch 都能看到全部低频样本三是用已经训好的模型做伪标签去未标注图片里挖掘同类样本回来人工复核后补进去。这个流程在工业数据项目里非常常用。4.5 按文件随机划分训练验证集同叶片图片泄漏导致指标虚高现象随机把 2249 张图按 8:2 划分训练集和验证集训练过程正常验证结果也很漂亮但部署到新风机叶片上实测 AP 掉了一大截。原因同一风机的多张图片可能在特征上高度相似相同背景、相同光照、相同叶片批次。随机划分把部分同源图片切到了验证集里验证时模型“记住”了背景而不是学到缺陷本身指标虚高。解决划分数据集前先按文件名前缀和叶片编码分成小组保证同一个组的图片要么全部进训练集要么全部进验证集。这就是业界常说的 group split。实现不复杂提取ASP47、BladeC这类字段作为分组 key用 scikit-learn 的GroupShuffleSplit或手工切分都可以。如果按叶片位置再细分成 A/B/C 三组做交叉验证效果更接近真实部署。5. 把数据吃透再训练快速验证技巧与后续扩展思路5.1 训练前做一次 bbox 尺寸分布散点图数据清洗做得差不多的前提下我推荐先画一张 bbox 尺寸散点图横轴是框宽度占比纵轴是框高度占比点的大小或颜色表示类别。这张图能直接告诉你表面裂纹这类细长目标是不是集中在某些长宽比区域排水孔受损是不是普遍小尺寸。如果排水孔的框平均宽度只有图片宽度的 2% 左右那训练时输入分辨率要适当调高或者把图片切成 Patch 训练。忽略这一步直接默认 640 分辨率输入小目标很容易被下采样弄丢。5.2 数据增强时保护小目标和细长目标对表面裂纹这类细长物体做马赛克增强或者随机裁剪时很容易把半个目标切掉标注框跟着失效。我一般会在增强管线里设置最小保留面积比例比如框被裁剪后与原始框面积比低于 0.5 就直接丢弃该样本而不是让它带着残缺标签进入训练。另一个习惯是把旋转增强的步长设小一点叶片缺陷不像自然图像里的猫狗旋转 90 度过强会把“细裂纹”变成视觉上不真实的方向反而干扰模型。5.3 数据扩展半自动标注补样本2249 张图训练一个可用基线是够的但离生产级还有差距。如果后续要扩大数据量常见操作是先用当前模型对大量未标注图片做推理输出高置信度预测再用脚本把预测结果转成 COCO JSON 草稿人工用标注工具审核修正后合入原数据集。这样一套流程下来同等工作量下能比纯人工标注多产出 3 倍左右的标注量。这个数据集给我的最大感受是2249 张图不算多但它是真实巡检场景里采回来的背景复杂度和缺陷形态比实验室数据实用得多。只要把类别平衡、分组划分和 bbox 边界处理好用它跑出来的模型能直接作为叶片缺陷检测项目的起点。从那以后我每次拿到新数据集都会强制自己先走一遍统计、可视化、转换三步再考虑训练参数。数据不看明白就开训后面所有调参都是玄学。希望这份拆解能帮你少走点弯路祝训练顺利。本文还有配套的精品资源点击获取

相关新闻

demon谱分析:水声信号中调制特征提取实战指南

demon谱分析:水声信号中调制特征提取实战指南

简介:本资源是面向水声信号处理研究者与工程实践者的MATLAB仿真学习包,聚焦demon谱分析这一关键非平稳信号处理技术,适用于水声通信、海洋探测及水下目标识别等实际场景。压缩包共4个文件(2个MAT数据文件用于存储预处理/仿真信号&…

2026/10/18 13:38:02 阅读更多 →
微网多时间尺度协调调度模型复现:电动汽车灵活性代码解析

微网多时间尺度协调调度模型复现:电动汽车灵活性代码解析

简介:面向微网优化运行方向的毕业设计,这份源程序包实现了计及电动汽车灵活性的微网多时间尺度协调调度模型,适合电力系统、新能源及电气自动化相关专业学生用于课题研究与参考复现。模型统筹考虑电池储能老化成本、价格型与激励型需求响应以…

2026/10/18 13:38:02 阅读更多 →
机器人嵌入式岗位五大品类技术栈差异与跃迁指南

机器人嵌入式岗位五大品类技术栈差异与跃迁指南

机器人行业这两年招聘需求分化得厉害,同一个"嵌入式工程师"的岗位名称,放到人形机器人公司和放到AMR移动机器人公司,面试问的东西能差出十万八千里。我身边有不少做嵌入式的朋友,投简历的时候看着JD都差不多&#xff0c…

2026/10/18 13:38:02 阅读更多 →

最新新闻

Reflector 7.4.1.179 绿色注册版部署指南:插件集成与避坑实践

Reflector 7.4.1.179 绿色注册版部署指南:插件集成与避坑实践

简介:这是一份面向.NET开发者的反编译工具整合包,主角是经典的.NET Reflector 7.4.1.179绿色注册版,并真正集成了FileDisassembler与FileGenerator两款广受好评的插件,解决原版只能逐个查看方法、无法批量导出源码的痛点。包内共2…

2026/10/18 14:58:53 阅读更多 →
Vue权限控制实战:路由、菜单与按钮级权限完整链路

Vue权限控制实战:路由、菜单与按钮级权限完整链路

简介:这份资源面向正在开发后台管理系统的Vue前端开发者,聚焦权限控制这一核心场景,帮助解决不同角色用户只能访问被授权功能的问题。内容围绕两种主流限制方式展开:一是路由不可见,借助Vue Router的meta字段存储权限列…

2026/10/18 14:58:53 阅读更多 →
建筑施工安全技术资料如何变成项目台账?链路拆解与归档实操

建筑施工安全技术资料如何变成项目台账?链路拆解与归档实操

简介:建筑施工安全技术资料是现场安全管理的底账,而非应付检查的废纸。其核心原理是把方案、交底、检查、验收、整改五个环节串成管理链路,再按塔吊、基坑、临电等对象建立检索维度,形成“链路对象”的矩阵台账。通过统一编号、逐…

2026/10/18 14:58:53 阅读更多 →
YOLOv8骨干替换EfficientNetV2:均质架构提升小目标检测与推理性能

YOLOv8骨干替换EfficientNetV2:均质架构提升小目标检测与推理性能

1. 改造动机与方案选型1.1 YOLOv8原有骨干的瓶颈在哪里动手换主干之前,我先把YOLOv8原生CSPDarknet53的短板列了一遍。YOLOv8默认的backbone在COCO这类通用检测任务上确实够用,但一旦碰到分辨率高、小目标密集或纹理细节要求高的场景,它的问题…

2026/10/18 14:58:53 阅读更多 →
STM32F407 DCMI图像采集丢帧错位的硬件时序真相

STM32F407 DCMI图像采集丢帧错位的硬件时序真相

简介:本资源是一份基于STM32F407微控制器的高速并行12位ADC与DCMI数字摄像头接口协同开发实践方案,面向嵌入式初学者及图像采集方向进阶开发者,解决模拟信号高速采样与图像数据流同步传输的核心工程问题,适用于工业检测、智能视觉…

2026/10/18 14:58:53 阅读更多 →
《华为团队工作法》华为人才管理和薪酬激励:构建四位一体点燃员工热情的激励体系

《华为团队工作法》华为人才管理和薪酬激励:构建四位一体点燃员工热情的激励体系

本 115 页 PPT 适配企业人才管理、薪酬激励、干部管理类咨询方案与 HR 培训课件编制。基于华为人才管理体系核心实践,系统拆解人才选配、评估、干部任用、人才成长、文化锻造、薪酬激励、全面激励、健康成长八大模块。涵盖 STAR 行为面试、人才搭配四宫格、绩效能力…

2026/10/18 14:57:52 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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 阅读更多 →