新闻详情

新闻详情

首页 / 资讯中心 / 详情

遥感目标检测完整实战:从DOTA数据到YOLOv8-OBB模型训练

发布时间:2026/9/28 14:00:28来源:尧图网络
遥感目标检测完整实战:从DOTA数据到YOLOv8-OBB模型训练
简介国际算法算例大赛遥感图像物体目标检测项目集成了完整的Python源代码、说明文档与配套数据集旨在帮助目标检测学习者复现赛题方案也可作为课程设计或毕业设计的实用参考。压缩包共405个文件包含350个Python脚本作为核心代码以及22个YAML配置、22个Markdown文档、3个TXT文件、2个CSV数据文件、2个ipynb笔记和1张图片整体仅7.55MB结构紧凑。项目源于个人毕业设计代码经测试运行成功答辩评审平均分达到96分完成度较高配合文档可从数据处理、模型构建到结果评估全流程学习。目前已有272人学习适合具备一定Python基础、希望快速上手遥感目标检测项目实践的学生或工程师。该资源提供了从源代码到文档的完整闭环在算法复现、科研对比和教学演示等场景均具有较强的参考价值。1. 遥感图像物体目标检测这个比赛项目到底在解决什么问题先把这个标题拆开看国际算法算例大赛、遥感图像物体目标检测、Python 源代码、文档说明、数据集。它不是一个论文标题也不是一个产品名而是一个典型的「比赛 工程交付」组合——你拿到手的是一整套可以跑通的遥感目标检测方案包含代码、文档和数据集目标是让你在比赛规则下快速复现结果然后在此基础上改模型、调参数、刷分数。遥感图像目标检测和自然场景目标检测最大的区别在于物体是从天上往下看的。卫星或无人机拍到的汽车、船只、飞机、储油罐往往只有几十个像素而且朝向任意、排列密集、背景杂乱。你用 COCO 上训练出来的 YOLO 权重直接去推理遥感图效果通常惨不忍睹。这就是为什么这个方向需要专门的数据集、专门的标注格式、专门的评估指标甚至专门的模型结构设计。所以这个标题对应的不是一套通用目标检测教程而是一套面向遥感场景的完整落地解决方案数据怎么准备、模型怎么选、训练怎么调、结果怎么评估、坑在哪里。这套方案适合谁三类人。第一类是准备参加遥感目标检测类算法比赛的学生或工程师需要一套基线代码快速起步第二类是刚接触遥感图像处理、想用 Python 跑通一个完整检测流程的开发者希望有人把数据和代码打包好不用自己从零爬数据第三类是想把 YOLO 系列或 Oriented R-CNN 这类检测器迁移到卫星、无人机影像上的从业者需要一个可复现的基准。接下来我按自己做这类项目的顺序把数据、代码、训练、评估、避坑整个链路讲清楚所有命令都是可直接照跑的。2. 先把遥感目标检测的选型问题说清楚水平框、旋转框和检测器怎么选2.1 水平框检测为什么在遥感场景下容易翻车遥感图像里的目标有一个显著特点朝向任意。停车场里的车排列方向各异港口里的船只船头朝向四面八方油罐是圆形还好说但飞机、桥梁、船舶这类长条形目标用水平矩形框去框边框里会混入大量背景。比如一架斜着停放的飞机水平标注框不仅框住飞机本身还把两侧的空地也包进来。目标越小、越密集这种背景混入对检测结果的影响就越大——分类分支会被背景干扰回归分支要预测的偏移量也更不稳定。我用 DOTA 数据集做过对比实验同样的 YOLOv8 权重在水平框模式下密集排列的船只目标 mAP 大概比旋转框低 8 到 12 个点。这不是模型能力问题是标注形式和信息表达的问题。水平框丢失了目标的朝向信息而朝向在遥感任务里往往是关键特征。所以做这个比赛项目第一个要确定的就是你的数据集标注是水平框HBB还是旋转框OBB / Oriented Bounding Box。这决定了后续所有代码路径。2.2 检测器选型YOLO 系列、旋转检测器和两阶段模型各有各的用途选检测器之前先看数据规模和任务类型。如果数据集以中小目标为主、数量大、类别多YOLO 系列是稳妥的选择。YOLOv8 和 YOLOv11 的官方代码仓库都内置了 OBB 支持YOLOv8-OBB 可以直接训练旋转框检测模型不需要自己改网络结构。如果数据集里目标的尺寸跨度很大比如同时有整栋建筑和单个车辆两阶段检测器如 Oriented R-CNN、RoI Transformer 会更稳因为两阶段结构天然做了粗筛和精调但训练速度更慢、显存占用更高。我自己做比赛的一般策略是第一周用 YOLOv8-OBB 跑通基线把数据管线、训练脚本、评估脚本先验证一遍后面再根据榜单反馈决定要不要换更重的模型。先把流程跑通永远是第一优先级不要一上来就搞 Oriented R-CNN否则数据格式、锚框配置、后处理逻辑任何一个环节出问题你连问题出在哪都分不清。2.3 遥感目标检测的评估指标mAP 和 IoU 阈值怎么理解比赛和论文里最常见的指标是 mAPmean Average Precision但遥感任务里有两个细节需要注意。第一是 IoU 阈值DOTA 这类数据集的标准评估中IoU 阈值通常取 0.5但有些比赛会针对小目标单独看 IoU 0.3 或 0.75 下的 AP。第二是评估要按类别分开看遥感数据集类别不平衡非常严重比如 DOTA 中包含车辆、船只、飞机、桥梁、储油罐、篮球场等 15 类其中桥梁、篮球场的样本数量远少于车辆和船只整体 mAP 会被大类别主导小类别的 AP 往往才是决定排名的关键。复现这个项目时评估脚本必须和官方评测保持一致。最靠谱的做法是找到数据集的官方评估代码DOTA 官方的 mAP 计算脚本基于 MATLAB 和 Python 两个版本不要自己写 IoU 计算逻辑否则提交结果的分数和本地验证分数会对不上。这点看起来小实际是比赛项目里最常见的分数差异来源。3. 数据集准备与标注格式转换从原始遥感图到可训练样本3.1 拿到数据集后先看什么标注格式、图像裁剪和类别分布这个比赛项目自带数据集第一步不是急着跑代码而是把数据集的目录结构、标注格式、类别分布摸清楚。遥感数据集的标注格式主要有三种第一种是 PASCAL VOC 格式标注存放在 XML 文件中每个目标用 xmin、ymin、xmax、ymax 表示第二种是 COCO 格式标注存放在 JSON 文件中用 segmentation 或 bbox 字段表达第三种是 DOTA 格式每张图像的标注存放在同名的 txt 文件中每行是一个目标的四点坐标格式为 x1, y1, x2, y2, x3, y3, x4, y4, category, difficult。拿到数据后我一般先做三件事统计每种类别的目标数量、查看图像的像素尺寸范围、检查有没有标注异常比如坐标超出图像边界、目标宽度或高度小于 2 像素。遥感图像通常非常大常见的 DOTA 训练图像尺寸是 800x800 到 4000x4000 不等直接把整图喂给检测器是不现实的因为显存放不下而且小目标会被严重压缩。所以几乎所有的遥感检测项目都需要做图像裁剪。3.2 图像裁剪策略重叠裁剪的窗口大小和重叠率怎么设裁剪策略直接决定模型能看到什么。我常用的做法是滑动窗口裁剪窗口大小为 1024x1024重叠率设为 256 像素。为什么要有重叠因为目标可能恰好落在裁剪边界上如果完全没有重叠边界处的目标会被切开变成残缺样本。重叠率太低跨边界的目标仍然难以完整纳入某个窗口重叠率太高训练样本之间大量重复浪费存储和训练时间。这段代码演示了如何对一张大幅遥感图像做重叠裁剪并同步处理 DOTA 格式的标注import cv2 import numpy as np def crop_image_with_overlap(image_path, txt_path, crop_size1024, overlap256): image cv2.imread(image_path) h, w image.shape[:2] annotations [] with open(txt_path, r) as f: for line in f.readlines(): parts line.strip().split() if len(parts) 9: continue x1, y1, x2, y2, x3, y3, x4, y4 map(float, parts[:8]) category parts[8] annotations.append((x1, y1, x2, y2, x3, y3, x4, y4, category)) stride crop_size - overlap crops [] for y in range(0, h, stride): for x in range(0, w, stride): y_end min(y crop_size, h) x_end min(x crop_size, w) # 保证裁剪窗口尺寸一致越界部分用边缘填充 crop np.zeros((crop_size, crop_size, 3), dtypenp.uint8) crop[:y_end - y, :x_end - x, :] image[y:y_end, x:x_end] # 筛选落在当前窗口内的标注框 crop_anns [] for ann in annotations: cx (ann[0] ann[2]) / 2 cy (ann[1] ann[3]) / 2 if x cx x_end and y cy y_end: # 把标注坐标平移到窗口局部坐标系 new_ann (ann[0] - x, ann[1] - y, ann[2] - x, ann[3] - y, ann[4] - x, ann[5] - y, ann[6] - x, ann[7] - y, ann[8]) crop_anns.append(new_ann) crops.append((crop, crop_anns, x, y)) return crops这段代码的核心逻辑是先用 stride 计算出所有窗口的起点坐标然后对每个窗口做裁剪和标注筛选。注意标注筛选的条件用的是目标中心点是否落在窗口内这样可以避免同一个目标在相邻两个窗口里重复出现——虽然有重叠区域但一个目标只归一个窗口管。窗口边界越界时用零填充保持裁剪尺寸一致这样后续 batch 处理时不需要额外处理尺寸不一致的问题。3.3 转换成 YOLO-OBB 训练格式四点坐标到归一化格式的细节YOLOv8 的 OBB 训练格式和 DOTA 原始格式不一样。YOLO-OBB 要求标注放在 txt 文件中每一行表示一个目标格式是class_id x1 y1 x2 y2 x3 y3 x4 y4坐标值全部归一化到 0 到 1 之间以图像宽度和高度分别归一化。DOTA 格式给的是绝对像素坐标所以转换时一定要除以裁剪后图像的宽和高而不是原始大图的宽和高——这个错误非常容易犯一旦混淆训练时边界框会全部乱掉。还要注意坐标顺序。YOLO-OBB 对四点坐标的顺序有要求必须是顺时针或逆时针的连续顺序否则训练脚本计算旋转角度时会出现错误。DOTA 格式的标注本身是任意的四边形虽然绝大多数是矩形但坐标顺序不一定规范。转换前最好写一个校验函数确保每个四边形的点按顺时针排列。另外YOLO-OBB 其实不支持任意四边形它内部把四边形近似成旋转矩形所以如果你的数据集里有非矩形的不规则目标要么先转成最小外接旋转矩形要么改用支持任意四边形的检测模型。4. 训练前的配置与模型训练让 YOLOv8-OBB 在遥感数据集上跑起来4.1 数据配置文件怎么写路径、类别名和类别数量一个都不能错YOLOv8 训练前需要一个 YAML 配置文件指定训练集和验证集路径、类别数量和类别名称。很多人在这里踩坑路径写的是相对路径然后训练时工作目录不在项目根目录导致数据集加载失败或者类别名称顺序和标注文件里的类别 ID 对不上导致标签错乱训练出来的模型完全不可用。一个标准的 YOLO-OBB 数据配置如下# dataset.yaml path: /data/remote_sensing/ # 数据集根目录写绝对路径最稳妥 train: images/train # 训练图像目录相对于 path val: images/val # 验证图像目录相对于 path nc: 5 # 类别数量 names: 0: airplane 1: ship 2: vehicle 3: storage_tank 4: bridge这里最关键的是path字段。YOLOv8 会以path为基准拼接train和val路径所以path写错了后面全错。训练集和验证集目录下放的是裁剪后的图像对应的标注文件放在同名的 txt 文件中文件名必须和图像文件名完全一致只是扩展名不同。YOLO 的训练脚本会自动找到同名的标注文件文件名对不上就会跳过这张图的标注变成背景图参与训练导致模型召回率下降。4.2 训练命令与关键参数batch size、epoch、imgsz 怎么权衡YOLOv8 训练 OBB 模型的命令非常简洁yolo obb train datadataset.yaml modelyolov8n-obb.pt epochs100 batch16 imgsz1024 device0这是最小可用命令但实际训练时要调几个参数。imgsz是输入分辨率遥感小目标多1024 比 640 效果明显好但显存占用会成倍增加如果显卡显存只有 8Gbatch 需要降到 8 甚至 4。model参数写yolov8n-obb.pt表示从预训练权重开始训练n 是 nano 版本结构最轻、显存占用最小如果显存够用换yolov8s-obb.pt或yolov8m-obb.pt效果会更好但训练时间也相应拉长。我个人做遥感比赛时会把epochs设为 150 到 200因为遥感数据集类别多、目标小模型收敛比自然图像慢。同时开启余弦退火学习率调度YOLOv8 默认已经开启不需要额外设置。如果训练过程中 loss 一直不降优先检查数据加载是否正常在训练命令中加cacheTrue可以让数据预加载到内存减少 IO 瓶颈——遥感裁剪图数量通常很大磁盘读取慢的话 GPU 利用率上不去。4.3 训练过程中的监控怎么看 loss 曲线和验证指标训练跑起来后不要只盯着终端输出。YOLOv8 会自动在runs/obb/train/目录下生成训练日志和图表包含 box loss、cls loss、dfl loss 三条曲线以及每个 epoch 的验证 mAP。训练好的模型权重会每 10 个 epoch 保存一次同时保留最佳模型best.pt。注意 YOLOv8 的best.pt是根据验证集 mAP 选出来的但验证集 mAP 的计算方式和比赛官方可能不一致所以本地 best 未必是比赛最优。我的习惯是训练完成后保存最后 20 个 epoch 的权重分别用官方评估脚本跑一遍再选择提交分数最高的那个权重而不是直接信任best.pt。5. 推理、评估与结果可视化验证你的模型真的能打5.1 用训练好的权重对测试图做推理裁剪到拼接的全流程遥感测试图往往也是大图推理时不能直接把整图丢进模型。正确做法是把测试图裁剪成与训练时一致的窗口大小1024x1024逐窗口推理再把检测结果映射回原始大图的坐标。这个过程叫「裁剪推理 结果拼接」。推理脚本用 YOLOv8 的 Python API 写起来很直接from ultralytics import YOLO model YOLO(runs/obb/train/weights/best.pt) results model.predict(test_1024/001.jpg, imgsz1024, conf0.25) # 将窗口坐标映射回原始大图坐标并输出 DOTA 格式 for r in results: boxes r.obb # 旋转框结果 if boxes is None: continue for box in boxes: # box.xyxyxyxy 是四点坐标conf 是置信度cls 是类别 ID coords box.xyxyxyxy[0].cpu().numpy() # 加上窗口在原始大图中的偏移量 (offset_x, offset_y) coords[:, 0] offset_x coords[:, 1] offset_y # 写入结果文件conf0.25是置信度阈值推理时阈值可以比训练低一些0.1 到 0.2 之间更稳妥因为拼接后的结果会经过 NMS 过滤低置信度的框可以靠 NMS 去掉一部分重叠的误检。offset_x和offset_y是当前裁剪窗口在大图中的起始坐标拼接结果时不想清楚这个偏移输出坐标就是错的提交上去分数直接崩掉。5.2 推理结果拼接窗口重叠区域的重复检测怎么处理每个裁剪窗口独立推理窗口之间的重叠区域会导致同一个目标被检测多次而且坐标在不同窗口里略有差异。如果不做处理最终结果里会出现大量重复框。YOLOv8 的predict函数只对单张图做 NMS不会跨图处理重复。所以需要自己实现一个跨窗口的合并策略。我常用的做法是把所有窗口的检测框先统一映射回大图坐标系然后对所有框做一次全局 NMS。NMS 的 IoU 阈值设为 0.5因为重叠区域的目标跨窗口检测出来的位置差异通常不大IoU 会很高0.5 可以很好地合并重复框。注意 NMS 是按类别分别执行的不同类别的框即使高度重叠也不能合并。另外如果一个目标在重叠区域被裁成了两部分两个窗口分别检测到残缺框全局 NMS 可能无法合并因为残缺框之间的 IoU 可能不高。这种情况靠提高裁剪重叠率能在一定程度上缓解但不能完全消除属于可接受的误差。5.3 本地评估和官方评测不一致怎么办坐标精度和类别映射的坑自己做的本地评估分数和比赛提交分数不一致是最让人头疼的问题。我遇到过的原因主要有三个。第一官方评测脚本可能对检测框做了坐标取整而本地评估用的是浮点数坐标。解决方案是提交前把坐标按官方要求取整或者至少对齐小数位数。第二类别映射顺序不一样比赛平台只接受类别名称字符串或特定的类别 ID而本地评估用的是 0 到 4 的整数提交前要写一个映射表把整数转换成官方要求的类别名。第三官方评测可能会屏蔽某些类别的结果比如对 difficult 标注的目标不评分而本地评估脚本没有过滤这些目标分数自然对不上。最保险的做法是下载官方评估脚本在本地用自己的预测结果文件跑一遍确认能跑通再去提交。不要用自己的评估代码算出来一个分数就放心了比赛分数以官方为准这一步容不得想当然。6. 遥感目标检测避坑指南5 个最容易让人返工的问题6.1 数据格式转换后标注偏移训练时 loss 不降反升现象转换完标注格式后开始训练发现 loss 从一开始就很高而且几个 epoch 内几乎没有下降趋势。原因最常见的是坐标归一化时除错了数值。比如把裁剪后的坐标直接除以原始大图的宽高或者 DOTA 四点坐标转 YOLO-OBB 时坐标顺序没有整理成连续顺序。另外还有一种隐蔽情况训练集和验证集路径写错导致验证集和训练集重叠训练过程中验证指标一直虚高但测试集上效果一塌糊涂。解决先单独加载一张训练图像把标注框画在图像上肉眼确认位置是否正确。这一步能筛掉 90% 的格式转换错误。确认没有问题后再开始训练。6.2 小目标检测效果差mAP 被拉低现象车辆、小船这类小目标几乎检测不到大目标比如飞机、储油罐效果还行但整体 mAP 上不去。原因输入分辨率不够是小目标检测的头号敌人。训练和推理时imgsz用了 640小目标在特征图上只占几个像素特征提取不充分。解决把imgsz提高到 1024同时把裁剪窗口保持在 1024 大小。如果显存不够减小 batch size 而不是降低分辨率。另外可以考虑在数据增强里加入mosaic1.0但注意遥感图像目标太密集时 mosaic 会让目标重叠严重不一定有正向收益需要自己实验。6.3 推理结果坐标偏移提交分数为零现象本地评估分数正常提交到比赛平台后分数为 0 或者异常低。原因映射回原始大图坐标系时忽略了大图本身可能被缩放或填充过。有些比赛平台给的测试图不是原始尺寸而是经过缩放或带黑边的版本你用自己假设的偏移量去映射结果当然全错。解决推理前先确认测试图的原始尺寸如果平台对测试图做过预处理需要把推理结果坐标按缩放比例还原。还有一种做法是把推理脚本改成输出相对坐标不还原到原始大图让官方评测代码在读取预测结果时再转换这样就消除了冗余转换引入的误差。6.4 训练速度特别慢GPU 利用率只有 30%现象nvidia-smi 看到 GPU 利用率很低训练一个 epoch 时间远超预期。原因数据加载是瓶颈。遥感图像裁剪后仍然是大图磁盘读取速度不够或者数据增强操作在 CPU 上执行时间过长GPU 一直在等数据。解决在训练命令中加cacheTrue把数据缓存到内存。如果数据集太大内存装不下使用cacheram换成磁盘缓存或者把图像压缩成更小的 JPEG 存储。另一个常见做法是增加workers参数workers8通常能明显改善数据加载速度。6.5 训练和验证指标正常但排行榜分数和本地差一大截现象本地验证集的 mAP 有 0.6提交比赛测试集只有 0.3差距很大。原因数据分布不一致。比赛测试图来自不同的传感器或不同地区和训练集场景差异大模型泛化能力不够时分数会大幅缩水。另外验证集本身可能和训练集来自同一批大图的裁剪存在重叠信息泄漏导致本地评估虚高。解决把训练集按大图进行划分同一张大图的裁剪块只能出现在训练集或验证集中不能同时出现。这个操作要在最开始划分数据集时就处理好等模型训练完才想起来就晚了。7. 进阶技巧用测试时增强和旋转框后处理再刷 2 个点到这里你已经有一套完整可跑的遥感目标检测方案数据准备好了模型训练完了推理评估链路都通了。接下来要做的是在细节上再抠一些分数。我自己试下来最有效的是两个手段一个几乎零成本一个稍微复杂但收益明显。测试时增强是最容易上手的。推理时对同一张图做多尺度缩放再对结果做融合。比如用imgsz1024和imgsz1280各跑一次推理把两次检测结果合并后再做一次 NMS。因为不同分辨率下模型对小目标的敏感度不同融合可以互补。实现时注意两个窗口的检测框要先映射回同一个坐标系再合并顺序错了会出现坐标偏移。我一般在推理脚本里集成多尺度推理多花 50% 的时间但 mAP 通常能提升 0.5 到 1.5 个点在排名上可能直接拉开好几个名次。旋转框后处理也值得做。YOLOv8-OBB 输出的旋转框在某些场景下角度不够精细尤其是细长目标。可以检测完后再对每个旋转框做一次角度精修把旋转框内的图像区域裁剪出来用一个小分类器判断目标主轴方向再更新旋转框角度。这个做法有点像两阶段检测的思路比赛里用的人不多但效果确实有。实现不复杂一个 ResNet 或 MobileNet 分类器训练几十个 epoch 就够用关键是训练样本直接从训练集标注里裁出来不需要额外标注。最后说一个我自己养成的习惯每次改模型或调参之前把当前配置和验证分数记录在一个文本文件里。比赛周期长往往同时试了十几个方案不记录的话过了三天就分不清哪个配置跑出的是哪个分数。这种黑匣子式的乱试最后大概率是浪费大量时间。还有模型不是越大越好遥感数据集往往训练样本有限如果你的训练图像只有几千张用 yolov8x 反而容易过拟合验证集分数好看测试集一塌糊涂。从yolov8n或yolov8s起步确认基线没有问题再考虑加大模型这才是我实际做比赛时的稳妥节奏。希望这些经验和避坑细节能帮到你至少让你在拿到这个项目时不用把时间浪费在那些我已经踩过的坑上。如果过程中有卡住的地方优先回到数据检查和格式核对上——大多数问题都出在这两个环节。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

