首页 PaddleCV 帖子详情
paddleseg如何进行多模型融合?
收藏
快速回复
PaddleCV 问答语义分割 652 2
paddleseg如何进行多模型融合?
收藏
快速回复
PaddleCV 问答语义分割 652 2

若对结果进行处理,提交结果会异常。

import cv2
import numpy as np
import os
import shutil
os.chdir('/home/aistudio/work/results/')

index = 0

for f in os.listdir("result-segformerb2-65.09/added_prediction"):
    
    if index % 10 == 0:
        print("当前已读取"+str(index)+"个样本,进度为 "+str(100*index/len(os.listdir("result-segformerb2-65.09/added_prediction")))+"%")
    file_name = f.split(".")[0]  #获取单张图片文件名称,不包括后缀
    #载入三个模型的color_map,和map with 原图
    color_map1 = cv2.imread("result-segformerb2-65.09/pseudo_color_prediction/{}.png".format(file_name), cv2.IMREAD_COLOR)
    color_map2 = cv2.imread("result-segformerb2-66.24/pseudo_color_prediction/{}.png".format(file_name), cv2.IMREAD_COLOR)
    color_map3 = cv2.imread("result-segformerb3/pseudo_color_prediction/{}.png".format(file_name), cv2.IMREAD_COLOR)
    add1 = cv2.imread("result-segformerb2-65.09/added_prediction/{}.jpg".format(file_name), cv2.IMREAD_COLOR)
    add2 = cv2.imread("result-segformerb2-66.24/added_prediction/{}.jpg".format(file_name), cv2.IMREAD_COLOR)
    add3 = cv2.imread("result-segformerb3/added_prediction/{}.jpg".format(file_name), cv2.IMREAD_COLOR)
    #逐像素投票,若两个较差的模型结果给出同样的分类,把其赋值给最好模型结果的对应像素上。其它情况默认为最好模型结果。
    for i in range(256):
        for j in range(256):
            if (color_map2[i][j] == color_map3[i][j]).all():
                color_map1[i][j] = color_map2[i][j]
                add1[i][j] = add2[i][j]
    #写入新融合结果
    cv2.imwrite("merge_result/pseudo_color_prediction/{}.png".format(file_name).format("RE"+str(index)), color_map1)
    cv2.imwrite("merge_result/added_prediction/{}.jpg".format(file_name), add1)

    index += 1
0
收藏
回复
全部评论(2)
时间顺序
wl_zzz
#3 回复于2023-02

paddleseg可以自定义backbone和分割网络,让backbone里面分别返回两个网络主干的特征(用列表储存),再在分割网络中分别处理就行

0
回复
wl_zzz
#4 回复于2023-02

实在不行就自己写一个代码,backbone和解码器都可以从paddleseg中复制,只是不用到它这个框架而已

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户