Кіріспе
Ашық кодты, платформааралық құрал жиынтығы NOTOC
NOTOC
ITK – бейне сегментациясы және бейнелерді тіркеу бағдарламаларын әзірлеу үшін кеңінен қолданылатын, платформааралық, ашық кодты қосымшаларды әзірлеу аясы. Сегментация – цифрлық түрде алынған бейнедегі деректерді анықтау және жіктеу процесі. Әдетте, алынған бейне – КТ немесе МРТ сканерлері сияқты медициналық құралдардан алынған бейне болып табылады. Тіркеу – деректер арасында сәйкестіктерді табу немесе құру міндеті. Мысалы, медициналық ортада КТ және МРТ сканерлерінің нәтижелері біріктіріліп, екеуінде де бар ақпаратты толықтыруға болады. ITK – Визибильді Адам жобасының суреттерін талдауға арналған алгоритмдердің ашық ресурсы ретінде Ұлттық Медицина кітапханасының (АҚШ) қаржыландыруымен жасалған. ITK – The Insight Segmentation and Registration Toolkit деген сөздердің аббревиатурасы. Бұл құрал жиынтығы екі, үш және одан да көп өлшемдегі заманауи сегментация және тіркеу алгоритмдерін ұсынады. ITK конфигурация процесін басқару үшін CMake құрастыру ортасын пайдаланады. Бағдарламалық жасақтама C++ тілінде іске асырылған және Python үшін интерфейстелген. ITK жобасының бір тармағы – SimpleITK, ол сегіз бағдарламалау тілінде ITK-ға оңай қол жеткізуді қамтамасыз етеді және белсенді түрде дамытылуда.
Шығу тегі
1999 жылы АҚШ Ұлттық денсаулық сақтау институтының Ұлттық медицина кітапханасы ашық бастапқы кодты тіркеу және сегментациялау құрал-жабдықтарын әзірлеу үшін үш жылдық келісімшарт жасады, ол кейін Insight Toolkit (ITK) деп аталды. ITK-нің NLM жобасын басқарған доктор Терри Ю болды, ол Insight Software консорциумын құраған алты негізгі мердігерді үйлестірді. Осы консорциум мүшелеріне GE Corporate R&D, Kitware, Inc. және MathSoft (қазір Insightful деп аталады) коммерциялық серіктестері; және Солтүстік Каролина университеті (UNC), Теннесси университеті (UT) және Пенсильвания университеті (UPenn) академиялық серіктестері кірді. Бұл серіктестердің жетекші зерттеушілері, сәйкесінше, GE CRD-де Билл Лоренсен, Kitware-де Уилл Шрёдер, Insightful-де Викрам Чалана, UNC-де Стивен Айлвард пен Луис Ибаньес (екеуі де кейін Kitware-ге көшті), UT-де Росс Уитакер мен Джош Кейтс (қазір екеуі де Юта штатында), ал UPenn-де Димитрис Метаксас (Димитрис Метаксас қазір Рутгерс университетінде) болды. Бұған қоса, консорциумды толықтырған бірнеше субподрядкерлер де болды, олардың ішінде Питер Ратиу Бригам және әйелдер ауруханасында, Селина Имилинска мен Пат Молхольт Колумбия университетінде, Джим Джи UPenn-нің Grasp зертханасында және Джордж Стеттен Питтсбург университетінде жұмыс істеді.
Техникалық мәліметтер
ITK – тіркеу және сегменттеуді жүзеге асыруға арналған ашық бастапқы кодты бағдарламалық құралдар жиынтығы. Сегменттеу – цифрлық түрде алынған бейнедегі деректерді анықтау және жіктеу процесі. Әдетте, алынған бейне КТ немесе МРТ сканерлері сияқты медициналық құралдардан алынған сурет болып табылады. Тіркеу – деректер арасында сәйкестіктерді табу немесе құру міндеті. Мысалы, медициналық ортада КТ суреті МРТ суретімен біріктіріліп, екеуінде де қамтылған ақпаратты үйлестіруге болады. ITK C++ тілінде іске асырылған. ITK платформаға тәуелсіз, компиляция процесін басқару үшін CMake құрастыру ортасын пайдаланады. Сонымен қатар, автоматты түрлендіру процесі C++ және Java, Python сияқты басқа бағдарламалау тілдері арасында интерфейстерді жасайды. Бұл әзірлеушілерге әртүрлі бағдарламалау тілдерін қолдана отырып бағдарламалық жасақтама құруға мүмкіндік береді. ITK-ның іске асырылуы C++ үлгілерін пайдалану арқылы жалпылама бағдарламалау әдісін қолданады. ITK ашық бастапқы кодты жоба болғандықтан, әлемнің кез келген жеріндегі әзірлеушілер бағдарламалық жасақтаманы пайдалана алады, қателерді жоя алады, күтіп ұстай алады және кеңейте алады. ITK бағдарламалық жасақтаманы әзірлеудің «экстремалды бағдарламалау» деп аталатын моделін қолданады. Экстремалды бағдарламалау әдеттегі бағдарламалық жасақтаманы жасау әдістемесін бір уақытта және итеративті жобалау-өндіріс-тестілеу-шығару процесіне біріктіреді. Экстремалды бағдарламалаудың негізгі ерекшеліктері – байланыс және тестілеу. ITK қауымдастығының мүшелері арасындағы байланыс бағдарламалық жасақтаманың жылдам дамуын басқаруға көмектеседі. Тестілеу бағдарламалық жасақтаманың тұрақтылығын қамтамасыз етеді. ITK-да сапаны күнделікті бағалайтын кең ауқымды тестілеу процесі (CDash пайдаланып) жүзеге асырылған. ITK тестілеу тақтасы бағдарламалық жасақтаманың сапасын көрсете отырып, үздіксіз жарияланып тұрады.
Авторлық құқық және лицензия
ITK авторлық құқығы Insight Software Consortium-ға, ITK-ні қолдауға мүдделі ұйымдар мен жеке тұлғалардың коммерциялық емес одағына тиесілі. ITK нұсқасы 3.6-дан бастап бағдарламалық қамтамасыз ету BSD ашық кодты лицензиясы бойынша таратылады. Бұл кез келген мақсатта пайдалануға рұқсат береді, патенттелген каталогтағы кодтан басқа, және дұрыс атаумен. Авторлық құқықтың толық шарттары мен лицензиясы 4.0 нұсқасында Apache 2.0 лицензиясымен қолжетімді. Лицензия 4.0 нұсқасымен Apache 2.0 нұсқасына патенттік қорғау шаралары бар, қазіргі заманғы лицензияны қабылдау үшін өзгертілді. 3.6 нұсқасынан 3.20 нұсқасына дейін, тобырлы BSD лицензиясы қолданылды. ITK 3.6 нұсқасына дейінгі ITK нұсқалары өзгертілген BSD лицензиясы бойынша таратылды. ITK 3.6 нұсқасынан бастап BSD лицензиясын қабылдаудың басты себебі OSI мақұлдаған лицензияға ие болу болды.
Сәулет
Құрал жиынтығының негізгі ерекшеліктері төменде келтірілген. Құрал жиынтығы деректер ағыны архитектурасы негізінде құрылған. Яғни, деректер деректер объектілері арқылы ұсынылады, олар өз кезегінде процесс объектілері (фильтрлер) арқылы өңделеді. Деректер объектілері мен процесс объектілері құбырларға біріктіріледі. Құбырлар пайдаланушы белгілеген құбырдың жад лимитіне сәйкес деректерді бөлік-бөлікпен өңдей алады. Объект фабрикалары объектілерді жасау үшін қолданылады. Фабрикалар жүйенің жұмыс кезінде кеңейтілуіне мүмкіндік береді. Оқиғаларды өңдеу үшін команда/байқаушы үлгісі қолданылады.
Орындау философиясы
Құралдар жиынтығын іске асыру философиясының негізгі ерекшеліктері төмендегідей: Құралдар жиынтығы жалпы бағдарламалау принциптерін пайдаланып іске асырылған. Мұндай кеңінен шаблонды C++ коды көптеген компиляторлар үшін қиындық тудырады, сондықтан дамыту MSVC, Sun, gcc, Intel және SGI компиляторларының ең соңғы нұсқаларымен жүргізілді. Құралдар жиынтығы көп платформалы (Unix, Windows және Mac OS X). Құралдар жиынтығы Tcl, Python және Java сияқты бірнеше тілдермен байланыстыруды қолдайды. Бұл байланыстар автоматты түрде автоматты орау процесі арқылы жасалады. Жад моделі объектілерге сілтеме санын сақтайтын "ақылды көрсеткіштерге" негізделген. Ақылды көрсеткіштер стекте орналастырылуы мүмкін, ал ауқымнан шыққан кезде олар жойылады және олар сілтеме жасайтын объектінің сілтеме санатын азайтады.
Құрылыс ортасы
ITK CMake (кросс-платформалық құрастыру) құрастыру ортасын пайдаланады. CMake – операциялық жүйеге және компиляторға тәуелсіз құрастыру процесі, ол қолданылған операциялық жүйе мен компиляторға сәйкес туындаған құрастыру файлдарын жасайды. Unix жүйесінде CMake makefile файлдарын жасайды, ал Windows жүйесінде CMake жобалар мен жұмыс орталарын (workspace) құрастырады.
Сынақ ортасы
ITK кең ауқымды сынақ ортасын қолдайды. Код күнделікті (тіпті үздіксіз) көптеген аппараттық/операциялық жүйе/компилятор комбинацияларында тестіленіп, нәтижелері күн сайын ITK сынақ тақтасына жарияланады. Біз Dart-ты сынақ процесін басқару және нәтижелерді тақтаға жариялау үшін пайдаланамыз.
Қолданбалар
ITK туралы білудің ең керемет жолы – оның қалай қолданылатынын көру. ITK қолданылысын табуға төрт орын бар. Біріншісі – ITK-мен бірге таратылатын Insight/Examples/ бастапқы код мысалдары. Бұл код қолжетімді, сонымен қатар кеңінен түсіндірілген және ITK Бағдарламалық қамтамасыз ету нұсқаулығымен бірге жұмыс істейді. Екіншісі – InsightApplications жекелеген репозиторийі. Үшіншісі – Қолданбалар веб-беттері. Бұл – жоғарыдағы №1 мысалдардың кеңейтілген сипаттамалары, суреттермен және сілтемелермен бірге. ITK-мен таратылатын сынақ каталогтары – кодты қалай пайдаланудың қарапайым, көбінесе құжатталмаған мысалдары. 2004 жылы ITK SNAP (веб-сайт) SNAP негізінде жасалды және ITK-ны пайдаланатын, әдемі әрі қарапайым интерфейске ие танымал, тегін сегментация бағдарламалық қамтамасыз етуіне айналды.
Деректер
Деректер ITK деректер жиынтығында қолжетімді. kitware.com Girder қауымдастығында қараңыз. Сондай-ақ ITK Data веб-бетін қараңыз.
Байланыстар
ITK талқылау форумына қатысып, қауымдастықтан байланыс ақпаратын және көмек алыңыз.