数据标注标注框全链路实战:从工具选型到格式转换与质检避坑

简介:这份PPT资料聚焦数据标注中的标注框标注方法,面向机器学习、计算机视觉方向的初学者与算法工程师,帮助其理解图像目标标注的核心思路与典型场景。内容系统梳理了矩形框标注、自由矩形(斜矩形)标注与3D框标注三类方法,并延伸至自动驾驶目标检测与文本识别两大应用场景,兼顾原理说明与适用边界。资源包为单个pptx文件,大小约1.07MB,结构紧凑,便于快速浏览与课堂分享。目前已有186人学习下载。通过这份资料,读者可掌握不同标注框的选型依据,理解矩形框在规则目标提取、斜矩形在倾斜文本OCR、3D框在智能驾驶车辆定位中的具体价值,为后续标注工具实操与数据集构建提供清晰的方法论参考。

1. 数据标注里的标注框:一份 PPT 讲不清的落地细节

很多人第一次接触数据标注,都是从一份《数据标注:标注框标注方法.pptx》开始的。翻完十几页幻灯片,感觉懂了——不就是拉个矩形框把目标圈起来吗?真到动手那天才发现,框该贴多紧、遮挡了怎么办、小目标要不要放大、导出格式怎么对齐训练脚本,全是幻灯片里没写的坑。标注框是目标检测数据集的原子单元,它的质量直接决定模型上限,而这份 PPT 通常只覆盖了“怎么画”,没覆盖“怎么画对、怎么画快、怎么验收”。这篇笔记面向三类人:刚接手标注任务的新手、要制定标注规范的技术负责人、以及需要把标注结果接进训练流水线的工程师。我会把标注框从工具选型、操作规范、格式转换到质检的完整链路拆开讲,每一步都给可复现的命令和参数,让你看完就能在自己的数据集上跑通。

2. 标注框工具选型:别在第一步就把返工率拉满

标注工具选错,后面全是血泪。我见过太多团队用截图工具加 Excel 记录坐标,标了三千张才发现没法批量导出,只能重来。选型的核心不是功能多,而是三件事:导出格式能不能直接喂给训练框架、快捷键能不能让标注员手不离键盘、多人协作时有没有冲突检测。下面按本地单机、团队协作、半自动三条路线拆开讲。

2.1 本地单机场景:LabelImg 与 Labelme 的边界

单机标注最常用的是 LabelImg(矩形框)和 Labelme(多边形/矩形)。LabelImg 的优势是轻量、快捷键顺手、直接输出 PASCAL VOC 的 XML 或 YOLO 的 txt。Labelme 更灵活,支持多边形和点,但导出的是 JSON,需要转换脚本。选哪个取决于你的任务:纯矩形框检测用 LabelImg,需要分割或旋转框用 Labelme。

安装用 pip 即可,注意 Python 版本别太新,3.8 到 3.10 最稳:

# 创建独立环境,避免和训练环境的依赖打架 conda create -n labelimg python=3.9 -y conda activate labelimg # 安装 LabelImg,指定版本避免拉到最后一次提交的未发布状态 pip install labelImg==1.8.6 # 启动,直接指定图片目录和预定义类别文件 labelImg /path/to/images /path/to/classes.txt

启动后左侧是文件列表,中间画布,右侧是类别按钮。关键操作:W创建矩形框,Ctrl+S保存当前,D下一张,A上一张。classes.txt每行一个类别名,顺序要和训练时的类别索引一致,否则标签全错位。这个文件建议纳入版本管理,改类别时全组同步。

参数上有一个容易忽略的点:LabelImg 默认保存为 PASCAL VOC XML,如果你要 YOLO 格式,在菜单里切换PascalVOC到YOLO,切换后保存的 txt 是归一化的class_id cx cy w h,值域 0 到 1。归一化用的是图片实际宽高,所以图片尺寸信息必须准确,别用缩略图标注。

2.2 团队协作场景:用 CVAT 做多人分工与审核

当标注量超过五千张、标注员超过两个人,单机工具就会暴露问题:文件传来传去、类别定义漂移、没人知道谁标了哪张。这时候需要带任务分配和审核流的工具。CVAT 是常见选择,支持矩形框、多边形、关键点,自带任务分配、审核状态、导出多种格式。

部署用 Docker,别在生产机上裸装:

