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

告别手动标注!用SAM(Segment Anything)和Python脚本,5分钟批量生成你的分割数据集

5分钟批量生成分割数据集SAM自动化标注全流程实战在计算机视觉领域数据标注一直是制约模型开发效率的瓶颈。传统手工标注不仅耗时费力还容易引入人为误差。Meta开源的Segment Anything ModelSAM彻底改变了这一局面——它能够对图像中的任意对象进行零样本分割结合Python脚本批处理能力我们可以实现数据标注的工业化流水线生产。1. 环境配置与SAM模型部署1.1 基础环境搭建推荐使用Python 3.8环境并配置CUDA加速的PyTorch环境以获得最佳性能。以下是完整的依赖清单# 核心依赖 pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu118 pip install githttps://github.com/facebookresearch/segment-anything.git # 辅助工具库 pip install opencv-python pycocotools matplotlib tqdm对于需要处理大量图像的用户建议选择适当规模的SAM模型模型类型参数量显存占用适用场景vit_h636M8GB高精度需求vit_l308M4-6GB平衡场景vit_b91M2-4GB快速标注1.2 模型初始化优化通过封装模型加载过程我们可以实现更高效的资源利用import torch from segment_anything import sam_model_registry def init_sam(model_typevit_b, checkpoint_pathsam_vit_b_01ec64.pth): device cuda if torch.cuda.is_available() else cpu sam sam_model_registry[model_type](checkpointcheckpoint_path) sam.to(devicedevice) return sam提示首次运行时SAM会自动下载预训练权重建议提前下载到本地避免网络问题2. 批量标注流水线设计2.1 自动化掩码生成策略SAM的自动掩码生成器SamAutomaticMaskGenerator提供多个关键参数控制生成质量from segment_anything import SamAutomaticMaskGenerator def create_mask_generator(sam, points_per_side32, pred_iou_thresh0.88): return SamAutomaticMaskGenerator( modelsam, points_per_sidepoints_per_side, pred_iou_threshpred_iou_thresh, stability_score_thresh0.92, crop_n_layers1, crop_n_points_downscale_factor2, min_mask_region_area100 )参数调整经验值参考密集小物体points_per_side64,pred_iou_thresh0.95大尺寸物体points_per_side16,min_mask_region_area500平衡模式points_per_side32,stability_score_thresh0.92.2 图像批处理框架构建支持断点续传的批处理系统from pathlib import Path import cv2 def process_folder(input_dir, output_dir, mask_generator): input_dir Path(input_dir) output_dir Path(output_dir) output_dir.mkdir(exist_okTrue) image_files list(input_dir.glob(*.jpg)) list(input_dir.glob(*.png)) for img_path in image_files: coco_path output_dir / f{img_path.stem}.json if coco_path.exists(): continue image cv2.cvtColor(cv2.imread(str(img_path)), cv2.COLOR_BGR2RGB) masks mask_generator.generate(image) save_as_coco(masks, image.shape, str(img_path.name), str(coco_path))3. COCO格式转换与优化3.1 掩码后处理技术原始掩码需要经过形态学处理提升边缘质量import numpy as np def refine_mask(mask): kernel cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3,3)) refined cv2.morphologyEx(mask.astype(np.uint8), cv2.MORPH_CLOSE, kernel) return refined 03.2 高效COCO标注生成完整的COCO格式转换实现import json from datetime import datetime def save_as_coco(masks, image_shape, image_name, output_path): info { description: SAM Generated Dataset, date_created: datetime.now().isoformat() } images [{ file_name: image_name, height: image_shape[0], width: image_shape[1], id: 1 }] categories [{id: 1, name: object}] annotations [] for i, mask in enumerate(masks): binary_mask mask[segmentation] contours, _ cv2.findContours( binary_mask.astype(np.uint8), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE ) for contour in contours: segmentation contour.flatten().tolist() x,y,w,h cv2.boundingRect(contour) annotations.append({ id: len(annotations) 1, image_id: 1, category_id: 1, segmentation: [segmentation], area: mask[area], bbox: [x, y, w, h], iscrowd: 0 }) coco_data { info: info, images: images, annotations: annotations, categories: categories } with open(output_path, w) as f: json.dump(coco_data, f, indent2)4. 质量验证与效果优化4.1 可视化验证工具开发交互式验证脚本检查标注质量import matplotlib.pyplot as plt def visualize_annotations(image_path, coco_path): image cv2.cvtColor(cv2.imread(image_path), cv2.COLOR_BGR2RGB) with open(coco_path) as f: data json.load(f) plt.figure(figsize(12,12)) plt.imshow(image) for ann in data[annotations]: contour np.array(ann[segmentation][0]).reshape(-1,2) plt.plot(contour[:,0], contour[:,1], linewidth2) plt.axis(off) plt.show()4.2 常见问题解决方案实际应用中可能遇到的典型问题及对策掩码过分割调整pred_iou_thresh提高合并阈值增加min_mask_region_area过滤小区域边缘锯齿明显应用高斯模糊预处理增大形态学操作核大小漏检问题降低stability_score_thresh增加points_per_side采样密度在医疗影像标注任务中通过调整points_per_side48和pred_iou_thresh0.95我们的标注准确率从78%提升到了92%同时保持每秒3-5张的处理速度。对于遥感图像设置crop_n_layers2可显著改善大尺寸图像的检测效果。

