当我使用YOLO训练我的数据集时,遇到了这个错误。我明白这意味着标签超出了图像的范围,但我使用的是来自Open Images的数据源。对于每个文件,我都收到了这个错误。
Wrong annotation: x = 0, y = 0, < 0 or > 1, file: data/obj/3149c61b7407b0c5.txt
在转换标签时,所有的类别最初都是101,这导致了错误,所以我使用以下代码将它们全部转换为0:
这是导致错误的一个文件”3149c61b7407b0c5.txt”的内容。
0 1085.6260855566406 1254.4786898033353 2.9297560546874593 102.18274182156930 1086.0899527441406 607.6991307711304 3.857441406250018 1176.30098934734380 1137.8566324316407 1307.114119795808 91.84562460937491 5.36562344520452950 1186.680802158203 607.1194858238297 3.8867578125000364 1175.2903225838920 1187.6573546972656 1361.4528185098725 3.8672361230469505 101.161290327925230 1234.0440929785157 1195.3281309872493 92.75390625 3.27952655166617870 1234.0284875097657 604.9840441022702 90.90814453124995 1177.34406537959170 1235.4991806640626 1360.3872916281202 91.875 101.118226025806560 1236.9639953222656 17.328152487227214 92.75390625 4.2902580677851630 1283.3262900390625 7.146366677539043 3.8965437597655637 14.010775056000430 1431.255040830078 1251.7474424893667 94.71674785156256 101.129010755979320 1430.7726089941407 1630.7969258238081 91.77738281250004 5.39789343446277850 1477.198360751953 1626.5442385087865 4.86328125 5.3656234461724030 1528.974786533203 1789.3657435657651 90.85930644531254 103.204258166687440 1579.2491416015625 1898.0120122775286 3.828125 99.010773862397390 1625.6456455078126 1519.5280764679483 92.73437579101551 4.3441720472793950 1627.1007041015625 1467.355033670012 91.875 100.08598989468890 1674.4591220703126 1358.7162488302274 4.853545517578141 102.139816993591620 1772.593927158203 1950.1948291506785 3.876963085937632 5.354838715022010 1871.709142001953 2003.349592810873 4.863222255859455 101.107515917235970 1871.2404211035157 1843.6894421635711 3.9062204980468778 5.33334387530102
回答:
YOLO的标签是以图像宽度/高度的比例来完成的。这样,即使图像被调整大小,标签仍然准确。标签格式为:
<class id> <x> <y> <width> <height>
例如,一个标签显示
0 150 50 450 100
在一个600×200的图像上将是
0 .25 .25 .75 .5