@wanghuijiao
2022-04-20T14:18:50.000000Z
字数 6072
阅读 978
技术文档
classDiagramHardSampleAnalysis ..> DrawUtilsHardSampleAnalysis ..> ConfigParserHardSampleAnalysis ..> ConfusionMatrixBoxesHardSampleAnalysis ..> DrawOutputUtilsclass ConfigParser{+ parser(cfg_path)}class HardSampleAnalysis{+ findout_boxes_from_one_dataset(image_path,dataset: BaseDetectionDateset)+ analysis_hard_samples(dataset_dict, draw_config_dict, draw_output_config: DrawOutputConfig)}class DrawUtils{+ draw_one_image(img, boxes, config: DrawConfig, image_text='', box_text_list=[]):+ concate_images(img_list, mode)}class DrawOutputUtils{+ output(img)}class ConfusionMatrixBoxes{+ calculate_tp_fp_fn(gt_boxes_list, pred_boxes_list)}
graph TBStart(开始) --> ConfigParser[ConfigParser]ConfigParser --> HardSampleAnalysis[HardSampleAnalysis]HardSampleAnalysis --> ConfusionMatrixBoxes[ConfusionMatrixBoxes]ConfusionMatrixBoxes --> DrawUtils[DrawUtils]DrawUtils --> DrawOutputUtils[DrawOutputUtils]DrawOutputUtils --> img_list{"是否还有图片?"}img_list --是--> HardSampleAnalysisimg_list --否--> End(结束)
功能点及类与方法的实现:
输入是
[GT_dataset]# groudtruth 数据集名称标识,将会显示在图片上用以区分不同的结果来源dataset_name = GT_dataset# groudtruth 数据集根路径dataset_path = tests/data/coco_dataset# 支持coco\yolo两种格式dataset_type = coco# 是否打乱图片顺序显示shuffle = True# 要可视化的子集名称# coco: test.json\train.json\val.json# yolo: train.txt\test.txt\val.txtsplit = test.json# DrawConfig参数设置# 任选TP, FP, FN三者中一个或多个,并以逗号分割hard_sample_type = TP,FP,FN# hard_sample_type选项对应的颜色设置,要求长度与hard_sample_type输入顺序与个数相对应hard_sample_colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]# iou阈值, 超过此阈值的Box被认为是TPiou_threshold = 0.5# score阈值,超过此阈值的box才会被用于计算TP\FP\FNscore_threshold = 0.1# 画框线段粗细line_thickness = 2# 画框线段类型lineType = 15# 框备注信息的字体类型font = 0# 框备注信息的字体字号fontscale = 2# 框备注信息的字体线段粗细text_line_thickness = 2# 框备注信息线段类型text_lineType = 16# 框备注信息的字体颜色text_color = (255, 0, 0)# 画框是否采用断点线段dotted_line = False# 是否显示置信度分数show_score = True# 是否显示图片索引, 即当前图片是第几张show_index = True# 图片显示进度信息在图片上的位置img_text_index = (10, 100)# 图片显示进度信息在图片上的颜色img_text_color = (0, 255, 0)# DrawOutputConfig参数设置# 是否保存可视化结果图片格式到本地output_image = True# 图片保存路径output_path = tests/visualization/test_draw_datasets_in_multi_images# 是否直接显示可视化结果imshow = False# 可视化的图片高和宽尺寸设置height = 480width = 640# 难例画框模式,对于单个模型结果(除GT之外的模型)提供两种画框拼接模式,叠加(True)显示或分开(False)显示TP\FP\FN;对于多个模型仅提供单张图片叠加显示TP\FP\FN框;hard_sample_concate = True[m1]# 模型结果名称标识,将会显示在图片上用以区分不同的结果来源dataset_name = m1# groudtruth 数据集根路径dataset_path = tests/data/coco_dataset# 支持coco\yolo两种格式dataset_type = coco# 是否打乱图片顺序显示shuffle = True# 要可视化的子集名称# coco: test.json\train.json\val.json# yolo: train.txt\test.txt\val.txtsplit = test.json# DrawConfig参数设置# 任选TP, FP, FN三者中一个或多个,并以逗号分割hard_sample_type = TP,FP,FN# hard_sample_type选项对应的颜色设置,要求长度与hard_sample_type输入顺序与个数相对应hard_sample_colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]# iou阈值, 超过此阈值的Box被认为是TPiou_threshold = 0.5# score阈值,超过此阈值的box才会被用于计算TP\FP\FNscore_threshold = 0.1# 画框线段粗细line_thickness = 2# 画框线段类型lineType = 15# 框备注信息的字体类型font = 0# 框备注信息的字体字号fontscale = 2# 框备注信息的字体线段粗细text_line_thickness = 2# 框备注信息线段类型text_lineType = 16# 框备注信息的字体颜色text_color = (255, 0, 0)# 画框是否采用断点线段dotted_line = False# 是否显示置信度分数show_score = True# 是否显示图片索引, 即当前图片是第几张show_index = True# 图片显示进度信息在图片上的位置img_text_index = (10, 100)# 图片显示进度信息在图片上的颜色img_text_color = (0, 255, 0)# DrawOutputConfig参数设置# 是否保存可视化结果图片格式到本地output_image = True# 图片保存路径output_path = tests/visualization/test_draw_datasets_in_multi_images# 是否直接显示可视化结果imshow = False# 可视化的图片高和宽尺寸设置height = 480width = 640# 难例画框模式,对于单个模型结果(除GT之外的模型)提供两种画框拼接模式,叠加(True)显示或分开(False)显示TP\FP\FN;对于多个模型仅提供单张图片叠加显示TP\FP\FN框;hard_sample_concate = True[m2]# 模型结果名称标识,将会显示在图片上用以区分不同的结果来源dataset_name = m2# groudtruth 数据集根路径dataset_path = tests/data/coco_dataset# 支持coco\yolo两种格式dataset_type = coco# 是否打乱图片顺序显示shuffle = True# 要可视化的子集名称# coco: test.json\train.json\val.json# yolo: train.txt\test.txt\val.txtsplit = test.json# DrawConfig参数设置# 任选TP, FP, FN三者中一个或多个,并以逗号分割hard_sample_type = TP,FP,FN# hard_sample_type选项对应的颜色设置,要求长度与hard_sample_type输入顺序与个数相对应hard_sample_colors = [(255, 0, 0), (0, 255, 0), (0, 0, 255)]# iou阈值, 超过此阈值的Box被认为是TPiou_threshold = 0.5# score阈值,超过此阈值的box才会被用于计算TP\FP\FNscore_threshold = 0.1# 画框线段粗细line_thickness = 2# 画框线段类型lineType = 15# 框备注信息的字体类型font = 0# 框备注信息的字体字号fontscale = 2# 框备注信息的字体线段粗细text_line_thickness = 2# 框备注信息线段类型text_lineType = 16# 框备注信息的字体颜色text_color = (255, 0, 0)# 画框是否采用断点线段dotted_line = False# 是否显示置信度分数show_score = True# 是否显示图片索引, 即当前图片是第几张show_index = True# 图片显示进度信息在图片上的位置img_text_index = (10, 100)# 图片显示进度信息在图片上的颜色img_text_color = (0, 255, 0)# DrawOutputConfig参数设置# 是否保存可视化结果图片格式到本地output_image = True# 图片保存路径output_path = tests/visualization/test_draw_datasets_in_multi_images# 是否直接显示可视化结果imshow = False# 可视化的图片高和宽尺寸设置height = 480width = 640# 难例画框模式,对于单个模型结果(除GT之外的模型)提供两种画框拼接模式,叠加(True)显示或分开(False)显示TP\FP\FN;对于多个模型仅提供单张图片叠加显示TP\FP\FN框;hard_sample_concate = True
graph TBA(开始)B[打开冰箱门]C{"冰箱小不小"}D((连接))


可视化什么?
算法逻辑
脚本使用步骤