HumanSignal / label-studio-converter

Tools for converting Label Studio annotations into common dataset formats
https://labelstud.io/
255 stars 133 forks source link

Unable to convert multi-class instance segmentation dataset from YOLO TXT format #269

Open adbcode opened 7 months ago

adbcode commented 7 months ago

When using label-studio-converter==0.0.54rc0, with a YOLO TXT dataset with polygon masks and two classes, I get the following error trace:

  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "...label-studio-converter.exe\__main__.py", line 7, in <module>
  File "...\label_studio_converter\main.py", line 189, in main
    imports(args)
  File "...\label_studio_converter\main.py", line 160, in imports
    import_yolo.convert_yolo_to_ls(
  File "...\label_studio_converter\imports\yolo.py", line 113, in convert_yolo_to_ls
    label_id, x, y, width, height = line.split()
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: too many values to unpack (expected 5)

Command used for conversion: label-studio-converter import yolo -i <dataset_root> -o <dataset_name>.json

The codebase suggests that it expects only detection scenario with bounding boxes. It is unclear if segmentation masks are supported as the examples in the documentation only mention detection cases.

Another member asked a similar question (https://github.com/HumanSignal/label-studio-converter/issues/208#issuecomment-1600492955) but there was yet to be an answer about this.

Please consider supporting polygons for segmentation masks if not already supported.

Sergeant007 commented 6 months ago

Same for "label-studio-converter==0.0.58" (while importing a dataset with polygons, not boxes)

Traceback (most recent call last):
  File ".../label-studio-converter", line 8, in <module>
    sys.exit(main())
  File ".../label_studio_converter/main.py", line 189, in main
    imports(args)
  File ".../label_studio_converter/main.py", line 160, in imports
    import_yolo.convert_yolo_to_ls(
  File ".../label_studio_converter/imports/yolo.py", line 113, in convert_yolo_to_ls
    label_id, x, y, width, height = line.split()
ValueError: too many values to unpack (expected 5)