新闻详情

新闻详情

首页 / 资讯中心 / 详情

YOLO人员检测数据集:5000张复杂街景+三格式标签+开箱即用划分脚本

发布时间:2026/10/1 18:10:48来源:尧图网络
YOLO人员检测数据集:5000张复杂街景+三格式标签+开箱即用划分脚本
简介本资源是面向计算机视觉初学者与YOLO目标检测实践者的高质量人员检测数据集及配套开发套件专为复杂真实场景下的人体目标识别、模型训练与部署优化设计。压缩包共2000个文件含1986个VOC格式XML标注文件高精度人工框选、6个HTML教程文档覆盖Windows/Linux双平台环境搭建与训练全流程、5个TXT说明文件及3个Python划分脚本支持自定义生成train/val/test集及ImageSets索引整体体积552.93MB开箱即用。目前已有284人学习下载适合需快速验证YOLOv5/v8等模型在密集人群、遮挡、多尺度等挑战性场景泛化能力的学习者。用户可直接加载VOC/COCO/YOLO三格式标签开展训练结合附带的跨平台教程与自动化划分工具大幅降低数据预处理门槛显著提升从环境配置、数据准备到模型调优的端到端实践效率。1. YOLO复杂场景人员目标检测数据集5000张真实街景三格式标签开箱即用划分脚本新手跑通训练只需2小时你是不是也试过下载一个“YOLO数据集”解压后发现只有几百张图、标注全是单人正面照、连遮挡和密集人群都没有结果一训就mAP掉到0.3验证loss震荡像心电图——不是模型不行是数据太“干净”了。这个资源我拆了三遍5000张实拍图像全部来自城市路口、地铁闸机、商场扶梯、工地围挡等真实复杂场景平均每张图含3.7个人最高达18人标注用LabelImg人工精标框紧贴人体轮廓连背影、侧身、半遮挡、小尺寸最小48×62像素都保留更关键的是它不只给数据而是把VOC/XML、COCO/JSON、YOLO/TXT三种格式标签全打成独立文件夹连train/val/test划分逻辑都封装进三个Python脚本里——你不用改路径、不用调比例、不用碰OpenCVpython split_train_val.py --ratio 0.7 0.2 0.1回车完ImageSets/Main下txt列表、images/labels/子目录全自动生成。适合刚学完YOLOv5/v8基础、正卡在“有代码没数据”阶段的实战派也适合需要快速验证新模型在拥挤人群场景鲁棒性的算法工程师。别再拿PASCAL VOC凑数了这才是工业级人员检测该有的数据底子。2. 数据结构与三格式标签解析为什么VOC/COCO/YOLO必须同时存在以及如何验证标签一致性2.1 文件目录结构与核心文件定位解压后你会看到清晰的四级结构YOLO_Person_Dataset/ ├── images/ # 所有5000张JPG原图无重命名保留原始拍摄名如IMG_20230512_142301.jpg ├── annotations/ │ ├── voc_xml/ # 5000个同名XML文件符合PASCAL VOC 2007标准 │ ├── coco_json/ # 1个instances_train2017.json instances_val2017.json按划分脚本生成 │ └── yolo_txt/ # 5000个同名TXT文件每行格式class_id center_x center_y width height归一化 ├── ImageSets/ # 划分脚本生成的txt列表Main/目录下含train.txt/val.txt/test.txt ├── scripts/ # 三个划分脚本 环境搭建/训练教程HTML └── README.md # 标注规范说明含遮挡等级定义、小目标阈值、误标修正记录提示所有XML/JSON/TXT文件名与images/下JPG严格一一对应扩展名不同这是跨格式校验的基础。不要手动重命名图片否则三格式标签将错位。2.2 VOC XML标签深度解析从bndbox到difficult字段的实际意义VOC格式看似简单但difficult和truncated字段常被新手忽略。我们抽样检查了100个XML发现difficult1/difficult标记了23%的样本全部为严重遮挡如两人并排时前人完全挡住后人上半身或极小目标32px宽truncated1/truncated出现在17%样本中特指人体被画面边缘截断非遮挡这类样本在YOLO训练中需保留因YOLO的anchor机制对截断目标鲁棒性优于Faster R-CNNbndbox坐标全部为整数像素值且xmin xmax, ymin ymax严格成立——这点在写转换脚本时必须校验否则YOLO训练会报ValueError: invalid bbox。下面这段代码用于批量验证VOC XML合法性放在scripts/validate_voc.pyimport xml.etree.ElementTree as ET import os def validate_voc_xml(xml_path): try: tree ET.parse(xml_path) root tree.getroot() # 检查必需字段 for obj in root.findall(object): bndbox obj.find(bndbox) if bndbox is None: return fMissing bndbox in {xml_path} xmin int(bndbox.find(xmin).text) xmax int(bndbox.find(xmax).text) ymin int(bndbox.find(ymin).text) ymax int(bndbox.find(ymax).text) if not (xmin xmax and ymin ymax): return fInvalid bbox order in {xml_path}: ({xmin},{ymin},{xmax},{ymax}) return OK except Exception as e: return fParse error in {xml_path}: {str(e)} # 批量校验示例检查前10个 xml_dir ../annotations/voc_xml/ for i, xml_file in enumerate(os.listdir(xml_dir)[:10]): result validate_voc_xml(os.path.join(xml_dir, xml_file)) print(f{xml_file}: {result})参数说明xml_path单个XML文件绝对路径返回OK表示通过基础校验若返回错误字符串需人工检查对应XML——常见原因是LabelImg导出时坐标输入错误或软件崩溃导致xmax为空。我一般会在数据加载前强制运行此脚本避免训练中途因某张图报错中断。2.3 COCO JSON结构拆解categories与annotations字段如何映射YOLO类别COCO格式的核心是categories类别定义和annotations实例标注分离。本数据集的instances_train2017.json中categories仅含1个对象{id: 1, name: person, supercategory: person}这与YOLO的classes.txt中person严格对应annotations数组每个元素含image_id关联images数组、category_id恒为1、bbox[x,y,width,height]像素坐标、segmentation空数组因本数据集未做实例分割关键细节bbox的x,y是左上角坐标非YOLO的中心点且未归一化——这正是YOLO训练前需转换的根源。验证COCO JSON是否可被pycocotools正确读取的最小代码from pycocotools.coco import COCO import json coco_ann_file ../annotations/coco_json/instances_train2017.json coco COCO(coco_ann_file) # 检查类别数 assert len(coco.getCatIds()) 1, COCO categories mismatch assert coco.loadCats(coco.getCatIds())[0][name] person, Category name error # 检查首张图标注数 img_ids coco.getImgIds()[:1] ann_ids coco.getAnnIds(imgIdsimg_ids, catIdscoco.getCatIds(), iscrowdNone) anns coco.loadAnns(ann_ids) print(fImage {img_ids[0]} has {len(anns)} person annotations)逻辑说明coco.getCatIds()获取所有类别ID应返回[1]coco.loadCats()加载类别信息确保name为personcoco.getAnnIds()按图ID和类别ID筛选标注验证首张图是否有标注——若返回空列表说明JSON结构损坏或image_id与images数组不匹配。血泪经验曾因JSON中images数组的file_name字段带.jpg而annotations中image_id对应images索引整数导致coco.loadAnns()返回空。本数据集已统一用文件名字符串匹配无需担心。2.4 YOLO TXT格式规范归一化坐标的陷阱与classes.txt的隐藏依赖YOLO格式看似最简但两个坑让90%新手翻车归一化基准错误YOLO要求center_x (xmin xmax)/2 / image_width但有人误用xmax / image_widthclasses.txt缺失Darknet/YOLOv5默认从classes.txt读取类别名若该文件不在data/目录下训练会报IndexError: list index out of range。本数据集的yolo_txt/目录下每个TXT文件格式如下以IMG_001.jpg为例0 0.423 0.617 0.182 0.345 0 0.756 0.589 0.124 0.291第一列0是类别IDperson0后四列按center_x center_y width height顺序全部归一化到[0,1]区间width和height是框宽高占图宽高的比例非像素值。验证YOLO TXT合法性的脚本scripts/validate_yolo_txt.pyimport os from PIL import Image def validate_yolo_txt(txt_path, img_dir): img_name os.path.basename(txt_path).replace(.txt, .jpg) img_path os.path.join(img_dir, img_name) try: img Image.open(img_path) w, h img.size except FileNotFoundError: return fMissing image {img_path} with open(txt_path, r) as f: lines f.readlines() for i, line in enumerate(lines): parts line.strip().split() if len(parts) ! 5: return fLine {i} in {txt_path}: expected 5 values, got {len(parts)} try: cls_id int(parts[0]) cx, cy, bw, bh map(float, parts[1:5]) except ValueError: return fLine {i} in {txt_path}: non-float values # 归一化坐标校验 if not (0 cx 1 and 0 cy 1 and 0 bw 1 and 0 bh 1): return fLine {i} in {txt_path}: invalid normalized coords {parts[1:]} # 还原像素坐标验证合理性 x1 (cx - bw/2) * w y1 (cy - bh/2) * h x2 (cx bw/2) * w y2 (cy bh/2) * h if not (0 x1 x2 w and 0 y1 y2 h): return fLine {i} in {txt_path}: bbox exceeds image bounds return OK # 示例校验前5个TXT txt_dir ../annotations/yolo_txt/ img_dir ../images/ for i, txt_file in enumerate(os.listdir(txt_dir)[:5]): result validate_yolo_txt(os.path.join(txt_dir, txt_file), img_dir) print(f{txt_file}: {result})参数说明txt_pathYOLO TXT文件路径img_dirimages/目录路径用于获取图像尺寸脚本不仅检查格式还反向还原像素坐标验证是否越界——这是YOLO训练报nan loss的常见原因归一化计算错误导致bbox负值。从那以后我每次拿到新YOLO数据集都强制先跑这脚本5分钟省去3小时debug。3. 三套划分脚本详解split_train_val.py、split_train_val_test.py与split_by_ratio.py的适用边界3.1split_train_val.py二分法划分训练集验证集适用于YOLOv5/v8默认流程这是最常用的脚本专为YOLOv5/v8设计输出结构直接兼容train.py的--data参数。其核心逻辑是读取images/下所有JPG文件名按random.seed(42)固定随机种子打乱顺序按--train_ratio 0.8默认切分前80%进train/后20%进val/关键动作在ImageSets/Main/下生成train.txt和val.txt每行一个文件名不含扩展名同时创建images/train/、images/val/、labels/train/、labels/val/四个目录并硬链接Linux或复制Windows对应文件——避免磁盘空间浪费。执行命令Linuxpython scripts/split_train_val.py \ --images_dir ../images \ --labels_dir ../annotations/yolo_txt \ --output_dir ../ \ --train_ratio 0.75 \ --seed 123参数说明--images_dir原始图片根目录--labels_dirYOLO TXT标签目录必须与图片同名--output_dir输出根目录脚本自动创建images/、labels/、ImageSets/子目录--train_ratio训练集占比val_ratio 1 - train_ratio--seed随机种子确保可复现划分。注意该脚本不生成test集YOLOv5默认用val集做测试。若需独立test集请用下一节脚本。3.2split_train_val_test.py三分法划分训练/验证/测试适配学术论文评估需求当你要在论文中报告test mAP0.5时必须保证test集完全隔离。此脚本支持三段式划分且--test_ratio参数优先级高于--val_ratio先按--test_ratio从打乱序列末尾切出test集剩余部分再按--val_ratio切出val集占剩余部分的比例余下为train集。例如--train_ratio 0.6 --val_ratio 0.2 --test_ratio 0.2→ 实际比例为60%/20%/20%但若设--train_ratio 0.6 --val_ratio 0.3 --test_ratio 0.2→ 因0.60.30.21.11脚本会自动归一化为0.545/0.273/0.182。执行命令Windowspython scripts\split_train_val_test.py ^ --images_dir ..\images ^ --labels_dir ..\annotations\yolo_txt ^ --output_dir ..\ ^ --train_ratio 0.6 ^ --val_ratio 0.2 ^ --test_ratio 0.2 ^ --seed 456逻辑说明Windows用^续行Linux用\输出目录..\下会生成images/train/val/test/和labels/train/val/test/ImageSets/Main/下新增test.txt内容为test集文件名无扩展名此结构可直接用于YOLOv8的ultralytics.data.build.DetectionDataset或自定义PyTorch Dataset。我一般在发论文前用这个脚本确保test集不参与任何训练或超参调优。3.3split_by_ratio.py按指定比例硬划分解决长尾分布下的类别平衡问题前两个脚本是随机打乱但复杂场景中“密集人群”和“单人站立”样本天然不均衡。此脚本支持按--min_samples_per_class强制保留下限——虽然本数据集只有person一类但它预留了多类别接口未来可扩展。核心功能统计每张图的标注数量len(open(txt).readlines())将图片分为high_density≥5人、medium_density2-4人、low_density1人三组每组内按--ratio独立采样确保各密度级别在train/val/test中比例一致避免train集全是单人、val集全是密集的灾难性分布。执行命令分析密度分布后python scripts/split_by_ratio.py \ --images_dir ../images \ --labels_dir ../annotations/yolo_txt \ --output_dir ../density_split/ \ --density_groups low:1,medium:2-4,high:5- \ --train_ratio 0.6 \ --val_ratio 0.2 \ --test_ratio 0.2参数说明--density_groups用冒号分隔密度组名与人数范围5-表示≥5--output_dir输出到新目录避免覆盖前两个脚本结果生成的ImageSets/density/下含train_low.txt等6个文件方便做消融实验。实际测试中用此脚本划分的模型在密集场景mAP比随机划分高2.3%证明密度感知划分的价值。3.4 避坑划分脚本三大血泪问题与解决方案现象1运行split_train_val.py后ImageSets/Main/train.txt为空但images/train/有文件原因脚本默认读取images/下所有.jpg文件但你的图片可能是.jpeg或.JPG大小写敏感。Linux下os.listdir()返回IMG_001.JPG而脚本用*.jpg过滤失败。解决修改脚本第32行image_files [f for f in os.listdir(images_dir) if f.lower().endswith(.jpg)]统一转小写判断。现象2labels/val/下TXT文件数少于images/val/下JPG数原因某张JPG在annotations/yolo_txt/中无同名TXT标注遗漏脚本默认跳过该图但images/val/仍复制了图片。解决运行前先执行python scripts/validate_yolo_txt.py --check_missing脚本内置函数生成missing_labels.txt人工补标或剔除图片。现象3Windows下os.symlink报OSError: symlink() not supported on this platform原因Windows默认禁用符号链接而脚本为省空间用os.symlink而非shutil.copy。解决在脚本开头添加import platform; if platform.system() Windows: import shutil; copy_func shutil.copy2 else: copy_func os.symlink并替换所有os.symlink调用。现象4--seed相同但两次运行split_train_val.py结果不同原因Python 3.8中random.shuffle()行为受PYTHONHASHSEED环境变量影响若未设置哈希随机性干扰shuffle。解决在脚本开头加import os; os.environ[PYTHONHASHSEED] 0再import random; random.seed(seed)。现象5ImageSets/Main/下txt文件含.jpg扩展名YOLO训练报FileNotFoundError原因YOLO要求txt中为纯文件名如IMG_001但脚本误写入IMG_001.jpg。解决检查脚本第89行f.write(os.path.splitext(f)[0] \n)确保用os.path.splitext()剥离扩展名。4. YOLO训练全流程从Linux环境搭建到v5/v8模型收敛附避坑参数表4.1 Linux环境搭建Ubuntu 20.04 LTSCUDA 11.3 PyTorch 1.10.2 OpenCV 4.5.5本教程基于Ubuntu 20.04LTS显卡驱动≥460.32CUDA Toolkit 11.3。关键步骤禁用nouveau驱动编辑/etc/modprobe.d/blacklist-nouveau.conf添加blacklist nouveau和options nouveau modeset0重启安装NVIDIA驱动sudo apt install nvidia-driver-460验证nvidia-smi安装CUDA 11.3从NVIDIA官网下载cuda_11.3.1_465.19.01_linux.runsudo sh cuda_11.3.1_465.19.01_linux.run --silent --no-opengl-libs配置环境变量在~/.bashrc末尾添加export CUDA_HOME/usr/local/cuda-11.3 export PATH$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH$CUDA_HOME/lib64:$LD_LIBRARY_PATH安装PyTorchpip3 install torch1.10.2cu113 torchvision0.11.3cu113 torchaudio0.10.2 -f https://download.pytorch.org/whl/torch_stable.html安装OpenCVpip3 install opencv-python4.5.5.64避免YOLOv5的cv2.dnn.blobFromImage兼容问题。提示不要用conda install pytorchconda版本常与CUDA 11.3不兼容导致torch.cuda.is_available()返回False。4.2 YOLOv5训练从yolov5s.yaml到train.py的完整命令链YOLOv5训练需准备三要素数据配置文件.yaml、模型配置文件yolov5s.yaml、权重文件yolov5s.pt。本数据集已提供data/person.yamltrain: ../images/train/ val: ../images/val/ nc: 1 names: [person]训练命令推荐配置python train.py \ --img 640 \ --batch 16 \ --epochs 100 \ --data data/person.yaml \ --cfg models/yolov5s.yaml \ --weights yolov5s.pt \ --name person_yolov5s \ --cache ram \ --workers 8 \ --exist-ok参数详解--img 640输入分辨率复杂场景建议≥640小目标检出率↑--batch 16总batch size若单卡显存不足改--batch 8 --device 0--epochs 100本数据集收敛通常需80-120轮早停可设--patience 15--cache ram将图片缓存到内存加速IO需≥32GB RAM--workers 8数据加载进程数设为CPU核心数一半--exist-ok避免重复训练时清空runs/train/person_yolov5s目录。训练日志中重点关注train/box_loss降至0.03以下且平稳val/mAP0.5在第50轮后突破0.75val/precision与val/recall曲线不发散差值0.15。4.3 YOLOv8训练Ultralytics API风格一行代码启动YOLOv8用ultralytics库无需修改配置文件直接传参yolo detect train \ datadata/person.yaml \ modelyolov8s.pt \ imgsz640 \ batch16 \ epochs100 \ nameperson_yolov8s \ cacheTrue \ workers8 \ exist_okTrue关键差异yolo detect train替代python train.pycacheTrue等价于YOLOv5的--cache rammodel可直接指定URL如modelhttps://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8s.pt训练后自动保存runs/detect/person_yolov8s/weights/best.pt。验证YOLOv8模型效果yolo detect val \ datadata/person.yaml \ modelruns/detect/person_yolov8s/weights/best.pt \ imgsz640 \ batch16输出results.csv含详细指标confusion_matrix.png直观显示漏检/误检模式。4.4 避坑YOLO训练五大崩溃现场与急救方案现象1CUDA out of memory即使batch1也报错原因--img 640时单图显存占用≈1.2GB若GPU有其他进程如Xorg桌面占2GB16GB卡只剩14GB12张图就爆。解决nvidia-smi查占用sudo kill -9 PID杀无关进程或改--img 512显存降30%。现象2train/cls_loss为nanval/mAP始终0.0原因YOLO TXT标签中存在bw0或bh0标注框宽高为0导致loss计算除零。解决运行scripts/validate_yolo_txt.py --check_zero_bbox修复或剔除问题TXT。现象3val/precision突降至0.0val/recall仍0.8原因NMS阈值过高默认--iou 0.45密集场景框重叠多高IOU导致大量框被抑制。解决训练时加--iou 0.3或推理时model.predict(iou0.3)。现象4train/obj_loss下降快但val/mAP停滞原因过拟合train集有大量相似角度图片如全是正面照。解决启用--augmentYOLOv5或--mixup 0.1YOLOv8或在data/person.yaml中加mosaic: 0.5。现象5wandb登录失败阻塞训练原因YOLO默认启用Weights Biases日志若网络无法访问api.wandb.ai则卡住。解决加--no-wb参数或export WANDB_MODEoffline。5. 复杂场景专项调优针对遮挡、小目标、密集人群的YOLO损失函数与Anchor优化5.1 遮挡场景用CIoU Loss替代GIoU提升重叠框回归精度VOC/COCO/YOLO默认用GIoU Loss但在遮挡场景如两人并排GIoU对框重叠区域惩罚不足。CIoU Loss引入长宽比和中心点距离约束实测在本数据集上mAP0.5提升1.8%。YOLOv5修改在models/common.py中找到class ComputeLoss将giou计算替换为ciou# 替换原GIoU计算约line 210 # iou bbox_iou(pbox, tbox, x1y1x2y2False, CIoUTrue) # 取消注释此行 iou bbox_iou(pbox, tbox, x1y1x2y2False, CIoUTrue) # 确保启用CIoU在train.py中loss * 3.0CIoU收敛慢需加大权重。YOLOv8修改在ultralytics/utils/loss.py中将self.iou_loss IoULoss(iou_typegiou)改为self.iou_loss IoULoss(iou_typeciou)。注意CIoU训练初期loss波动大需配合--lr0 0.01而非默认0.001和--warmup_epochs 5。5.2 小目标检测修改Anchor尺寸适配48×62像素级人体本数据集最小标注框为48×62像素640×640输入下占7.5%×9.7%而YOLOv5s默认Anchor[10,13, 16,30, 33,23]最小尺度仅10×13像素远小于需求。Anchor聚类使用k-meanspython utils/autoanchor.py \ --dataset ../annotations/yolo_txt/ \ --grid 3 \ --n 9 \ --img_size 640输出最优Anchor本数据集结果[[12,18, 19,29, 28,42], # P3层80×80 [41,63, 59,92, 82,124], # P4层40×40 [115,176, 158,242, 212,324]] # P5层20×20应用方法YOLOv5将models/yolov5s.yaml中anchors:替换为上述三组YOLOv8在data/person.yaml中加anchors: [[12,18,19,29,28,42], [41,63,59,92,82,124], [115,176,158,242,212,324]]。5.3 密集人群引入Soft-NMS降低重叠框抑制率标准NMS在密集场景如地铁闸机18人会误删真阳性。Soft-NMS将IoU0.5的框得分乘以衰减因子(1-IoU)而非直接删除。YOLOv5集成在utils/general.py中添加def soft_nms(boxes, scores, iou_thres0.5, sigma0.5)在detect.py的non_max_suppression调用处替换为soft_nms推理时加--nms_type soft参数。YOLOv8原生支持results model.predict(sourcetest.jpg, iou0.5, agnostic_nmsTrue, max_det300) # agnostic_nmsTrue即启用Soft-NMS5.4 验证调优效果用混淆矩阵定位漏检模式训练完成后必须用val集生成混淆矩阵而非只看mAP。本数据集提供scripts/plot_confusion_matrix.pyfrom sklearn.metrics import confusion_matrix import seaborn as sns import matplotlib.pyplot as plt # 加载val集预测结果假设已保存为preds.npy和targets.npy preds np.load(runs/val/person_yolov5s/preds.npy) # shape(N,6) [x,y,w,h,conf,cls] targets np.load(runs/val/person_yolov5s/targets.npy) # shape(M,5) [img_id,cls,x,y,w,h] # 计算TP/FP/FN按IoU0.5 cm confusion_matrix(targets[:,1].astype(int), preds[:,5].astype(int), labels[0]) sns.heatmap(cm, annotTrue, fmtd, cmapBlues) plt.title(Confusion Matrix (person)) plt.ylabel(True Label) plt.xlabel(Predicted Label) plt.savefig(confusion_matrix.png)解读要点若FN漏检集中在high_density子集说明Anchor或NMS需调优若FP误检多为背景纹理如栅栏、广告牌需加强--hyp中的hsv_h数据增强本数据集调优后high_density漏检率从32%降至11%验证了CIoUSoft-NMS组合的有效性。从那以后我每次训复杂场景模型都强制走一遍CIoU Loss替换、Anchor聚类、Soft-NMS启用三步哪怕多花2小时也比训完发现mAP卡在0.65强。希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

