如何向Tensorflow对象检测python模型绑定框添加自定义颜色?

2024-09-24 00:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我正在使用标准的Tensorflow对象检测脚本,这是自定义训练,我想改变绑定框的颜色,以适应我的应用程序的性质。然而,我似乎找不到一个办法。例如,在检测到的对象周围绘制一个红框,而不是绘制一个绿色的框id。提前谢谢你!在


Tags: 对象脚本id应用程序标准颜色tensorflow绘制
2条回答

我找到了一条路-经过很多麻烦。我找不到任何关于如何做这件事的文件。 有点,因为有些颜色似乎不起作用。在

打开“可视化_实用工具.py". 应该在Lib\site packages\utils中。 第41到63行是你的颜色。在

在164排正下方

绘制=图像绘制。绘制(图像)

输入新行

颜色=“粉色”

保存它,现在您已将颜色更改为粉红色。第175行,可以使标签文本变小。在

有些颜色似乎不起作用,比如“红色”。在

  1. 在标签映射pbtxt文件中添加“color”属性。i、 e

    项目{ 名称:“/m/01g317” 编号:1 显示姓名:“人” 颜色:“粉色” }

  2. 打开文件“research/object_detection/protos/string_int_label_地图.proto”. 添加以下行。在

    optional string color = 4;
    

    注意分号,大括号。

  3. 然后需要序列化数据,因此从research运行以下命令 文件夹

    ^{pr2}$

    在此之前,您必须根据您的操作系统安装protobuf。

  4. 更改文件object_detection/utils/lable_map的函数“convert_label_map_to_categories”的代码_实用程序.py在

    类别=[] 已添加的\u id\u列表=[] 如果不是标签地图: label_id_offset=1 对于范围内的类_id(max_num_classes): 追加类别({ “id”:类_id+label_id_offset, 'name':'类别{}'。格式(class_id+label_id_offset) }) 退货类别 对于标签中的项目_地图项目公司名称:

    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”文件_实用工具.py”. 转到名为的函数 “可视化图像阵列上的方框和标签”。添加以下代码

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'

相关问题 更多 >