kaggle aptos2019 的图像预处理

kaggle aptos2019 的图像预处理

APTOS全称Asia Pacific Tele-Ophthalmology Society (APTOS) Symposium。训练和测试样本图片由印度Aravind Eye Hospital为了筛查农村人口的病情所得。

aptos2019 竞赛的目的是分析糖尿病造成的视网膜病变(diabetic retinopathy)的严重程度,正常为0,最差为4,疾病严重的可致盲。所以此项研究旨在利用人工智能方法尽早诊断糖尿视网膜病变,避免病情恶化。
kaggle链接如下:
https://www.kaggle.com/c/aptos2019-blindness-detection/overview

眼底照片如下:
眼底照片

图像预处理

由于图像实际拍摄的时间、地点、设备、操作人员不同,所以尺寸,颜色、亮度也各不相同。正所谓垃圾进,垃圾出。直接对原图进行训练增加训练的难度,不容易找到病变的特征。

一般的计算机视觉处理都会进行图像预处理。在aptos2019竞赛的kaggle社区notekooks中,看到最多的一种图像增强方法是Ben Graham提出的。他是aptos2015年的糖尿病视网膜病变竞赛的冠军,由于2019年的竞赛图像也是相似的,所以很多人都延用他的预处理方法。

方法分为以下3步

  1. rescale the images to have the same radius (300 pixels or 500 pixels),
  2. subtracted the local average color; the local average gets mapped to 50% gray,
  3. clipped the images to 90% size to remove the “boundary effects”.

python 代码如下:

import cv2 , glob , numpy
# 输出图像的眼球半径都为1*scale个像素
def scaleRadius(img,scale):
    x = img[int(img.shape[0]/2),:
  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
高光谱图像分类需要对数据进行预处理、特征提取和模型训练等多个步骤,下面是一份使用 TensorFlow 和 Keras 实现高光谱图像分类的代码示例: 首先是数据预处理部分,这里使用了 Spectral Python(SPy)库对高光谱图像进行处理: ```python import numpy as np import pandas as pd import spectral.io as io from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder # 读取数据 data_path = 'data.hdr' data, metadata = io.load_cube(data_path) # 获取数据形状和波段数 n_samples, n_rows, n_cols, n_bands = data.shape # 将数据变形为 2D 矩阵 X = np.reshape(data, (n_samples * n_rows * n_cols, n_bands)) # 读取标签并进行编码 labels = pd.read_csv('labels.csv') encoder = LabelEncoder() y = encoder.fit_transform(labels['class']) # 划分训练集和验证集 X_train, X_valid, y_train, y_valid = train_test_split(X, y, test_size=0.2, random_state=42) ``` 接下来是特征提取部分,这里使用了 PCA 算法对高光谱图像进行降维: ```python from sklearn.decomposition import PCA # 定义 PCA 模型并拟合数据 pca = PCA(n_components=50) X_train_pca = pca.fit_transform(X_train) X_valid_pca = pca.transform(X_valid) ``` 最后是模型部分,这里使用了随机森林模型: ```python from sklearn.ensemble import RandomForestClassifier # 定义模型 rf = RandomForestClassifier(n_estimators=100, random_state=42) # 训练模型 rf.fit(X_train_pca, y_train) # 在验证集上进行预测并输出准确率 acc = rf.score(X_valid_pca, y_valid) print('Accuracy:', acc) ``` 以上代码仅供参考,实际应用中可能需要根据具体情况进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值