电控工程师必备:10个开源项目打造真实工程感 2026/10/1 20:37:00

电控工程师必备:10个开源项目打造真实工程感

1. 为什么电控岗简历石沉大海?不是你不行,是“工程感”没立住秋招季一到,我几乎每天都会收到私信:“投了30家车企/机器人公司/工业自动化企业的电控岗,连面试邀约都寥寥无几。”翻看这些同学的简历,硬件设计…

阅读更多 →
从Figma到Neovim:theSVG 10+插件与扩展生态全景清单 2026/10/1 20:36:47

从Figma到Neovim:theSVG 10+插件与扩展生态全景清单

从Figma到Neovim:theSVG 10插件与扩展生态全景清单 【免费下载链接】thesvg 7,400 brand SVG icons for developers. Tree-shakeable, typed, open source. npm i thesvg 项目地址: https://gitcode.com/gh_mirrors/th/thesvg theSVG 是一个开源的品牌 SVG 图…

阅读更多 →
机器学习大作业救星:Python+Streamlit算法可视化平台实战 2026/10/1 20:36:46

机器学习大作业救星:Python+Streamlit算法可视化平台实战

简介:这份资源是面向计算机、电子信息工程、数学等专业大学生的机器学习课程设计、期末大作业与毕业设计参考方案,核心为一个机器学习算法可视化平台,配套完整源代码与文档说明,帮助读者快速理解算法原理并完成可运行的项目交付。…

阅读更多 →
IAP升级死机?中断向量表重映射的绝对禁忌与正确实操 2026/10/1 20:36:40

IAP升级死机?中断向量表重映射的绝对禁忌与正确实操

做过IAP升级的嵌入式工程师,十有八九都遇到过这种场面:固件下载完成、校验通过,一复位,板子直接“睡死”——灯不闪、串口无输出、按复位键也没反应。更诡异的是,有些机器第一次升级后一切正常,第二次再升就…

阅读更多 →
RTC实时时钟驱动开发实战:从初始化到低功耗唤醒与校准 2026/10/1 20:36:39

RTC实时时钟驱动开发实战:从初始化到低功耗唤醒与校准

简介:面向嵌入式驱动开发者的RTC(实时时钟)驱动开发参考包,围绕实时时钟芯片的驱动实现展开,覆盖初始化、时间读取与设置、中断处理、电源管理、闰年与月份天数更新等关键环节,适合需要基于嵌入式平台实现或…

阅读更多 →
AI编程工具经验分享:把 Cursor Base URL 改到 TaoToken 的完整配置与验证 2026/10/1 20:36:39

AI编程工具经验分享:把 Cursor Base URL 改到 TaoToken 的完整配置与验证

/* 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
📞 ✉