-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from .eval import Evaluator | ||
from . import datasets | ||
from . import metrics | ||
from . import plotting | ||
from . import utils |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
from functools import wraps | ||
from time import perf_counter | ||
import inspect | ||
|
||
DO_TIMING = False | ||
DISPLAY_LESS_PROGRESS = False | ||
timer_dict = {} | ||
counter = 0 | ||
|
||
|
||
def time(f): | ||
@wraps(f) | ||
def wrap(*args, **kw): | ||
if DO_TIMING: | ||
# Run function with timing | ||
ts = perf_counter() | ||
result = f(*args, **kw) | ||
te = perf_counter() | ||
tt = te-ts | ||
|
||
# Get function name | ||
arg_names = inspect.getfullargspec(f)[0] | ||
if arg_names[0] == 'self' and DISPLAY_LESS_PROGRESS: | ||
return result | ||
elif arg_names[0] == 'self': | ||
method_name = type(args[0]).__name__ + '.' + f.__name__ | ||
else: | ||
method_name = f.__name__ | ||
|
||
# Record accumulative time in each function for analysis | ||
if method_name in timer_dict.keys(): | ||
timer_dict[method_name] += tt | ||
else: | ||
timer_dict[method_name] = tt | ||
|
||
# If code is finished, display timing summary | ||
if method_name == "Evaluator.evaluate": | ||
print("") | ||
print("Timing analysis:") | ||
for key, value in timer_dict.items(): | ||
print('%-70s %2.4f sec' % (key, value)) | ||
else: | ||
# Get function argument values for printing special arguments of interest | ||
arg_titles = ['tracker', 'seq', 'cls'] | ||
arg_vals = [] | ||
for i, a in enumerate(arg_names): | ||
if a in arg_titles: | ||
arg_vals.append(args[i]) | ||
arg_text = '(' + ', '.join(arg_vals) + ')' | ||
|
||
# Display methods and functions with different indentation. | ||
if arg_names[0] == 'self': | ||
print('%-74s %2.4f sec' % (' '*4 + method_name + arg_text, tt)) | ||
elif arg_names[0] == 'test': | ||
pass | ||
else: | ||
global counter | ||
counter += 1 | ||
print('%i %-70s %2.4f sec' % (counter, method_name + arg_text, tt)) | ||
|
||
return result | ||
else: | ||
# If config["TIME_PROGRESS"] is false, or config["USE_PARALLEL"] is true, run functions normally without timing. | ||
return f(*args, **kw) | ||
return wrap |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# from .kitti_2d_box import Kitti2DBox | ||
# from .kitti_mots import KittiMOTS | ||
# from .mots_challenge import MOTSChallenge | ||
# from .bdd100k import BDD100K | ||
# from .davis import DAVIS | ||
# from .tao import TAO | ||
# from .tao_ow import TAO_OW | ||
# try: | ||
# from .burst import BURST | ||
# from .burst_ow import BURST_OW | ||
# except ImportError as err: | ||
# print(f"Error importing BURST due to missing underlying dependency: {err}") | ||
# from .youtube_vis import YouTubeVIS | ||
# from .head_tracking_challenge import HeadTrackingChallenge | ||
# from .rob_mots import RobMOTS | ||
# from .person_path_22 import PersonPath22 | ||
|
||
# from .mot_challenge_2d_box import MotChallenge2DBox |