YOLOv8-pose training warnings: ignoring corrupt image/label: non-normalized or out of bounds coordinate

Thank you for a good annotation tools. I have tried supervisely, cvat and yours is more convinient at least for me. I have few remarks for improvement.

Before exporting labels in JSON coco or TXT YOLO v5 can you please check the coordinates of deleted keypoints and restrict it to [0…1]. Because on border of image if user shifts keypoints template it sees the visible and occluded keypoints, but users do not sees deteted keypoint. So, when we move the template to the border the deleted points also move and are outside of image. Therefore, on begin of training stage I get corrupt image label. Because, YOLOv8-pose still validates the coordinates of each keypoint even if the keypoint is marked as “visibility=0”.

train: Scanning C:\tf\yolov8\pose\person\thermal_person\train\labels… 777 images, 0 backgrounds, 1 corrupt: 100%|████
train: WARNING C:\tf\yolov8\pose\person\thermal_person\train\images\20240201144851644_01440.jpg: ignoring corrupt image/label: non-normalized or out of bounds coordinates [ 1.0213]

So, I propose to make the deleted keypoints still visible. And the user can see and move that point on valid region of image. Or before exporting and downloading the label just check the coordinate and if it is larger that 1 then keep it i.e. 0.999 or always set to 0 if visibility=0.

Another issue is the import of labels. The roboflow recognizes the JSON format keypoints when I drop keypoint and labels. But it not recognizes the TXT YOLO v5 format, so it do not marks the keypoints.

Hey @Vcarve_Wood

Thank you for the kind words and I’ll direct your feedback to our team.

For example, in 1st frame we have a person with all keypoints visible we mark all 17 points as visible. On 2nd frame, person comes near to camera and ankle keypoints are not visible. I import the keypoint template from previous frame, delete ankles keypoint and move down the bbox to image lower border. And the problem is that you allow to move deleted keypoints outside of image border. Why? I see, you have modified the labeling tool so that keypoints can’t be placed outside of bbox, that is fine. But why the deleted keypoints can be placed outside of bbox and, therefore, outside of image also.

Another issue is with bbox, when it is on the border of image. Export dataset in COCO. Then import it back to roboflow. And for images where the bboxes are on the border the roboflow trims annotation to fit in a frame. A minute before exported bboxes are trimmed :smiley: :smiley: :smiley: when they are imported back. It is not a problem that it trims, but the main issue that with the trimming it destroys the structure of keypoint and place the default keypoint template of person for all the trimmed bboxes. Do you know why it trims? I tell you why. Because you allow to export labels outside the frame, but not allow to import them! In COCO we have bbox: [X up left, Y up,left, Width, Height]. So, when roboflow computes the bottom right corner it gets: Y up,left + Height outside frame, see attached image.