接上篇,本篇主要结合代码解释及说明具体实现过程。
一、常量参数设置const vectorcolors = {Scalar(255,255,0),Scalar(0, 255, 0),Scalar(0, 255, 255),Scalar(255, 0, 0)}; const float INPUT_WIDTH = 640.0; const float INPUT_HEIGHT = 640.0; const float SCORE_THRESHOLD = 0.2; const float NMS_THRESHOLD = 0.4; const float CONFIDENCE_THRESHOLD = 0.4;
colors是一个常量容器,可以理解成一个颜色集合,用于表示识别到的不同物体。
INPUT_WIDTH和INPUT_HEIGHT是输入视频图像的宽和高。
CONFIDENCE_THRESHOLD是检测框的置信阈值,当数值大于0.4时,检测框进入下一步处理流程,否则丢弃。
SCORE_THRESHOLD是类别置信阈值,当数值大于0.2时,认为类别识别结果可信,否则丢弃
NMS_THRESHOLD是做检测框非极大值抑制的阈值,IOU(交并比)大于0.4的候选检测框会被删除。
上述常量参数都可以根据实际应用情况进行调整。
这里补充一下nms的基本处理流程
1、根据置信度得分进行排序 2、选择置信度最高的比边界框添加到最终输出列表中,将其从边界框列表中删除 3、计算所有边界框的面积 4、计算置信度最高的边界框与其它候选框的IoU 5、删除IoU大于阈值的边界框 6、重复上述过程,直至边界框列表为空二、模型加载