# 拉取 CVAT 的 docker compose 配置,具体版本以官方仓库当前稳定版为准 git clone https://github.com/cvat-ai/cvat cd cvat # 启动服务,首次会拉镜像,耐心等 docker compose up -d # 创建管理员账号 docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'

启动后浏览器访问localhost:8080,登录后创建 Project,在 Project 里定义标签集(label set),再创建 Task 分配图片和标注员。审核流程靠 Task 的 stage 字段:annotation 阶段标注员干活,validation 阶段审核员检查,acceptance 阶段负责人确认。每个阶段的状态变更都有记录,出问题能追溯到人。

CVAT 导出格式在 Task 的 Actions 菜单里,选Export task dataset,格式选YOLO 1.1或COCO 1.0。注意导出时的Save images选项,如果图片已经在你本地,别勾选,否则导出的 zip 会包含图片副本,体积翻倍。

2.3 半自动预标注:用现成模型把框先画个大概

纯手工拉框的效率瓶颈很明显,一张图十几个目标,标完要一两分钟。半自动预标注的思路是:先用一个通用检测模型跑一遍,把预测框导入标注工具,标注员只做修正。这样能把效率提升两到三倍,代价是模型漏检的目标需要人工补。

常见做法是用 YOLO 系列或 DETR 系列在 COCO 预训练权重上推理,导出成 LabelImg 能读的 XML 或 CVAT 能导入的格式。以 YOLOv8 为例:

from ultralytics import YOLO import xml.etree.ElementTree as ET from PIL import Image import os # 加载预训练模型,第一次运行会自动下载权重 model = YOLO("yolov8n.pt") # 对单张图片推理,conf 阈值调低一点,宁可多检也别漏 results = model.predict("test.jpg", conf=0.25, iou=0.5) # 把预测结果写成 PASCAL VOC XML,方便 LabelImg 直接打开修正 img = Image.open("test.jpg") w, h = img.size root = ET.Element("annotation") ET.SubElement(root, "filename").text = "test.jpg" size = ET.SubElement(root, "size") ET.SubElement(size, "width").text = str(w) ET.SubElement(size, "height").text = str(h) for box in results[0].boxes: x1, y1, x2, y2 = box.xyxy[0].tolist() cls_id = int(box.cls[0]) obj = ET.SubElement(root, "object") ET.SubElement(obj, "name").text = model.names[cls_id] bnd = ET.SubElement(obj, "bndbox") ET.SubElement(bnd, "xmin").text = str(int(x1)) ET.SubElement(bnd, "ymin").text = str(int(y1)) ET.SubElement(bnd, "xmax").text = str(int(x2)) ET.SubElement(bnd, "ymax").text = str(int(y2)) ET.ElementTree(root).write("test.xml")

这段代码的关键参数是conf和iou。conf=0.25是置信度阈值,调低会多出很多误检框,标注员删框的工作量增加;调高会漏检,标注员要补框。我的经验是预标注阶段用 0.2 到 0.3,让召回优先,因为删框比补框快。iou=0.5是 NMS 的 IoU 阈值,重叠目标多的场景调到 0.6 到 0.7,避免把相邻目标合并。

预标注的类别名要和你的classes.txt对齐。COCO 预训练模型的类别是固定的八十类,如果你的目标不在里面,预标注只能框出“像目标”的区域,类别还得人工改。这种情况下预标注的价值在于定位,不在于分类。

3. 标注框的操作规范:贴边、遮挡、小目标怎么定

工具选好之后,真正决定数据质量的是操作规范。同一批数据,两个人标出来的框可能差十几个像素,训练时模型学到的边界就是模糊的。规范要写成文档,配正反例截图,新标注员上岗前先标二十张做校准。下面三条是最容易出分歧的地方。

3.1 贴边规则:框到目标外沿还是留一像素

标注框应该紧贴目标的外接矩形,这是基本原则。但“紧贴”在不同场景下有歧义:目标边缘模糊时,框到肉眼可见的边界还是框到置信边界?目标有阴影时,阴影算不算目标的一部分?

我的做法是定一条硬规则:框到目标可见像素的最外沿,阴影和反光不算。对于边缘模糊的目标,以“超过百分之五十的像素属于目标”为界。这条规则要写进规范,并且用同一张图让所有标注员标一遍,对比差异,超过五个像素的差异要讨论统一。

