YOLO11训练到TensorRT部署:模型权重到推理引擎完整实战指南
简介YOLO11目标检测训练与TensorRT部署实战项目基于coco_minitrain_10k约1万张图片的小型数据集训练完整覆盖从数据准备、模型训练、ONNX导出、TensorRT引擎构建到加速推理的落地流程面向需要快速构建高实时性检测系统的开发者和研究人员。资源共67个文件主要包括Python训练/推理脚本、Shell一键执行脚本、YAML配置、示例图片以及README流程文档压缩包仅2.82MB目录按训练、导出、引擎构建、推理分模块组织。项目提供导出ONNX及onnx2trt转换脚本可无缝衔接跨框架部署并以一键执行脚本降低操作门槛帮助开发者避开常见环境与转换坑。已有1287人学习这份轻量但完整的实战参考适合希望同时掌握YOLO11算法原理与TensorRT优化技巧的工程师和研究者。1. YOLO11训练TensorRT部署从模型权重到线上推理引擎的一条完整链路目标检测项目做到最后真正让人头疼的往往不是模型精度而是模型从训练环境里跑通之后怎么把它变成一个能在生产机器上连续推理、不吃过多显存、延迟还稳的引擎。YOLO11目标检测算法训练TensorRT部署实战这套方案恰好覆盖的就是这条链路先用YOLO11完成数据准备、模型训练和验证再把训练好的权重导出为ONNX最终用TensorRT生成推理引擎并封装出可调用的检测接口。对刚接触部署的新手它最大的价值是让你提前看到训练完不等于交付完对有经验的工程师它把从权重到engine的每一步边界都摊开了——哪些参数能省哪些坑不能跳。这篇笔记就按我实际做这类项目时的路径来讲先搭环境、再训练、再导出、再部署、最后把常见翻车点一次说清。2. 环境与工程结构版本对齐是第一步也是一键脚本能替你做的事2.1 环境版本匹配先确认CUDA、TensorRT、PyTorch三者兼容我接手的第一个TensorRT部署项目卡在环境上就耗了整整两天。训练环境和部署环境分离是常态训练机器上PyTorch版本新部署机器上驱动旧结果导出的ONNX在目标机器上要么加载报错要么engine构建失败。所以第一步不是急着跑训练而是先把部署机器的软件栈定死。常见做法是分开两套环境。训练机只需要Python 3.8以上、PyTorch和Ultralytics库部署机则必须严格对齐显卡驱动、CUDA运行时、cuDNN和TensorRT。TensorRT对CUDA版本敏感不同版本的TensorRT对应不同CUDA版本装错之后trtexec能启动但构建engine时多半会出莫名其妙的算子错误。我一般会在部署机上先用一张表记录下来再动手组件版本要求说明显卡驱动满足CUDA版本下限用驱动自带的nvidia-smi确认不是看CUDA Toolkit安装版本CUDA与TensorRT官方要求对齐部署机可以用运行时版不必装完整ToolkitcuDNN与CUDA版本配套TensorRT运行时会调用版本不符容易在推理初始化时报错TensorRT与CUDA严格匹配构建engine和运行engine用同一套最好ONNX Runtime可选用于对比导出ONNX后的输出一致性不参与最终推理这个步骤没有捷径只能先查部署机的显卡驱动支持的最高CUDA版本再倒推TensorRT和PyTorch的版本。常踩的坑是装了最新的CUDA Toolkit但驱动版本旧训练没问题一到TensorRT就报驱动不支持的错。验证驱动是否满足条件在部署机上跑一下nvidia-smi驱动显示的CUDA Version就是上限安装的东西不能超过它。2.2 项目目录结构数据、权重、引擎和脚本各自归位完整流程教程里最容易被忽略的是工程结构。这类项目跑通之后要反复训练、反复调参、反复重导引擎如果目录乱后续维护成本比训练成本还高。我一般会按下面这种方式组织模拟项目X的目录lab_yolo11_trt/ ├── data/ │ ├── images/ │ └── labels/ ├── weights/ │ ├── last.pt │ └── best.pt ├── exports/ │ ├── best.onnx │ └── best.engine ├── scripts/ │ ├── train.sh │ ├── export_onnx.sh │ └── build_engine.sh ├── test/ │ ├── demo.jpg │ └── result.jpg └── src/ ├── train.py ├── export.py ├── build.py └── infer.pyweights放训练产物exports放ONNX和engine文件scripts放一键执行脚本src放带参数的Python入口。这样做的直接好处是训练、导出、构建、推理四个阶段互不污染出问题的时候能快速定位是哪一步的文件不对而不是在一个大目录里翻。尤其是ONNX和engine这种生成过程比较耗时的产物单独放一个目录方便做版本对比。2.3 一键执行脚本把固定流程串起来但别把它当黑匣子标题里提到的一键执行脚本本质是把上面四个阶段串成一个入口。常见做法是用bash脚本接收一个参数来指定执行到哪个阶段这样既能一键跑完也能单独重置某个环节。我一般会写成这样#!/bin/bash # 一键执行脚本示例支持 train / export / build / infer 四个参数 MODE${1:all} case $MODE in train) python src/train.py --data data/data.yaml --weights weights/best.pt ;; export) python src/export.py --weights weights/best.pt --opset 17 ;; build) trtexec --onnxexports/best.onnx --saveEngineexports/best.engine \ --fp16 --minShapesimages:1x3x640x640 \ --optShapesimages:1x3x640x640 --maxShapesimages:1x3x640x640 ;; infer) python src/infer.py --engine exports/best.engine --input test/demo.jpg ;; *) echo Usage: ./run.sh [train|export|build|infer] ;; esac脚本本身的逻辑很简单真正需要注意的是一键脚本的定位是把固定参数固化下来不是替你做版本决策。比如--fp16开关和--maxShapes的数值不同模型、不同输入分辨率下可能都要调整如果脚本里写死了换数据集时很容易忘记改结果构建出来的engine在动态尺寸下表现异常。所以在实际的完整流程教程里我最强调的不是脚本多智能而是每个参数为什么是这个值。3. 训练阶段把数据集变成YOLO11能真正学到东西的格式3.1 标注数据准备不管原始格式是什么最终都要落成YOLO格式YOLO11沿用了Ultralytics的训练入口数据标注格式是每张图对应一个同名txt文件每行内容为class x_center y_center width height坐标都是相对于图片宽高的归一化值。这一步看着简单实际上是最容易产生脏数据的地方。很多人拿到的原始标注是VOC的xml或者COCO的json直接硬转容易漏掉小目标、改错坐标原点。我自己处理时会先写一个转换脚本把所有标注统一成YOLO格式然后做一次可视化检查——把转换后的标注画回原图肉眼确认框的位置有没有偏移。转换脚本的关键部分如下# convert_voc_to_yolo.py import xml.etree.ElementTree as ET def convert_voc_annotation(xml_path, out_txt_path, class_list): tree ET.parse(xml_path) root tree.getroot() img_w int(root.find(size/width).text) img_h int(root.find(size/height).text) lines [] for obj in root.iter(object): cls obj.find(name).text if cls not in class_list: continue box obj.find(bndbox) x1 float(box.find(xmin).text) y1 float(box.find(ymin).text) x2 float(box.find(xmax).text) y2 float(box.find(ymax).text) # 计算YOLO格式的中心点与宽高注意边界裁剪 x_center ((x1 x2) / 2) / img_w y_center ((y1 y2) / 2) / img_h w (x2 - x1) / img_w h (y2 - y1) / img_h lines.append(f{class_list.index(cls)} {x_center:.6f} {y_center:.6f} {w:.6f} {h:.6f}) with open(out_txt_path, w) as f: f.write(\n.join(lines))这里的边界裁剪容易被忽略。VOC标注偶尔会出现x2比图片宽度还大的情况如果不过滤归一化坐标会超过1训练时目标框直接落在图像外loss可能正常但mAP永远上不去。转换后我还会统计每个类别有多少个目标、平均宽高比是多少这一步能提前暴露数据集本身的问题比如某一类目标过少导致训练不收敛。3.2 训练参数怎么设imgsz、batch、epochs不是越大越好YOLO11训练最常被问到的就是参数怎么调。我的建议是先用默认参数跑通流程再针对你的数据量做微调。imgsz默认是640如果你的目标尺寸普遍较小可以把输入分辨率提高到1280或1536但这意味着显存占用和训练时间成倍增加而且小目标检测的提升不一定明显。batch取决于显卡显存一般用batch16起步显存不够就降不要勉强。python src/train.py \ --data data/data.yaml \ --model yolo11n.pt \ --imgsz 640 \ --batch 16 \ --epochs 300 \ --patience 50 \ --device 0 \ --project weights \ --name exp1patience是早停参数意思是验证集指标连续50个epoch没有提升就停止训练。我不建议把patience设得过大训练时间会被拖长收益却有限。如果数据集本身只有几千张300个epoch大概率在150轮左右就能收敛早停能省下大量时间。还有一个小经验--model yolo11n.pt是拿官方预训练权重做迁移学习比从头训练收敛快得多自有数据集场景不要跳过这一步。除非你的数据分布和自然图像差异极大才考虑随机初始化。3.3 验证指标怎么读不要只看mAP还要看PR曲线和类别分布训练完成后ultralytics会在weights/exp1/下生成best.pt和last.pt同时输出验证集的结果图。我看结果时有个习惯先看每个类别的AP值而不是只看整体mAP。整体mAP高不代表每个类都达标尤其是有前景和背景类不平衡时大类把指标拉高小类可能完全没学出来。还要检查results.png里的val/box_loss和val/cls_loss是否平稳下降如果验证loss在训练途中不降反升说明过拟合或学习率设置有问题。遇到这类情况第一反应不是加数据而是先看训练集和验证集是不是有分布差异。另外训练完之后记得打开confusion_matrix.png如果某两类的混淆严重优先考虑是不是标注边界不清晰而不是盲目调参。这套检查流程做完再进入导出和部署你的权重才是真正交付级的。4. 部署阶段ONNX导出与TensorRT引擎构建性能高低的真正分水岭4.1 ONNX导出opset版本、动态尺寸与NMS是否导出要看使用场景训练完只是第一步部署阶段的第一步是导出ONNX。Ultralytics官方接口直接支持导出但有几个设置要在命令行里明确指定否则导出的模型到了TensorRT里会出现兼容性问题。导出关键参数如下python src/export.py \ --weights weights/best.pt \ --include onnx \ --opset 17 \ --dynamic \ --simplify--opset指定ONNX算子集的版本TensorRT不同版本支持的上限不一样建议设为17而不是默认值太高的opset在旧版TensorRT上可能不识别。--dynamic表示导出动态尺寸输入这样engine可以接受不同分辨率的输入代价是构建时间变长、推理性能略降。如果你在生产环境中输入尺寸固定比如永远是640x640我建议关闭动态尺寸把输入shape固定下来性能会更好。NMS的问题要单独说。YOLO11在训练时用的NMS是后处理逻辑没有包含在PyTorch模型里。导出ONNX时Ultralytics提供了一个--nms参数可以把NMS也封装进图里这样TensorRT推理出来直接就是最终检测结果。这个方案很诱人但我实际用下来的建议是别用。原因有两个一是图中嵌NMS后TensorRT对NMS算子的支持依赖插件不同版本构建engine容易失败二是部署端后处理本来就不复杂在Python或C里写一个NMS也就几十行可控性高得多。所以我的习惯是导出时不做NMSNMS放在推理代码的后处理段。4.2 用trtexec构建enginefp16、动态shape和显存占用怎么定拿到ONNX之后构建engine是部署最核心的一步。官方提供了trtexec命令行工具它本身就是最好的engine构建工具不需要额外写代码。一个最小可用的构建命令如下trtexec \ --onnxexports/best.onnx \ --saveEngineexports/best.engine \ --fp16 \ --minShapesimages:1x3x640x640 \ --optShapesimages:1x3x640x640 \ --maxShapesimages:1x3x640x640 \ --workspace4096--fp16开启半精度推理这也是TensorRT能比原生PyTorch快出数倍的主要原因之一。如果你的显卡不支持fp16或者精度下降实测不可接受可以去掉这个开关代价是速度和显存占用都变差。--workspace指定构建engine时可用的显存上限单位是MB值设太小会导致某些算子做不了优化建议至少设4096。动态shape这里有个细节即使你导出的ONNX是动态尺寸构建engine时也必须给出minShapes、optShapes、maxShapes三个档位。optShapes是性能最优的分辨率如果你实际推理固定用640x640就把三档都设成同一个值。这样构建出的engine在固定输入下能达到最低延迟。我做项目时一般先用固定shape跑通确认精度没问题之后再换成动态shape解决多尺寸需求顺序不能反过来。4.3 推理代码预处理、绑定内存与后处理三块各自要做什么engine构建完成之后推理代码的质量直接决定部署效果。TensorRT的Python推理接口看起来繁琐实际上就那么几步创建runtime、反序列化engine、创建context、分配输入输出buffer、执行推理。一个结构完整的推理脚本核心如下# infer.py 核心片段 import numpy as np import tensorrt as trt import cv2 def load_engine(engine_path): logger trt.Logger(trt.Logger.WARNING) with open(engine_path, rb) as f: serialized f.read() runtime trt.Runtime(logger) engine runtime.deserialize_cuda_engine(serialized) return engine def preprocess(img_np, input_size640): # 保持宽高比的resize letterbox避免目标形变 h, w img_np.shape[:2] scale min(input_size / h, input_size / w) new_w, new_h int(w * scale), int(h * scale) resized cv2.resize(img_np, (new_w, new_h)) canvas np.full((input_size, input_size, 3), 114, dtypenp.uint8) canvas[0:new_h, 0:new_w] resized # 通道转换为RGB归一化到0~1HWC转CHW canvas cv2.cvtColor(canvas, cv2.COLOR_BGR2RGB) canvas canvas.astype(np.float32) / 255.0 return canvas.transpose(2, 0, 1)[None]预处理这一步是最容易被忽略的。很多人直接拿原始图像resize到640x640目标全被拉伸变形训练时模型没见过这种输入精度骤降。正确做法是letterbox——保持宽高比缩放剩余区域用114像素填充。这一步不做好前面训练和导出全都白费。后处理阶段要做的是从输出张量中解析出边界框坐标和置信度还原回原始图像尺寸再执行NMS。需要特别留心输出张量的内存排布。YOLO11输出的格式通常是[1, 84, 8400]即84表示4个坐标加80个类别分数8400是不同尺度特征图上的候选框总数。读取时要用np.reshape和正确地transpose否则提取出的坐标全错。我第一次做时就在这里翻车输出坐标画出来全在图像左上角排查了半天才发现是维度顺序没对上。4.4 精度校验engine推理结果要与PyTorch推理结果做逐框对比engine构建完之后最重要的一步不是看FPS而是验证推理精度没有因为fp16而明显退化。做法很简单取同一批验证集图片分别用best.pt和best.engine推理比对检测框的坐标和置信度差异。我在实践中会把每张图的检测结果保存到JSON文件里然后写脚本计算mAP差值和框坐标误差。如果发现fp16的engine出现大量漏检比如小目标检测不到不要急着换回fp32先确认输入预处理是否一致再考虑是不是TensorRT在某个算子上精度损失过大。常见做法是只对特定层使用fp32精度但这是进阶调优第一次跑通不建议碰。5. TensorRT部署常见问题排查与避坑现象、原因、解决这一章把我做YOLO11训练TensorRT部署时真实遇到过、以及身边同事翻车最多的问题列出来按现象、原因、解决的顺序写方便你出事时直接对照。问题一训练loss下降正常mAP却很低现象训练过程看起来一帆风顺loss曲线平滑下降验证集mAP却怎么都上不去换了好几组参数都一样。原因八成是数据标注出了问题。比如VOC转换时x_center算错或者图里目标太小、标注框中心点归一化后超出了0~1范围模型等于在学一堆错标签。解决把训练集随机抽50张图跑一次可视化检查脚本把标注框用cv2画回原图上逐个看。重点看两类情况一是框是不是正好框住目标二是尺寸很小的目标是否被漏标。这一步花半小时比调三天参数都值。问题二trtexec构建engine成功但推理程序加载engine崩溃现象用trtexec构建engine输出完整没有报错但在自己的Python脚本里反序列化engine后推理时程序直接崩溃或者报Segmentation fault。原因大概率是TensorRT版本不一致导致的版本兼容问题——比如用TensorRT 10构建的engine在TensorRT 8的运行时上加载。engine文件本质是序列化产物对版本极其敏感跨大版本基本不能加载。解决构建engine和推理运行时强制使用同一个TensorRT版本最好是同一次安装环境里完成两件事。跨机器的部署在部署机上重新构建engine不要直接拷贝engine文件过去。这是最稳妥的做法没有之一。问题三TensorRT推理速度反而比PyTorch推理还慢现象终于把engine跑起来了测了一下耗时发现比直接用PyTorch推理还慢完全无法接受。原因常见的有两个一是没有开启fp16全程fp32推理性能自然不行二是模型输入shape动态范围太大TensorRT为兼容所有shape做了过多保守优化。还有一个隐蔽原因前处理和后处理是在Python里做的如果同步调用cuda.memcpy和多次numpy转换耗时甚至超过模型本身。解决先确认engine构建命令里有没有--fp16没有就重建。再把minShapes和maxShapes设置得贴近真实使用场景能固定就固定。最后优化前后处理用letterbox预处理并且提前分配好固定的GPU buffer避免每帧都重新分配显存。问题四TensorRT推理结果跟PyTorch推理结果对不上目标位置偏移现象同一张图PyTorch模型推理结果正常engine推理结果框偏了有时候框比目标大一圈有时候偏在角落。原因预处理不一致。最常见的是resize方式不同PyTorch训练时用的是letterbox部署前处理用了直接拉伸或者归一化时除以255和除以255.0的浮点精度问题以及BGR和RGB通道顺序没对齐。解决把PyTorch推理时用的预处理代码原封不动搬过来不要重写。特别是letterbox填充值的顺序、归一化系数、通道顺序必须逐一比对。建议写一个单元测试对同一张图分别走PyTorch和TensorRT前处理对比输入数组是否完全一致。这一步能保证后面所有问题不白排查。问题五动态batch在推理时报尺寸不匹配错误现象构建engine时设了minShapes和maxShapes推理时换成不同分辨率或不同batch大小的输入报Binding size mismatch之类的错误。原因很多人在构建engine时设置了动态shape但推理代码里没有调用context.set_binding_shape或者设置的shape不在minShapes和maxShapes范围之内。TensorRT对动态shape的控制非常严格输入尺寸超出构建时的范围会直接报错。解决推理代码里每次执行前都要显式设置输入维度和batch大小。固定shape的场景不需要这步但如果你有动态需求必须在每次推理时更新binding shape并重新计算输出buffer大小。6. 进阶技巧engine缓存复用与批量推理把部署做成可维护的服务当你的engine能在单张图上稳定推理之后下一步要考虑的是怎么把它接到真实业务里。我通常会做三件事第一把engine的构建和加载分开构建成功之后把engine序列化保存为.engine文件后续程序启动时直接加载文件不再重复构建——构建一次engine可能需要几分钟每次启动都重新构建会变成上线事故。第二在服务启动时用一组固定的测试图片对engine做一次冒烟验证把检测结果和预期比对确保本次加载的engine是正常的。第三如果业务场景是连续视频流或多路图片处理优先用批量推理而不是单张循环推理把batch设成4或8整体吞吐能提升很多。还有一个容易被忽视的点engine文件在代码仓库管理时应作为构建产物处理而不是每次重新生成的临时文件。发布新版本模型时先跑完整的精度校验流程再替换engine文件并且保留上一版engine做回滚。这样即使新模型翻车线上也能快速退回正常版本。我每次做完一个部署项目都有一个固定习惯把构建命令、推理代码和验证方法整理成一张checklist跟着走一遍。越往后做越发现整个流程里真正依靠经验的部分不是训练调参而是那些跳过去看似节省时间、实际让你付出更大代价的环节——batch size和显存的平衡、预处理的一致性和engine版本的管理每一个都是血泪教训换来的。希望这篇从训练到TensorRT部署的完整流程笔记能帮你把这条路走得更顺。本文还有配套的精品资源点击获取

