فایل های DICOM را برای تصویربرداری پزشکی رمزگشایی کنید

مشاهده در TensorFlow.org در Google Colab اجرا شود مشاهده منبع در GitHub دانلود دفترچه یادداشت

بررسی اجمالی

این آموزش نشان می دهد که چگونه به استفاده tfio.image.decode_dicom_image در TensorFlow IO برای رمزگشایی فایل های با DICOM TensorFlow.

راه اندازی و استفاده

تصویر DICOM را دانلود کنید

تصویر DICOM استفاده در این آموزش از است NIH قفسه سینه مجموعه داده اشعه ایکس .

NIH به قفسه سینه مجموعه داده اشعه ایکس شامل 100.000 تصاویر د-شناسایی از رادیوگرافی قفسه سینه در فرمت PNG، ارائه شده توسط موسسه ملی بهداشت مرکز بالینی و می تواند از طریق دانلود از این لینک .

گوگل ابر همچنین یک نسخه DICOM از تصاویر موجود در فراهم می کند ابر ذخیره سازی .

در این آموزش، شما یک فایل نمونه از مجموعه داده از دانلود مخزن گیتهاب

  • Xiaosong Wang، Yifan Peng، Le Lu، Zhiyong Lu، محمدهادی باقری، رونالد سامرز، ChestX-ray8: پایگاه داده اشعه ایکس قفسه سینه در مقیاس بیمارستان و معیارهای طبقه‌بندی ضعیف نظارت شده و محلی‌سازی بیماری‌های شایع قفسه سینه، IEppEE CVPR, IEppEE CVPR, -3471، 2017
curl -OL https://github.com/tensorflow/io/raw/master/docs/tutorials/dicom/dicom_00000001_000.dcm
ls -l dicom_00000001_000.dcm
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   164    0   164    0     0    600      0 --:--:-- --:--:-- --:--:--   598
100 1024k  100 1024k    0     0  1915k      0 --:--:-- --:--:-- --:--:-- 1915k
-rw-rw-r-- 1 kbuilder kokoro 1049332 Nov 22 03:47 dicom_00000001_000.dcm

بسته های مورد نیاز را نصب کنید و زمان اجرا را مجددا راه اندازی کنید

try:
  # Use the Colab's preinstalled TensorFlow 2.x
  %tensorflow_version 2.x 
except:
  pass
pip install tensorflow-io

رمزگشایی تصویر DICOM

import matplotlib.pyplot as plt
import numpy as np

import tensorflow as tf
import tensorflow_io as tfio

image_bytes = tf.io.read_file('dicom_00000001_000.dcm')

image = tfio.image.decode_dicom_image(image_bytes, dtype=tf.uint16)

skipped = tfio.image.decode_dicom_image(image_bytes, on_error='skip', dtype=tf.uint8)

lossy_image = tfio.image.decode_dicom_image(image_bytes, scale='auto', on_error='lossy', dtype=tf.uint8)


fig, axes = plt.subplots(1,2, figsize=(10,10))
axes[0].imshow(np.squeeze(image.numpy()), cmap='gray')
axes[0].set_title('image')
axes[1].imshow(np.squeeze(lossy_image.numpy()), cmap='gray')
axes[1].set_title('lossy image');
2021-11-22 03:47:53.016507: E tensorflow/stream_executor/cuda/cuda_driver.cc:271] failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected

png

رمزگشایی فراداده DICOM و کار با برچسب ها

decode_dicom_data رمز گشایی اطلاعات برچسب. dicom_tags حاوی اطلاعات مفید سن و جنس بیمار، به طوری که شما می توانید DICOM برچسب ها مانند استفاده از dicom_tags.PatientsAge و dicom_tags.PatientsSex . tensorflow_io همان نماد برچسب را از بسته pydicom dicom قرض می گیرد.

tag_id = tfio.image.dicom_tags.PatientsAge
tag_value = tfio.image.decode_dicom_data(image_bytes,tag_id)
print(tag_value)
tf.Tensor(b'58', shape=(), dtype=string)
print(f"PatientsAge : {tag_value.numpy().decode('UTF-8')}")
PatientsAge : 58
tag_id = tfio.image.dicom_tags.PatientsSex
tag_value = tfio.image.decode_dicom_data(image_bytes,tag_id)
print(f"PatientsSex : {tag_value.numpy().decode('UTF-8')}")
PatientsSex : M