首页 > 分享 > 猫狗X光和超声医疗影像数据集(共16w例的猫狗x光和超声医疗影像)AI模型训练id:02医疗图片数据集,诊断伴侣动物疾病成像数据用于开发诊断肌肉骨骼疾病的人工智能技术的数据jpg含标签标签json

猫狗X光和超声医疗影像数据集(共16w例的猫狗x光和超声医疗影像)AI模型训练id:02医疗图片数据集,诊断伴侣动物疾病成像数据用于开发诊断肌肉骨骼疾病的人工智能技术的数据jpg含标签标签json

a7caf4a21775478e849dae827df60a6f.png

猫狗X光和超声医疗影像数据集(共16w例的猫狗x光和超声医疗影像)AI模型训练id:02医疗图片数据集,诊断伴侣动物疾病成像数据用于开发诊断肌肉骨骼疾病的人工智能技术的数据jpg含标签标签json

a97afad251934429963c64cb530ea609.png

4619555af2364cfdbfcff990e5fe551e.png 

猫狗X光和超声医疗影像数据集 (Cat and Dog X-ray and Ultrasound Medical Imaging Dataset)

数据集描述

本数据集旨在支持开发用于诊断伴侣动物(主要是猫和狗)肌肉骨骼系统疾病的AI技术。数据集包含了大量高质量的X射线和超声波图像,这些图像是在宠物疾病检查过程中收集的。通过使用该数据集训练的AI模型可以帮助兽医更准确地诊断和治疗肌肉骨骼系统疾病,提高宠物的健康水平和生活质量。

248d1ce018a942a996d401fb9b6d3fa7.png

数据量

总样本数: 160,000例图像类型: X射线图像超声波图像

检测目标

肌肉骨骼系统疾病: 骨折关节炎肌肉损伤韧带损伤其他相关疾病

数据格式

图像格式: DICOM、JPEG或PNG标注格式: 图像级标签:每张图像附有对应的诊断结果(例如,正常/异常)像素级标注(可选):对于部分图像,提供了像素级别的分割标注,用于更精确的病变区域定位

目录结构

pet_medical_imaging_dataset/

├── images/

│ ├── xray/

│ │ ├── train/

│ │ │ ├── img1.dcm

│ │ │ ├── img2.jpg

│ │ │ └── ...

│ │ ├── val/

│ │ │ ├── img10001.dcm

│ │ │ ├── img10002.jpg

│ │ │ └── ...

│ ├── ultrasound/

│ │ ├── train/

│ │ │ ├── img1.png

│ │ │ ├── img2.dcm

│ │ │ └── ...

│ │ ├── val/

│ │ │ ├── img10001.png

│ │ │ ├── img10002.dcm

│ │ │ └── ...

├── labels/

│ ├── xray/

│ │ ├── train/

│ │ │ ├── img1.txt

│ │ │ ├── img2.txt

│ │ │ └── ...

│ │ ├── val/

│ │ │ ├── img10001.txt

│ │ │ ├── img10002.txt

│ │ │ └── ...

│ ├── ultrasound/

│ │ ├── train/

│ │ │ ├── img1.txt

│ │ │ ├── img2.txt

│ │ │ └── ...

│ │ ├── val/

│ │ │ ├── img10001.txt

│ │ │ ├── img10002.txt

│ │ │ └── ...

└── data.yaml

data.yaml 配置文件

train:

- ./pet_medical_imaging_dataset/images/xray/train

- ./pet_medical_imaging_dataset/images/ultrasound/train

val:

- ./pet_medical_imaging_dataset/images/xray/val

- ./pet_medical_imaging_dataset/images/ultrasound/val

nc: 2 # 类别数量

names: ['normal', 'abnormal'] # 类别名称

使用方法

1. 安装依赖库

确保安装了必要的Python库,如pydicom(用于处理DICOM文件)、torch(PyTorch)、albumentations(数据增强)、efficientnet_pytorch(预训练模型)和其他相关依赖:

pip install pydicom torch albumentations efficientnet-pytorch

2. 训练脚本

以下是一个简单的训练脚本示例,展示如何使用EfficientNet进行训练。

EfficientNet 训练脚本

import os

import torch

from torch.utils.data import DataLoader, Dataset