相关新闻

前端模板拆解:从目录结构到二次开发实践

前端模板拆解:从目录结构到二次开发实践

简介:这是一份面向网页开发初学者与快速建站需求的网站前端模板资源包,基于HTML、CSS并辅以JavaScript实现,内置首页、关于、联系、图库等多套页面模板,覆盖字体、配色与响应式布局等基础视觉规范,适合用于个人网站、企…

2026/10/18 8:06:11 阅读更多 →
极简命名项目rea的完整技术实现与工程实践指南

极简命名项目rea的完整技术实现与工程实践指南

1. 从“rea”这个标题说起:一个极简命名背后的完整项目思维第一次看到“rea”这个标题的时候,我脑子里蹦出来的第一反应是——这大概率是个缩写,而且是一个被刻意压缩到极致的缩写。做过项目的人都知道,给项目起名字这件事本身就很…

2026/10/18 8:05:11 阅读更多 →
论文查重率高不用慌,五个降重技巧提升原创表达

论文查重率高不用慌,五个降重技巧提升原创表达

开学季一到,论文查重就成了悬在无数人头上的那把剑。我刚帮实验室几个师弟师妹改完论文,好几个人拿回来的报告都是红彤彤一片,重复率30%往上走,有的甚至接近50%。我记得自己当年第一次查重看到那个数字时,整个人都是懵…