有一个反直觉的点:框太紧反而可能有害。如果目标边缘有运动模糊,框紧到模糊像素的内侧,模型学到的边界会比实际目标小一圈,推理时框也会偏小。这种情况下允许框向外扩一到两个像素,把模糊带包进去。这个容差要在规范里写明,不能靠标注员自由发挥。

3.2 遮挡处理:可见部分框还是整体框

遮挡是标注里分歧最大的场景。一辆车被树挡住一半,框可见部分还是框整车?两种做法都有道理,取决于你的应用。如果模型部署时目标总是被遮挡,训练数据就应该用可见部分框,让模型学会从局部推断。如果目标是计数或跟踪,需要知道目标的完整范围,就应该框整体,即使被遮挡的部分是推测的。

常见做法是分两类处理:遮挡比例小于百分之三十的,框整体,被遮挡部分按对称或运动趋势推测;遮挡比例大于百分之三十的,框可见部分,并在属性里标记occluded=true。这个属性在 COCO 格式里有对应字段,YOLO 格式没有,需要自己在文件名或额外文件里记录。

提示:遮挡标注的分歧要在项目启动前定死,中途改规则会导致前后数据不一致,模型学到一个混乱的边界分布。

3.3 小目标与密集目标:放大标还是原图标

小目标指在图像中占比小于百分之一的目标,比如航拍图里的车、监控图远处的人。小目标标注的难点是肉眼看不清边界,拉框时手一抖就差好几个像素。密集目标指目标挨在一起,框会重叠。

小目标的处理方式是先放大再标。LabelImg 和 CVAT 都支持滚轮缩放,标小目标时放大到百分之四百以上,框完再缩回去检查。如果整张图都是小目标,考虑把图片切块标注,每块单独导出,训练时再用切块坐标还原。切块的重叠率设百分之二十,避免目标被切在边界上。

密集目标的处理方式是先标一个,复制粘贴再微调。LabelImg 支持Ctrl+C和Ctrl+V复制当前框,CVAT 支持Ctrl+C后Ctrl+V在鼠标位置粘贴。这样比重新拉框快,而且框的尺寸一致,适合同类目标密集的场景。注意粘贴后要检查是否和相邻框重叠过多,IoU 超过 0.7 的两个框在训练时会被 NMS 抑制掉一个,等于白标。

4. 格式转换:VOC、YOLO、COCO 之间的坐标对齐

标注工具导出的格式和训练框架要求的格式往往不一致。LabelImg 默认 VOC XML,YOLO 训练要 txt,COCO 预训练模型微调要 JSON。转换脚本网上一搜一大把,但坐标对齐的坑只有自己踩过才知道。这一章给三个格式的转换代码和验证方法。

4.1 VOC 转 YOLO:归一化与类别映射

VOC XML 里的坐标是绝对像素值,YOLO txt 要求归一化的中心点坐标和宽高。转换时最容易错的是类别索引:VOC 里是类别名字符串,YOLO 要整数索引,索引顺序必须和训练时的names列表一致。

import xml.etree.ElementTree as ET import os # 类别名到索引的映射,顺序必须和训练配置里的 names 完全一致 classes = ["person", "car", "dog"] class_to_id = {name: i for i, name in enumerate(classes)} def voc_to_yolo(xml_path, out_dir): tree = ET.parse(xml_path) root = tree.getroot() size = root.find("size") w = int(size.find("width").text) h = int(size.find("height").text) lines = [] for obj in root.findall("object"): name = obj.find("name").text if name not in class_to_id: # 类别不在映射表里,跳过并打印警告,别静默丢弃 print(f"skip unknown class {name} in {xml_path}") continue cls_id = class_to_id[name] bnd = obj.find("bndbox") x1 = float(bnd.find("xmin").text) y1 = float(bnd.find("ymin").text) x2 = float(bnd.find("xmax").text) y2 = float(bnd.find("ymax").text) # 归一化,注意除法前转 float,Python2 的坑现在少了但别大意 cx = (x1 + x2) / 2.0 / w cy = (y1 + y2) / 2.0 / h bw = (x2 - x1) / w bh = (y2 - y1) / h lines.append(f"{cls_id} {cx:.6f} {cy:.6f} {bw:.6f} {bh:.6f}") out_path = os.path.join(out_dir, os.path.basename(xml_path).replace(".xml", ".txt")) with open(out_path, "w") as f: f.write("\n".join(lines))

