暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

关于目标检测半自动标注界面、功能及代码框架

追梦IT人 2025-04-28
47

目标检测半自动标注

功能介绍:目标检测半自动标注功能结合了模型预测和人工标注的优势。系统首先使用训练好的模型对图像进行初步预测,生成预测标注框和标签,用户可以在此基础上进行修改和完善,从而提高标注效率和准确性。目标检测半自动标注的界面更像标注界面而不是预测界面。


操作步骤

  1. 打开半自动标注界面:在平台主界面中,找到并点击目标检测半自动标注功能入口,进入半自动标注界面。界面主要分为操作设置区、图片预览区、图像标注区和标注框列表区。

  2. 设置数据标签格式:在操作设置区,点击“设置数据标签格式”按钮,弹出选择窗口,包含 Json、XML、TXT 三种格式。根据实际需求选择合适的格式,点击“确定”后,所选格式将显示在对应主界面上。

  3. 设置标注标签文件:点击“设置标注标签文件”按钮,弹出文件选择对话框。选择 Txt 文本格式的标签文件,选择后文件的全路径将显示在对应的主界面上,同时标注标签列表会显示文件中的所有标签内容。

  4. 设置数据标注目录:点击“设置数据标注目录”按钮,弹出文件夹选择对话框。选择用于存储标注数据的目录,点击“确定”后,该目录的全路径将显示在对应的主界面上。

  5. 设置图片资源


    • 设置图片文件夹
      :点击“设置图片文件夹”按钮,选择包含待标注图片的文件夹。选择后,图片文件夹的全路径将显示在对应的主界面上,图片预览区将显示该文件夹中第一张图片的缩略图,图像标注区将自动加载并展示该图片,图片会自适应图像标注区的大小。系统首先尝试读取标注文件,如果标注文件不存在或标注文件中无标注记录,会自动调用选择的模型进行预测,并将预测结果显示在标注框列表和图像标注区;若存在文件且存在标注记录,则直接读取并显示标注结果。
    • 设置单张图片
      :若只想标注单张图片,可点击“设置图片文件”按钮,选择具体的图片文件。选择后,图片文件的全路径将显示在对应的 QLabel 上,图片预览区显示该图片的缩略图,图像标注区展示完整图片。同样,系统会根据标注文件情况进行预测或读取标注信息。
  6. 进行标注操作:在图像标注区,点击左键开始框选目标物体。框选过程中,鼠标的起始位置即为标注开始的位置,拖动鼠标结束框选后,会弹出一个窗口,窗口列出了之前设置的标注标签。从列表中选择与目标物体对应的标签,点击“确定”。标注框上方将显示所选标签值,同时标注结果会显示在标注框列表区。

  7. 切换图片:点击“上一张”或“下一张”按钮,系统会保存当前图片的标注信息,加载上一张或下一张图片,并根据标注文件情况进行相应处理,操作与目标检测标注中的图片切换类似。

  8. 图像缩放:点击操作设置区的“放大”或“缩小”按钮,图像标注区的图片会相应地进行放大或缩小操作,标注框也会同步进行缩放,并且标注的位置会根据缩放比例进行准确还原。

  9. 标注修改:点击标注框列表的某个标注记录,如果预测出来的错误可以随时点击右键删除标注框,然后重新标注,如果漏标可随时在中间标注区域补充标注。

注:每张图片浏览后,无论是否标注都会生成一个标注文件。

目标检测半自动标注界面代码层级关系及功能说明

模块导入部分

此部分主要导入了系统、文件操作、计算机视觉、JSON 处理、XML 解析、PyQt5 相关组件、YOLO 模型、窗口样式、图像处理等所需的库和模块。

函数

  • absolute_to_relative
    :将绝对坐标系标注格式转换为相对坐标系标注格式。
  • relative_to_absolute
    :将相对坐标系标注格式转换为绝对坐标系标注格式。

LabelFormatDialog
  • __init__
    :初始化标签格式对话框。
  • get_selected_format
    :获取用户在对话框中选择的标签格式。
SemiImageLabelingApp
  • __init__
    :初始化半自动化图像标注应用程序。
  • initUI
    :设置应用程序的用户界面,包括窗口样式、布局和组件的添加。
  • set_model
    :打开文件选择对话框以选择模型文件。
  • set_label_format
    :设置标注的标签格式。
  • set_label_file
    :设置标签文件。
  • update_label_list
    :更新标签列表。
  • set_annotation_dir
    :设置标注文件的保存目录。
  • set_image_folder
    :设置图像文件夹。
  • update_image_list
    :更新图像列表。
  • set_image_file
    :设置当前要处理的图像文件。
  • load_image
    :加载指定路径的图像文件。
  • show_image
    :显示当前加载的图像。
  • show_preview
    :显示图像的预览。
  • load_annotations
    :加载标注数据。
    • load_json_annotations
      :从 JSON 文件中加载标注数据。
    • load_xml_annotations
      :从 XML 文件中加载标注数据。
    • load_txt_annotations
      :从 TXT 文件中加载标注数据。
  • update_box_list
    :更新边界框列表。
  • draw_annotations
    :在图像上绘制标注的边界框。
  • prev_image
    :切换到上一张图像。
  • next_image
    :切换到下一张图像。
  • save_annotations
    :保存当前的标注数据。
    • save_json_annotations
      :将标注数据保存为 JSON 文件。
    • save_xml_annotations
      :将标注数据保存为 XML 文件。
    • save_txt_annotations
      :将标注数据保存为 TXT 文件。
  • clear_annotations
    :清除当前的标注数据。
  • zoom_in
    :放大图像。
  • zoom_out
    :缩小图像。
  • get_image_position
    :获取图片在 QLabel 中的位置。
  • mouse_press_event
    :处理鼠标按下事件。
  • mouse_move_event
    :处理鼠标移动事件。
  • mouse_release_event
    :处理鼠标释放事件。
  • highlight_box
    :高亮显示选中的边界框。
  • show_context_menu
    :显示上下文菜单。
  • select_image
    :选择指定的图像。

最后欢迎关注公众号:python与大数据分析

文章转载自追梦IT人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论