欢迎光临散文网 会员登陆 & 注册

标注工具 LabelImg 改造指南

2023-06-20 17:23 作者:刹那-Ksana-  | 我要投稿

分享一下对于 labelimg 的一些改造技巧

如何找到代码的位置

在 anaconda prompt 下输入如下指令

或者,用 vscode 打开,然后输入

按住 control 键鼠标点击 labelImg 后会自动跳转到

<Anaconda 安装路径>\Lib\site-packages\labelImg\__init__.py

(本文此后路径中,紫色的部分都将省略掉)

改动之前记得做好版本控制

去除 change save dir

去除掉这个功能

由于点击 open dir 后还需要再点击 change save dir 来设置保存路径,这样两步操作就会容易出错,并且通常保存路径和打开路径都是同一个,所以个人决定把这个反人类的设计去除掉。

相关代码在 labelImg\labelImg.py 第 1241 行

这里把我们把这个函数整个删除掉,以及将 1325 行 open_prev_image, 1350 行 open_next_image 中的 change_save_dir_dialog 去掉

然后把第 221 行

删除,以及将所有引用变量 change_save_dir 的地方,把变量 change_save_dir 删除

最后在 1274 行的 open_dir_dialog 函数的最后加入 self.default_save_dir = target_dir_path,如下

同理你也可以把 open (打开单个文件)去掉,因为实在找不到这个功能的任何实用价值

对 Labels List 排序

第 806 行,load_labels 函数的最开头加入一个 sort:

上面这个代码就是根据标签名进行排序

排序之后可以看得清楚一点,不会再杂乱无章

由于 labelimg 最上层的方框会覆盖下面的,所以也可以根据自定义排序,把想要调整的物体拉到最前端

改变文字大小

第 1165 行

中的 0.02 控制字体大小,个人感觉 0.01 左右最合适

文字描边

由于 labelimg 的字体实在是太细,所以加一个描边会看得清楚一些,相关的代码在libs\shape.py 这个文件下面

在第 87 行的 paint 函数中,在 if self.paint_label 这个条件判断的最后加入如下代码

这样是给所有的文字加上了一个白边

调整方框宽度、颜色等

还是上面的那个 paint 函数,第 92 行

这里的 1 和 2.0 控制方框的宽度

这个文件最开头的几行

控制着大部分的颜色(rgba),自行研究即可

个人倾向于将选中的方框填充色和方框颜色一致,所以第 134 行

改成了

这里的 self.line_color 就是边框、标签的颜色

修改标签列表大小

只能放下10个标签,10个以后需要往下拖动

简单粗暴的方法是在第 930 行后面插入一句改变大小

一个比较好的方案(未完全测试过)是将 libs\labelDialog.py 中的 QListWidget 改成 QTableWidget,这样可以一行显示多个标签

以上的代码替换掉源代码 39~45 行

多列显示

修改快捷键

第 210 行以后一系列的代码

这里,action 的第 3 个参数就是快捷键

去除自动选择

第 1116 行开始的这 3 行代码删除即可

这样打开图片的时候就不会自动选择最后一个标签了

后记:PyQt 里面是不是统一没有 property, 感觉很多东西都要调函数……

标注工具 LabelImg 改造指南的评论 (共 条)

分享到微博请遵守国家法律