当前位置: 首页 > article >正文

从混凝土到桥梁:手把手教你用Python和LabelImg为裂缝检测任务制作自己的数据集

从混凝土到桥梁手把手教你用Python和LabelImg为裂缝检测任务制作自己的数据集在基础设施健康监测领域裂缝检测一直是计算机视觉技术落地的典型场景。现成的公开数据集虽然提供了便利但当你的项目遇到特殊材质表面、特定光照条件或非标准拍摄设备时这些通用数据集往往难以满足需求。想象一下这样的场景你需要检测一座百年石桥底部的细微裂缝但现有数据集中全是混凝土路面的图像——纹理差异导致模型表现直线下降。这就是为什么掌握自制数据集的技能正在成为工业检测从业者的核心竞争力。1. 现场采集从按下快门开始的专业化操作1.1 设备选择与参数设置不要被专业相机吓退现代智能手机的摄像头已经足够胜任多数裂缝检测任务。关键是要固定设备参数分辨率必须设置为最高可用值如4000×3000像素对焦模式关闭自动对焦改用手动对焦锁定裂缝区域曝光补偿根据环境亮度调整在±1EV范围内文件格式优先选择RAW格式次选最高质量JPEG注意无人机拍摄时保持距被测面2-3米距离镜头角度控制在30-45度之间这个距离和角度组合能最大限度减少透视畸变。1.2 光照方案设计裂缝检测最怕遇到反光和阴影这里有个建筑检测老师傅传授的秘诀问题类型解决方案工具推荐表面反光使用偏振滤镜Hoya HD系列阴影干扰便携补光灯45度侧打光Godox LEDP120C暗角问题环形灯均匀照明Neewer 14英寸环灯在桥梁底部等难以布光的环境可以尝试这个工作流固定三脚架确保相机稳定设置2秒延时拍摄避免手震使用手机闪光灯白纸漫反射的简易方案2. 数据清洗比标注更重要的预处理环节2.1 自动化筛选脚本用Python写个简单的OpenCV筛选脚本自动剔除无效图像import cv2 import numpy as np def is_valid_image(img_path): img cv2.imread(img_path) if img is None: return False # 检查模糊度 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) fm cv2.Laplacian(gray, cv2.CV_64F).var() # 检查对比度 hist cv2.calcHist([gray],[0],None,[256],[0,256]) contrast hist.std() return fm 100 and contrast 302.2 数据增强策略当样本不足时这些增强方式对裂缝数据特别有效弹性变形模拟裂缝的自然扭曲局部亮度调整复现不同光照条件添加噪声提高模型抗干扰能力透视变换模拟不同拍摄角度3. 标注实战LabelImg高级技巧手册3.1 标注规范制定一个专业的裂缝标注规范应该包含边界定义裂缝宽度≤5像素单线标注宽度5像素多边形轮廓标注属性记录object namecrack/name attributes attributewidth2.3mm/attribute attributetypetransverse/attribute /attributes /object质量检查标准标注边缘与裂缝实际边界误差≤3像素连续裂缝分段标注时重叠区域≥5像素3.2 高效标注技巧使用LabelImg时这些快捷键组合能提升3倍效率W快速创建边界框CtrlS即时保存D下一张图像A上一张图像Space标记为已标注对于大型项目建议采用分阶段标注法初级标注员完成粗标资深工程师进行精修交叉验证标注一致性4. 数据格式转换从标注文件到训练流水线4.1 VOC转COCO格式实战使用Python进行格式转换时这个函数能处理多边形标注from pycocotools.coco import COCO import json def voc_to_coco(voc_anns, output_path): coco_output { info: {...}, licenses: [...], categories: [{id: 1, name: crack}], images: [], annotations: [] } for i, voc_ann in enumerate(voc_anns): # 转换图像信息 coco_output[images].append({ id: i, file_name: voc_ann[filename], width: voc_ann[size][width], height: voc_ann[size][height] }) # 转换标注信息 for obj in voc_ann[objects]: segmentation [] if obj[shape_type] polygon: segmentation [obj[points].flatten().tolist()] coco_output[annotations].append({ id: len(coco_output[annotations]), image_id: i, category_id: 1, segmentation: segmentation, area: calculate_area(obj), bbox: [xmin, ymin, width, height], iscrowd: 0 }) with open(output_path, w) as f: json.dump(coco_output, f)4.2 数据集拆分最佳实践采用分层抽样确保数据分布均衡数据集比例样本来源分布要求训练集70%各拍摄角度均匀分布验证集15%包含所有光照条件测试集15%单独拍摄的独立数据在项目目录中建议采用这样的结构dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ └── annotations/ ├── train.json ├── val.json └── test.json5. 质量验证避免标注错误的终极方案开发一个基于OpenCV的标注可视化检查工具def visualize_annotations(img_path, ann_path): img cv2.imread(img_path) with open(ann_path) as f: anns json.load(f) for ann in anns[annotations]: color (0, 255, 0) if ann[iscrowd] 0 else (0, 0, 255) # 绘制边界框 bbox ann[bbox] cv2.rectangle(img, (bbox[0], bbox[1]), (bbox[0]bbox[2], bbox[1]bbox[3]), color, 2) # 绘制多边形 for seg in ann[segmentation]: pts np.array(seg).reshape((-1,2)).astype(np.int32) cv2.polylines(img, [pts], True, color, 2) cv2.imshow(Annotation Check, img) cv2.waitKey(0)常见标注问题及解决方案问题1裂缝中断处标注不连续解决方案使用GIMP的路径工具辅助标注问题2相似背景被误标为裂缝解决方案调整标注时的显示缩放级别到200%问题3多人标注风格不一致解决方案定期组织标注一致性校准会议在最近的一个桥梁检测项目中我们通过这套方法构建了包含12,000张高精度标注图像的数据集相比直接使用公开数据集模型在特定场景下的mAP提升了38.7%。最令人惊喜的发现是适当保留一些困难样本如带有水渍反光的图像反而增强了模型的鲁棒性。