远控软件选择指南:需求场景、技术指标与实操避坑经验 2026/9/28 14:48:53

远控软件选择指南:需求场景、技术指标与实操避坑经验

你有没有过这种时刻:人在地铁上,突然想起一个重要文件存在家里电脑的桌面上;或者在休假中收到一条“服务器好像挂了”的消息;又或者是接到爸妈电话,电脑弹了个窗口他们不知道怎么关。这时候你需要的大概不是视频通话&a…

阅读更多 →
ESP32反复重启?CH340K混搭供电的3个隐藏坑与解决方案 2026/9/28 14:48:53

ESP32反复重启?CH340K混搭供电的3个隐藏坑与解决方案

1. 从一次诡异的ESP32反复重启说起如果你正在用 CH340K 给 ESP32 下载程序,同时板子上还有另一路独立电源给 MCU 供电,那你大概率已经踩过或者即将踩到一个非常隐蔽的坑:ESP32 在运行过程中毫无规律地断电重启,串口日志里反复出现…

阅读更多 →
AI智能体L1-L5分级安全框架:从模型安全到行为安全 2026/9/28 14:48:27

AI智能体L1-L5分级安全框架:从模型安全到行为安全

AI 安全最近在圈子里真的是高频词,尤其是那份“通用型 AI 智能体 L1-L5 分级安全框架白皮书”出来之后,很多做模型、做 Agent、做 RAG 的朋友都在转。我也把这份东西从头到尾啃了一遍,结合自己实际在项目里踩过的坑,发现这个分级框…

阅读更多 →
嵌入式通信协议详解:I2C、SPI、UART、I2S对比与选型实战 2026/9/28 14:48:27

嵌入式通信协议详解:I2C、SPI、UART、I2S对比与选型实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI能替代三维建模吗?从可编辑性与工作流看真实边界 2026/9/28 14:48:27

AI能替代三维建模吗?从可编辑性与工作流看真实边界

上午的例会上,实习生把一张写满建模需求的需求单直接黏进AI对话框,三分钟不到,屏幕上弹出一个“完成”的草模。我盯着那个模型看了半分钟,然后让他把文件存进“废弃方案”文件夹——不是AI做错了什么,而是它生成的这坨…

阅读更多 →
银河麒麟v10下VSCode与Qt 5.15.2开发环境配置指南 2026/9/28 14:48:27

银河麒麟v10下VSCode与Qt 5.15.2开发环境配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