在yolo训练前的准备工作中,需要编写yaml配置文件中的信息。对于多分类问题,需要将其类别与索引一一对应。实践中,类别与索引的关系可能写在字典数据格式内,如何将其转换为配置文件内的信息,这是一个看起来简单但如果纯手工操作十分复杂的任务,因此要借助pycharm中强大的替换功能工具解决。
下面以具体的例子中出现的问题为主题,介绍替换功能的使用方法。
一、替换特定内容
在本文例子中,可以看到类别信息是保存在json格式的字典信息内的,直接打开文件复制到yaml文件内时,是一串,且以逗号“,”分隔,而我们希望得到的样式是分行,因此可以考虑将逗号都替换为分行符“\n”。
初始的数据如下图所示。
按住 Ctrl+R 打开替换窗口,在搜索栏输入“,”,在替换栏输入‘\n’,点击replace,窗口右侧上下箭头可以选择单个当前匹配项,假设当前没有别的干扰项,直接replace all。
操作后,得到想要的分行效果,并删除了不要的“,”逗号。
二、交换符号前后内容
进一步来讲,yolo标签与索引的位置关系是,数字索引在前,标签文字内容在后,因此需要交换冒号“ : ”前后内容。
此时需要用到正则表达式的方式。
(.+): ————匹配冒号:前的任意文本
:(.+) ————匹配冒号:后的任意文本$1,$2 ————$+数字用于替代匹配位置搜索栏 (.+):(.+)
替换栏 $2 :$1
注意此时上方有干扰项,箭头定位到需要操作的地方,一个个实现效果后,缩进得到最终想要的类别配置文件样式。
大功告成!