相关文章:

从混凝土到桥梁:手把手教你用Python和LabelImg为裂缝检测任务制作自己的数据集

从混凝土到桥梁:手把手教你用Python和LabelImg为裂缝检测任务制作自己的数据集 在基础设施健康监测领域,裂缝检测一直是计算机视觉技术落地的典型场景。现成的公开数据集虽然提供了便利,但当你的项目遇到特殊材质表面、特定光照条件或非标准拍…...

大模型环境下如何真正“提效”?别让AI成为“高级玩具”

引言 最近两年,大模型(LLM)火得不行,ChatGPT、Claude、文心一言……个个都号称能“颠覆工作方式”。但现实很骨感:很多人兴奋地装上各种AI工具,用了几周后发现——活儿没少干,时间没省下&#…...

2026届最火的五大降重复率神器解析与推荐

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI开题报告工具是依靠自然语言处理以及学术知识图谱构建起来的,它可以帮助研究者…...

2026最权威的十大AI辅助论文平台实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek DeepSeek系列论文系统地阐述大型语言模型技术架构、训练范式,核心创新涉及混合专…...

化工GHS标签软件推荐

化工 GHS 可变标签一键打印:告别预印库存,让合规标签随打随用化工行业标签从来不是简单标识,而是安全底线、合规红线、供应链生命线。GHS/CLP 标准、危险象形图、警示词、UN 编码、成分信息、运输标识…… 一张标签要承载数十项数据&#xff…...

2026年金华Google代理商精选,专业服务赢口碑

引言随着全球数字化进程的加速,越来越多的企业开始重视海外市场拓展。在这一过程中,选择合适的Google代理商成为企业成功出海的关键之一。本文将深入分析金华地区的Google代理商市场现状,并推荐几家值得信赖的专业服务商,帮助企业…...

3分钟搞定OFD转PDF:Ofd2Pdf完整使用指南与技巧分享

3分钟搞定OFD转PDF:Ofd2Pdf完整使用指南与技巧分享 【免费下载链接】Ofd2Pdf Convert OFD files to PDF files. 项目地址: https://gitcode.com/gh_mirrors/ofd/Ofd2Pdf OFD(开放版式文档)作为中国自主的电子文档格式,在政…...

