Importing labeled ground truth data using Image Labeler

18 visualizaciones (últimos 30 días)
Amin Assadzadeh
Amin Assadzadeh el 12 de Oct. de 2019
Editada: Ali Ozturk el 26 de Mzo. de 2023
I have labeled some data using Image Labeler. However, when I load gTruth labels and try to use the objectDetectorTrainingData(gTruth), I get the following error:
Error using boxLabelDatastore (line 216) Incorrect bounding box format. Bounding box must be an M-by-4 numeric matrix, where M specifies the number of boxes in a row. The column in the training data table that contains the bounding boxes must be a cell array.
data= load('exportedLabels.mat');
[imds,bxds] = objectDetectorTrainingData(data.gTruth);
Image Labeler seems to store bounding boxes as struct instead of Mx4 matrices, I reckon this might be the issue. How can I load the gTruth obj the right way?
How can I get gTruth data in the following format?
Any help will be much appreciated.
  1 comentario
Rohan Sanghavi
Rohan Sanghavi el 28 de Abr. de 2020
I too had the same question However I want to convert the full table into the bounding box format mentioned. I can’t do it individually And if I loop it then the data having more than 1 bounding box gets concatenated as a 1 by 8 array Please help in this regard as well

Iniciar sesión para comentar.

Respuestas (2)

Rajani Mishra
Rajani Mishra el 15 de Oct. de 2019
Hi,
You can export the labeled ground truth to a MAT-file or to a variable in the MATLAB workspace. In both the cases the labeled ground truth is stored as groundTruth object. The values in that object are stored as structures. You can access the fields by using the commands like:
gTruthInterval(1,:).Car{1}.Position
where gTruthInterval is the labeled data. You can access various fields of that object as well. Please refer to the following documentation for more information:
About groundTruth object:
Hope this helps!
  2 comentarios
Thijs Langius
Thijs Langius el 24 de Ag. de 2022
I have (almost) the same question. I downloaded labeled images. I now have .jpg (images) and .txt files (coordinates of the box).
Example 123_456.jpg, and 123_456.txt.
Txt files contain:
0 0.578964870010237 0.553121683650408 0.130052151238592 0.24380704041721.
How do I make a groundTruth out of this?
Marjan Trutschl
Marjan Trutschl el 18 de Dic. de 2022
This is something that bugs me as well. For each image, I have several polygons, represeting the region of interest (ROI). The data is stored in a delimited text file, so I can get it into any format that is required. What bugs me is that the image labeler offers, among other shapes, a polygonal ROI. The example in the Matlab documentation mentions only rectangular ROI defined with [x,y,width, height]. There is no mention of polygons, lines, pixel labels, and projected cuboids that supported by the image labeler.
Aditionally, the training data table shown in the documentation (WWW) looks straightforward. However, there is no mention (or at least I cannot find it) of how to import my ROIs into the image labeler.The image labeler creates a binary .mat file, making it hard(er) to create my own training table using a program/script. Honestly, I am not excited about the idea of importing the ROIs (if at all possible) using a GUI interface because I have a very large number of images (this is to be expected when dealing weith deep learning).
Therefore, it would probably help many if someone posted a solution to this question. Thank you.
Generally speaking, there is a disconnect between what Matlab is [supposedly] able to do and what is actually documented. Is this because the documentation is written by the tech writers and not by those who actually wrote te code? I would not be writing if this was a free software package. However, I do pay a hefty annual license/maintenance fee for Matlab and various toolboxes.

Iniciar sesión para comentar.


Ali Ozturk
Ali Ozturk el 26 de Mzo. de 2023
Editada: Ali Ozturk el 26 de Mzo. de 2023
In the ImageLabeler tool, choose "To Workspace" from Export and select "table" as the "Export Format" instead of "ground truth" within "Export to workspace" window. Then, if you use that variable within Matlab, you may encounter less problem. The groundtruth data is too complicated to use in the Matlab code.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by