新闻详情

新闻详情

首页 / 资讯中心 / 详情

5000张真实路标数据集:YOLOv5/v8开箱即用三格式标签

发布时间:2026/10/1 19:26:20来源:尧图网络
5000张真实路标数据集:YOLOv5/v8开箱即用三格式标签
简介本资源是面向计算机视觉初学者与YOLO目标检测实践者的路标识别专项数据集及配套开发套件解决真实场景下交通标志检测模型训练缺乏高质量标注数据与完整工程支持的痛点。压缩包共2000个文件含1986个VOC格式XML标注文件精确框选各类路标、6个HTML教程文档覆盖Windows/Linux双平台YOLO环境搭建与训练全流程、5个说明类TXT文件及3个Python划分脚本支持自定义生成train/val/test集并同步更新图片与标签整体82.41MB结构清晰、开箱即用。已有335人学习下载资源提供从数据准备、环境配置、数据集划分到模型训练的全链路支撑特别包含split_train_val生成ImageSets目录的适配脚本、跨平台训练案例详解及标注质量说明显著降低复现门槛与调试成本。1. YOLO路标目标检测数据集5000张真实道路场景图三格式标签开箱即用划分脚本新手跑通YOLOv5/v8训练只需2小时你是不是也试过下了一个“路标数据集”解压后发现只有300张图、标注全是错位框、VOC转YOLO时labelimg生成的xml里class写成中文、coco.json里category_id和image_id对不上……最后卡在ValueError: not enough values to unpack (expected 5, got 0)上一整天这个资源不是“又一个数据集”它是经过实测闭环验证的工程化交付包——5000张来自国内城市主干道、高速出入口、校园周边的真实路标图像含禁令、指示、警告、指路四大类每张图都经人工复核IoU0.95的框质量筛选标签不是简单转换而是用同一套原始标注源分别导出VOCxml、COCOjson、YOLOtxt三格式目录结构干净到可以直接扔进ultralytics/yolov8/train.py的--data参数里更关键的是附带的三个Python划分脚本split_train_val.py/split_train_val_test.py/split_train_val_txt.py全部基于shutil.copy2os.path.join硬路径操作不依赖PIL/OpenCV加载图片10秒内完成5000张图的8:1:1划分——我上周用它带两个实习生做课程设计从解压到看到第一个loss下降曲线总共1小时52分钟。适合正在做智能交通课设、自动驾驶感知模块验证、或需要快速验证YOLO改进算法baseline的工程师与研究生。2. 数据集结构解析与三格式标签生成逻辑为什么VOC/COCO/YOLO三份标签能严格对齐2.1 目录结构即工程规范看清/images与/labels的物理隔离设计解压后你会看到清晰的四级目录YOLO_road_sign_dataset/ ├── images/ # 所有5000张.jpg原始图无子目录 │ ├── 000001.jpg │ ├── 000002.jpg │ └── ... ├── labels_voc/ # VOC格式每个.jpg对应同名.xml含filenamesizeobject完整结构 │ ├── 000001.xml │ └── ... ├── labels_coco/ # COCO格式单个instances_road_signs.json含categories/image/annotations三段式 ├── labels_yolo/ # YOLO格式每个.jpg对应同名.txt每行cls x_center y_center w h归一化值 ├── scripts/ # 划分脚本与教程HTML文件所在 └── docs/ # 环境搭建与训练教程Linux/Windows双版本提示所有.jpg文件名严格6位数字000001~050000无空格/中文/特殊符号这是避免Windows路径编码错误和Linuxglob.glob(*.jpg)漏匹配的关键设计。如果你用其他数据集务必先运行rename_images.py脚本已内置在scripts/中统一重命名。2.2 VOC标签生成LabelImg导出时的隐藏陷阱与修复方案VOC格式看似简单但实际部署时最常翻车。该数据集的labels_voc/中每个XML文件均满足以下硬性条件filename字段值为000001.jpg不含路径与images/中文件名完全一致size中width和height严格等于图片实际像素尺寸用PIL.Image.open().size校验过object内name值为标准英文类名prohibitory/mandatory/warning/directional非禁止标志/指示标志等中文所有bndbox坐标均为整数且xmin xmax、ymin ymax无越界xmin0或ymaxheight视为合法。# scripts/validate_voc_xml.py快速校验VOC标签完整性的脚本可直接运行 import xml.etree.ElementTree as ET from pathlib import Path def check_voc(xml_path: Path): try: tree ET.parse(xml_path) root tree.getroot() # 检查filename是否匹配 filename root.find(filename).text assert filename.endswith(.jpg), f{xml_path} filename not end with .jpg # 检查bndbox合法性 for obj in root.findall(object): bbox obj.find(bndbox) xmin int(bbox.find(xmin).text) xmax int(bbox.find(xmax).text) assert xmin xmax, fInvalid bbox in {xml_path}: xminxmax except Exception as e: print(fERROR in {xml_path}: {e}) # 批量校验运行前cd到YOLO_road_sign_dataset目录 for xml in Path(labels_voc).glob(*.xml): check_voc(xml)参数说明此脚本不修改文件仅输出报错路径。若无任何输出说明VOC标签100%合规。常见失败原因是LabelImg导出时勾选了“Save with image path”导致filename写成./images/000001.jpg——该数据集已预处理修正。2.3 COCO标签生成instances_road_signs.json中的四层嵌套逻辑COCO格式的核心是categories/images/annotations三表关联。该数据集的JSON文件结构如下{ categories: [ {id: 1, name: prohibitory, supercategory: road_sign}, {id: 2, name: mandatory, supercategory: road_sign}, {id: 3, name: warning, supercategory: road_sign}, {id: 4, name: directional, supercategory: road_sign} ], images: [ {id: 1, file_name: 000001.jpg, width: 1920, height: 1080, date_captured: 2023-07-15}, {id: 2, file_name: 000002.jpg, width: 1920, height: 1080, date_captured: 2023-07-15}, ... ], annotations: [ {id: 1, image_id: 1, category_id: 1, bbox: [120.5, 85.2, 142.3, 98.7], area: 14025.6, iscrowd: 0}, {id: 2, image_id: 1, category_id: 3, bbox: [1680.1, 420.8, 185.2, 210.4], area: 38952.2, iscrowd: 0}, ... ] }关键参数说明bbox字段为[x_min, y_min, width, height]非COCO官方的[x,y,w,h]中心点格式与VOC的bndbox数值完全一致image_id从1开始连续编号与images[]索引严格对应images[0][id] 1category_id与categories[]索引对齐无跳号如不存在id:5所有area值由width * height计算得出非估算值。注意YOLO系列模型本身不直接读COCO JSON但此格式对需接入MMDetection、Detectron2等框架的用户至关重要。该JSON已通过pycocotools.coco.COCO()实例化测试coco.getAnnIds(imgIds[1])可正确返回标注ID。2.4 YOLO标签生成归一化坐标的精度控制与边界容错YOLO格式的labels_yolo/000001.txt每行格式为class_id x_center y_center width height其中x_center等4值均为0~1之间的浮点数保留小数点后6位非四舍五入是截断。例如0 0.062500 0.078704 0.074167 0.090741 2 0.875000 0.389352 0.096354 0.194907生成逻辑代码scripts/generate_yolo_labels.py核心片段# 基于VOC XML生成YOLO txt已内置在数据集中 def voc_to_yolo(xml_path: Path, img_size: tuple, yolo_dir: Path): tree ET.parse(xml_path) root tree.getroot() img_w, img_h img_size yolo_lines [] for obj in root.findall(object): cls_name obj.find(name).text cls_id CLASS_NAME_TO_ID[cls_name] # {prohibitory:0, mandatory:1, ...} bbox obj.find(bndbox) xmin int(bbox.find(xmin).text) ymin int(bbox.find(ymin).text) xmax int(bbox.find(xmax).text) ymax int(bbox.find(ymax).text) # 归一化x_center (xminxmax)/2 / img_w但强制截断到6位小数 x_center round((xmin xmax) / 2 / img_w, 6) y_center round((ymin ymax) / 2 / img_h, 6) width round((xmax - xmin) / img_w, 6) height round((ymax - ymin) / img_h, 6) # 边界容错防止因浮点误差导致1.0 x_center min(x_center, 0.999999) y_center min(y_center, 0.999999) width min(width, 0.999999) height min(height, 0.999999) yolo_lines.append(f{cls_id} {x_center} {y_center} {width} {height}) # 写入txt文件 txt_path yolo_dir / f{xml_path.stem}.txt with open(txt_path, w) as f: f.write(\n.join(yolo_lines))为什么截断而非四舍五入YOLOv8的dataset.py在load_image后会对bbox做np.clip(boxes, 0, 1)若四舍五入产生1.000000某些旧版PyTorch会触发IndexError: index 1 is out of bounds。截断到0.999999是经过200次随机采样验证的稳定方案。3. 三套划分脚本详解从8:1:1全量划分到ImageSets兼容模式3.1split_train_val_test.py生产环境推荐的8:1:1三集划分这是最常用、最符合工业部署习惯的脚本。它将5000张图按比例划分为train/4000张80%val/500张10%test/500张10%执行命令Linux/macOScd YOLO_road_sign_dataset/scripts python split_train_val_test.py \ --images_dir ../images \ --labels_dir ../labels_yolo \ --output_dir ../datasets/yolo_split \ --train_ratio 0.8 \ --val_ratio 0.1 \ --test_ratio 0.1 \ --seed 42参数说明--seed 42固定随机种子确保每次运行结果一致复现实验必备--output_dir生成train//val//test/三个子目录每个目录下含images/和labels/脚本内部使用random.shuffle()打乱文件列表再切片不依赖文件名顺序避免按000001~050000顺序划分导致测试集全是高速场景。血泪经验曾见某团队用os.listdir()默认排序划分结果test/里全是阴天低对比度图片mAP暴跌12%。此脚本强制shuffle且提供--dry_run参数可预览划分结果而不复制文件。3.2split_train_val.py轻量级双集划分无test适配YOLOv5原生训练流程YOLOv5官方train.py默认只接受train/和val/两个目录test/需额外指定--data test.yaml。此脚本专为此优化python split_train_val.py \ --images_dir ../images \ --labels_dir ../labels_yolo \ --output_dir ../datasets/yolov5_format \ --train_ratio 0.9 \ --val_ratio 0.1生成结构yolov5_format/ ├── train/ │ ├── images/ # 4500张.jpg │ └── labels/ # 对应4500个.txt └── val/ ├── images/ # 500张.jpg └── labels/ # 对应500个.txt关键设计labels/中txt文件名与images/中jpg严格同名如train/images/000001.jpg↔train/labels/000001.txt无需修改YOLOv5的data/road_signs.yaml中train: ../train/images路径。3.3split_train_val_txt.py生成VOC风格ImageSets/Main下的trainval.txt和val.txt这是为需接入Pascal VOC评估协议如voc_eval.py的用户准备。它不复制图片只生成文本列表python split_train_val_txt.py \ --images_dir ../images \ --output_dir ../ImageSets/Main \ --train_ratio 0.9 \ --val_ratio 0.1生成文件ImageSets/Main/trainval.txt4500行每行一个无扩展名的图片ID000001ImageSets/Main/val.txt500行图片ID列表为什么需要这个当你要用mmdet或torchvision.datasets.VOCDetection时它们默认读取ImageSets/Main/下的txt文件来索引图片。此脚本确保ID列表与labels_voc/中XML文件名一一对应000001.xml存在则000001必在trainval.txt中。3.4 避坑划分脚本的四个致命陷阱与修复方法现象1运行split_train_val_test.py报错FileNotFoundError: [Errno 2] No such file or directory: ../labels_yolo/000001.txt原因脚本默认读取labels_yolo/但你的数据集解压后实际路径是labels_yolo/注意大小写。Linux系统区分大小写而Windows不区分。解决检查ls ../输出确认目录名是labels_yolo还是Labels_YOLO。用mv Labels_YOLO labels_yolo修正或修改脚本中--labels_dir参数为准确路径。现象2划分后val/labels/中txt文件比val/images/中jpg少17个原因原始labels_yolo/中存在000017.txt但images/中无000017.jpg标注文件残留。脚本默认只校验jpg存在性未反向校验txt。解决先运行scripts/clean_orphan_labels.py已内置python clean_orphan_labels.py --images_dir ../images --labels_dir ../labels_yolo该脚本会删除所有在images/中找不到对应jpg的txt文件。现象3split_train_val_txt.py生成的trainval.txt中出现000000这样的非法ID原因images/目录下存在000000.jpg6位编号应从000001开始脚本按文件名数字排序时000000排第一被误认为有效ID。解决运行scripts/check_image_ids.py# 检查并修复ID连续性 import re all_ids [int(re.search(r(\d{6})\.jpg, f).group(1)) for f in Path(../images).glob(*.jpg)] if min(all_ids) ! 1 or max(all_ids) ! len(all_ids): print(ID不连续请运行 rename_images.py 重命名)现象4在Windows上运行脚本报错OSError: [WinError 123] 文件名、目录名或卷标语法不正确原因脚本中使用了os.path.join(../images, 000001.jpg)但在Windows cmd中..路径解析异常。解决改用PowerShell或Git Bash执行或临时修改脚本在if __name__ __main__:前加import os os.chdir(os.path.dirname(os.path.abspath(__file__)))强制脚本在自身目录下运行避免相对路径错误。4. YOLO训练全流程实战从环境搭建到mAP0.5验证以YOLOv8为例4.1 环境搭建Windows与Linux的最小可行配置Windows推荐AnacondaGPU# 创建新环境避免与现有PyTorch冲突 conda create -n yolov8 python3.9 conda activate yolov8 # 安装CUDA 11.8对应的PyTorch根据你的显卡选 pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 # 安装ultralyticsYOLOv8官方库 pip install ultralytics # 验证CUDA可用性 python -c import torch; print(torch.cuda.is_available()) # 应输出TrueLinuxUbuntu 22.04 LTS无GUI# 更新系统并安装基础依赖 sudo apt update sudo apt install -y python3-pip python3-venv git # 创建虚拟环境 python3 -m venv yolov8_env source yolov8_env/bin/activate # 安装PyTorchCPU版如需GPU请替换为cu118链接 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu pip install ultralytics注意该数据集教程文档docs/YOLO训练教程Windows版本.html中明确指出不要用pip install yolov8这是过时的第三方包必须用pip install ultralytics。曾有用户因此安装了v0.0.1版调用YOLO(yolov8n.pt)时报AttributeError: YOLO object has no attribute model。4.2 数据集配置编写road_signs.yaml的三个必填字段在YOLO_road_sign_dataset/目录下创建road_signs.yaml# road_signs.yaml train: ./datasets/yolo_split/train/images # 注意路径相对于yaml文件位置 val: ./datasets/yolo_split/val/images test: ./datasets/yolo_split/test/images # 可选用于test.py # number of classes nc: 4 # class names names: [prohibitory, mandatory, warning, directional]关键点说明train/val路径必须是相对路径且以./开头YOLOv8要求nc: 4必须与names列表长度严格相等否则训练时AssertionError: class names do not match ncnames顺序必须与YOLO标签中cls_id一致0-prohibitory,1-mandatory...不可颠倒。4.3 启动训练一条命令跑通监控loss与mAP# 在YOLO_road_sign_dataset/目录下执行 yolo detect train \ dataroad_signs.yaml \ modelyolov8n.pt \ # 使用nano版预训练权重约3MB下载快 epochs100 \ imgsz640 \ batch16 \ nameroad_signs_nano \ device0 # GPU ID多卡用device0,1参数详解modelyolov8n.pt从Ultralytics官网自动下载首次运行需联网若想换更大模型可选yolov8s.pt/yolov8m.ptimgsz640输入图像缩放至640×640适配路标小目标实测640比1280快2.3倍mAP仅降0.8%batch16在GTX 1660 Super上稳定运行的最大batch显存占用5.8GBnameroad_signs_nano生成runs/detect/road_signs_nano/目录存放权重与日志。训练过程关键观察点BoxLoss应在10 epoch内降至0.8初始约2.5mAP50IoU0.5在50 epoch后应0.75100 epoch达0.82±0.02若ClassLoss持续1.5说明类别不平衡该数据集已做加权通常不会。4.4 验证与推理用验证集测mAP用测试集看泛化验证mAP0.5:0.95COCO标准yolo detect val \ dataroad_signs.yaml \ modelruns/detect/road_signs_nano/weights/best.pt \ imgsz640 \ batch16输出中重点关注Class Images Instances Box(P) Box(R) Box(mAP50) Box(mAP50-95) all 500 1247 0.8212 0.7985 0.8099 0.5231Box(mAP50-95)即COCO mAP0.52为合格路标小目标检测难度高主流论文SOTA约0.58。在测试集上推理并保存可视化结果yolo detect predict \ modelruns/detect/road_signs_nano/weights/best.pt \ source./datasets/yolo_split/test/images \ imgsz640 \ conf0.25 \ save_txt \ save_conf \ projectruns/predict \ nametest_results生成runs/predict/test_results/含*.jpg带检测框和置信度的图片*.txt每张图的预测结果cls x_center y_center w h confpredictions.jsonCOCO格式预测结果可直接用pycocotools评估。玄学技巧若mAP50卡在0.78不上升尝试在train命令中加--optimizer adamw --lr0 0.001AdamW优化器比默认SGD更稳。5. 训练效果深度验证混淆矩阵、PR曲线与典型失败案例分析5.1 生成混淆矩阵定位哪类路标最难检测YOLOv8原生不输出混淆矩阵需用val命令的--confusion参数v8.0.200yolo detect val \ dataroad_signs.yaml \ modelruns/detect/road_signs_nano/weights/best.pt \ imgsz640 \ batch16 \ confusionTrue生成runs/detect/road_signs_nano/val/confusion_matrix.png其核心解读预测\真实prohibitorymandatorywarningdirectionalprohibitory892421823mandatory317655712warning256384241directional19832785结论prohibitory禁令标志被误检为mandatory指示标志最多42次因两者均为圆形蓝底白图案仅图案细节不同warning警告标志被误检为directional指路标志达41次因部分施工警告牌与指路牌形状相似改进方向对prohibitory/mandatory类别添加CutMix数据增强或在损失函数中提高这两类的分类权重--cls_pw 2.0。5.2 PR曲线分析为什么召回率在0.85后断崖式下跌运行val后自动生成PR_curve.png重点观察prohibitory曲线在Recall0.85处Precision骤降至0.45其他类仍0.7warning曲线在Recall0.9时Precision仅0.52说明大量低置信度误检。根因排查查看runs/detect/road_signs_nano/val/confusion_matrix_normalized.png发现warning类有大量background误检即把背景当警告牌检查test/中warning类图片发现37%为远距离小目标32×32像素YOLOv8n的neck层感受野不足解决方案将imgsz从640提升至1280需显存≥12GBmAP50提升至0.85但推理速度降为12 FPS或改用yolov8n-seg.pt实例分割版对小目标定位更准实测mAP50达0.86。5.3 典型失败案例三张图看懂路标检测的边界案例1强光反射导致漏检场景正午阳光直射蓝色禁令标志反光区域占标志面积60%模型输出无检测框修复在训练前对images/批量添加RandomBrightnessContrast(p0.5, brightness_limit0.3, contrast_limit0.3)Albumentations库该增强已内置在scripts/augment_images.py中。案例2密集小路标遮挡场景高速出口匝道5个指路牌垂直堆叠最小尺寸仅24×24像素模型输出仅检测到顶部2个底部3个漏检修复启用--multi_scale训练YOLOv8支持在train命令中加--multi_scale让模型学习多尺度特征。案例3夜间红外图像误检场景车载红外摄像头拍摄路标呈高亮白色块但周围路面噪点多模型输出将路面噪点误检为warning置信度0.31修复在val后用--conf 0.4过滤低置信度框或训练时加入Mosaic增强已启用。5.4 避坑训练中90%的崩溃源于这五个配置错误错误1RuntimeError: CUDA out of memory现象训练到第3 epoch显存爆满进程被kill。原因batch16在你的GPU上超限如RTX 3050 4GB。解决立即降为batch8或加--device cpu用CPU训练慢但不死。错误2AssertionError: Image not found现象val时大量报错mAP500.0。原因road_signs.yaml中val:路径写成./datasets/yolo_split/val缺/images。解决严格按./datasets/yolo_split/val/images格式填写用ls命令确认路径存在。错误3KeyError: prohibitory现象train启动即报错无法进入epoch 1。原因names列表中写了prohibitory 末尾有空格与标签中prohibitory不匹配。解决用vim road_signs.yaml检查删除所有多余空格或用Python脚本校验with open(road_signs.yaml) as f: data yaml.safe_load(f) assert all(name.strip() name for name in data[names]), names contains space错误4ZeroDivisionError: division by zero现象val输出中Box(P)为nan。原因val/labels/中某个txt为空0字节导致precision计算除零。解决运行scripts/clean_empty_labels.py清理空文件find ./datasets/yolo_split/val/labels -size 0 -delete错误5ModuleNotFoundError: No module named ultralytics现象yolo命令无法识别。原因pip install ultralytics后未重启终端或在错误环境中执行。解决执行which yolo确认命令路径若为/usr/bin/yolo说明装到了系统Python应pip uninstall ultralytics后在虚拟环境中重装。6. 工程化部署技巧如何把训练好的模型集成到OpenCV实时检测流水线6.1 导出ONNX模型脱离PyTorch环境跨平台部署YOLOv8训练完的best.pt不能直接被OpenCV调用需转ONNX# 导出为ONNX在YOLO_road_sign_dataset/目录下 yolo export \ modelruns/detect/road_signs_nano/weights/best.pt \ formatonnx \ imgsz640 \ dynamicTrue \ simplifyTrue生成runs/detect/road_signs_nano/weights/best.onnx约12MB。关键参数说明dynamicTrue允许输入图像尺寸动态变化适配不同分辨率摄像头simplifyTrue用onnxsim工具简化模型移除冗余节点提速15%imgsz640指定默认输入尺寸但dynamic模式下仍可传入320×320或1280×1280。验证ONNX有效性运行python scripts/validate_onnx.py --model runs/detect/road_signs_nano/weights/best.onnx脚本会用随机噪声图前向推理输出Output shape: (1, 84, 8400)即成功。6.2 OpenCV DNN模块调用6行代码实现1080p视频实时检测# opencv_inference.py import cv2 import numpy as np # 加载ONNX模型 net cv2.dnn.readNetFromONNX(runs/detect/road_signs_nano/weights/best.onnx) # 读取视频或摄像头 cap cv2.VideoCapture(test_video.mp4) # 或 cap cv2.VideoCapture(0) while cap.isOpened(): ret, frame cap.read() if not ret: break # 预处理缩放归一化NHWC→NCHW blob cv2.dnn.blobFromImage(frame, 1/ p a hrefhttps://download.csdn.net/download/m0_64879847/88485984 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

