Polarbeartnt / SP-ILC

Concurrent Single-Pixel Imaging, Object Location and Classification By Deep Learning.
MIT License
10 stars 3 forks source link

数据预处理 #3

Closed 425877 closed 6 months ago

425877 commented 6 months ago

针对训练前的数据处理,其中有一个voc2yolo4.py,我运行完之后生成的txt文件内容里的绝对路径(如data180k/selfmadetxt/0/00000001.txt )但实际上这个路径并没有创建,也没有00000001.txt ,请问这个操作的作用是什么?希望老师在闲暇之余可以帮忙解除疑惑,十分感谢老师帮助

Polarbeartnt commented 6 months ago

你说的没错,这个确实不会创建这个文件00000001.txt。voc2yolo4.py的主要目的是为了实现将label从.xml格式转到简单的一行文字,正如readme里写的那样。实际上.xml是我们在很早期编写数据集生成软件时用的,当时参考了其他一些工作标注label的格式。

后来我们发现这个完全不必,只需要给出框的中心位置、宽度高度以及分类就行,所以训练的时候我们用以表示数据集的文件只是train.txt,里面每一行按照【图片路径】+【标签信息】的方式构成。训练程序只需要读一行,根据路径加载图片,路径后面的标签信息文本就是label,这样就无需使用专门的label文件了。我们保留这个文件只是为了供使用我们的数据集生成软件的读者使用,实际上你完全可以自己做出来一些图片,然后直接把它的路径和label放到同一个txt里,也可以修改utils/dataloader.py适配你自己的数据集格式。

至于你说的data180k/selfmadetxt/0/00000001.txt,这个文件应该是你生成数据集的时候一并生成的,它是我们成像用的图片而不是标签。具体来说,对于计算机模拟而言,这里放的是.png格式的图片,对应data180k/selfmadeimg/0/00000001.png;对于实验数据而言,这里应该放的是测到的S序列,所以是一个.txt。

425877 commented 6 months ago

你说的没错,这个确实不会创建这个文件00000001.txt。voc2yolo4.py的主要目的是为了实现将label从.xml格式转到简单的一行文字,正如readme里写的那样。实际上.xml是我们在很早期编写数据集生成软件时用的,当时参考了其他一些工作标注label的格式。

后来我们发现这个完全不必,只需要给出框的中心位置、宽度高度以及分类就行,所以训练的时候我们用以表示数据集的文件只是train.txt,里面每一行按照【图片路径】+【标签信息】的方式构成。训练程序只需要读一行,根据路径加载图片,路径后面的标签信息文本就是label,这样就无需使用专门的label文件了。我们保留这个文件只是为了供使用我们的数据集生成软件的读者使用,实际上你完全可以自己做出来一些图片,然后直接把它的路径和label放到同一个txt里,也可以修改utils/dataloader.py适配你自己的数据集格式。

至于你说的data180k/selfmadetxt/0/00000001.txt,这个文件应该是你生成数据集的时候一并生成的,它是我们成像用的图片而不是标签。具体来说,对于计算机模拟而言,这里放的是.png格式的图片,对应data180k/selfmadeimg/0/00000001.png;对于实验数据而言,这里应该放的是测到的S序列,所以是一个.txt。

非常感谢您的解答!!!