@@ -383,18 +383,21 @@ def calculate_score(self, bboxes) -> None:
383383 score ['x' ][tracker_number ] = np .array ([w [0 ] - min ([x [0 ] for x in bboxes ['Woman' ][tracker_number ]]) for w in bboxes ['Woman' ][tracker_number ]])
384384 score ['y' ][tracker_number ] = np .array ([max ([x [1 ] for x in bboxes ['Woman' ][tracker_number ]]) - w [1 ] for w in bboxes ['Woman' ][tracker_number ]])
385385
386- def get_mean (item ):
387- max_frame_number = max ([len (item [i ]) for i in range (self .params .number_of_trackers )])
388- arr = np .ma .empty ((max_frame_number ,self .params .number_of_trackers ))
389- arr .mask = True
390- for tracker_number in range (self .params .number_of_trackers ):
391- arr [:item [tracker_number ].shape [0 ],tracker_number ] = item [tracker_number ]
392- return list (filter (None .__ne__ , arr .mean (axis = 1 ).tolist ()))
393-
394- self .score ['x' ] = sp .scale_signal (get_mean (score ['x' ]), 0 , 100 )
395- self .score ['y' ] = sp .scale_signal (get_mean (score ['y' ]), 0 , 100 )
396- self .score ['distance' ] = sp .scale_signal (get_mean (score ['distance' ]), 0 , 100 )
397- self .score ['roll' ] = sp .scale_signal (get_mean (score ['roll' ]), 0 , 100 )
386+ def get_mean (item , number_of_trackers ) -> list :
387+ if number_of_trackers == 1 :
388+ return item [0 ] if len (item ) > 0 else []
389+ else :
390+ max_frame_number = max ([len (item [i ]) for i in range (number_of_trackers )])
391+ arr = np .ma .empty ((max_frame_number ,number_of_trackers ))
392+ arr .mask = True
393+ for tracker_number in range (number_of_trackers ):
394+ arr [:item [tracker_number ].shape [0 ],tracker_number ] = item [tracker_number ]
395+ return list (filter (None .__ne__ , arr .mean (axis = 1 ).tolist ()))
396+
397+ self .score ['x' ] = sp .scale_signal (get_mean (score ['x' ], self .params .number_of_trackers ), 0 , 100 )
398+ self .score ['y' ] = sp .scale_signal (get_mean (score ['y' ], self .params .number_of_trackers ), 0 , 100 )
399+ self .score ['distance' ] = sp .scale_signal (get_mean (score ['distance' ], self .params .number_of_trackers ), 0 , 100 )
400+ self .score ['roll' ] = sp .scale_signal (get_mean (score ['roll' ], self .params .number_of_trackers ), 0 , 100 )
398401
399402
400403 def scale_score (self , status : str , metric : str = 'y' ) -> None :
0 commit comments