2026/10/18 8:05:11 阅读更多 →

最新新闻

MATLAB脑电信号预处理实战:避开基线漂移与眼电伪迹的5大深坑

MATLAB脑电信号预处理实战:避开基线漂移与眼电伪迹的5大深坑

简介:本资源是一套基于MATLAB实现脑电信号情绪分类的完整分析方案,面向生物医学工程、神经科学及人工智能交叉领域的初学者与进阶学习者,聚焦EEG信号预处理、特征提取与多情绪状态(愤怒、平静、悲伤)分类建模。压缩包共…

2026/10/18 15:24:02 阅读更多 →
不同平台投流成本大对比:底层逻辑、实测数据与避坑指南

不同平台投流成本大对比:底层逻辑、实测数据与避坑指南

1. 先别急着抄作业:投流成本这件事,水比你想的深做投放这行久了,被问得最多的问题就是"哪个平台便宜?"——但这个问题本身就有问题。不同平台投流成本大对比,单看后台显示的CPM、CPC、OCPM这些数字&#xff…

2026/10/18 15:24:02 阅读更多 →
3D医学影像分类实战:不跑3D CNN,用特征工程+LightGBM也能出结果

3D医学影像分类实战:不跑3D CNN,用特征工程+LightGBM也能出结果

简介:这是一份面向机器学习课程大作业、期末项目与毕业设计的3D医学影像分类实现,适合计算机、电子信息、数学等专业学生快速上手。资源包含完整的Python源代码与说明文档,覆盖数据预处理、模型训练、评估与提交等环节,能够帮助读…

