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
二 优化2
....
作者:华王
博客:https://www.cnblogs.com/huahuawang/
浙公网安备 33010602011771号