aim-uofa / AdelaiDet

AdelaiDet is an open source toolbox for multiple instance-level detection and recognition tasks.
https://git.io/AdelaiDet
Other
3.39k stars 653 forks source link

Processing the custom dataset with only four vertices #125

Closed Eurus-Holmes closed 4 years ago

Eurus-Holmes commented 4 years ago

Hi, thanks for your great work! But when I train my own models on the custom dataset with only four vertices, following the example scripts, the output result is weird.

Screen Shot 2020-06-29 at 5 35 36 PM

In that case, locations are annotated in terms of polygons with four vertices, which are in clockwise order starting from the upper left vertice. But in the paper, the Total-Text has GT of 10 annotated points and CTW1500 has GT of 14 annotated points. How should I fix it?

Yuliang-Liu commented 4 years ago

That should be same as discussed in #92.

Eurus-Holmes commented 4 years ago

@Yuliang-Liu Hi, I noticed this issue, do you mean I need to interpolate a few control points in two trisections of the long side so that the label has 10 points or 14 points, to generate Bezier curve and train.json?

Eurus-Holmes commented 4 years ago

@Yuliang-Liu Hi, I don't think it's right by interpolating a few control points in two trisections of the long side so that the label has 10 points or 14 points, to generate the Bezier curve.

For example, the above image label is:

"lines": [{"ignore": 0, "transcription": "HOKI", "points": [23, 173, 327, 180, 327, 290, 23, 283]}, {"ignore": 0, "transcription": "TEA", "points": [368, 180, 621, 180, 621, 294, 368, 294]}]

I interpolate 10 points so that the label has 14 points as the same as the CTW1500, the new label is:

"lines": [{"ignore": 0, "transcription": "HOKI", "points": [23.0, 173.0, 31.444444444444443, 173.19444444444446, 39.888888888888886, 173.38888888888889, 48.33333333333333, 173.58333333333331, 56.77777777777777, 173.77777777777777, 65.22222222222221, 173.97222222222223, 73.66666666666666, 174.16666666666666, 124.33333333333333, 175.33333333333334, 132.77777777777777, 175.52777777777777, 141.22222222222223, 175.72222222222223, 149.66666666666666, 175.91666666666669, 158.11111111111111, 176.11111111111111, 166.55555555555554, 176.30555555555554, 175.0, 176.5]}, {"ignore": 0, "transcription": "TEA", "points": [368.0, 180.0, 375.02777777777777, 180.0, 382.05555555555554, 180.0, 389.08333333333337, 180.0, 396.11111111111114, 180.0, 403.1388888888889, 180.0, 410.1666666666667, 180.0, 452.3333333333333, 180.0, 459.3611111111111, 180.0, 466.38888888888886, 180.0, 473.41666666666663, 180.0, 480.44444444444446, 180.0, 487.47222222222223, 180.0, 494.5, 180.0]}]

But by generating Bezier curve, output result is:

Screen Shot 2020-06-30 at 3 50 53 PM

I wonder how could I generate such a result?

Screen Shot 2020-06-30 at 3 51 55 PM
Eurus-Holmes commented 4 years ago

@Yuliang-Liu I found in the CTW1500, the label is in clockwise order starting from the lower left vertice. However, my label in counterclockwise order starting from the upper left vertice.

I have changed and solved it.

Screen Shot 2020-06-30 at 4 22 38 PM

Thanks!