不同类别对象的多个颜色边界框
Multiple color bounding-boxes for different category objects
我正在实施“BBAVectors-Oriented-Object-Detection”https://github.com/yijingru/BBAVectors-Oriented-Object-Detection 模型。测试模型后,所有检测到的对象都显示有相同颜色的边界框。
以下是 link 到 test.py 代码 https://github.com/yijingru/BBAVectors-Oriented-Object-Detection/blob/master/test.py。我发现以下代码行改变了边界框的颜色。
ori_image = cv2.drawContours(ori_image, [np.int0(box)], -1, (255,0,255),1,1)
但是,它一次只需要一种颜色。
此外,在“BBAVectors-Oriented-Object-Detection”的另一个文件“dataset_dota.py”中https://github.com/yijingru/BBAVectors-Oriented-Object-Detection/blob/master/datasets/dataset_dota.py我找到了每个对象类别的指定颜色。
class DOTA(BaseDataset):
def __init__(self, data_dir, phase, input_h=None, input_w=None, down_ratio=None):
super(DOTA, self).__init__(data_dir, phase, input_h, input_w, down_ratio)
self.category = ['plane',
'baseball-diamond',
'bridge',
'ground-track-field',
'small-vehicle',
'large-vehicle',
'ship',
'tennis-court',
'basketball-court',
'storage-tank',
'soccer-ball-field',
'roundabout',
'harbor',
'swimming-pool',
'helicopter'
]
self.color_pans = [(204,78,210),
(0,192,255),
(0,131,0),
(240,176,0),
(254,100,38),
(0,0,255),
(182,117,46),
(185,60,129),
(204,153,255),
(80,208,146),
(0,0,204),
(17,90,197),
(0,255,255),
(102,255,102),
(255,255,0)]
self.num_classes = len(self.category)
self.cat_ids = {cat:i for i,cat in enumerate(self.category)}
self.img_ids = self.load_img_ids()
self.image_path = os.path.join(data_dir, 'images')
self.label_path = os.path.join(data_dir, 'labelTxt')
我比较熟悉 Python 和 Opencv。如果有人可以帮助我 link 这些文件并在不同的颜色边界框中显示检测到的对象,或者使用其他方法在不同的颜色边界框中显示不同的对象类别,我将不胜感激。谢谢
当前版本检测到的对象如下:
detected samples
这是一个片段:
# Initialize the DOTA Class
dota_object = DOTA(data_dir, phase)
# Get color
object = 'plane'
id = dota_object.category.index(object)
color = dota_object.color_pans[id]
# Display the image
ori_image = cv2.drawContours(ori_image, [np.int0(box)], -1, color,1,1)
将变量替换为代码中的变量 (ori_image
、dota_object
、data_dir
、phase
)
我正在实施“BBAVectors-Oriented-Object-Detection”https://github.com/yijingru/BBAVectors-Oriented-Object-Detection 模型。测试模型后,所有检测到的对象都显示有相同颜色的边界框。
以下是 link 到 test.py 代码 https://github.com/yijingru/BBAVectors-Oriented-Object-Detection/blob/master/test.py。我发现以下代码行改变了边界框的颜色。
ori_image = cv2.drawContours(ori_image, [np.int0(box)], -1, (255,0,255),1,1)
但是,它一次只需要一种颜色。
此外,在“BBAVectors-Oriented-Object-Detection”的另一个文件“dataset_dota.py”中https://github.com/yijingru/BBAVectors-Oriented-Object-Detection/blob/master/datasets/dataset_dota.py我找到了每个对象类别的指定颜色。
class DOTA(BaseDataset):
def __init__(self, data_dir, phase, input_h=None, input_w=None, down_ratio=None):
super(DOTA, self).__init__(data_dir, phase, input_h, input_w, down_ratio)
self.category = ['plane',
'baseball-diamond',
'bridge',
'ground-track-field',
'small-vehicle',
'large-vehicle',
'ship',
'tennis-court',
'basketball-court',
'storage-tank',
'soccer-ball-field',
'roundabout',
'harbor',
'swimming-pool',
'helicopter'
]
self.color_pans = [(204,78,210),
(0,192,255),
(0,131,0),
(240,176,0),
(254,100,38),
(0,0,255),
(182,117,46),
(185,60,129),
(204,153,255),
(80,208,146),
(0,0,204),
(17,90,197),
(0,255,255),
(102,255,102),
(255,255,0)]
self.num_classes = len(self.category)
self.cat_ids = {cat:i for i,cat in enumerate(self.category)}
self.img_ids = self.load_img_ids()
self.image_path = os.path.join(data_dir, 'images')
self.label_path = os.path.join(data_dir, 'labelTxt')
我比较熟悉 Python 和 Opencv。如果有人可以帮助我 link 这些文件并在不同的颜色边界框中显示检测到的对象,或者使用其他方法在不同的颜色边界框中显示不同的对象类别,我将不胜感激。谢谢
当前版本检测到的对象如下:
detected samples
这是一个片段:
# Initialize the DOTA Class
dota_object = DOTA(data_dir, phase)
# Get color
object = 'plane'
id = dota_object.category.index(object)
color = dota_object.color_pans[id]
# Display the image
ori_image = cv2.drawContours(ori_image, [np.int0(box)], -1, color,1,1)
将变量替换为代码中的变量 (ori_image
、dota_object
、data_dir
、phase
)