Linux Ubuntu 16.04
想要自定义标签字体大小&边界框厚度作为我的标签文字& bbox在图像检测中太厚。
感谢您的帮助!如果你自己完成了这个,请传递你的知识! :)
答案 0 :(得分:2)
您可以通过更改line_thickness
中的visualize_boxes_and_labels_on_image_array
参数来更改边界框厚度,如下所示:
vis_util.visualize_boxes_and_labels_on_image_array(
image_np,
np.squeeze(boxes),
np.squeeze(classes).astype(np.int32),
np.squeeze(scores),
category_index,
use_normalized_coordinates=True,
line_thickness=8)
答案 1 :(得分:0)
Ubuntu 16.04似乎没有附带arial.ttf
字体 - 而且遗憾的是vis_util.visualize_boxes_and_labels_on_image_array
默认使用它,除了更改python代码之外它是不可配置的。当它无法找到该字体时,它会使用默认的位图字体,但分辨率太低,无法用于多种用途,尤其是在低DPI设置下。
但是,您可以通过多种方式解决此问题:
sudo apt-get install ttf-mscorefonts-installer
(但这对我不起作用 - 不确定原因)DejaVuSans.ttf
复制到目录arial.ttf
/usr/share/fonts/truetype/dejavu
的文件中
DejaVuSans.ttf
复制到arial.ttf
目录中名称为object_detection
的文件中(假设您在那里运行代码)然后,您可以使用DPI=100
显示您的方框和标签,并仍然可以阅读字体。
之前 - 使用默认位图字体的100 DPI:
之后 - 带有arial.ttf
答案 2 :(得分:0)
更改字体大小:
在文件models/research/object_detection/utils/visualization_utils.py
中
从第202行开始:
尝试:
font = ImageFont.truetype('arial.ttf', 24)
except IOError:
font = ImageFont.load_default()
在这里,我们只需要将数字24更改为所需的字体大小即可。