这段时间写毕业论文,跑深度学习模型租服务器不得已用了Ubuntu系统,想当初我对Ubuntu系统可谓是闻风丧胆,坚决不碰……而现在,真香警告,都不想要windows了~
1.Ubuntu系统下将图片名包括路径写入到txt文件中
目标是要达到类似于test.txt这种效果
因为后面训练要单独测试不同光照强度和遮挡情况下的识别效果,总不能在测试集里把同一种类型的挨个复制粘贴出来吧,几千张图估计要到猴年马月。所以需要把这些图片分好类放入各自的文件夹,然后打开命令终端terminal,输入命令:
ls -R /root/data/bright/*.jpg > bright_test.txt
回车,bright_test.txt文件即可保存,默认是保存在桌面,也可以cd /root/data/yolov3_v4_train/data/images
进入你想要的文件夹,这样文件就会保存在该文件夹下。其中 /root/data/bright
表示该类图片所在的路径,bright_test.txt 是最后保存的自定义的文件名。最后的结果图如下:
2.Ubuntu系统下将文件中指定的路径提取出来并输出为文本
上面一通骚操作之后却发现不对劲,我这样操作把训练集里面的图片也搞进来了(因为当初是把所有图片送进去了,分了训练集,验证集和测试集),这下还只能从测试集 test.txt 文件中挑出不同光照和遮挡的,然后就裂开了,还好Ubuntu是真的太香了,一句命令行就可以搞定,www。
(1)首先输入以下命令进入 test.txt 所在的文件夹:
cd /root/data/yolov3_v4_train/data
(2)然后输入以下命令,回车即可:
cat test.txt|grep "_bright.jpg" > bright_test.txt
这里 test.txt 表示源文件,"_bright.jpg" 引号里面的内容表示要提取的关键字(能和其他路径分开的),bright_test.txt和上面一样表示最后保存的自定义的文件名。
真的很神奇有木有,真香警告!!!
3.Windows下用cmd命令将文件中指定的路径提取出来并输出为文本
反正我真不信邪,凭啥Ubuntu这么优雅,Windows是不配吗?然后一通百度,居然发现还真可以!!!不过生成的文件格式有点问题,后面细说。
(1)跟上述第二种方法一样,也是要进入 test.txt 所在的文件夹:
cd yolov3_v4_train\data
(2)然后输入以下命令,回车即可:
findstr "_bright.jpg" test.txt > bright_test.txt
这里 “_bright.jpg” 引号里面的内容表示要提取的关键字,test.txt 表示源文件,bright_test.txt 表示要存储的目标文件。
小贴士
windows这样用命令行转换出来的txt文件格式上有问题,扔进去测试就报错,报错如下:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence
百度之后发现是编码格式有问题,我们将保存好的 bright_test.txt 用记事本打开,选择另存为,点击下方的格式选择UTF-8,直接保存再运行即可通过。