转换后必须验证。验证方法是随机抽十张,用 OpenCV 把 YOLO 坐标还原成像素框画在图上,肉眼看是否和原图目标对齐。还原公式是x1 = (cx - bw/2) * w,y1 = (cy - bh/2) * h,x2 = (cx + bw/2) * w,y2 = (cy + bh/2) * h。如果框整体偏移,检查宽高是不是用错了图片尺寸;如果框大小对但位置偏,检查中心点计算。

4.2 COCO JSON 的读取与子集抽取

COCO 格式是一个大 JSON,包含images、annotations、categories三个主键。读取时先建索引,别每次遍历整个列表。抽取子集时要注意annotations里的image_id和images里的id对应,category_id和categories里的id对应。

import json import os def coco_subset(json_path, out_path, keep_categories): with open(json_path) as f: data = json.load(f) # 建立类别名到 id 的映射,只保留需要的类别 cat_ids = {c["id"] for c in data["categories"] if c["name"] in keep_categories} if not cat_ids: raise ValueError("no category matched, check keep_categories") # 过滤 annotations,只保留目标类别的标注 kept_anns = [a for a in data["annotations"] if a["category_id"] in cat_ids] kept_img_ids = {a["image_id"] for a in kept_anns} # 过滤 images,只保留有标注的图片 kept_imgs = [img for img in data["images"] if img["id"] in kept_img_ids] kept_cats = [c for c in data["categories"] if c["id"] in cat_ids] out = {"images": kept_imgs, "annotations": kept_anns, "categories": kept_cats} with open(out_path, "w") as f: json.dump(out, f)

这段代码的关键是keep_categories参数,传入你要保留的类别名列表。抽取后要检查annotations里的bbox字段,COCO 的 bbox 格式是[x, y, width, height],左上角加宽高,不是[x1, y1, x2, y2]。这个格式差异是转换时最常见的错误来源,写转换脚本时先在纸上画一遍坐标。

4.3 三种格式的坐标定义对比

格式坐标定义值域类别表示常见坑
VOC XMLxmin, ymin, xmax, ymax绝对像素类别名字符串图片尺寸和实际不符
YOLO txtcx, cy, w, h归一化 0-1整数索引索引顺序和 names 不一致
COCO JSONx, y, width, height绝对像素整数 idbbox 是左上角加宽高

这张表建议打印出来贴在工位上,写转换脚本时对照检查。三种格式之间的转换本质是坐标定义的翻译,只要把每个格式的坐标含义搞清楚,转换就是套公式。

5. 避坑与排查:标注框质量问题的五个典型现场

标注做完不等于能用,质检环节能拦下大部分低级错误。这一章列五个我实际遇到过的翻车现场,按现象、原因、解决三段写,你可以对照自己的数据集排查。

5.1 训练 loss 不降,检查发现大量框的宽高为负

现象:模型训练几个 epoch 后 loss 卡在某个值不动,可视化预测框全是乱飞。原因:转换脚本里x2 - x1或y2 - y1算出了负数,说明 XML 里 xmin 大于 xmax。这种情况通常是标注员拉框时从右下往左上拉,工具没做坐标排序。解决:在转换脚本里加一行x1, x2 = min(x1, x2), max(x1, x2),y 同理。同时检查标注工具是否有坐标排序选项,LabelImg 默认会排序,但某些版本有 bug。

5.2 类别索引错位,模型把猫认成狗

现象:推理时类别全错,但框的位置是对的。原因:classes.txt的顺序和训练配置里的names顺序不一致。比如标注时 classes.txt 是["dog", "cat"],训练配置写的是["cat", "dog"],索引 0 在标注里是 dog,在训练里是 cat。解决:把classes.txt和训练配置的names用同一个文件生成,或者写一个校验脚本,训练前对比两个列表是否完全一致。这个坑我踩过两次,现在养成习惯:类别定义只有一个源头,其他文件从它生成。

5.3 图片尺寸和标注尺寸不匹配,框整体偏移

现象:标注文件里的框在可视化时整体偏移或缩放。原因:标注时用的图片是原图,训练时用了预处理后的图片(比如 resize 到 640),但标注没有跟着缩放。或者标注时用的缩略图,尺寸信息写的是缩略图尺寸。解决:标注和训练用同一套图片,如果训练要 resize,在数据加载时做在线增强,别在标注阶段改图片。检查 XML 里的size字段和实际图片尺寸是否一致,写一个脚本批量校验。

