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中添加你需要的标签。例如,在你的截图中,有PL和CK两个标签。
3. 绘制多边形
- 选择左侧工具栏中的
Create Polygons工具。 - 在图像上点击多个点来绘制多边形,最后双击结束绘制。
- 选择绘制好的多边形,并在右侧的
Polygon Labels中选择对应的标签。
4. 保存标注
- 标注完成后,点击
File->Save保存标注结果。默认情况下,labelme会生成一个与图像同名的.json文件。
将 LabelMe JSON 转换为 YOLO 格式
为了将labelme生成的 JSON 文件转换为 YOLO 格式,你可以使用labelme提供的脚本labelme_json_to_dataset.py。以下是详细步骤:
1. 安装额外依赖
pipinstallimgviz pycocotools2. 转换脚本
创建一个 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文件,方便后续的模型训练和推理。