原文:YOLOv8医学图像分割 - 知乎 (zhihu.com)
一、肺部CT图像数据
image
mask
数据集准备
数据集需要进行两个步骤的处理:
步骤1:请按照以下结构组织您的数据集(图像和掩膜):理想情况下,训练、测试和验证(val)的比例为8:1:1。数据集文件夹的安排如下:
步骤2:将 .png(或任何类型)掩膜(标签)转换为labels标签文件夹中的 .txt 文件。以下是将标签(.png、.jpg)转换为 .txt 文件的Python代码。
import os, json, numpy as np
from tqdm import tqdm
from imantics import Mask, Image, Category, Dataset, Polygons
import cv2
import matplotlib.pyplot as plt
import glob
for x in ['train', 'valid', 'test']:
if not os.path.exists('new_data/' + x + '/labels'):
os.makedirs('new_data/' + x + '/labels')
lst_img=glob.glob('new_data/' + x+ '/masks/'+ "*.jpg")
# print(lst_img)
for img in tqdm(lst_img):
# print(img)
array = cv2.imread(img, cv2.IMREAD_GRAYSCALE)
h, w = array.shape
txt_path = img.replace('masks', 'labels').replace('.jpg', '.txt')
# print(txt_path)
# Construct some test data
poly = Mask(array).polygons()
segmentation = poly.segmentation
seg = sorted(segmentation, key=len, reverse=True)
n = 0
for i in seg:
# print(len(seg))
x = i[0::2]
y = i[1::2]
classid = "0"
seg_out