【发布时间】:2018-08-08 04:19:42
【问题描述】:
目前我正在使用经过自定义训练的标准 Tensorflow 对象检测脚本,我想更改绑定框的颜色以适应我的应用程序的性质。但是我似乎找不到这样做的方法。例如,与其绘制绿色框 id,不如在检测到的对象周围绘制一个红色框。提前谢谢!
【问题讨论】:
标签: python tensorflow computer-vision data-science object-detection
目前我正在使用经过自定义训练的标准 Tensorflow 对象检测脚本,我想更改绑定框的颜色以适应我的应用程序的性质。但是我似乎找不到这样做的方法。例如,与其绘制绿色框 id,不如在检测到的对象周围绘制一个红色框。提前谢谢!
【问题讨论】:
标签: python tensorflow computer-vision data-science object-detection
我有点找到了一种方法——在经历了很多麻烦之后。我没有发现任何记录如何做到这一点。 有点,因为有些颜色似乎不起作用。
打开“visualizations_utils.py”。应该在 Lib\site-packages\utils 中。 第 41 到 63 行是您的颜色。
在第 164 行的正下方,
draw = ImageDraw.Draw(图像),
输入一个新行
color = '粉色'
保存它,您现在已将颜色更改为粉红色。第 175 行,您可以将标签文本变小。
某些颜色似乎不起作用,例如“红色”。
【讨论】:
在标签映射 pbtxt 文件中添加“颜色”属性。即
项目{ 名称:“/m/01g317” 编号:1 显示名称:“人” 颜色:“粉红色” }
打开文件“research/object_detection/protos/string_int_label_map.proto”。添加以下行。
optional string color = 4;
注意分号、花括号。
然后需要序列化数据,所以从研究中运行以下命令 文件夹
protoc object_detection/protos/*.proto --python_out=.
在此之前,您必须根据您的操作系统安装 protobuf。
更改文件object_detection/utils/lable_map_util.py的“convert_label_map_to_categories”函数代码
类别 = [] list_of_ids_already_added = [] 如果不是 label_map: label_id_offset = 1 对于范围内的class_id(max_num_classes): 类别.附加({ “id”:class_id + label_id_offset, 'name': 'category_{}'.format(class_id + label_id_offset) }) 返回类别 对于 label_map.item 中的项目:
if not 0 < item.id <= max_num_classes:
logging.info(
'Ignore item %d since it falls outside of requested '
'label range.', item.id)
continue
if use_display_name and item.HasField('display_name'):
name = item.display_name
else:
name = item.name
if use_display_name and item.HasField('color'):
color = item.color
else:
color = ''
if item.id not in list_of_ids_already_added:
list_of_ids_already_added.append(item.id)
categories.append({'id': item.id, 'name': name, 'color': color})
return categories
5.打开文件“object_detection/utils/visualization_utils.py”。转到名为的函数 “visualize_boxes_and_labels_on_image_array”。添加以下代码
else:
if classes[i] in category_index.keys():
class_color = category_index[classes[i]]['color']
box_to_color_map[box] = class_color
代码之后
if agnostic_mode:
box_to_color_map[box] = 'DarkOrange'
【讨论】: