| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
@tlancaster6, thanks for your contribution, looks like a useful addition! I have two minor suggestions:
if len(output) > len(keepers):
predictions[name] = output[keepers]
Since np.where returns a tuple with indices, the length of keepers does not reflect the number of bounding boxes that is above threshold. I propose to change it to: above_threshold = predictions["bbox_scores"] > self.bbox_score_thresh
keepers = np.where(above_threshold)
if any(~above_threshold):
predictions['bboxes'] = predictions["bboxes"][keepers]
predictions['bbox_scores'] = predictions["bbox_scores"][keepers]
I have requested some proposed changes. Please have a look if you agree and if it works for your solution. |
Sorry, something went wrong.
There was a problem hiding this comment.
Adding this feature could be definitely valuable. With regards to the implementation I suggested some changes. Since I cannot directly contribute to this branch, I've opened a replacement PR #3154.
Sorry, something went wrong.
|
This PR is closed in favor of #3154 |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Summary: Filters out low-confidence bounding box detections during top-down pose estimation to reduce false-positives
I'm working on a project where the animals frequently leave the field of view for extended periods. While I found that top-down pose estimation worked well when both of my animals were in frame, it also resulted in false-positives when less than the max number of animals were in frame. For example, when only one of the two animals was in frame, I would see the scenario shown in the attached image, where two bounding boxes would be placed over the same individual and some keypoints would be detected twice. Upon further investigation, I found that the "bad" bounding boxes almost always had very low detection confidences. So I implemented a new RemoveLowConfidenceBoxes (inheriting from the PostProcessor class) in postprocessor.py, and integrated it into the build_detector_postprocessor function. Now detections with low confidence are removed before reaching the pose estimation phase, preventing the issue. Feedback and suggestions welcome!