3

我使用 slic 聚类算法来创建生物医学图像的超像素(生物医学成像专家的整个幻灯片图像)。我想为超像素提取不同的特征、纹理和空间以创建特征表示,然后将其输入分类器(SVM、RF)以尝试对每个超像素进行分类,因为我有每个超像素的标签。最终目标是对每个超像素进行分类,然后使用它来构建分割。

对于每个超像素,我根据所有超像素的平均高度和宽度在所有超像素周围绘制一个大小一致的边界框,因为大小的分布在平均值附近相当高(有些会切掉小部分,而另一些会包括一些填充。我有几个问题

  1. 关于每个超像素的 gabor 滤波器,我得到一个 gabor 特征,其中每个像素都有一个值,然后我取这些的平均值以获得超像素 gabor 特征值。这是正确的方法吗?下面的代码

    def getGabor(img, ksize, sigma, theta, lamda, gamma, l, ktype):
    
        kernel=cv2.getGaborKernel((ksize, ksize), sigma, theta, lamda, gamma, l, ktype=ktype)
        fimg = cv2.filter2D(img, cv2.CV_8UC3, kernel)
        filteredImage=fimg.reshape(-1)
    
        return filteredImage
    
    def getGabors(img):
    
        ksize=5
        thetas = list(map(lambda x: x*0.25*np.pi, [1, 2]))
        gabors=[]
    
       for theta in thetas:
          for sigma in (1,3):
             for lamda in np.arange(0, np.pi, np.pi*0.25):
                for gamma in (0.05, 0.5):
                   gabor = getGabor(img.reshape(-1), ksize, sigma, theta, lamda, gamma, 0, cv2.CV_32F) . 
                   gabors.append(np.mean(gabor))
    
       return gabors  
    
  2. 这将如何与 HOG 一起使用?我会采用相同的方法来平均特征向量吗?如何防止 HOG​​ 描述符过大?

  3. 将超像素输入 CNN 以学习特征表示是否明智?

  4. 如果有人在对其他有用的图像特征描述符提出任何建议之前使用过这种数据,这将是一种数据类型的好方法?

任何有关构建功能或要查看超像素的功能类型的建议将不胜感激!

谢谢

4

1 回答 1

0

我不确定医学图像分割的最新技术是什么,但在所有深度学习模型出现之前,超像素、HOG 和 gabor 听起来确实像是 2012 年之前的特征工程方法。结果必然在很大程度上取决于超像素分割图像的方式(可能不太健壮)。

为什么不使用最近的图像分割 CNN,例如 DeepLab(https://github.com/tensorflow/models/tree/master/research/deeplab)?只需向它提供分割的训练示例(诚然,其中有很多),然后看看模型本身是否学习了正确的特征。它会的机会非常高。

于 2020-01-17T10:17:53.523 回答