9 模型调试优化

模型调试优化

 

一 优化实战1

文章参考:https://zhuanlan.zhihu.com/p/518113377

1 分辨率

320*320(pretrain) ->640x640->800x800 (960和1024来进行训练,bs太小了,无显著提升,可以试一下)

说明:load 320的pretrain 进行训练,之后选用上一个best_weights做下一次训练模型的pretrain

 

2 数据增强

数据增强采用基本都是常规的,随机crop,随机翻转,随机旋转,随机blur

 

3 数据

  3.1 数据预处理

  3.2 数据集划分(9:1-8:1等)

 

4 边缘由优化(没尝试过)

Sigmoid训练后,可以简单的卡个阈值来进行边缘平滑处理,可以二值也可以过渡
output[output >= thre] = 1 or None
output[output < thre] = 0

粗看边缘还算可以,但是细看就发现锯齿很明显了,还需要进一步处理,这里简单做了一个算法,缩放现有的mask(这里缩放可以用contour,也可以用腐蚀,也可以用shapely),把原始图像做blur,把外圈的blur贴回来
def edgePostProcess(mask, image):
    """Edge post Process
    Args:
        mask: a ndarray map, value is [0,255], shape is (h, w, 3)
        image: a ndarray map, value is 0-255, shape  is(h, w, 3)
    Returns:
        outputs: edge blur image
    """
    mask[mask==255] = 1
    mask = getShrink(mask)

    image = image * mask 
    image[image==0] = 255
    blur_image = cv2.GaussianBlur(image, (5, 5), 0)
    new_mask = np.zeros(image.shape, np.uint8)
    contours, hierachy = cv2.findContours(
        mask[:,:,0],
        cv2.RETR_EXTERNAL,
        cv2.CHAIN_APPROX_SIMPLE
    )
    cv2.drawContours(new_mask, contours, -1, (255, 255, 255), 5)
    output = np.where(new_mask==np.array([255, 255, 255]), blur_image, image)
    return output 
View Code

 

 

二 优化2

....

 

 

 

 

 

posted @ 2022-06-01 11:24  风hua  阅读(26)  评论(0)    收藏  举报