@@ -343,10 +343,10 @@ def calculate_score(self, bboxes) -> None:
343343 'roll' : [np .array ([]) for _ in range (self .params .number_of_trackers )]
344344 }
345345 for tracker_number in range (self .params .number_of_trackers ):
346- woman_center = [[ item [ 0 ] + item [ 2 ] / 2 , item [ 1 ] + item [ 3 ] / 2 ] for item in bboxes ['Woman' ][tracker_number ]]
346+ woman_center = [self . get_center ( item ) for item in bboxes ['Woman' ][tracker_number ]]
347347
348348 if self .params .track_men :
349- men_center = [[ item [ 0 ] + item [ 2 ] / 2 , item [ 1 ] + item [ 3 ] / 2 ] for item in bboxes ['Men' ][tracker_number ]]
349+ men_center = [self . get_center ( item ) for item in bboxes ['Men' ][tracker_number ]]
350350
351351 score ['x' ][tracker_number ] = np .array ([w [0 ] - m [0 ] for w , m in zip (bboxes ['Woman' ][tracker_number ], bboxes ['Men' ][tracker_number ])])
352352 score ['y' ][tracker_number ] = np .array ([m [1 ] - w [1 ] for w , m in zip (bboxes ['Woman' ][tracker_number ], bboxes ['Men' ][tracker_number ])])
@@ -494,9 +494,24 @@ def plot_scores(self, name: str, dpi : int = 300) -> None:
494494 figure .savefig (fname = name , dpi = dpi , bbox_inches = 'tight' )
495495
496496
497+ def get_center (self , box : tuple ) -> tuple :
498+ """ Get the cencter point of an box
499+
500+ Args:
501+ box (tuple): the predicted bounding box
502+
503+ Returns:
504+ tuple (x,y) of the current point
505+ """
506+ return ( round (box [0 ] + box [2 ]/ 2 ), round (box [1 ] + box [3 ]/ 2 ) )
507+
508+
497509 def correct_bboxes (self , bboxes : dict , num :int ) -> dict :
498510 """ Delete the latest tracking predictions e.g. to clear bad tracking values
499511
512+ TODO:
513+ Delete only from the point where min or max from data before `num` were exceeded or fallen below
514+
500515 Args:
501516 bboxes (dict): the raw bboxes
502517 num (int): number of frames to remove from predicted boxes
0 commit comments