심플리ITK

SimpleITK
심플리ITK
SimpleITK Logo
심플ITK 로고
개발자Insight 소프트웨어 컨소시엄
안정적 해제
2.1.0 / 2021년 7월 30일; 7개월(2021-07-30)
기록 위치C++, 파이톤, R, 자바, C#, 루아, 루비, Tcl
운영 체제크로스 플랫폼
유형이미지 분석 라이브러리
면허증아파치 2.0
웹사이트www.simpleitk.org

SimpleITKInsight Segmentation and Registration Toolkit(ITK)에 대한 간소화된 오픈 소스 인터페이스다.심플ITK 이미지 분석 라이브러리는 C++, 파이썬, R,[1] 자바, C#, 루아, 루비, Tcl 등 다양한 프로그래밍 언어로 제공된다.바이너리 배포는 세 가지 주요 운영 체제(리눅스, MacOSMicrosoft Windows) 모두에 대해 사용할 수 있다.

국립보건원(NIH)에서 개방형 자원으로 개발된 이 연구소의 1차 목표는 소프트웨어 개발 능력과 관계없이 이미지 분석을 포함하는 광범위한 과학자가 ITK 라이브러리에서 이용할 수 있는 알고리즘을 이용할 수 있도록 하는 것이다.[2]그 결과, 심플ITK 인터페이스는 ITK 구성요소의 가장 일반적으로 수정된 알고리즘 설정만 노출한다.또한 라이브러리는 대부분의 이미지 처리 필터에 객체 지향 인터페이스와 절차 인터페이스를 모두 제공한다.후자는 간결한 구문으로 이미지 분석 워크플로우를 가능하게 한다.라이브러리의 두 번째 목표는 단순을 사용하여 재현 가능한 영상 분석 워크플로우를[3] 촉진하는 것이다.ITK 라이브러리는 Python(Jupyter 노트북) 및 R(니트르 패키지) 프로그래밍 언어로 제공되는 재현 가능한 컴퓨팅 워크플로우를 위한 현대적 도구와 함께 사용된다.

소프트웨어 개발은 포크와 당김 모델을 이용한 GitHub를 중심으로 한다.프로젝트는 CMake 도구를 사용하여 구축되며 야간 빌드가 프로젝트의 품질 대시보드에 게시된다.

여러 의료 영상 분석 애플리케이션 및 라이브러리에 단순성 통합사용자 친화적인 인터페이스로 폭넓은 이미지 필터링과 이미지 IO 구성 요소를 제공하는 ITK를 핵심 구성 블록으로 한다.대표적인 예로는 인기 있는 Osirix 애플리케이션용 pyOsirix[4] 스크립팅 툴, 의료 영상으로부터 방사선 기능을 추출하기 위한 pyradiomics python 패키지,[5] 3DSlicer 영상 분석 애플리케이션, SimpleElastix 의료 영상 등록 라이브러리,[6] 의료 영상 촬영을 위한 NiftyNet 딥 러닝 라이브러리 등이 있다.[7]

역사

Simple의 초기 개발ITK는 The Mayo Clinic, Kitware Inc., The University of Iowa와 NLM의 교내 프로그램과의 협업으로 미국 국립 의학 도서관(ARRA)의 지원을 받았다.툴킷의 첫 번째 주요 발매는 2017년 4~5월에 발표되었다.두 번째 주요 개봉작은 2020년 9월에 발표되었다.

2013년과 2019년 사이 단순함ITK 개발은 주로 아이오와 대학교와 모나시 대학교의 협력자들과 함께 국립 의학 도서관의 학내 연구 프로그램의 일환으로 수행되었다.2019년부터 심플ITK 개발은 주로 국립알레르기·감염병연구소 사이버인프라·전산생물학부 산하에 이루어진다.2020년 4월에 툴킷은 로고를 좀 더 현대적인 디자인으로 바꾸었다.

가우스 평활

이미지 읽기, 흐릿함, 쓰기를 보여주는 짧은 파이썬 스크립트.객체 지향 인터페이스 사용:

수입하다 심플리ITK 로서 농땡이 부리다 수입하다 sys  만일 (sys.아그브) < 4:     인쇄하다("usage: SimpleGaussian <input> <sigma> <출력>")     sys.퇴장하다(1)  독서자 = 농땡이 부리다.ImageFileReader() 독서자.SetFileName(sys.아그브[1]) 이미지 = 독서자.실행()  픽셀ID = 이미지.겟픽셀아이디()  가우스적 = 농땡이 부리다.SmootingRecursiveGaussianImageFilter() 가우스적.세트시그마(둥둥 뜨다(sys.아그브[2])) 이미지 = 가우스적.실행(이미지)  캐스터 = 농땡이 부리다.카스트이미지필터() 캐스터.SetOutputPixelType(픽셀ID) 이미지 = 캐스터.실행(이미지)  작가 = 농땡이 부리다.ImageFileWriter() 작가.SetFileName(sys.아그브[3]) 작가.실행(이미지) 

