-
Notifications
You must be signed in to change notification settings - Fork 258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add hota iou calculation along with detection/association accuracy #183
base: develop
Are you sure you want to change the base?
Conversation
Hi, thanks a lot for your contribution! |
I wonder if you could also add a HOTA metric to this
test? I guess we could derive the necessary GT-values by running the files through the official implementation? |
should it be added to the default motchallenge metrics? |
you mean to add it to I believe one could make a separate list of metrics for HOTA? such that we can write
Alternatively, based on https://motchallenge.net/, it seems like MotChallenge is already reporting HOTA. So we could just add the metrics to the |
Since it's already included in the challenge, I can create Also I need some hint how to implement the actual HOTA which is an average of hota_iou across a range of iou thresholds. |
These are results from the official repo on the same test files: |
I hopefully can have a look at that in the next week. Do you know if its possible pre-compute some values about |
I doubt because all of them are basically TP, FP and FN which are computed at a specified threshold. I've noticed that my results of DetA and AssA are different from the orig. repo, need to look more into that. |
Really looking forward to start using py-motmetrics instead of trackeval for full MOTA, HOTA and IDF1 metrics! 🚀 |
I have followed the author's blog post in my implementation but the numbers are different from the original repository. Just need to find time to figure out where the catch is and how to compute a metric at multiple IOU thresholds in this package. |
If it is of any help, here you have the original HOTA implementation @Rusteam : |
Thanks. Yes I've seen it but it requires time to find the difference |
Hi, I have tried combining different import os
import numpy as np
import motmetrics as mm
"""Tests metrics for sequences TUD-Campus and TUD-Stadtmitte."""
dnames = [
"TUD-Stadtmitte",
]
DATA_DIR = "motmetrics/data"
def compute_motchallenge(dname):
df_gt = mm.io.loadtxt(os.path.join(dname, "gt.txt"))
df_test = mm.io.loadtxt(os.path.join(dname, "test.txt"))
res_file = []
for th in np.arange(0.05, 0.99, 0.05):
res_file.append(mm.utils.compare_to_groundtruth(df_gt, df_test, "iou", distth=th))
return res_file
accs = [compute_motchallenge(os.path.join(DATA_DIR, d)) for d in dnames]
det = []
mh = mm.metrics.create()
for idx in range(len(accs[0])):
summary = mh.compute_many(
[accs[0][idx]],
metrics=["det_acc"],
names=[dnames[0]],
generate_overall=False,
)
det.append(float(summary["det_acc"].iloc[0]))
print(sum(det) / len(det)) and found the
Computing the iou_matrix (of dist) once and use different Based on these reasons, maybe we can do the HOTA computation with a indepdent function without changing the current codebase? |
@Rusteam , @Justin900429 how does your PR relate to this one? |
He is right. There's some difference. I wonder how to fix it |
any news? |
Closes #151
Following the author's blogpost to add HOTA calculation to this package.
Added
hota_iou
implementation only for a single selectediou
threshold. Need some guidance on how to implementHOTA
atrange(0.05, 0.95, 0.05)