from torchvision import transforms

from PIL import Image

from efficientnet_pytorch import EfficientNet

from sklearn.model_selection import train_test_split

# 数据集类

class PetMedicalDataset(Dataset):

def __init__(self, image_paths, labels, transform=None):

self.image_paths = image_paths

self.labels = labels

self.transform = transform

def __len__(self):

return len(self.image_paths)

def __getitem__(self, idx):

image_path = self.image_paths[idx]

label = self.labels[idx]

# 读取图像

if image_path.endswith('.dcm'):

import pydicom

ds = pydicom.dcmread(image_path)

image = ds.pixel_array

image = Image.fromarray(image).convert('RGB')

else:

image = Image.open(image_path).convert('RGB')

if self.transform:

image = self.transform(image)

return image, label

# 数据预处理

transform = transforms.Compose([

transforms.Resize((224, 224)),

transforms.ToTensor(),

transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])

])

# 获取图像路径和标签

image_paths = []

labels = []

for root, dirs, files in os.walk('./pet_medical_imaging_dataset/images'):

for file in files:

if file.endswith(('.dcm', '.jpg', '.png')):

image_paths.append(os.path.join(root, file))

if 'normal' in root:

labels.append(0)

else:

labels.append(1)

# 划分训练集和验证集

train_image_paths, val_image_paths, train_labels, val_labels = train_test_split(image_paths, labels, test_size=0.2, random_state=42)

# 创建数据加载器

train_dataset = PetMedicalDataset(train_image_paths, train_labels, transform=transform)

val_dataset = PetMedicalDataset(val_image_paths, val_labels, transform=transform)

train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True, num_workers=4)

val_loader = DataLoader(val_dataset, batch_size=32, shuffle=False, num_workers=4)

# 加载预训练模型

model = EfficientNet.from_pretrained('efficientnet-b0', num_classes=2)

# 设置设备

device = 'cuda' if torch.cuda.is_available() else 'cpu'

model.to(device)

# 定义损失函数和优化器

criterion = torch.nn.CrossEntropyLoss()

optimizer = torch.optim.Adam(model.parameters(), lr=0.001)

# 训练循环

num_epochs = 10

for epoch in range(num_epochs):

model.train()

running_loss = 0.0

for images, labels in train_loader:

images, labels = images.to(device), labels.to(device)

optimizer.zero_grad()

outputs = model(images)

loss = criterion(outputs, labels)

loss.backward()

optimizer.step()

running_loss += loss.item()

print(f'Epoch {epoch+1}/{num_epochs}, Loss: {running_loss/len(train_loader)}')

# 验证

model.eval()

correct = 0

total = 0

with torch.no_grad():

for images, labels in val_loader:

images, labels = images.to(device), labels.to(device)

outputs = model(images)

_, predicted = torch.max(outputs.data, 1)

total += labels.size(0)

correct += (predicted == labels).sum().item()

print(f'Validation Accuracy: {100 * correct / total}%')

# 保存模型

torch.save(model.state_dict(), 'pet_medical_model.pth')

推理代码

以下是一个简单的推理代码示例,展示如何使用训练好的EfficientNet模型进行推理。

EfficientNet 推理代码

import torch

from torchvision import transforms

from PIL import Image

from efficientnet_pytorch import EfficientNet

# 数据预处理

transform = transforms.Compose([

transforms.Resize((224, 224)),

transforms.ToTensor(),

transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])

])

# 加载训练好的模型

model = EfficientNet.from_pretrained('efficientnet-b0', num_classes=2)

model.load_state_dict(torch.load('pet_medical_model.pth'))

model.eval()

def predict(image_path):

# 读取图像

if image_path.endswith('.dcm'):

import pydicom

ds = pydicom.dcmread(image_path)

image = ds.pixel_array

image = Image.fromarray(image).convert('RGB')

else:

image = Image.open(image_path).convert('RGB')

image = transform(image).unsqueeze(0) # 添加批次维度

with torch.no_grad():

output = model(image)

_, predicted = torch.max(output.data, 1)

return 'normal' if predicted.item() == 0 else 'abnormal'

# 示例用法

image_path = 'path/to/your/image.dcm'

result = predict(image_path)

print(f'The image is classified as: {result}')

图形用户界面 (GUI) 设计