절차 인터페이스를 사용한 보다 간결한 버전:

수입하다 심플리ITK 로서 농땡이 부리다 수입하다 sys  만일 (sys.아그브) < 4:     인쇄하다("usage: SimpleGaussian <input> <sigma> <출력>")     sys.퇴장하다(1)  이미지 = 농땡이 부리다.ReadImage(sys.아그브[1]) 픽셀ID = 이미지.겟픽셀아이디() 이미지 = 농땡이 부리다.캐스트(농땡이 부리다.스무딩레커시브가우스(이미지, 둥둥 뜨다(sys.아그브[2])), 픽셀ID) 농땡이 부리다.WriteImage(이미지, sys.아그브[3]) 

다형성 강체 등록

두 개의 3D 이미지의 엄격한 등록을 위해 라이브러리의 등록 프레임워크를 사용하는 것을 보여주는 짧은 R 스크립트:

도서관(심플리ITK)  아그 = 커맨드아그스( trailingOnly=진실의 ) 만일( 길이( 아그 ) < 2 ) {  고양이를( "사용 : 등록 <고정_이미지> <이동_이미지> <출력_변환>\n" )  그만두다( 절약하다="아니오", 지위=1 ) } 고정_이미지 <- ReadImage( 아그[1], "sitkFloat32" ) moving_image <- ReadImage( 아그[2], "sitkFloat32" )  initial_properties <- 중심트랜스폼이니셜라이저( 고정_이미지,                                                    moving_image,                                                    오일러3DT랜스폼(),                                                    "지오메트리" ) 등기하다 <- ImageRegistrationMethod() 등기하다$SetMetricAsMattesMutualInformation( HistogramBins 수=50 ) 등기하다$SetMetricSamplingStrategy( "랜덤" ) 등기하다$SetMetricSamplingPercentage( 0.01 ) 등기하다$세트인터폴레이터( "sitkLinear" ) 등기하다$OptimizerAsGradientDescent 설정( 학습률=1.0, 반복 횟수=100 ) 등기하다$OptimizerScalesFromPhysicalShift 설정() 등기하다$SetInitialTransform( initial_properties, 인플레이스=거짓의 ) final_properties <- 등기하다$실행( 고정_이미지, moving_image )  WriteTransform( final_properties, "final_final.tfm" ) 

참조

  1. ^ R. 비어, B. C. 로위캄프, Z.Yaniv, "간단한 R에서의 이미지 세분화, 등록 및 특성화ITK”, J Stat Softw, 86(8), 2018, doi:10.18637/jss.v086.i08.
  2. ^ B. C. 로웨캄프, D.T. 첸, L. 이바녜스, D.블렉제크, "단순함의 디자인"ITK", 프런트.신경정보, 2013년 7시 45분, doi:10.3389/fninf.2013.00045.
  3. ^ Z. 야니브, B. C. 로웨캄프, H.J. 존슨, R. 비어, "단순하다.ITK 이미지 분석 노트북: 교육 및 재현 가능한 연구를 위한 협업 환경", J 디지트 이미징, 31(3):290-303, 2018, doi: 10.1007/s10278-017-0037-8.
  4. ^ M. D. Blackledge, D. J.Collins, D-M Koh, M. O. Leach, "Rapid development of image analysis research tools: Bridging the gap between researcher and clinician with pyOsiriX", Comput Biol Med., 69:203-212, 2016, doi: 10.1016/j.compbiomed.2015.12.002
  5. ^ J. J. M. 판 그리투이센, A.페도로프, C. 파마르, A.호시, 엔.Aucoin, V. Narayan, R. G. H. Beets-Tan, J. C.Fillon-Robin, S. Pieper, H. J. W. L. Aerts, "방사선 표현형을 해독하는 컴퓨터 방사선학 시스템", Cancer Research, 77(21): e104–e107, 2017, doi: 10.1158/0008-5472.CAN-17-0339
  6. ^ K. 마스탈, F.Berendsen, M. Staring, S. Klein, "SimpleElastix: A User-Friendly, Multi-lingual Library for Medical Image Registration", IEEE Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), 574-582, 2016, doi:10.1109/CVPRW.2016.78
  7. ^ E. 깁슨, W. 리, C. 수드레, L. 피돈, D. I. 샤키르, G. 왕, Z.이튼 로센, R. 그레이, T. 도엘, Y.Hu, T. Whyntie, P. Nachev, M. Modat, D. C. Baratt, S.오셀린, M. J. 카도소, T. 베르카우테렌, "NiftyNet: 의료 영상 촬영을 위한 심층 학습 플랫폼", Compute Methods Programs Biomed, 158:113-122, 2018, doi: 10.1016/j.cmpb.2018.01.025

외부 링크