5.4 密集小目标漏标,模型召回率上不去

现象:模型对密集小目标的召回率明显低于大目标。原因:标注时小目标看不清,标注员跳过了,或者框得太大把相邻目标合并了。解决:先统计每张图的目标数量分布,找出目标数异常少的图片,这些大概率有漏标。用预标注模型跑一遍,对比预标注框和人工框的数量差异,差异大的图片重点复查。小目标标注时强制放大到百分之四百以上,标完缩回检查。

5.5 导出格式选错,训练脚本读不到数据

现象:训练脚本报错找不到标注文件,或者读到的标注为空。原因:导出时选了错误的格式,比如训练要 YOLO txt,导出成了 VOC XML。或者导出路径和训练配置的路径不一致。解决:训练前先跑一个数据校验脚本,检查每个图片是否有对应的标注文件,标注文件是否非空,类别索引是否在合法范围内。这个脚本花十分钟写,能省几小时的排查时间。

import os def validate_dataset(img_dir, label_dir, num_classes): issues = [] for img_name in os.listdir(img_dir): if not img_name.lower().endswith((".jpg", ".png", ".jpeg")): continue label_name = os.path.splitext(img_name)[0] + ".txt" label_path = os.path.join(label_dir, label_name) if not os.path.exists(label_path): issues.append(f"missing label: {img_name}") continue with open(label_path) as f: lines = [l.strip() for l in f if l.strip()] if not lines: issues.append(f"empty label: {img_name}") continue for line in lines: parts = line.split() if len(parts) != 5: issues.append(f"bad format: {img_name} -> {line}") continue cls_id = int(parts[0]) if cls_id < 0 or cls_id >= num_classes: issues.append(f"bad class id: {img_name} -> {cls_id}") for v in parts[1:]: if not 0 <= float(v) <= 1: issues.append(f"out of range: {img_name} -> {line}") return issues

这个校验脚本覆盖了五类常见问题:缺标注文件、空标注、格式错误、类别索引越界、坐标越界。训练前跑一遍,把问题清单打出来,逐条修。养成这个习惯之后,因为数据格式问题导致的训练失败基本绝迹。

6. 从标注框到训练闭环:一个可复用的质检技巧

标注的终点不是导出文件,而是模型能正常训练并且指标符合预期。我一般会在标注和训练之间加一道质检关卡,用一个小模型快速验证标注质量。具体做法是:从标注数据里抽百分之十做验证集,用预训练模型微调几个 epoch,看验证集上的 mAP。如果 mAP 明显低于预期,说明标注有问题,回去查质检清单。这个技巧的好处是能在投入大量训练资源之前发现数据问题,避免白跑几十个 epoch。

质检关卡的具体参数:验证集比例百分之十到百分之十五,太少不稳定,太多浪费标注数据。微调 epoch 设十到二十,学习率设预训练时的十分之一。如果验证集 mAP 在五个 epoch 内没有上升趋势,基本可以判定标注有系统性问题,比如类别定义混乱或框普遍偏移。这时候别急着调模型超参,先回去看数据。

还有一个更轻量的技巧:用标注数据训练一个极简的分类器,把每个标注框裁剪出来,看分类准确率。如果分类准确率低于百分之九十,说明框的位置或类别有问题。这个方法比训练检测模型快得多,几分钟就能跑完,适合在标注过程中定期抽检。

我自己的习惯是每标完一千张就跑一次这个轻量质检,把问题拦在早期。标注这件事,后悔药是没有的,标错了要么重标要么带着噪声训练,两种代价都高。希望帮到你。

本文还有配套的精品资源,点击获取

相关新闻

基于C#的Zigbee串口上位机开发:从帧解析到设备控制

基于C#的Zigbee串口上位机开发:从帧解析到设备控制

简介&#xff1a;一份基于C#的Zigbee传感器监控上位机完整工程&#xff0c;面向需要开发串口通信、物联网数据采集与控制界面的C#开发者。项目以小区燃气自助监控为应用场景&#xff0c;通过串口对接Zigbee网络&#xff0c;实现传感器信息实时显示、远程控制&#xff0c;并集成…

2026/10/20 6:31:35 阅读更多 →
数据结构-循环链表

数据结构-循环链表

