打算进军知乎,搬了自己在csdn上的文章。如有表达不准确或者专业错误,欢迎指正。
u-net真的是个好东西,训练数据少,效果显著。强烈推荐用来做图像分割。
做了一个月的u-net网络,刚开始前两个星期很懵,因为总是跑出去全黑或者全灰的图像。看到网上好像没有类似的教程,于是我总结一下我这一个月的乱撞南墙,希望给大家一些建议。
1.把所有255换成255.0
2.检查数据是否为单通道
3.检查标签是否正确,建议用labelme或者labelimg
4.数据类型是否与源码数据类型一样,比如uint8、int32等
5.检查数据data.py,以及自己的标签mask大小,修改mask以及标签索引值。附程序:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Nov 29 21:47:22 2018
@author: customer
"""
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=np.array(Image.open('/home/customer/Desktop/cellseg/data/membrane/train/label/13_1.png')) #打开图像并转化为数字矩阵
plt.figure("cell")
plt.imshow(img)
plt.axis('off')
plt.show()
print (img.shape)
print (img.dtype )
print (img.size)
print (type(img))
print (img.shape[2])
6.epoch设置过小,训练不够
没有跑出自己数据集的小伙伴可以试一下我上面的方法