如果您希望提供一个更友好的用户界面,可以使用tkinter来创建一个简单的GUI。

1. 安装依赖库

确保安装了tkinter库,用于创建图形界面:

pip install tk

2. GUI代码示例

以下是一个简单的Tkinter GUI示例,展示如何创建一个用户友好的图形界面,支持加载图像并进行目标检测

import tkinter as tk

from tkinter import filedialog, messagebox

from PIL import Image, ImageTk

import torch

from torchvision import transforms

from efficientnet_pytorch import EfficientNet

# 加载训练好的模型

model = EfficientNet.from_pretrained('efficientnet-b0', num_classes=2)

model.load_state_dict(torch.load('pet_medical_model.pth'))

model.eval()

# 数据预处理

transform = transforms.Compose([

transforms.Resize((224, 224)),

transforms.ToTensor(),

transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])

])

def load_image():

global image_path

image_path = filedialog.askopenfilename(filetypes=[("Image files", "*.dcm;*.jpg;*.jpeg;*.png")])

if image_path:

image = Image.open(image_path).convert('RGB')

image = image.resize((640, 480))

photo = ImageTk.PhotoImage(image)

image_label.config(image=photo)

image_label.image = photo

def predict_disease():

if image_path:

# 读取图像

if image_path.endswith('.dcm'):

import pydicom

ds = pydicom.dcmread(image_path)

image = ds.pixel_array

image = Image.fromarray(image).convert('RGB')

else:

image = Image.open(image_path).convert('RGB')

image = transform(image).unsqueeze(0) # 添加批次维度

with torch.no_grad():

output = model(image)

_, predicted = torch.max(output.data, 1)

result = 'normal' if predicted.item() == 0 else 'abnormal'

messagebox.showinfo("Prediction Result", f"The image is classified as: {result}")

# 创建主窗口

root = tk.Tk()

root.title("Pet Medical Imaging Disease Detection")

# 自定义主题风格

root.tk_setPalette(background='#F0F0F0', foreground='black', activeBackground='blue', activeForeground="white")

# 图像显示区域

image_label = tk.Label(root, bg='#F0F0F0')

image_label.pack(pady=20)

# 按钮

load_button = tk.Button(root, text="Load Image", command=load_image, bg='blue', fg='white')

load_button.pack(side=tk.LEFT, padx=10)

predict_button = tk.Button(root, text="Predict Disease", command=predict_disease, bg='blue', fg='white')

predict_button.pack(side=tk.RIGHT, padx=10)

# 运行主循环

root.mainloop()

总结

这个猫狗X光和超声医疗影像数据集包含了160,000例高质量的医学图像,涵盖了X射线和超声波两种成像方式。数据集主要用于开发诊断肌肉骨骼系统疾病的人工智能技术。通过使用EfficientNet等深度学习模型,您可以轻松地进行模型训练和推理,并且可以通过图形用户界面方便地查看检测结果。

相关知识

猫狗皮肤病医疗数据集《75w例医疗数据的猫狗皮肤病医疗数据集》AI模型训练di:03– 超过 10,000 只宠物– 7 种宠物疾病和 4 种猫皮肤病的图像–超过 500,000 张宠物试用3000张
宠物医疗人工智能应用
【综述】骨骼肌肉病变影像组学研究进展
AI影像判读赋能行业创新,谛宝诚助力宠物医疗谱写新篇章
中国动物医疗人工智能首项研究成果发表,新瑞鹏聚焦AI提升宠物医疗效率
远程医学影像诊断的典型行业案例
综述:远程医学影像诊断的典型行业案例
动物影像学:X光、CT、MRI等医疗器械设备在宠物医疗中的应用
犬猫超声高级班(含猫超声)课程正式推出丨声光影
宠物医疗行业技术创新研究

网址: 猫狗X光和超声医疗影像数据集(共16w例的猫狗x光和超声医疗影像)AI模型训练id:02医疗图片数据集,诊断伴侣动物疾病成像数据用于开发诊断肌肉骨骼疾病的人工智能技术的数据jpg含标签标签json https://m.mcbbbk.com/newsview450233.html

所属分类:萌宠日常
上一篇: 骨骼
下一篇: 进展:健康与疾病中的骨骼肌研究