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

操作步骤:
打开半自动标注界面:在平台主界面中,找到并点击目标检测半自动标注功能入口,进入半自动标注界面。界面主要分为操作设置区、图片预览区、图像标注区和标注框列表区。
设置数据标签格式:在操作设置区,点击“设置数据标签格式”按钮,弹出选择窗口,包含 Json、XML、TXT 三种格式。根据实际需求选择合适的格式,点击“确定”后,所选格式将显示在对应主界面上。
设置标注标签文件:点击“设置标注标签文件”按钮,弹出文件选择对话框。选择 Txt 文本格式的标签文件,选择后文件的全路径将显示在对应的主界面上,同时标注标签列表会显示文件中的所有标签内容。
设置数据标注目录:点击“设置数据标注目录”按钮,弹出文件夹选择对话框。选择用于存储标注数据的目录,点击“确定”后,该目录的全路径将显示在对应的主界面上。
设置图片资源:
- 设置图片文件夹
:点击“设置图片文件夹”按钮,选择包含待标注图片的文件夹。选择后,图片文件夹的全路径将显示在对应的主界面上,图片预览区将显示该文件夹中第一张图片的缩略图,图像标注区将自动加载并展示该图片,图片会自适应图像标注区的大小。系统首先尝试读取标注文件,如果标注文件不存在或标注文件中无标注记录,会自动调用选择的模型进行预测,并将预测结果显示在标注框列表和图像标注区;若存在文件且存在标注记录,则直接读取并显示标注结果。 - 设置单张图片
:若只想标注单张图片,可点击“设置图片文件”按钮,选择具体的图片文件。选择后,图片文件的全路径将显示在对应的 QLabel 上,图片预览区显示该图片的缩略图,图像标注区展示完整图片。同样,系统会根据标注文件情况进行预测或读取标注信息。 进行标注操作:在图像标注区,点击左键开始框选目标物体。框选过程中,鼠标的起始位置即为标注开始的位置,拖动鼠标结束框选后,会弹出一个窗口,窗口列出了之前设置的标注标签。从列表中选择与目标物体对应的标签,点击“确定”。标注框上方将显示所选标签值,同时标注结果会显示在标注框列表区。
切换图片:点击“上一张”或“下一张”按钮,系统会保存当前图片的标注信息,加载上一张或下一张图片,并根据标注文件情况进行相应处理,操作与目标检测标注中的图片切换类似。
图像缩放:点击操作设置区的“放大”或“缩小”按钮,图像标注区的图片会相应地进行放大或缩小操作,标注框也会同步进行缩放,并且标注的位置会根据缩放比例进行准确还原。
标注修改:点击标注框列表的某个标注记录,如果预测出来的错误可以随时点击右键删除标注框,然后重新标注,如果漏标可随时在中间标注区域补充标注。

目标检测半自动标注界面代码层级关系及功能说明
模块导入部分
此部分主要导入了系统、文件操作、计算机视觉、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与大数据分析