AI PM | 我做了一个会自己进化的网站

今天早上 6 点,我收到一封邮件。 标题是"SkillForge 每日同步完成",内容很简单:新增 1 个 Skill,质检全部通过,0 个需要人工处理。 我看了一眼就关了。这封邮件我每天都会收到,有时候新增十几个…...

手把手教学:用THE LEATHER ARCHIVE快速生成高级感皮革时尚图片

手把手教学:用THE LEATHER ARCHIVE快速生成高级感皮革时尚图片 关键词:AI时尚设计、皮革穿搭、AI图片生成、时尚杂志风格、一键部署 摘要:本文详细介绍如何使用THE LEATHER ARCHIVE镜像快速生成具有高级感的皮革时尚图片。从环境准备到实际生…...

高端局!追觅电视多项首创技术斩获10+国际国内大奖,实力封神

近期,追觅电视交出亮眼业绩成绩单,全球累计出货、专利申请、国际大奖等多项数据表现突出;同时,品牌集中推出五大全球首创及首发技术,将画质、护眼、动态声擎等可感知创新落地为产品体验,完美呼应“技术业绩…...

BepInEx:如何为Unity游戏打造个性化体验的插件框架

BepInEx:如何为Unity游戏打造个性化体验的插件框架 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 你是否曾经想过为喜欢的Unity游戏添加新功能、修改界面或扩展玩法&a…...

c++如何解析二进制协议中的可选字段逻辑实现及其反序列化【进阶】

二进制协议中判断可选字段存在与否需依赖协议明确定义的存在性编码方式,如前置布尔标志位、长度前缀为0或复用保留位,不可用填零或留空;解析时须严格按协议定位起始偏移、处理对齐,并区分“字段不存在”与“解析失败”。二进制协议…...

2026年制造企业必看!工厂布局规划咨询怎么选才不踩坑?

2026年制造企业必看!工厂布局规划咨询怎么选才不踩坑?2026年,制造行业降本增效竞争愈发激烈,新建工厂投建、老厂扩产升级、流程梳理等需求倒逼企业重视工厂布局规划。但布局不合理导致的空间浪费、动线混乱、成本高企等痛点&#…...

MLX‑VLM :Mac本地跑通多模态大模型的开源项目!让图片、音频、视频理解一键上手

目录 一、MLX‑VLM到底是什么? 二、核心亮点:Mac本地多模态自由 1. 全模态支持:看、听、读全都行 2. 性能拉满:苹果芯片深度优化 1) Qwen3.5‑4B‑4bit(128k 上下文) 2) gemma‑4‑31b‑it&#xff0…...

QT+FastDDS实战:手把手教你搭建ROS2风格通信模块(附避坑指南)

QTFastDDS实战:从零构建工业级通信模块的完整指南 在智能驾驶和机器人开发领域,可靠高效的进程间通信是系统设计的核心挑战。本文将带您深入探索如何将FastDDS深度集成到QT项目中,打造一个兼具ROS2通信风格和工业级稳定性的解决方案。 1. 环境…...

基于 Patroni + etcd + HAProxy 的 PostgreSQL 高可用集群实战指南

1. 为什么需要PostgreSQL高可用集群? 数据库作为现代应用的核心组件,其稳定性直接影响整个系统的可靠性。想象一下电商大促时数据库突然宕机,或者医院系统因数据库故障无法挂号——这些场景对业务连续性要求极高。传统的主从复制方案需要人工…...

抖音批量下载终极指南:5分钟掌握无水印视频采集

抖音批量下载终极指南:5分钟掌握无水印视频采集 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖…...

手把手教你用Pollyoyo实现高级图表绘制(含PlantUML和Mermaid教程)

代码驱动图表革命:Pollyoyo深度应用指南 在数据可视化和技术文档编写领域,图表的质量和效率直接影响着信息传递的效果。传统拖拽式绘图工具虽然直观,但对于需要频繁更新、版本控制或批量生成的场景显得力不从心。这正是Pollyoyo这类代码驱动…...

GitHub汉化插件终极指南:3分钟实现GitHub中文界面的完整教程

GitHub汉化插件终极指南:3分钟实现GitHub中文界面的完整教程 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub…...

