labelme可执行程序 标注软件使用 coco yolo格式数据集 标注软件使用 yolo训练

📅 2026/7/30 7:43:47 👁️ 阅读次数 📝 编程学习
labelme可执行程序 标注软件使用 coco yolo格式数据集 标注软件使用 yolo训练

labelme是一个非常强大的图像标注工具,用户可通过图形界面手动标注图像中的目标区域,并生成相应的标注文件。这些标注文件通常以 JSON 格式保存,可以方便地转换为其他格式(如 YOLO、Pascal VOC 等),以便用于深度学习模型的训练。

安装 LabelMe

1. 使用预编译的可执行程序

快速安装并使用labelme,可以下载预编译的可执行程序。以下是步骤:

  • Windows 用户

    • 访问 LabelMe GitHub Releases 页面。
    • 下载最新版本的 Windows 可执行文件(例如labelme-<version>-win64.exe)。
    • 运行下载的.exe文件进行安装。
    • 安装完成后,你可以在开始菜单中找到labelme并运行它。
  • MacOS 和 Linux 用户

    • 对于 MacOS 和 Linux,推荐使用 Python 脚本安装,因为官方没有提供预编译的可执行文件。
2. 使用 Python 脚本安装

或使用 Python 脚本安装labelme,可以按照以下步骤操作:

# 安装依赖库pipinstallpyqt5 lxml# 安装 labelmepipinstalllabelme

安装完成后,你可以通过命令行启动labelme

labelme

使用 LabelMe 进行标注

1. 打开图像文件
  • 启动labelme后,点击File->Open或者直接拖拽图像文件到labelme界面中。
2. 创建标签
  • 在右侧的Label List中添加你需要的标签。例如,在你的截图中,有PLCK两个标签。
3. 绘制多边形
  • 选择左侧工具栏中的Create Polygons工具。
  • 在图像上点击多个点来绘制多边形,最后双击结束绘制。
  • 选择绘制好的多边形,并在右侧的Polygon Labels中选择对应的标签。
4. 保存标注
  • 标注完成后,点击File->Save保存标注结果。默认情况下,labelme会生成一个与图像同名的.json文件。

将 LabelMe JSON 转换为 YOLO 格式

为了将labelme生成的 JSON 文件转换为 YOLO 格式,你可以使用labelme提供的脚本labelme_json_to_dataset.py。以下是详细步骤:

1. 安装额外依赖
pipinstallimgviz pycocotools
2. 转换脚本

创建一个 Python 脚本来批量转换 JSON 文件:

importosimportjsonfromlabelmeimportutilsimportnumpyasnpimportglobimportPIL.Imagedefconvert_labelme_json_to_yolo(json_file,output_dir):withopen(json_file)asf:data=json.load(f)image_path=os.path.join(os.path.dirname(json_file),data['imagePath'])image=np.asarray(PIL.Image.open(image_path))height,width=image.shape[:2]yolo_lines=[]forshapeindata['shapes']:label=shape['label']points=shape['points']# Convert polygon to bounding boxx_coords=[p[0]forpinpoints]y_coords=[p[1]forpinpoints]xmin=min(x_coords)xmax=max(x_coords)ymin=min(y_coords)ymax=max(y_coords)# Normalize coordinatesx_center=(xmin+xmax)/2/width y_center=(ymin+ymax)/2/height w=(xmax-xmin)/width h=(ymax-ymin)/height class_id=label_list.index(label)yolo_line=f"{class_id}{x_center:.6f}{y_center:.6f}{w:.6f}{h:.6f}"yolo_lines.append(yolo_line)txt_file=os.path.splitext(json_file)[0]+'.txt'withopen(txt_file,'w')asf:f.write('\n'.join(yolo_lines))if__name__=='__main__':label_list=['PL','CK']# 根据你的标签列表调整json_files=glob.glob('path/to/json/files/*.json')forjson_fileinjson_files:convert_labelme_json_to_yolo(json_file,'output_dir')
3. 运行脚本

将上述脚本保存为convert_labelme_to_yolo.py,然后运行:

python convert_labelme_to_yolo.py

这将把所有labelme生成的 JSON 文件转换为 YOLO 格式的.txt文件,方便后续的模型训练和推理。