循环链表1. 定义节点2. 创建链表3. 头插4. 尾插5. 是否为空6. 打印&#xff08;遍历变量&#xff09;7. 链表长度8. 查找9. 头删10. 尾删11. 指定值删12. 销毁

2026/10/20 6:31:35 阅读更多 →
ArcGIS符号库原理与实战:从语义编码到质量管控

ArcGIS符号库原理与实战:从语义编码到质量管控

简介&#xff1a;本资源是面向GIS从业者、地图制图人员及ArcGIS初高级用户的实用型符号库合集&#xff0c;解决日常项目中符号缺失、风格不统一、制图效率低等核心问题。压缩包共142个文件&#xff0c;包含74个.style符号样式文件&#xff08;用于直接加载至ArcGIS符号系统&…

2026/10/20 6:30:35 阅读更多 →

最新新闻

Pallas引擎如何看穿AI写作?从降AI到人机协同的正确路径

Pallas引擎如何看穿AI写作?从降AI到人机协同的正确路径

先说结论&#xff1a;2026年了&#xff0c;还在问“怎么降AI”的人&#xff0c;思路本身就反了。真正的答案不是研究怎么骗过Pallas引擎&#xff0c;而是研究为什么它盯上你。我把国内外主流AIGC检测工具&#xff0c;包括知网近期升级的Pallas引擎思路做了拆解&#xff0c;结合…

2026/10/20 7:14:56 阅读更多 →
Boost PFC CCM平均电流控制与相位补偿的Plecs仿真实战

Boost PFC CCM平均电流控制与相位补偿的Plecs仿真实战

做开关电源仿真绕不开PFC这个话题。最近我把Boost PFC的CCM平均电流控制叠加电流相位补偿控制&#xff0c;在Plecs里完整跑了一遍仿真&#xff0c;从主电路参数计算到控制环路搭建&#xff0c;再到波形分析和问题排查&#xff0c;整个过程踩了几个坑&#xff0c;也把原理重新梳…

2026/10/20 7:14:56 阅读更多 →
批量出图怎样做到像素级可控?规则渲染管线实战解析

批量出图怎样做到像素级可控?规则渲染管线实战解析

这个需求最近真的很多人问。我自己的项目里也是碰到一模一样的瓶颈&#xff1a;业务方要求批量出图&#xff0c;图片里不能有丝毫随机性——同样的输入必须产出同样的构图、同样的配色、同样的文字位置。拿通用多模态生成模型试了几轮&#xff0c;效果确实惊艳&#xff0c;但根…

2026/10/20 7:14:56 阅读更多 →
litellm:统一大模型接入层,解决多模型切换与适配之痛

litellm:统一大模型接入层,解决多模型切换与适配之痛

最近在做一个多模型调度的内部项目时&#xff0c;我把团队的模型接入层整体切换到了 litellm。这个决定帮我省掉了大量重复的适配代码&#xff0c;也让我们在评估不同大模型服务时效率高了不少。如果你同样被"每个模型一套 SDK、一套请求格式、一套报错风格"折磨过&a…

2026/10/20 7:14:56 阅读更多 →
新手考古路线图:3 步定位登月舱降落代码 BURN, BABY, BURN——从 Luminary099 源码索引到 P63 着陆算法

新手考古路线图:3 步定位登月舱降落代码 BURN, BABY, BURN——从 Luminary099 源码索引到 P63 着陆算法

新手考古路线图&#xff1a;3 步定位登月舱降落代码 BURN, BABY, BURN——从 Luminary099 源码索引到 P63 着陆算法 【免费下载链接】Apollo-11 Original Apollo 11 Guidance Computer (AGC) source code for the command and lunar modules. 项目地址: https://gitcode.com/…

2026/10/20 7:14:56 阅读更多 →
投机推理:突破大模型自回归瓶颈的并行验证加速技术

投机推理:突破大模型自回归瓶颈的并行验证加速技术

1. 大模型推理的“车堵一条道”困局老做推理优化的朋友都有过这种体验&#xff1a;GPU 明明算力爆炸强&#xff0c;但每次生成一个 token 都得几毫秒甚至几十毫秒&#xff0c;batch 稍微大一点&#xff0c;延时就像坐火箭一样往上蹿。一开始我们都骂“模型太大了”&#xff0c;…

2026/10/20 7:13:55 阅读更多 →

日新闻

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实现详解

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

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

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

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

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

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

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在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 阅读更多 →