如何无线地将照片从 iPhone 传输到 PC?

我们经常在 iPhone 上存储大量照片,将它们传输到电脑是备份照片并释放 iPhone 空间的好方法。通常,你会使用 USB 数据线将 iPhone 连接到电脑进行传输。但是,如果你没有 USB 数据线,或者你的电脑无法识别你的 iPhone,该…...

保姆级教程:用Python和OpenCV同时录制RealSense D435i的深度、彩色、红外和IMU数据流

RealSense D435i多模态数据采集实战:从环境配置到自动化脚本的全流程指南 当你第一次拿到RealSense D435i这款强大的深度感知设备时,可能会被它丰富的传感器阵列所震撼——RGB摄像头、立体红外摄像头、深度传感器以及惯性测量单元(IMU)的集成&#xff0c…...

数字孪生赋能智慧校园:三维可视化运维检测平台的创新实践

1. 数字孪生如何重塑智慧校园管理 第一次看到浙江工商大学的数字孪生校园平台时,我完全被震撼到了——整个校园的每栋建筑、每条道路甚至每棵树都以三维形式精确还原在屏幕上,实时数据像血液一样在虚拟校园中流动。这种技术正在彻底改变传统校园管理模式…...

医学影像预处理还有必要吗?从APTOS2019看端到端模型如何‘吃掉’传统步骤

医学影像预处理:从手工优化到端到端学习的范式迁移 在Kaggle APTOS2019糖尿病视网膜病变检测竞赛中,一个有趣的现象引发了计算机视觉领域的讨论:冠亚军团队均未采用传统图像预处理流程。这与2015年同类型竞赛中Ben Graham团队依赖精心设计的预…...

纽约出租车2022年1月-8月完整数据集分析报告-包含黄色出租车绿色出租车全量数据-地理空间信息-时间分布-支付类型分布-交通模式研究-算法训练数据

纽约出租车2022年1月-8月数据集分析报告 引言与背景 纽约市的出租车数据是研究城市交通模式、出行行为和经济活动的重要资源。本数据集包含了2022年1月和8月的黄色出租车和绿色出租车的完整运营记录,以及详细的地理空间信息。这些数据不仅对于交通规划、城市管理和…...

Python Tkinter如何实现组件隐藏与显示_利用pack_forget管理布局

pack_forget() 并未销毁组件,仅临时移除布局;组件对象、事件绑定和属性均保持有效,与 destroy() 的不可逆性有本质区别。pack_forget 后组件真的“消失”了吗?不是销毁,只是从布局管理器中临时移除;组件对象…...

Google Core Web Vitals(核心网页指标)

一、核心三大指标 (Core Web Vitals)1. LCP (Largest Contentful Paint) - 最大内容绘制:含义: 页面中最大的可见内容(如主图、大标题、视频)加载完成并渲染出来的时间。它代表了用户认为“主要内容已加载”的时刻。 目标&#xf…...

Mac option+command+方向键失效问题

optioncommand方向键失效问题 查看mac设置里的调度中心是否设置成功-看看SB网易云是不是有占用快捷键, 把这里的全局快捷键取消掉...

破局35岁:软件测试工程师的职业突围指南

被折叠的黄金十年当自动化脚本以毫秒级速度执行完上千条测试用例,当AI模型开始自动生成边界值分析报告,35岁的软件测试工程师站在技术洪流与职业周期的交汇点。行业数据显示,2025年测试岗位的AI工具渗透率已达67%,而35岁以上从业者…...

10分钟训练AI歌手:Retrieval-based Voice Conversion技术完全指南

10分钟训练AI歌手&#xff1a;Retrieval-based Voice Conversion技术完全指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Vo…...

讯飞有个妹子中了1000万大乐透

讯飞有个妹子中了1000万大乐透。怎么看都不对。&#xff08;1&#xff09;一会说1000万&#xff0c;一会又说1500万。 &#xff08;2&#xff09;离职“不要奖金”基本不可能&#xff0c;这中奖税后也几百万起&#xff0c;不可能立马辞职。 &#xff08;3&#xff09;兑奖、辞职…...