When evaluating novel categories using do_test(cfg, model, mode='novel'), an assertion error occurs in omni3d_evaluation.py:
AssertionError: assert len(class_names) == precisions.shape[2]
This error indicates a mismatch between the number of configured categories and the actual prediction categories during evaluation.
Current Implementation
- The evaluation process is called separately for novel and base categories:
do_test(cfg, model, mode='novel')
do_test(cfg, model, mode='base')
- In
omni3d_evaluation.py, the evaluation uses all category names regardless of mode:
res = self._derive_omni_results(
evals[mode],
task,
mode,
class_names=self._metadata.get("thing_classes"), # Using all categories
)
Problem
When evaluating novel categories:
class_names contains all categories (base + novel)
- But
precisions.shape[2] only contains novel categories
- This mismatch triggers the assertion error
Any suggestions would be greatly appreciated.
When evaluating novel categories using
do_test(cfg, model, mode='novel'), an assertion error occurs inomni3d_evaluation.py:This error indicates a mismatch between the number of configured categories and the actual prediction categories during evaluation.
Current Implementation
omni3d_evaluation.py, the evaluation uses all category names regardless of mode:Problem
When evaluating novel categories:
class_namescontains all categories (base + novel)precisions.shape[2]only contains novel categoriesAny suggestions would be greatly appreciated.