2026/10/18 15:24:02 阅读更多 →
专业化健康管理实训室建设指南:从设备选型到课程融入

专业化健康管理实训室建设指南:从设备选型到课程融入

专业化健康管理实训室,助力康养人才精准培育这几年我陆续参与了几个康养类职业院校的实训室建设项目,期间走了一圈下来最大的感受就是:健康管理实训室和传统的护理实训室完全是两码事。很多学校在建设初期把重点放在了“设备多不多、房间够不…

2026/10/18 15:24:02 阅读更多 →
2026年Cursor平替工具推荐:TaoToken统一Key接入Trae与VS Code的零迁移方案

2026年Cursor平替工具推荐:TaoToken统一Key接入Trae与VS 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 15:24:02 阅读更多 →
高并发场景下HTTP服务框架怎么选?压测数据与并发模型对比实践

高并发场景下HTTP服务框架怎么选?压测数据与并发模型对比实践

多年以前我在某技术团队做高并发系统重构,当时面临一个绕不开的问题:HTTP服务框架到底选哪个。团队里争论很久,最后大家决定不看文档吹嘘,不看社区热度,直接用压测数据说话。那段时间我们把线程模型框架、异步事件模型…

2026/10/18 15:23:02 阅读更多 →

日新闻

基于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 阅读更多 →