基于PYQT5的语义分割素材处理界面工具附源码及ui文件
目录
说明
每次语义分割训练模型前都需要标注图像再进行一些处理,提取训练图像,训练标签等操作,一个一个程序运行有点麻烦,该界面实现我自己训练前需要的一些处理要求,基本在界面上点完就可以训练了,还可以对模型输出的标签进行一个文件夹的平均MIOU,MPA计算
功能概述
功能1: | 视频素材转换成图像 |
---|---|
功能2: | 把标注后json文件和对应的jpg文件从混合的文件夹中提取出来 |
功能3: | Json_to_Dataset功能.从Json文件获得标签文件 |
功能4: | Get_JPG_PNG从上一步的Dataset文件中提取训练图像和训练标签 |
功能5: | 从训练集中随机选取一定比例的图像和标签作为验证集图像和标签 |
功能6: | 由模型输出标签和人工标签计算得到MIOU和MPA |
使用
python库依赖:PYQT5,Numpy,Json等,打开ui文件需要有QT Designer
因为没有打包,所以运行Segmentation_UI.py文件即可打开主界面
FUNC1:视频素材转换成图像
- 用于将视频素材转换成单张图像素材,本程序默认转换为640*480大小的图像,若需其他尺寸需要在函数中修改
FUNC2:把标注后json文件和对应的jpg文件从混合的文件夹中提取出来.
- 当我们在用Labelme等标注素材图像时,往往将标注后的Json文件和这些素材放在同一个文件夹中.
但又不需要对该文件夹中的每张图像都进行标注,因此在对Json和对应的Jpg文件进行Json_to_dataset之前需要
将标注完成的Json文件及对应的Jpg文件提取出来单独存放,只就是FUN2的功能.
FUNC3:Json_to_Dataset功能
- 用于从标注完成的Json文件提取出来标签图像等信息存放到OUTPUT文件夹.
FUNC4:Get_JPG_PNG从上一步的Dataset文件中提取训练图像和训练标签
- 从Jpg文件夹和OUTPUT文件夹提取训练集的图像和标签文件分别存放到指定文件夹.
FUNC5:从训练集中随机选取一定比例的图像和标签作为验证集图像和标签
- 功能如标题所示.
FUNC6:由模型输出标签和人工标签计算得到MIOU和MPA
- 功能如标题所示.
界面效果
操作
视频素材转图像
从上到下选择视频文件,存储图像文件后,点击开始转换,等待转换完成,会提示Finish,即完成。注:我这里统一转换图像为640*480大小,若需其他尺寸,请在程序内更改!
Json/Jpg文件分离
1.分离前状态
2.我这里把提取后的Json和对应的Jpg放在同一文件夹下,也可以不同,点击开始转移完成后会提示Finish。
3.提取后效果
Json_To_Dataset
1.选择Json文件和对应Jpg文件夹即上一步Json/Jpg分离的输出文件夹
2.再选择一个Json_to_dataset输出文件夹,执行,这一步可能需要一些时间,完成后会提示Finish!
3.转换结果
Get_JPG_PNG
从含有JPG图像的文件夹和上一步Json_to_dataset的输出文件夹提取训练图像(jpg格式)和训练标签(png格式)分别存储,注:这里需要输入class_name.txt文件,以便找到各个类,完成后jpg文件夹为训练图像,png文件夹为训练标签为单通道图像,看起来是全黑的
从训练集中随机选取一定比例的图像和标签作为验证集图像和标签
1.从训练集train_image和train_label文件夹选取一定比例的图像和标签给验证集val_image和val_label
2.这个比例由用户自己输入
计算MIOU和MPA
这里选择模型预测得到的单通道标签和手工标注的标签文件夹,得到的结果是文件夹所有图像的平均MIOU,MPA,我这里为了演示直接把手工标注的标签复制到另一个文件夹,所以结果是1,请忽略
最后
这里我尝试用PyInstaller打包总出错,给我整反了,因此没打包,哎~
代码可能命名有点乱,起名字实在不擅长,抱歉~ 不过可以对着QT的UI文件看,能清晰些
代码为了方便参考了一些大佬的,如MIOU计算这部分,感谢
可能代码有Bug,目前可以正常运行,大家发现了劳烦告诉我
后面若有新功能会更新
若是对各位有一点用劳烦给小透明一个赞或star,秋梨膏
源码链接
Gitee链接: https://gitee.com/liangbo1996/segmentation_-tool.
GitHub链接: https://github.com/Rambo-l/segmentation_-tool.