<div dir="ltr"><div>I notice that the documentation for <b>detected_object_set</b> says <a href="https://github.com/Kitware/kwiver/blob/master/vital/types/detected_object_set.h#L61">"detections are ordered on their basic confidence value."</a> I'm not quite sure what is meant by "basic confidence value" or the full implications for cases where a detection has a confidence for multiple classes.<br></div><div><br></div><div>An example where this becomes a problem is my current debugging of a non-maximum suppression filter, which tries to identify overlapping detections and only take the highest-confidence one. The current non-max filter assumes the detections in <b>detected_object_set</b> are sorted by confidence, and as it loops over the set, if there is bounding box overlap, the detection earlier in the set wins. The problem is, the <b>detected_object_set </b>will at most be sorted on one class's confidence, and I believe there are several examples already where other algorithms add or merge sets without enforcing that they remain sorted. In fact, the <a href="https://github.com/Kitware/kwiver/blob/master/vital/types/detected_object_set.cxx#L121">add function</a> for <b>detected_object_set</b> itself just appends to the end of the vector.</div><div><br></div><div>My suggestion is that we remove the specification that <b>detected_object_set</b> is sorted by confidence. This makes sense, at least nominally, since a set implies an unordered group (versus a list, tuple, vector, etc.). Otherwise, I think we'd need a way to ask <b>detected_object_set</b> if it is sorted on a particular class,</div><div><br></div><div>Best,</div><div>Matt<br></div></div>