Labelme视频标注与AI辅助功能文章详细介绍了Labelme在视频序列标注和AI辅助标注方面的完整工作流程与最佳实践。内容涵盖从视频预处理、帧提取、多帧连续标注到集成EfficientSAM等AI模型的智能标注功能包括模型架构、交互式工作流程、性能优化策略。同时还提供了大规模数据集标注的团队协作规范、质量控制机制、批处理自动化方案以及错误处理和进度监控的最佳实践为计算机视觉项目的高效标注提供全面指导。视频序列标注工作流程视频序列标注是计算机视觉领域中一项至关重要的任务它涉及对视频帧序列中的对象进行连续跟踪和标注。Labelme作为一款强大的图像标注工具提供了完整的视频标注解决方案支持从视频帧提取到多帧标注的完整工作流。视频预处理与帧提取在开始视频标注之前首先需要将视频文件转换为图像序列。Labelme推荐使用video-toimg工具来完成这一预处理步骤pip install video-cli video-toimg your_video.mp4 # 创建your_video/目录 ls your_video/ # 查看生成的图像序列这个预处理过程将视频分解为连续的JPEG图像文件每个文件对应视频中的一个帧。生成的图像文件按照顺序命名如00000100.jpg、00000101.jpg等便于后续的顺序标注。启动视频标注模式Labelme提供了专门的命令行参数来支持视频序列标注labelme data_annotated --labels labels.txt --nodata --keep-prev --config {shift_auto_shape_color: -2}关键参数说明参数功能描述重要性--keep-prev保持前一帧的标注形状⭐⭐⭐⭐⭐--nodata不包含图像数据只保存相对路径⭐⭐⭐⭐--labels指定标签列表文件⭐⭐⭐⭐--config配置自动形状颜色偏移⭐⭐⭐多帧连续标注工作流视频序列标注的核心在于利用帧间的时空连续性。Labelme通过--keep-prev参数实现了智能的跨帧标注继承标注数据格式与结构每个视频帧的标注信息保存在独立的JSON文件中包含完整的标注元数据{ version: 4.0.0, flags: {}, shapes: [ { label: car, points: [[924.0, 321.0], [905.0, 352.0], ...], shape_type: polygon, flags: {} } ], imagePath: 00000100.jpg, imageData: null, imageHeight: 563, imageWidth: 1000 }智能标注辅助功能Labelme的视频标注模式提供了多项智能辅助功能形状颜色一致性通过shift_auto_shape_color配置确保同一对象在不同帧中保持相同的颜色标识标注继承优化自动将前一帧的标注形状应用到当前帧大幅减少重复标注工作空间连续性利用基于对象运动的连续性只需微调标注位置而非重新标注实际工作流程示例以下是一个完整的视频标注会话示例# 启动标注会话 labelme video_frames/ --labels objects.txt --keep-prev # 第一帧完整标注所有目标 # - 使用多边形工具标注车辆 # - 使用矩形工具标注交通标志 # - 保存标注 (CtrlS) # 后续帧继承并调整 # - 切换到下一帧 (D键) # - 自动继承上一帧标注 # - 微调移动的车辆位置 # - 删除消失的对象 # - 添加新出现的对象 # - 保存当前帧标注标注质量控制策略为确保视频标注的质量和一致性建议采用以下策略定期回溯检查每标注10帧后回溯检查前几帧的标注一致性关键帧重点标注对运动剧烈或遮挡发生的帧进行精细标注批量验证使用Labelme的批量查看功能验证整个序列的标注质量元数据记录在JSON文件的flags字段中记录标注质量信息性能优化建议对于长视频序列标注以下优化措施可以提升工作效率使用--nodata参数避免图像数据重复存储减少文件大小预先定义完整的标签列表避免标注过程中的标签不一致利用键盘快捷键快速切换帧D键下一帧A键上一帧对静态背景区域进行一次性标注后续帧直接继承视频序列标注工作流程的核心价值在于充分利用时间连续性将传统的逐帧独立标注转变为高效的序列化标注大幅提升标注效率的同时保证标注质量的一致性。Labelme通过智能的标注继承和优化的工作流程使得视频标注变得既高效又准确。EfficientSAM模型集成与应用Labelme作为一款强大的图像标注工具在最新版本中集成了EfficientSAMEfficient Segment Anything Model模型为用户提供了智能化的标注辅助功能。EfficientSAM是Meta AI的Segment Anything ModelSAM的高效版本专门为实时应用和资源受限环境优化在保持高精度的同时显著提升了推理速度。EfficientSAM架构与工作原理EfficientSAM采用编码器-解码器架构通过ONNX格式部署实现跨平台兼容性。其核心工作流程如下技术实现细节EfficientSAM在Labelme中的集成采用了多线程异步处理机制确保用户交互的流畅性class EfficientSam: def __init__(self, encoder_path, decoder_path): self._encoder_session onnxruntime.InferenceSession(encoder_path) self._decoder_session onnxruntime.InferenceSession(decoder_path) self._lock threading.Lock() self._image_embedding_cache collections.OrderedDict() self._thread None模型支持两种不同的预测模式多边形预测模式将用户标注点转换为精确的多边形轮廓掩码预测模式直接生成二值分割掩码模型配置与性能对比Labelme提供了多个EfficientSAM变体以满足不同需求场景模型变体参数量推理速度精度水平适用场景EfficientSamVitT最小⚡️ 极快⭐️⭐️⭐️实时标注、低性能设备EfficientSamVitS中等⚡️ 快速⭐️⭐️⭐️⭐️⭐️高精度标注、专业用途配置文件中默认设置ai: default: EfficientSam (accuracy) # 默认使用高精度版本交互式标注工作流程EfficientSAM在Labelme中的标注流程实现了真正的智能化交互图像编码阶段自动计算并缓存图像特征嵌入点标注交互用户通过点击指定前景正样本和背景负样本点实时预测模型根据用户标注实时生成分割结果结果优化自动去除小面积噪点优化边界精度高级功能特性1. 智能点标注支持正面点前景左键点击标识需要分割的目标区域负面点背景Shift左键点击排除不需要的区域多点协同支持多个正负点组合实现精确控制2. 缓存优化机制采用LRU最近最少使用缓存策略最多缓存10张图像的特征嵌入避免重复计算self._image_embedding_cache collections.OrderedDict() if len(self._image_embedding_cache) 10: self._image_embedding_cache.popitem(lastFalse)3. 异步处理架构图像特征计算在后台线程执行确保主线程响应性self._thread threading.Thread( targetself._compute_and_cache_image_embedding ) self._thread.start()实际应用示例复杂场景分割对于包含多个相似物体的复杂场景EfficientSAM能够准确区分不同实例# 多点标注示例 points [[100, 150], [120, 160], [90, 140]] # 前景点 point_labels [1, 1, 1] # 全部为正面标注 mask efficient_sam.predict_mask_from_points(points, point_labels) polygon efficient_sam.predict_polygon_from_points(points, point_labels)精细边缘处理通过后处理算法优化分割边界MIN_SIZE_RATIO 0.05 skimage.morphology.remove_small_objects( mask, min_sizemask.sum() * MIN_SIZE_RATIO, outmask )性能优化建议硬件加速确保启用GPU加速的ONNX Runtime批量处理对视频序列帧可复用特征嵌入分辨率适配根据任务需求调整输入图像尺寸模型选择在速度与精度间权衡选择合适的变体扩展开发接口开发者可以通过以下接口扩展EfficientSAM功能# 自定义模型集成 from labelme.ai.efficient_sam import EfficientSam class CustomEfficientSam(EfficientSam): def __init__(self, custom_encoder_path, custom_decoder_path): super().__init__(custom_encoder_path, custom_decoder_path) def custom_prediction(self, points, point_labels): # 实现自定义预测逻辑 passEfficientSAM的集成显著提升了Labelme的标注效率特别是在处理复杂形状和精细边缘时相比传统手动标注可节省70%以上的时间。其智能化的交互方式和实时反馈机制为图像标注工作流带来了革命性的改进。AI辅助标注功能实战Labelme作为一款强大的图像标注工具其AI辅助标注功能极大地提升了标注效率。通过集成Segment Anything Model (SAM)和EfficientSAM等先进的计算机视觉模型Labelme能够根据用户提供的少量点提示自动生成精确的多边形或掩码标注。AI模型架构与集成Labelme集成了多种AI模型通过统一的接口提供智能标注功能。主要的AI模型包括模型名称类型特点适用场景SegmentAnything (speed)SAM-ViT-B快速推理轻量级实时标注性能优先SegmentAnything (balanced)SAM-ViT-L平衡精度与速度通用场景SegmentAnything (accuracy)SAM-ViT-H高精度分割精细标注需求EfficientSam (speed)EfficientSAM-ViT-T极致速度轻量化移动端或低性能设备EfficientSam (accuracy)EfficientSAM-ViT-S高效准确推荐默认选择这些模型通过ONNX Runtime进行推理确保了跨平台的兼容性和高效的性能表现。AI标注工作流程Labelme的AI辅助标注功能遵循直观的点提示交互模式1. 模型初始化与图像设置当用户选择AI标注模式时Labelme会自动下载并初始化相应的AI模型def initializeAiModel(self, name): if name not in [model.name for model in labelme.ai.MODELS]: raise ValueError(Unsupported ai model: %s % name) model [model for model in labelme.ai.MODELS if model.name name][0] if self._ai_model is not None and self._ai_model.name model.name: logger.debug(AI model is already initialized: %r % model.name) else: logger.debug(Initializing AI model: %r % model.name) self._ai_model model() self._ai_model.set_image( imagelabelme.utils.img_qt_to_arr(self.pixmap.toImage()) )2. 点提示交互机制AI标注的核心在于点提示交互用户通过点击图像来提供正负样本信息绿色点正样本标识目标区域红色点负样本标识非目标区域按住Shift键点击# 在鼠标移动事件中处理点标签 is_shift_pressed ev.modifiers() QtCore.Qt.ShiftModifier point_label 0 if is_shift_pressed else 1 # 0:负样本, 1:正样本3. 实时预测与预览Labelme提供实时预览功能用户在添加点提示时能够立即看到AI预测的结果def predict_mask_from_points(self, points, point_labels): return _compute_mask_from_points( decoder_sessionself._decoder_session, imageself._image, image_embeddingself._get_image_embedding(), pointspoints, point_labelspoint_labels, ) def predict_polygon_from_points(self, points, point_labels): mask self.predict_mask_from_points(pointspoints, point_labelspoint_labels) return _utils.compute_polygon_from_mask(maskmask)两种AI标注模式实战AI多边形模式 (AI-Polygon)AI多边形模式将点提示转换为精确的多边形标注适用于需要矢量边界的情况# AI多边形预测流程 points self._ai_model.predict_polygon_from_points( points[[point.x(), point.y()] for point in drawing_shape.points], point_labelsdrawing_shape.point_labels, ) if len(points) 2: drawing_shape.setShapeRefined( shape_typepolygon, points[QtCore.QPointF(point[0], point[1]) for point in points], point_labels[1] * len(points), )使用技巧先用1-2个正样本点大致标识目标使用负样本点排除错误区域通过Ctrl左键完成标注AI掩码模式 (AI-Mask)AI掩码模式生成像素级的掩码标注适用于需要精细分割的场景# AI掩码预测流程 mask self._ai_model.predict_mask_from_points( points[[point.x(), point.y()] for point in drawing_shape.points], point_labelsdrawing_shape.point_labels, ) # 计算边界框 y1, x1, y2, x2 imgviz.instances.masks_to_bboxes([mask])[0].astype(int) drawing_shape.setShapeRefined( shape_typemask, points[QtCore.QPointF(x1, y1), QtCore.QPointF(x2, y2)], point_labels[1, 1], maskmask[y1 : y2 1, x1 : x2 1], )使用技巧适合复杂形状和精细边缘支持不规则物体的精确分割生成的掩码可转换为多边形性能优化与最佳实践模型选择策略根据不同的标注需求选择合适的AI模型# 配置文件中的默认设置 ai: default: EfficientSam (accuracy) # 推荐默认选择选择建议速度优先EfficientSam (speed) 或 SegmentAnything (speed)精度优先SegmentAnything (accuracy)平衡选择EfficientSam (accuracy) 推荐缓存机制优化Labelme实现了智能的图像嵌入缓存提升重复标注的效率self._image_embedding_cache collections.OrderedDict() self._image_embedding_cache[self._image.tobytes()] self._image_embedding if len(self._image_embedding_cache) 10: self._image_embedding_cache.popitem(lastFalse)实战案例与技巧案例1物体实例分割对于复杂的物体实例分割采用分层标注策略粗标注用1-2个正样本点标识主要物体区域精细调整添加负样本点排除背景干扰边缘优化在边界区域添加额外点提示创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
Labelme视频标注与AI辅助功能
发布时间:2026/6/5 0:14:29
Labelme视频标注与AI辅助功能文章详细介绍了Labelme在视频序列标注和AI辅助标注方面的完整工作流程与最佳实践。内容涵盖从视频预处理、帧提取、多帧连续标注到集成EfficientSAM等AI模型的智能标注功能包括模型架构、交互式工作流程、性能优化策略。同时还提供了大规模数据集标注的团队协作规范、质量控制机制、批处理自动化方案以及错误处理和进度监控的最佳实践为计算机视觉项目的高效标注提供全面指导。视频序列标注工作流程视频序列标注是计算机视觉领域中一项至关重要的任务它涉及对视频帧序列中的对象进行连续跟踪和标注。Labelme作为一款强大的图像标注工具提供了完整的视频标注解决方案支持从视频帧提取到多帧标注的完整工作流。视频预处理与帧提取在开始视频标注之前首先需要将视频文件转换为图像序列。Labelme推荐使用video-toimg工具来完成这一预处理步骤pip install video-cli video-toimg your_video.mp4 # 创建your_video/目录 ls your_video/ # 查看生成的图像序列这个预处理过程将视频分解为连续的JPEG图像文件每个文件对应视频中的一个帧。生成的图像文件按照顺序命名如00000100.jpg、00000101.jpg等便于后续的顺序标注。启动视频标注模式Labelme提供了专门的命令行参数来支持视频序列标注labelme data_annotated --labels labels.txt --nodata --keep-prev --config {shift_auto_shape_color: -2}关键参数说明参数功能描述重要性--keep-prev保持前一帧的标注形状⭐⭐⭐⭐⭐--nodata不包含图像数据只保存相对路径⭐⭐⭐⭐--labels指定标签列表文件⭐⭐⭐⭐--config配置自动形状颜色偏移⭐⭐⭐多帧连续标注工作流视频序列标注的核心在于利用帧间的时空连续性。Labelme通过--keep-prev参数实现了智能的跨帧标注继承标注数据格式与结构每个视频帧的标注信息保存在独立的JSON文件中包含完整的标注元数据{ version: 4.0.0, flags: {}, shapes: [ { label: car, points: [[924.0, 321.0], [905.0, 352.0], ...], shape_type: polygon, flags: {} } ], imagePath: 00000100.jpg, imageData: null, imageHeight: 563, imageWidth: 1000 }智能标注辅助功能Labelme的视频标注模式提供了多项智能辅助功能形状颜色一致性通过shift_auto_shape_color配置确保同一对象在不同帧中保持相同的颜色标识标注继承优化自动将前一帧的标注形状应用到当前帧大幅减少重复标注工作空间连续性利用基于对象运动的连续性只需微调标注位置而非重新标注实际工作流程示例以下是一个完整的视频标注会话示例# 启动标注会话 labelme video_frames/ --labels objects.txt --keep-prev # 第一帧完整标注所有目标 # - 使用多边形工具标注车辆 # - 使用矩形工具标注交通标志 # - 保存标注 (CtrlS) # 后续帧继承并调整 # - 切换到下一帧 (D键) # - 自动继承上一帧标注 # - 微调移动的车辆位置 # - 删除消失的对象 # - 添加新出现的对象 # - 保存当前帧标注标注质量控制策略为确保视频标注的质量和一致性建议采用以下策略定期回溯检查每标注10帧后回溯检查前几帧的标注一致性关键帧重点标注对运动剧烈或遮挡发生的帧进行精细标注批量验证使用Labelme的批量查看功能验证整个序列的标注质量元数据记录在JSON文件的flags字段中记录标注质量信息性能优化建议对于长视频序列标注以下优化措施可以提升工作效率使用--nodata参数避免图像数据重复存储减少文件大小预先定义完整的标签列表避免标注过程中的标签不一致利用键盘快捷键快速切换帧D键下一帧A键上一帧对静态背景区域进行一次性标注后续帧直接继承视频序列标注工作流程的核心价值在于充分利用时间连续性将传统的逐帧独立标注转变为高效的序列化标注大幅提升标注效率的同时保证标注质量的一致性。Labelme通过智能的标注继承和优化的工作流程使得视频标注变得既高效又准确。EfficientSAM模型集成与应用Labelme作为一款强大的图像标注工具在最新版本中集成了EfficientSAMEfficient Segment Anything Model模型为用户提供了智能化的标注辅助功能。EfficientSAM是Meta AI的Segment Anything ModelSAM的高效版本专门为实时应用和资源受限环境优化在保持高精度的同时显著提升了推理速度。EfficientSAM架构与工作原理EfficientSAM采用编码器-解码器架构通过ONNX格式部署实现跨平台兼容性。其核心工作流程如下技术实现细节EfficientSAM在Labelme中的集成采用了多线程异步处理机制确保用户交互的流畅性class EfficientSam: def __init__(self, encoder_path, decoder_path): self._encoder_session onnxruntime.InferenceSession(encoder_path) self._decoder_session onnxruntime.InferenceSession(decoder_path) self._lock threading.Lock() self._image_embedding_cache collections.OrderedDict() self._thread None模型支持两种不同的预测模式多边形预测模式将用户标注点转换为精确的多边形轮廓掩码预测模式直接生成二值分割掩码模型配置与性能对比Labelme提供了多个EfficientSAM变体以满足不同需求场景模型变体参数量推理速度精度水平适用场景EfficientSamVitT最小⚡️ 极快⭐️⭐️⭐️实时标注、低性能设备EfficientSamVitS中等⚡️ 快速⭐️⭐️⭐️⭐️⭐️高精度标注、专业用途配置文件中默认设置ai: default: EfficientSam (accuracy) # 默认使用高精度版本交互式标注工作流程EfficientSAM在Labelme中的标注流程实现了真正的智能化交互图像编码阶段自动计算并缓存图像特征嵌入点标注交互用户通过点击指定前景正样本和背景负样本点实时预测模型根据用户标注实时生成分割结果结果优化自动去除小面积噪点优化边界精度高级功能特性1. 智能点标注支持正面点前景左键点击标识需要分割的目标区域负面点背景Shift左键点击排除不需要的区域多点协同支持多个正负点组合实现精确控制2. 缓存优化机制采用LRU最近最少使用缓存策略最多缓存10张图像的特征嵌入避免重复计算self._image_embedding_cache collections.OrderedDict() if len(self._image_embedding_cache) 10: self._image_embedding_cache.popitem(lastFalse)3. 异步处理架构图像特征计算在后台线程执行确保主线程响应性self._thread threading.Thread( targetself._compute_and_cache_image_embedding ) self._thread.start()实际应用示例复杂场景分割对于包含多个相似物体的复杂场景EfficientSAM能够准确区分不同实例# 多点标注示例 points [[100, 150], [120, 160], [90, 140]] # 前景点 point_labels [1, 1, 1] # 全部为正面标注 mask efficient_sam.predict_mask_from_points(points, point_labels) polygon efficient_sam.predict_polygon_from_points(points, point_labels)精细边缘处理通过后处理算法优化分割边界MIN_SIZE_RATIO 0.05 skimage.morphology.remove_small_objects( mask, min_sizemask.sum() * MIN_SIZE_RATIO, outmask )性能优化建议硬件加速确保启用GPU加速的ONNX Runtime批量处理对视频序列帧可复用特征嵌入分辨率适配根据任务需求调整输入图像尺寸模型选择在速度与精度间权衡选择合适的变体扩展开发接口开发者可以通过以下接口扩展EfficientSAM功能# 自定义模型集成 from labelme.ai.efficient_sam import EfficientSam class CustomEfficientSam(EfficientSam): def __init__(self, custom_encoder_path, custom_decoder_path): super().__init__(custom_encoder_path, custom_decoder_path) def custom_prediction(self, points, point_labels): # 实现自定义预测逻辑 passEfficientSAM的集成显著提升了Labelme的标注效率特别是在处理复杂形状和精细边缘时相比传统手动标注可节省70%以上的时间。其智能化的交互方式和实时反馈机制为图像标注工作流带来了革命性的改进。AI辅助标注功能实战Labelme作为一款强大的图像标注工具其AI辅助标注功能极大地提升了标注效率。通过集成Segment Anything Model (SAM)和EfficientSAM等先进的计算机视觉模型Labelme能够根据用户提供的少量点提示自动生成精确的多边形或掩码标注。AI模型架构与集成Labelme集成了多种AI模型通过统一的接口提供智能标注功能。主要的AI模型包括模型名称类型特点适用场景SegmentAnything (speed)SAM-ViT-B快速推理轻量级实时标注性能优先SegmentAnything (balanced)SAM-ViT-L平衡精度与速度通用场景SegmentAnything (accuracy)SAM-ViT-H高精度分割精细标注需求EfficientSam (speed)EfficientSAM-ViT-T极致速度轻量化移动端或低性能设备EfficientSam (accuracy)EfficientSAM-ViT-S高效准确推荐默认选择这些模型通过ONNX Runtime进行推理确保了跨平台的兼容性和高效的性能表现。AI标注工作流程Labelme的AI辅助标注功能遵循直观的点提示交互模式1. 模型初始化与图像设置当用户选择AI标注模式时Labelme会自动下载并初始化相应的AI模型def initializeAiModel(self, name): if name not in [model.name for model in labelme.ai.MODELS]: raise ValueError(Unsupported ai model: %s % name) model [model for model in labelme.ai.MODELS if model.name name][0] if self._ai_model is not None and self._ai_model.name model.name: logger.debug(AI model is already initialized: %r % model.name) else: logger.debug(Initializing AI model: %r % model.name) self._ai_model model() self._ai_model.set_image( imagelabelme.utils.img_qt_to_arr(self.pixmap.toImage()) )2. 点提示交互机制AI标注的核心在于点提示交互用户通过点击图像来提供正负样本信息绿色点正样本标识目标区域红色点负样本标识非目标区域按住Shift键点击# 在鼠标移动事件中处理点标签 is_shift_pressed ev.modifiers() QtCore.Qt.ShiftModifier point_label 0 if is_shift_pressed else 1 # 0:负样本, 1:正样本3. 实时预测与预览Labelme提供实时预览功能用户在添加点提示时能够立即看到AI预测的结果def predict_mask_from_points(self, points, point_labels): return _compute_mask_from_points( decoder_sessionself._decoder_session, imageself._image, image_embeddingself._get_image_embedding(), pointspoints, point_labelspoint_labels, ) def predict_polygon_from_points(self, points, point_labels): mask self.predict_mask_from_points(pointspoints, point_labelspoint_labels) return _utils.compute_polygon_from_mask(maskmask)两种AI标注模式实战AI多边形模式 (AI-Polygon)AI多边形模式将点提示转换为精确的多边形标注适用于需要矢量边界的情况# AI多边形预测流程 points self._ai_model.predict_polygon_from_points( points[[point.x(), point.y()] for point in drawing_shape.points], point_labelsdrawing_shape.point_labels, ) if len(points) 2: drawing_shape.setShapeRefined( shape_typepolygon, points[QtCore.QPointF(point[0], point[1]) for point in points], point_labels[1] * len(points), )使用技巧先用1-2个正样本点大致标识目标使用负样本点排除错误区域通过Ctrl左键完成标注AI掩码模式 (AI-Mask)AI掩码模式生成像素级的掩码标注适用于需要精细分割的场景# AI掩码预测流程 mask self._ai_model.predict_mask_from_points( points[[point.x(), point.y()] for point in drawing_shape.points], point_labelsdrawing_shape.point_labels, ) # 计算边界框 y1, x1, y2, x2 imgviz.instances.masks_to_bboxes([mask])[0].astype(int) drawing_shape.setShapeRefined( shape_typemask, points[QtCore.QPointF(x1, y1), QtCore.QPointF(x2, y2)], point_labels[1, 1], maskmask[y1 : y2 1, x1 : x2 1], )使用技巧适合复杂形状和精细边缘支持不规则物体的精确分割生成的掩码可转换为多边形性能优化与最佳实践模型选择策略根据不同的标注需求选择合适的AI模型# 配置文件中的默认设置 ai: default: EfficientSam (accuracy) # 推荐默认选择选择建议速度优先EfficientSam (speed) 或 SegmentAnything (speed)精度优先SegmentAnything (accuracy)平衡选择EfficientSam (accuracy) 推荐缓存机制优化Labelme实现了智能的图像嵌入缓存提升重复标注的效率self._image_embedding_cache collections.OrderedDict() self._image_embedding_cache[self._image.tobytes()] self._image_embedding if len(self._image_embedding_cache) 10: self._image_embedding_cache.popitem(lastFalse)实战案例与技巧案例1物体实例分割对于复杂的物体实例分割采用分层标注策略粗标注用1-2个正样本点标识主要物体区域精细调整添加负样本点排除背景干扰边缘优化在边界区域添加额外点提示创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考