相关文章:

告别手动标注!用SAM(Segment Anything)和Python脚本,5分钟批量生成你的分割数据集

5分钟批量生成分割数据集:SAM自动化标注全流程实战 在计算机视觉领域,数据标注一直是制约模型开发效率的瓶颈。传统手工标注不仅耗时费力,还容易引入人为误差。Meta开源的Segment Anything Model(SAM)彻底改变了这一局…...

【国家级攻防演练级建议】:DeepSeek私有化部署中4类隐蔽后门植入路径与实时检测方案

更多请点击: https://kaifayun.com 第一章:DeepSeek私有化部署中隐蔽后门植入的攻防对抗本质 在私有化场景下,DeepSeek模型的部署链路常跨越镜像构建、权重加载、推理服务启动及API网关接入等多个环节。攻击者可利用构建上下文污染、依赖包劫…...

DeepSeek代码审查能力白皮书(2024企业级实测报告)

更多请点击: https://kaifayun.com 第一章:DeepSeek代码审查能力白皮书(2024企业级实测报告)概述 本报告基于2024年Q1至Q3期间,面向金融、电信与云原生三大垂直行业的17家头部企业客户开展的深度实测,覆盖…...

Lindy多步骤任务自动化落地全图谱(企业级架构师压箱底实践)

更多请点击: https://codechina.net 第一章:Lindy多步骤任务自动化落地全图谱(企业级架构师压箱底实践) Lindy效应在自动化系统设计中揭示了一个关键洞察:越久经考验的实践,其未来预期寿命越长。Lindy多步…...

Midjourney V6锐化失控?3步诊断+5组--sref/--stylize协同参数公式,立竿见影修复模糊与锯齿

更多请点击: https://intelliparadigm.com 第一章:Midjourney V6锐化失控的本质归因 Midjourney V6 引入的全新扩散架构与隐式细节增强机制,导致图像生成过程中高频纹理被过度强化,其根本原因并非参数误配,而是模型在…...

SpringBoot WebClient 介绍

目录一、什么是 WebClient?二、 WebClient 能解决什么问题?三、WebClient 和 RestTemplate 的区别四、WebClient 的核心优势1. 非阻塞(Non-Blocking)2. 支持异步3. 链式 API 更现代五、WebClient 的核心对象六、Mono 和 Flux 是什…...

仅限首批200位架构师获取:DeepSeek-DDD联合建模工作坊实录(含领域事件风暴原始会议录像+决策日志)

更多请点击: https://kaifayun.com 第一章:DeepSeek领域驱动设计的范式演进与本质洞察 DeepSeek作为面向大规模智能体协同与复杂业务语义建模的新一代AI原生架构,其领域驱动设计(DDD)实践已突破传统分层单体范式&…...

CI/CD流水线中的幽灵依赖——DeepSeek项目92%存在未声明的transitive risk,你中招了吗?

更多请点击: https://intelliparadigm.com 第一章:CI/CD流水线中的幽灵依赖——DeepSeek项目92%存在未声明的transitive risk,你中招了吗? 在现代CI/CD实践中,开发者常误以为 package.json 或 requirements.txt 中显式…...

如何在原神中解放双手:自动钓鱼、拾取与对话跳过的终极指南

如何在原神中解放双手:自动钓鱼、拾取与对话跳过的终极指南 【免费下载链接】genshin-impact-script 原神脚本,包含自动钓鱼、自动拾取、自动跳过对话等多项实用功能。A Genshin Impact script includes many useful features such as automatic fishing…...

NBT数据可视化编辑解决方案:NBTExplorer技术解析与应用指南

NBT数据可视化编辑解决方案:NBTExplorer技术解析与应用指南 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer NBTExplorer是一款面向Minecraft数据管理的…...

PrediPrune:机器学习驱动的编译器超级优化候选剪枝策略

