mvondracek / VUT-FIT-POVa-2018-Pedestrian-Tracking

Computer vision system for tracking pedestrians in a scene observed by multiple cameras.
10 stars 4 forks source link

ValueError in `OpenPoseBinaryDetector.get_person_subimage` on testing data *single* #18

Closed mvondracek closed 5 years ago

mvondracek commented 5 years ago

I've just tried to switch detector in main pipeline which resulted in mentioned error. Detector was initiated in main.py using following code where binary_path contains correctly working path:

detector = OpenPoseBinaryDetector(binary_path, using_gpu=False)

Image provider was initiated as follows:

image_provider = ImageProviderFromVideo(
         ['testing_data/s3_m_front_single.mov', 'testing_data/s3_f_side_single.mov'],
         start=39*30,  # start after first few seconds 
         skipping=30)  # type: ImageProvider # (30 fps)

Error:

  File "D:/dev/VUT-FIT-POVa-2018-Pedestrian-Tracking/main.py", line 104, in processing_pipeline
    side_views = detector.detect(side_image, camera_side)
  File "D:\dev\VUT-FIT-POVa-2018-Pedestrian-Tracking\detector.py", line 159, in detect
    views = self.load_valid_persons_from_json(result_path, image, camera)
  File "D:\dev\VUT-FIT-POVa-2018-Pedestrian-Tracking\detector.py", line 207, in load_valid_persons_from_json
    person_image = self.get_person_subimage(image, body_parts)
  File "D:\dev\VUT-FIT-POVa-2018-Pedestrian-Tracking\detector.py", line 241, in get_person_subimage
    top_left_x = min(part[0] for part in body_parts if part is not None)
ValueError: min() arg is an empty sequence

related: #16


EDIT: detected on c3d1115916e61ce232b0d03bf20502f03dfa25ac, haven't been looking for the source of this bug

xstast24 commented 5 years ago

This may happen if all body parts of a person are detected with lower probability than 0.7 (default in detector). Then a person is created by open pose, but the body parts list is empty. Fixed.