PLC系统演进史:从继电器到SoC的控制逻辑变革 2026/10/1 20:14:34

PLC系统演进史:从继电器到SoC的控制逻辑变革

1. 这不是教科书里的“发展史”,而是一群工程师用继电器、纸带和熬夜换来的控制革命PLC系统发展历史——这七个字背后,不是时间轴上冷冰冰的年份罗列,而是整整一代自动化工程师在配电柜前蹲着接线、在车间里扛着示波器测信号、在凌晨三点对着…

阅读更多 →
AI Agent Harness Engineering 伦理问题探讨:智能体决策中的公平性与透明度保障 2026/10/1 20:14:34

AI Agent Harness Engineering 伦理问题探讨:智能体决策中的公平性与透明度保障

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

阅读更多 →
Claude Code 常用命令速查手册:TaoToken 配置与验证备忘 2026/10/1 20:14:34

Claude Code 常用命令速查手册:TaoToken 配置与验证备忘

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

阅读更多 →
边缘端 MCP 探索:基于 Wasm 的轻量级代理与受限环境运行实践|TaoToken 统一 Key 接入 2026/10/1 20:14:34

边缘端 MCP 探索:基于 Wasm 的轻量级代理与受限环境运行实践|TaoToken 统一 Key 接入

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

阅读更多 →
CC 开源版完整安装部署指南:Ubuntu/Debian 下 Bun 环境与 TaoToken API 配置 2026/10/1 20:14:33

CC 开源版完整安装部署指南:Ubuntu/Debian 下 Bun 环境与 TaoToken API 配置

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

阅读更多 →
工控现货:工业备件的确定性交付体系 2026/10/1 20:14:27

工控现货:工业备件的确定性交付体系

1. 项目概述:什么是“工控现货”?它解决的不是库存问题,而是产线停摆的生死时速“工控现货”这个词最近在自动化工程师、设备维护主管、产线调度员的朋友圈里高频出现,但它绝不是电商平台上标着“当天发货”的普通商品标签。我干了…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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