如何使用PaddleSeg 2.0快速测量心胸比?
Posted 飞桨PaddlePaddle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用PaddleSeg 2.0快速测量心胸比?相关的知识,希望对你有一定的参考价值。
项目背景
https://aistudio.baidu.com/aistudio/projectdetail/1438719
https://github.com/paddlepaddle/paddleseg
网络结构介绍
from paddleseg.models import UNet
pretrained = '/home/aistudio/work/model.pdparams'
model = UNet(num_classes=3,pretrained=pretrained)
数据处理和增强
import paddleseg.transforms as T
train_transforms = [
T.RandomHorizontalFlip(),
T.RandomDistort(),
T.RandomRotation(max_rotation = 10,im_padding_value =(0,0,0),label_padding_value = 0),
T.RandomBlur(),
T.RandomScaleAspect(min_scale = 0.8, aspect_ratio = 0.5),
T.Resize(target_size=(512, 512)),
T.Normalize()
]
from paddleseg.datasets import Dataset
train_dataset = Dataset(transforms = train_transforms,
dataset_root = dataset_root,
num_classes = num_classes,
train_path = train_path,
mode = 'train')
from paddleseg.models.losses import CrossEntropyLoss,DiceLoss
losses = {}
losses['types'] = [CrossEntropyLoss(),DiceLoss()]
losses['coef'] = [1,1]
模型训练
train(
model=model,
train_dataset=train_dataset,
val_dataset=val_dataset,
optimizer=optimizer,
save_dir='output',
iters=10000,
batch_size=4,
save_interval=200,
log_iters=10,
num_workers=0,
losses=losses,
use_vdl=True)
推理预测并计算心胸比
def predict(model, model_path, im_path):
#预测
para_state_dict = paddle.load(model_path)
model.set_dict(para_state_dict)
model.eval()
im = cv2.imread(im_path)
im, _ = transforms(im)
im = im[np.newaxis, ...]
im = paddle.to_tensor(im)
output = model(im)[0]
output = output.numpy()
output = np.argmax(output,axis=1)
output = output.transpose(1,2,0)
return output
#画出肺部的最大横径 和心脏的横径
cv2.line(image,left_heart,(left_heart[0] + int(WidthHeart/2),left_heart[1]),(0,255,0),2)
cv2.line(image,right_heart,(right_heart[0] - int(WidthHeart/2),right_heart[1]),(0,255,0),2)
cv2.line(image,left_chest,(left_chest[0] + WidthChest,left_chest[1]),(0,0,255),2)
总结
·飞桨PaddleSeg框架项目地址·
飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个开源开放、技术领先、功能完备的产业级深度学习平台,包括飞桨开源平台和飞桨企业版。飞桨开源平台包含核心框架、基础模型库、端到端开发套件与工具组件,持续开源核心能力,为产业、学术、科研创新提供基础底座。飞桨企业版基于飞桨开源平台,针对企业级需求增强了相应特性,包含零门槛AI开发平台EasyDL和全功能AI开发平台BML。EasyDL主要面向中小企业,提供零门槛、预置丰富网络和模型、便捷高效的开发平台;BML是为大型企业提供的功能全面、可灵活定制和被深度集成的开发平台。
END
以上是关于如何使用PaddleSeg 2.0快速测量心胸比?的主要内容,如果未能解决你的问题,请参考以下文章
如何在滚动窗口上“检查”(警告)InfluxDB 2.0 中的聚合?