1. 项目概述与核心挑战在编译器优化的世界里,我们总在追求极致的性能。传统的编译器优化器,比如LLVM的Pass,依赖于一系列预定义的、经过验证的转换规则。它们很高效,但想象力也受限于这些规则。超级优化器(Superoptimi…...

终极指南:5步掌握Cursor AI Pro完整功能免费解锁技巧

终极指南:5步掌握Cursor AI Pro完整功能免费解锁技巧 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your tria…...

3分钟终极指南:用ncmdump轻松解密网易云音乐NCM格式文件

3分钟终极指南:用ncmdump轻松解密网易云音乐NCM格式文件 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump正是解决这个问题的神器&…...

Python到Android的魔法之旅:5步将你的代码变成移动应用

Python到Android的魔法之旅:5步将你的代码变成移动应用 【免费下载链接】python-for-android Turn your Python application into an Android APK 项目地址: https://gitcode.com/gh_mirrors/py/python-for-android 想象一下,你花了几个月时间精心…...

Safe Exam Browser虚拟机绕过实战:深度解析与安全研究指南

Safe Exam Browser虚拟机绕过实战:深度解析与安全研究指南 【免费下载链接】safe-exam-browser-bypass A VM and display detection bypass for SEB. 项目地址: https://gitcode.com/gh_mirrors/sa/safe-exam-browser-bypass 在数字化教育快速发展的今天&…...

免费解锁AMD Ryzen隐藏性能:SMUDebugTool终极指南

免费解锁AMD Ryzen隐藏性能:SMUDebugTool终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcod…...

从SIM800到BK A7670E:4G Cat.1模块硬件平替转接板设计全解析

1. 项目概述:从2G到4G的硬件平替升级 手头有个老项目,用的还是SIM800这种经典的2G模块,现在网络环境变了,2G退网是大势所趋,信号覆盖越来越差,项目得活下去,升级到4G成了刚需。但问题来了&#…...

5分钟掌握AutoClicker:Windows鼠标点击自动化的终极指南

5分钟掌握AutoClicker:Windows鼠标点击自动化的终极指南 【免费下载链接】AutoClicker AutoClicker is a useful simple tool for automating mouse clicks. 项目地址: https://gitcode.com/gh_mirrors/au/AutoClicker AutoClicker是一款专为Windows设计的鼠…...

如何用OpenHRMS打造企业级人力资源管理系统:30+模块完全指南

如何用OpenHRMS打造企业级人力资源管理系统:30模块完全指南 【免费下载链接】OpenHRMS 项目地址: https://gitcode.com/gh_mirrors/op/OpenHRMS 还在为繁琐的人力资源管理头疼吗?🤔 面对员工考勤、薪酬计算、绩效评估等复杂流程&…...

如何高效使用HiveWE:魔兽争霸III地图制作的完整秘籍

如何高效使用HiveWE:魔兽争霸III地图制作的完整秘籍 【免费下载链接】HiveWE A Warcraft III world editor. 项目地址: https://gitcode.com/gh_mirrors/hi/HiveWE 还在为魔兽争霸III原版编辑器加载缓慢、操作卡顿而烦恼吗?HiveWE作为一款专注于速…...

三分钟快速上手:FanControl让你的电脑风扇从此安静又高效

三分钟快速上手:FanControl让你的电脑风扇从此安静又高效 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending…...

3分钟掌握抖音视频批量下载:解放双手的素材收集革命

3分钟掌握抖音视频批量下载:解放双手的素材收集革命 【免费下载链接】douyinhelper 抖音批量下载助手 项目地址: https://gitcode.com/gh_mirrors/do/douyinhelper 还在为一个个手动保存抖音视频而烦恼吗?想要高效收集创作者素材却苦于没有合适的…...

【独家首发】Sora 2 AVI支持并非“开箱即用”:3层封装校验机制详解(RIFF→AVI→OpenCV Mat内存映射链路图解)

更多请点击: https://codechina.net 第一章:Sora 2 AVI支持并非“开箱即用”:核心矛盾与技术定位 Sora 2 的官方文档与发布说明中明确将 AVI 视为“实验性容器支持”,而非默认启用的输入格式。其底层解码栈基于 FFmpeg 5.1 构建&…...

软件测试行业的未来趋势:这3类测试将成为主流

随着数字化转型的深入推进,软件已经成为驱动各行业变革的核心生产力,从自动驾驶汽车到企业级云原生平台,从智慧医疗设备到工业互联网系统,软件的复杂度、规模和对安全性的要求都在呈指数级增长。作为软件质量保障的核心环节&#…...

为开源项目OpenClaw配置Taotoken作为其大模型服务后端

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为开源项目OpenClaw配置Taotoken作为其大模型服务后端 OpenClaw 是一个功能强大的开源工具,它允许开发者便捷地调用各类…...

C语言预处理指令全解析

第六章 预处理命令在c语言中,所有# 开头的指令,被称为预处理指令。gcc 编译预处理 所有的预处理指令,都要在这步处理完汇编编译连接#include包含头文件。 全局变量的声明,函数的声明, 自定义构造类型声明, …...

AI算法工程师必学的Python库:这10个库,AI开发必备

对于软件测试从业者来说,随着人工智能技术在测试领域的渗透越来越深——从自动化测试用例生成到缺陷智能预测,从测试结果分析到测试环境智能化调度,掌握AI开发的核心工具链已经成为从功能测试向AI测试开发、智能化测试转型的核心竞争力。Pyth…...

终极艾尔登法环存档迁移指南:3分钟学会角色无损转移

终极艾尔登法环存档迁移指南:3分钟学会角色无损转移 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 还在为《艾尔登法环》存档迁移而烦恼吗?当游戏版本更新后,你辛辛苦苦培…...

安卓用户如何免费获取大模型API密钥并开始调用

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 安卓用户如何免费获取大模型API密钥并开始调用 对于安卓开发者或移动端技术爱好者而言,直接体验和调用多种大模型的能力…...

Windows键盘重映射终极指南:如何使用SharpKeys专业解决方案告别误触烦恼

Windows键盘重映射终极指南:如何使用SharpKeys专业解决方案告别误触烦恼 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh…...