[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-DataXujing--YOLO-v5":3,"tool-DataXujing--YOLO-v5":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",156804,2,"2026-04-15T11:34:33",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":10,"env_os":102,"env_gpu":103,"env_ram":102,"env_deps":104,"category_tags":110,"github_topics":111,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":115,"updated_at":116,"faqs":117,"releases":148},7800,"DataXujing\u002FYOLO-v5","YOLO-v5",":art: Pytorch YOLO v5 训练自己的数据集超详细教程！！！ :art: (提供PDF训练教程下载）","YOLOv5 是一款基于 PyTorch 框架实现的实时目标检测开源模型，由 Ultralytics 公司发布。它旨在帮助开发者快速、高效地在自定义数据集上训练高精度的物体识别算法，广泛应用于医疗影像分析、安防监控及自动驾驶等领域。\n\n针对传统检测模型训练门槛高、环境配置复杂的问题，YOLOv5 提供了从数据标注格式转换、配置文件修改到模型训练与部署的全流程详细指南。用户只需准备图片和对应的标注文件，即可轻松启动训练，大幅降低了算法落地的难度。此外，项目还兼容 TensorRT 加速与 INT8 量化技术，进一步提升了推理速度，满足实际工程对实时性的严苛要求。\n\n这款工具非常适合计算机视觉开发者、人工智能研究人员以及需要定制检测功能的企业工程师使用。其核心亮点在于完全基于 PyTorch 构建，代码结构清晰易读，并引入了马赛克（Mosaic）数据增强等先进技术，显著提升了小样本下的模型泛化能力。无论是希望复现前沿算法的科研人员，还是寻求快速原型验证的工程团队，都能通过 YOLOv5 获得稳定且高性能的解决方案。","## [YOLO v5](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5)在医疗领域中消化内镜目标检测的应用\n\n### YOLO v5训练自己数据集详细教程\n\n:bug: :bug: 现在YOLOv5 已经更新到6.0版本了，但是其训练方式同本Repo是一致的，只需要按照对应版本安装对应Python环境即可，其数据集的构建，配置文件的修改，训练方式等完全与本Repo一致！\n\n:bug: :bug: 我们提供了YOLOv5 TensorRT调用和INT8量化的C++和Python代码（其TensorRT加速方式不同于本Repo提供的TensorRT调用方式），有需要的大佬可在issues中留言！\n\n**Xu Jing**\n\n------\n:fire: 由于官方新版YOLO v5的backbone和部分参数调整，导致很多小伙伴下载最新官方预训练模型不可用，这里提供原版的YOLO v5的预训练模型的百度云盘下载地址\n\n链接：https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1SDwp6I_MnRLK45QdB3-yNw \n提取码：423j\n\n------\n\n+ YOLOv4还没有退热，YOLOv5已经发布！\n\n+ 6月9日，Ultralytics公司开源了YOLOv5，离上一次YOLOv4发布不到50天。而且这一次的YOLOv5是完全基于PyTorch实现的！\n\n+ YOLO v5的主要贡献者是YOLO v4中重点介绍的马赛克数据增强的作者\n\n\u003Ca href=\"https:\u002F\u002Fapps.apple.com\u002Fapp\u002Fid1452689527\" target=\"_blank\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_0d705f7041b9.jpg\" width=\"1000\">\u003C\u002Fa>\n\n\n\n> 本项目描述了如何基于自己的数据集训练YOLO v5\n\n\u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_312fec0b7ae9.png\" width=\"1000\">\n\n但是YOLO v4的二作提供给我们的信息和官方提供的还是有一些出入：\n\n\u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_2ceb03f35315.jpg\" width=\"800\">\n\n\n#### 0.环境配置\n\n安装必要的python package和配置相关环境\n\n```\n# python3.6\n# torch==1.3.0\n# torchvision==0.4.1\n\n# git clone yolo v5 repo\ngit clone https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5 # clone repo\n# 下载官方的样例数据（这一步可以省略）\npython3 -c \"from yolov5.utils.google_utils import gdrive_download; gdrive_download('1n_oKgR81BJtqk75b00eAjdv03qVCQn2f','coco128.zip')\" # download dataset\ncd yolov5\n# 安装必要的package\npip3 install -U -r requirements.txt\n```\n\n#### 1.创建数据集的配置文件`dataset.yaml`\n\n[data\u002Fcoco128.yaml](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\u002Fblob\u002Fmaster\u002Fdata\u002Fcoco128.yaml)来自于COCO train2017数据集的前128个训练图像，可以基于该`yaml`修改自己数据集的`yaml`文件\n\n ```ymal\n # train and val datasets (image directory or *.txt file with image paths)\ntrain: .\u002Fdatasets\u002Fscore\u002Fimages\u002Ftrain\u002F\nval: .\u002Fdatasets\u002Fscore\u002Fimages\u002Fval\u002F\n\n# number of classes\nnc: 3\n\n# class names\nnames: ['QP', 'NY', 'QG']\n ```\n\n#### 2.创建标注文件\n\n可以使用LabelImg,Labme,[Labelbox](https:\u002F\u002Flabelbox.com\u002F), [CVAT](https:\u002F\u002Fgithub.com\u002Fopencv\u002Fcvat)来标注数据，对于目标检测而言需要标注bounding box即可。然后需要将标注转换为和**darknet format**相同的标注形式，每一个图像生成一个`*.txt`的标注文件（如果该图像没有标注目标则不用创建`*.txt`文件）。创建的`*.txt`文件遵循如下规则：\n\n- 每一行存放一个标注类别\n- 每一行的内容包括`class x_center y_center width height`\n- Bounding box 的坐标信息是归一化之后的（0-1）\n- class label转化为index时计数是从0开始的\n\n```python\ndef convert(size, box):\n    '''\n    将标注的xml文件标注转换为darknet形的坐标\n    '''\n    dw = 1.\u002F(size[0])\n    dh = 1.\u002F(size[1])\n    x = (box[0] + box[1])\u002F2.0 - 1\n    y = (box[2] + box[3])\u002F2.0 - 1\n    w = box[1] - box[0]\n    h = box[3] - box[2]\n    x = x*dw\n    w = w*dw\n    y = y*dh\n    h = h*dh\n    return (x,y,w,h)\n```\n\n每一个标注`*.txt`文件存放在和图像相似的文件目录下，只需要将`\u002Fimages\u002F*.jpg`替换为`\u002Flables\u002F*.txt`即可（这个在加载数据时代码内部的处理就是这样的，可以自行修改为VOC的数据格式进行加载）\n\n例如：\n\n```\ndatasets\u002Fscore\u002Fimages\u002Ftrain\u002F000000109622.jpg  # image\ndatasets\u002Fscore\u002Flabels\u002Ftrain\u002F000000109622.txt  # label\n```\n如果一个标注文件包含5个person类别（person在coco数据集中是排在第一的类别因此index为0）：\n\n\u003Cimg width=\"500\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_72fc13594bc8.png\">\n\n#### 3.组织训练集的目录\n\n将训练集train和验证集val的images和labels文件夹按照如下的方式进行存放\n\n\u003Cimg width=\"500\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_b13d32fefd6a.png\">\n\n至此数据准备阶段已经完成，过程中我们假设算法工程师的数据清洗和数据集的划分过程已经自行完成。\n\n#### 4.选择模型backbone进行模型配置文件的修改\n\n在项目的`.\u002Fmodels`文件夹下选择一个需要训练的模型，这里我们选择[yolov5x.yaml](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\u002Fblob\u002Fmaster\u002Fmodels\u002Fyolov5x.yaml),最大的一个模型进行训练，参考官方README中的[table](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5#pretrained-checkpoints),了解不同模型的大小和推断速度。如果你选定了一个模型，那么需要修改模型对应的`yaml`文件\n\n```yaml\n\n# parameters\nnc: 3  # number of classes   \u003C------------------  UPDATE to match your dataset\ndepth_multiple: 1.33  # model depth multiple\nwidth_multiple: 1.25  # layer channel multiple\n\n# anchors\nanchors:\n  - [10,13, 16,30, 33,23]  # P3\u002F8\n  - [30,61, 62,45, 59,119]  # P4\u002F16\n  - [116,90, 156,198, 373,326]  # P5\u002F32\n\n# yolov5 backbone\nbackbone:\n  # [from, number, module, args]\n  [[-1, 1, Focus, [64, 3]],  # 1-P1\u002F2\n   [-1, 1, Conv, [128, 3, 2]],  # 2-P2\u002F4\n   [-1, 3, Bottleneck, [128]],\n   [-1, 1, Conv, [256, 3, 2]],  # 4-P3\u002F8\n   [-1, 9, BottleneckCSP, [256]],\n   [-1, 1, Conv, [512, 3, 2]],  # 6-P4\u002F16\n   [-1, 9, BottleneckCSP, [512]],\n   [-1, 1, Conv, [1024, 3, 2]], # 8-P5\u002F32\n   [-1, 1, SPP, [1024, [5, 9, 13]]],\n   [-1, 6, BottleneckCSP, [1024]],  # 10\n  ]\n\n# yolov5 head\nhead:\n  [[-1, 3, BottleneckCSP, [1024, False]],  # 11\n   [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]],  # 12 (P5\u002F32-large)\n\n   [-2, 1, nn.Upsample, [None, 2, 'nearest']],\n   [[-1, 6], 1, Concat, [1]],  # cat backbone P4\n   [-1, 1, Conv, [512, 1, 1]],\n   [-1, 3, BottleneckCSP, [512, False]],\n   [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]],  # 17 (P4\u002F16-medium)\n\n   [-2, 1, nn.Upsample, [None, 2, 'nearest']],\n   [[-1, 4], 1, Concat, [1]],  # cat backbone P3\n   [-1, 1, Conv, [256, 1, 1]],\n   [-1, 3, BottleneckCSP, [256, False]],\n   [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]],  # 22 (P3\u002F8-small)\n\n   [[], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)\n  ]\n\n```\n\n#### 5.Train\n\n```bash\n# Train yolov5x on score for 300 epochs\n\n$ python3 train.py --img-size 640 --batch-size 16 --epochs 300 --data .\u002Fdata\u002Fscore.yaml --cfg .\u002Fmodels\u002Fscore\u002Fyolov5x.yaml --weights weights\u002Fyolov5x.pt\n\n```\n\n\n#### 6.Visualize\n\n开始训练后，查看`train*.jpg`图片查看训练数据，标签和数据增强，如果你的图像显示标签或数据增强不正确，你应该查看你的数据集的构建过程是否有问题\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_c42de0a03ddc.jpg\">\n\n一个训练epoch完成后，查看`test_batch0_gt.jpg`查看batch 0 ground truth的labels\n\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_7348e598c69a.jpg\">\n\n查看`test_batch0_pred.jpg`查看test batch 0的预测\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_fd03c4534754.jpg\">\n\n训练的losses和评价指标被保存在Tensorboard和`results.txt`log文件。`results.txt`在训练结束后会被可视化为`results.png`\n\n```python\n>>> from utils.utils import plot_results\n>>> plot_results()\n# 如果你是用远程连接请安装配置Xming: https:\u002F\u002Fblog.csdn.net\u002Fakuoma\u002Farticle\u002Fdetails\u002F82182913\n```\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_59b5b1f1c074.png\">\n\n#### 7.推断\n\n```python\n$ python3 detect.py --source file.jpg  # image \n                            file.mp4  # video\n                            .\u002Fdir  # directory\n                            0  # webcam\n                            rtsp:\u002F\u002F170.93.143.139\u002Frtplive\u002F470011e600ef003a004ee33696235daa  # rtsp stream\n                            http:\u002F\u002F112.50.243.8\u002FPLTV\u002F88888888\u002F224\u002F3221225900\u002F1.m3u8  # http stream\n````\n\n\n```python\n# inference  \u002Fhome\u002Fmyuser\u002Fxujing\u002FEfficientDet-Pytorch\u002Fdataset\u002Ftest\u002F 文件夹下的图像\n$ python3 detect.py --source \u002Fhome\u002Fmyuser\u002Fxujing\u002FEfficientDet-Pytorch\u002Fdataset\u002Ftest\u002F --weights weights\u002Fbest.pt --conf 0.1\n\n$ python3 detect.py --source .\u002Finference\u002Fimages\u002F --weights weights\u002Fyolov5x.pt --conf 0.5\n\n# inference  视频\n$ python3 detect.py --source test.mp4 --weights weights\u002Fyolov5x.pt --conf 0.4\n```\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_87aade2a01b8.jpg\">\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_851d56d1daeb.jpg\">\n\n#### 8.YOLOv5的TensorRT加速\n\n[请到这里来](.\u002FREADME_v3.md)\n\n\n**Reference**\n\n[1].https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\n\n[2].https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\u002Fwiki\u002FTrain-Custom-Data\n","## [YOLO v5](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5)在医疗领域中消化内镜目标检测的应用\n\n### YOLO v5训练自己数据集详细教程\n\n:bug: :bug: 现在YOLOv5 已经更新到6.0版本了，但是其训练方式同本Repo是一致的，只需要按照对应版本安装对应Python环境即可，其数据集的构建，配置文件的修改，训练方式等完全与本Repo一致！\n\n:bug: :bug: 我们提供了YOLOv5 TensorRT调用和INT8量化的C++和Python代码（其TensorRT加速方式不同于本Repo提供的TensorRT调用方式），有需要的大佬可在issues中留言！\n\n**Xu Jing**\n\n------\n:fire: 由于官方新版YOLO v5的backbone和部分参数调整，导致很多小伙伴下载最新官方预训练模型不可用，这里提供原版的YOLO v5的预训练模型的百度云盘下载地址\n\n链接：https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1SDwp6I_MnRLK45QdB3-yNw \n提取码：423j\n\n------\n\n+ YOLOv4还没有退热，YOLOv5已经发布！\n\n+ 6月9日，Ultralytics公司开源了YOLOv5，离上一次YOLOv4发布不到50天。而且这一次的YOLOv5是完全基于PyTorch实现的！\n\n+ YOLO v5的主要贡献者是YOLO v4中重点介绍的马赛克数据增强的作者\n\n\u003Ca href=\"https:\u002F\u002Fapps.apple.com\u002Fapp\u002Fid1452689527\" target=\"_blank\">\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_0d705f7041b9.jpg\" width=\"1000\">\u003C\u002Fa>\n\n\n\n> 本项目描述了如何基于自己的数据集训练YOLO v5\n\n\u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_312fec0b7ae9.png\" width=\"1000\">\n\n但是YOLO v4的二作提供给我们的信息和官方提供的还是有一些出入：\n\n\u003Cimg align=\"center\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_2ceb03f35315.jpg\" width=\"800\">\n\n\n#### 0.环境配置\n\n安装必要的python package和配置相关环境\n\n```\n# python3.6\n# torch==1.3.0\n# torchvision==0.4.1\n\n# git clone yolo v5 repo\ngit clone https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5 # clone repo\n# 下载官方的样例数据（这一步可以省略）\npython3 -c \"from yolov5.utils.google_utils import gdrive_download; gdrive_download('1n_oKgR81BJtqk75b00eAjdv03qVCQn2f','coco128.zip')\" # download dataset\ncd yolov5\n# 安装必要的package\npip3 install -U -r requirements.txt\n```\n\n#### 1.创建数据集的配置文件`dataset.yaml`\n\n[data\u002Fcoco128.yaml](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\u002Fblob\u002Fmaster\u002Fdata\u002Fcoco128.yaml)来自于COCO train2017数据集的前128个训练图像，可以基于该`yaml`修改自己数据集的`yaml`文件\n\n ```ymal\n # train and val datasets (image directory or *.txt file with image paths)\ntrain: .\u002Fdatasets\u002Fscore\u002Fimages\u002Ftrain\u002F\nval: .\u002Fdatasets\u002Fscore\u002Fimages\u002Fval\u002F\n\n# number of classes\nnc: 3\n\n# class names\nnames: ['QP', 'NY', 'QG']\n ```\n\n#### 2.创建标注文件\n\n可以使用LabelImg,Labme,[Labelbox](https:\u002F\u002Flabelbox.com\u002F), [CVAT](https:\u002F\u002Fgithub.com\u002Fopencv\u002Fcvat)来标注数据，对于目标检测而言需要标注bounding box即可。然后需要将标注转换为和**darknet format**相同的标注形式，每一个图像生成一个`*.txt`的标注文件（如果该图像没有标注目标则不用创建`*.txt`文件）。创建的`*.txt`文件遵循如下规则：\n\n- 每一行存放一个标注类别\n- 每一行的内容包括`class x_center y_center width height`\n- Bounding box 的坐标信息是归一化之后的（0-1）\n- class label转化为index时计数是从0开始的\n\n```python\ndef convert(size, box):\n    '''\n    将标注的xml文件标注转换为darknet形的坐标\n    '''\n    dw = 1.\u002F(size[0])\n    dh = 1.\u002F(size[1])\n    x = (box[0] + box[1])\u002F2.0 - 1\n    y = (box[2] + box[3])\u002F2.0 - 1\n    w = box[1] - box[0]\n    h = box[3] - box[2]\n    x = x*dw\n    w = w*dw\n    y = y*dh\n    h = h*dh\n    return (x,y,w,h)\n```\n\n每一个标注`*.txt`文件存放在和图像相似的文件目录下，只需要将`\u002Fimages\u002F*.jpg`替换为`\u002Flables\u002F*.txt`即可（这个在加载数据时代码内部的处理就是这样的，可以自行修改为VOC的数据格式进行加载）\n\n例如：\n\n```\ndatasets\u002Fscore\u002Fimages\u002Ftrain\u002F000000109622.jpg  # image\ndatasets\u002Fscore\u002Flabels\u002Ftrain\u002F000000109622.txt  # label\n```\n如果一个标注文件包含5个person类别（person在coco数据集中是排在第一的类别因此index为0）：\n\n\u003Cimg width=\"500\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_72fc13594bc8.png\">\n\n#### 3.组织训练集的目录\n\n将训练集train和验证集val的images和labels文件夹按照如下的方式进行存放\n\n\u003Cimg width=\"500\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_b13d32fefd6a.png\">\n\n至此数据准备阶段已经完成，过程中我们假设算法工程师的数据清洗和数据集的划分过程已经自行完成。\n\n#### 4.选择模型backbone进行模型配置文件的修改\n\n在项目的`.\u002Fmodels`文件夹下选择一个需要训练的模型，这里我们选择[yolov5x.yaml](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\u002Fblob\u002Fmaster\u002Fmodels\u002Fyolov5x.yaml),最大的一个模型进行训练，参考官方README中的[table](https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5#pretrained-checkpoints),了解不同模型的大小和推断速度。如果你选定了一个模型，那么需要修改模型对应的`yaml`文件\n\n```yaml\n\n# parameters\nnc: 3  # number of classes   \u003C------------------  UPDATE to match your dataset\ndepth_multiple: 1.33  # model depth multiple\nwidth_multiple: 1.25  # layer channel multiple\n\n# anchors\nanchors:\n  - [10,13, 16,30, 33,23]  # P3\u002F8\n  - [30,61, 62,45, 59,119]  # P4\u002F16\n  - [116,90, 156,198, 373,326]  # P5\u002F32\n\n# yolov5 backbone\nbackbone:\n  # [from, number, module, args]\n  [[-1, 1, Focus, [64, 3]],  # 1-P1\u002F2\n   [-1, 1, Conv, [128, 3, 2]],  # 2-P2\u002F4\n   [-1, 3, Bottleneck, [128]],\n   [-1, 1, Conv, [256, 3, 2]],  # 4-P3\u002F8\n   [-1, 9, BottleneckCSP, [256]],\n   [-1, 1, Conv, [512, 3, 2]],  # 6-P4\u002F16\n   [-1, 9, BottleneckCSP, [512]],\n   [-1, 1, Conv, [1024, 3, 2]], # 8-P5\u002F32\n   [-1, 1, SPP, [1024, [5, 9, 13]]],\n   [-1, 6, BottleneckCSP, [1024]],  # 10\n  ]\n\n# yolov5 head\nhead:\n  [[-1, 3, BottleneckCSP, [1024, False]],  # 11\n   [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]],  # 12 (P5\u002F32-large)\n\n   [-2, 1, nn.Upsample, [None, 2, 'nearest']],\n   [[-1, 6], 1, Concat, [1]],  # cat backbone P4\n   [-1, 1, Conv, [512, 1, 1]],\n   [-1, 3, BottleneckCSP, [512, False]],\n   [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]],  # 17 (P4\u002F16-medium)\n\n   [-2, 1, nn.Upsample, [None, 2, 'nearest']],\n   [[-1, 4], 1, Concat, [1]],  # cat backbone P3\n   [-1, 1, Conv, [256, 1, 1]],\n   [-1, 3, BottleneckCSP, [256, False]],\n   [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1, 0]],  # 22 (P3\u002F8-small)\n\n   [[], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)\n  ]\n\n```\n\n#### 5.Train\n\n```bash\n# Train yolov5x on score for 300 epochs\n\n$ python3 train.py --img-size 640 --batch-size 16 --epochs 300 --data .\u002Fdata\u002Fscore.yaml --cfg .\u002Fmodels\u002Fscore\u002Fyolov5x.yaml --weights weights\u002Fyolov5x.pt\n\n```\n\n\n#### 6.Visualize\n\n开始训练后，查看`train*.jpg`图片查看训练数据，标签和数据增强，如果你的图像显示标签或数据增强不正确，你应该查看你的数据集的构建过程是否有问题\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_c42de0a03ddc.jpg\">\n\n一个训练epoch完成后，查看`test_batch0_gt.jpg`查看batch 0 ground truth的labels\n\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_7348e598c69a.jpg\">\n\n查看`test_batch0_pred.jpg`查看test batch 0的预测\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_fd03c4534754.jpg\">\n\n训练的losses和评价指标被保存在Tensorboard和`results.txt`log文件。`results.txt`在训练结束后会被可视化为`results.png`\n\n```python\n>>> from utils.utils import plot_results\n>>> plot_results()\n# 如果你是用远程连接请安装配置Xming: https:\u002F\u002Fblog.csdn.net\u002Fakuoma\u002Farticle\u002Fdetails\u002F82182913\n```\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"Screen Shot 2020-04-01 at 11 44 26 AM\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_59b5b1f1c074.png\">\n\n#### 7.推断\n\n```python\n$ python3 detect.py --source file.jpg  # image \n                            file.mp4  # video\n                            .\u002Fdir  # directory\n                            0  # webcam\n                            rtsp:\u002F\u002F170.93.143.139\u002Frtplive\u002F470011e600ef003a004ee33696235daa  # rtsp stream\n                            http:\u002F\u002F112.50.243.8\u002FPLTV\u002F88888888\u002F224\u002F3221225900\u002F1.m3u8  # http stream\n````\n\n\n```python\n# inference  \u002Fhome\u002Fmyuser\u002Fxujing\u002FEfficientDet-Pytorch\u002Fdataset\u002Ftest\u002F 文件夹下的图像\n$ python3 detect.py --source \u002Fhome\u002Fmyuser\u002Fxujing\u002FEfficientDet-Pytorch\u002Fdataset\u002Ftest\u002F --weights weights\u002Fbest.pt --conf 0.1\n\n$ python3 detect.py --source .\u002Finference\u002Fimages\u002F --weights weights\u002Fyolov5x.pt --conf 0.5\n\n# 推理 视频\n$ python3 detect.py --source test.mp4 --weights weights\u002Fyolov5x.pt --conf 0.4\n```\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"2020年4月1日 上午11:44 截图\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_87aade2a01b8.jpg\">\n\n\u003Cimg width=\"1000\" align=\"center\" alt=\"2020年4月1日 上午11:44 截图\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_readme_851d56d1daeb.jpg\">\n\n#### 8.YOLOv5的TensorRT加速\n\n[请到这里来](.\u002FREADME_v3.md)\n\n\n**参考文献**\n\n[1].https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\n\n[2].https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\u002Fwiki\u002FTrain-Custom-Data","# YOLOv5 快速上手指南\n\n本指南基于 Ultralytics 开源的 YOLOv5 项目，帮助开发者快速完成环境配置、模型训练及推理。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n- **操作系统**: Linux, macOS 或 Windows\n- **Python**: 推荐 Python 3.6+ (官方示例基于 3.6)\n- **PyTorch**: 推荐 torch>=1.3.0\n- **硬件**: 建议使用 NVIDIA GPU 以加速训练和推理\n\n**国内加速建议**：\n在安装依赖前，建议配置国内镜像源以提升下载速度：\n```bash\n# 配置 pip 使用清华镜像源\npip config set global.index-url https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n## 2. 安装步骤\n\n### 2.1 克隆代码仓库\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fultralytics\u002Fyolov5\ncd yolov5\n```\n\n### 2.2 安装依赖\n执行以下命令自动安装 `requirements.txt` 中列出的所有必要包（包括 torch 和 torchvision）：\n```bash\npip3 install -U -r requirements.txt\n```\n*注：若需手动指定 PyTorch 版本，请访问 PyTorch 官网获取对应命令。*\n\n## 3. 基本使用\n\n### 3.1 快速推理（预训练模型）\n无需训练，直接使用官方预训练权重对图片、视频或摄像头进行目标检测。\n\n**检测单张图片：**\n```bash\npython3 detect.py --source file.jpg --weights weights\u002Fyolov5s.pt --conf 0.4\n```\n\n**检测视频流：**\n```bash\npython3 detect.py --source test.mp4 --weights weights\u002Fyolov5s.pt --conf 0.4\n```\n\n**调用摄像头：**\n```bash\npython3 detect.py --source 0 --weights weights\u002Fyolov5s.pt\n```\n*检测结果将默认保存在 `runs\u002Fdetect\u002Fexp` 目录下。*\n\n### 3.2 训练自定义数据集\n\n#### 第一步：准备数据配置文件\n创建 `data\u002Fcustom.yaml`，定义训练集\u002F验证集路径、类别数量及名称：\n```yaml\n# train and val datasets (image directory or *.txt file with image paths)\ntrain: .\u002Fdatasets\u002Fcustom\u002Fimages\u002Ftrain\u002F\nval: .\u002Fdatasets\u002Fcustom\u002Fimages\u002Fval\u002F\n\n# number of classes\nnc: 3\n\n# class names\nnames: ['class_0', 'class_1', 'class_2']\n```\n*注意：标注文件需转换为 YOLO 格式（`.txt`），与图片同名并存放在对应的 `labels` 文件夹中，坐标需归一化。*\n\n#### 第二步：启动训练\n使用预训练权重进行迁移学习（以 `yolov5s` 为例）：\n```bash\npython3 train.py --img 640 --batch 16 --epochs 100 --data data\u002Fcustom.yaml --cfg models\u002Fyolov5s.yaml --weights weights\u002Fyolov5s.pt\n```\n- `--img`: 输入图像尺寸\n- `--epochs`: 训练轮数\n- `--weights`: 预训练权重路径（留空则从头训练）\n\n训练完成后，最佳模型将保存为 `runs\u002Ftrain\u002Fexp\u002Fweights\u002Fbest.pt`，并通过 `results.png` 可视化训练指标。","某三甲医院消化内科团队正致力于利用历史内镜影像数据，开发一套辅助医生实时识别息肉、溃疡等病变的智能筛查系统。\n\n### 没有 YOLO-v5 时\n- **标注与训练门槛极高**：团队需手动编写复杂的底层代码来转换标注格式（如 XML 转 Darknet 格式），且缺乏针对医疗小样本数据的成熟训练教程，环境配置常因版本冲突而失败。\n- **模型适配困难**：通用预训练模型无法直接识别特定的医疗病灶（如 QP、NY、QG 类），重新训练大型检测模型耗时数周且收敛效果差，难以满足临床对精度的严苛要求。\n- **部署延迟严重**：在内镜视频流中，传统算法推理速度慢，无法达到实时帧率，导致医生在操作过程中无法获得即时的病灶预警，失去了辅助诊断的黄金时间。\n\n### 使用 YOLO-v5 后\n- **全流程标准化落地**：借助详细的中文教程和脚本，团队快速完成了从 LabelImg 标注到 YAML 配置文件生成的全过程，仅需调整少量参数即可基于 PyTorch 启动训练，大幅降低研发周期。\n- **高精度定制检测**：通过迁移学习加载官方预训练权重并微调 Backbone，YOLO-v5 迅速适应了内镜下的复杂光照与形态变化，对微小病变的检出率显著提升，且支持马赛克数据增强以克服样本不足问题。\n- **边缘端实时推理**：利用 YOLO-v5 提供的 TensorRT 加速及 INT8 量化方案，模型成功部署在医院本地服务器，将单帧推理时间压缩至毫秒级，实现了内镜检查过程中的零延迟实时框选提示。\n\nYOLO-v5 通过其极简的训练流程和高效的推理性能，将原本需要数月研发的医疗 AI 原型缩短至数天落地，真正赋能临床早期癌症筛查。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FDataXujing_YOLO-v5_0d705f70.jpg","DataXujing","徐静","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FDataXujing_5ed6c209.jpg","🐜  关键词：AI图像算法工程师，R语言，Python，C++, 计算机视觉，自然语言处理，语音识别，机器学习，统计学，网络爬虫，数据可视化🐢\r\n","Qingdao University","中国山东省青岛市",null,"https:\u002F\u002Fdataxujing.github.io","https:\u002F\u002Fgithub.com\u002FDataXujing",[82,86,90,94],{"name":83,"color":84,"percentage":85},"Jupyter Notebook","#DA5B0B",94.6,{"name":87,"color":88,"percentage":89},"Python","#3572A5",5.3,{"name":91,"color":92,"percentage":93},"Dockerfile","#384d54",0.1,{"name":95,"color":96,"percentage":97},"Shell","#89e051",0,977,192,"2026-04-02T19:27:50","GPL-3.0","未说明","未说明 (基于 PyTorch 实现，通常训练需要 NVIDIA GPU，但 README 未指定具体型号、显存或 CUDA 版本)",{"notes":105,"python":106,"dependencies":107},"README 指出官方新版模型可能因 backbone 调整而不可用，建议下载提供的原版预训练模型。数据标注需转换为 Darknet 格式（归一化坐标的 txt 文件）。支持 TensorRT 加速及 INT8 量化（有额外代码提供）。训练时需修改 dataset.yaml 和模型配置文件中的类别数量 (nc) 及名称。","3.6",[108,109],"torch==1.3.0","torchvision==0.4.1",[15,14],[112,113,114],"pytorch","yolov5","object-detection","2026-03-27T02:49:30.150509","2026-04-16T01:44:49.930265",[118,123,128,133,138,143],{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},34931,"如何获取或是否需要 ResNet101 模型？","该模型仅用于第二阶段对检测框进行二次分类。如果第一阶段的分类精度已经满足需求，则不需要使用该模型。您可以直接在配置中将 'classifier' 参数关闭即可正常运行。","https:\u002F\u002Fgithub.com\u002FDataXujing\u002FYOLO-v5\u002Fissues\u002F25",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},34932,"推理时遇到 AttributeError: 'function' object has no attribute 'names' 错误如何解决？","这通常是因为保存的 best.pt 权重文件中缺失了类别名称变量（names）。解决方法是修改 detect.py 文件第 51 行左右的代码，将自动获取名称的逻辑替换为手动定义的列表。例如：将 `names = model.names if hasattr(model, 'names') else model.modules.names` 替换为 `names = ['class_0_name', 'class_1_name', ...]`，填入您实际的类别名称。","https:\u002F\u002Fgithub.com\u002FDataXujing\u002FYOLO-v5\u002Fissues\u002F17",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},34933,"项目依赖的 PyTorch 和 torchvision 版本是多少？","如果您克隆的是本项目（DataXujing\u002FYOLO-v5），请按照 README 中的说明使用以下版本即可正常运行：torch==1.3.0 和 torchvision==0.4.1。如果您克隆的是官方最新的 ultralytics\u002Fyolov5 仓库，请参考官方文档要求的环境版本。","https:\u002F\u002Fgithub.com\u002FDataXujing\u002FYOLO-v5\u002Fissues\u002F16",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},34934,"训练一开始就报 MemoryError 错误怎么办？","该问题在提供的 Issue 数据中仅有报错记录（Can't pickle \u003Cclass 'MemoryError'>），维护者尚未提供具体的解决方案或评论。这通常与显存不足或多进程数据加载配置有关，建议尝试减小 batch-size 或检查系统内存状态。","https:\u002F\u002Fgithub.com\u002FDataXujing\u002FYOLO-v5\u002Fissues\u002F34",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},34935,"是否测试过导出的 CoreML 模型在 iOS 上的性能？","截至目前，作者尚未进行将模型导出为 CoreML 格式并在 iOS 设备上测试性能的相关工作。","https:\u002F\u002Fgithub.com\u002FDataXujing\u002FYOLO-v5\u002Fissues\u002F19",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},34936,"当前项目基于 YOLOv5 的哪个版本？","针对关于具体版本号（如 v5 4.0）的询问，作者在 Issue 中未给出明确的版本数字回应，仅标记为无特定原因（no reason）。建议用户直接参考项目代码结构或 README 文件以确认其基于的官方 commit 版本。","https:\u002F\u002Fgithub.com\u002FDataXujing\u002FYOLO-v5\u002Fissues\u002F29",[]]