KR20210106096A - Disease prediction system and method based on deep learning using fundus image - Google Patents

Disease prediction system and method based on deep learning using fundus image Download PDF

Info

Publication number
KR20210106096A
KR20210106096A KR1020200020794A KR20200020794A KR20210106096A KR 20210106096 A KR20210106096 A KR 20210106096A KR 1020200020794 A KR1020200020794 A KR 1020200020794A KR 20200020794 A KR20200020794 A KR 20200020794A KR 20210106096 A KR20210106096 A KR 20210106096A
Authority
KR
South Korea
Prior art keywords
image
inference
inference model
model
disease
Prior art date
Application number
KR1020200020794A
Other languages
Korean (ko)
Inventor
김융언
박인혁
Original Assignee
(주)에임즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)에임즈 filed Critical (주)에임즈
Priority to KR1020200020794A priority Critical patent/KR20210106096A/en
Publication of KR20210106096A publication Critical patent/KR20210106096A/en

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/50ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for simulation or modelling of medical disorders
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B3/00Apparatus for testing the eyes; Instruments for examining the eyes
    • A61B3/0016Operational features thereof
    • A61B3/0025Operational features thereof characterised by electronic signal processing, e.g. eye models
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B3/00Apparatus for testing the eyes; Instruments for examining the eyes
    • A61B3/10Objective types, i.e. instruments for examining the eyes independent of the patients' perceptions or reactions
    • A61B3/12Objective types, i.e. instruments for examining the eyes independent of the patients' perceptions or reactions for looking at the eye fundus, e.g. ophthalmoscopes
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/72Signal processing specially adapted for physiological signals or for diagnostic purposes
    • A61B5/7271Specific aspects of physiological measurement analysis
    • A61B5/7275Determining trends in physiological measurement data; Predicting development of a medical condition based on physiological measurements, e.g. determining a risk factor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/20ICT specially adapted for the handling or processing of medical images for handling medical images, e.g. DICOM, HL7 or PACS
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H30/00ICT specially adapted for the handling or processing of medical images
    • G16H30/40ICT specially adapted for the handling or processing of medical images for processing medical images, e.g. editing
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/20ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for computer-aided diagnosis, e.g. based on medical expert systems
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/30ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for calculating health indices; for individual health risk assessment

Landscapes

  • Health & Medical Sciences (AREA)
  • Engineering & Computer Science (AREA)
  • Medical Informatics (AREA)
  • Public Health (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Epidemiology (AREA)
  • Primary Health Care (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Pathology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • Biophysics (AREA)
  • Veterinary Medicine (AREA)
  • Databases & Information Systems (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Radiology & Medical Imaging (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Ophthalmology & Optometry (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Physiology (AREA)
  • Psychiatry (AREA)
  • Eye Examination Apparatus (AREA)

Abstract

The present invention discloses a disease prediction system based on deep learning using a fundus image. The disease prediction system according to the present invention includes: a data amplifying unit applying p filtering elements to one fundus image to amplify p images; an inference model generator in which the p training images generated by the data amplifying unit are divided into q training image sets, and the q training image sets for each r different model architectures based on deep learning are inputted, thereby generating q*r different inference models; an inference model execution unit in which the q * r inference models are loaded into a memory, the p determination images generated by the data amplification unit are divided into q determination image sets, and one image set for determination for each inference model is inputted, thereby calculating a disease inferred value; and a determination unit that calculates disease index using the disease inference value of each inference model calculated by the inference model execution unit. According to the present invention, the fundus image reading time is greatly reduced, so that the inconvenience between doctors and patients is greatly reduced. In addition, a web-based fundus image reading service is possible to easily obtain accurate reading results even in small ophthalmic hospitals or in regions or countries with poor medical access, thereby contributing greatly to the early detection and treatment of diseases, and accordingly, contributing to the improvement of the quality of medical services while preventing the waste of medical expenses.

Description

안저영상을 이용한 딥러닝 기반의 질병 예측 시스템 및 방법{Disease prediction system and method based on deep learning using fundus image}Disease prediction system and method based on deep learning using fundus image}

본 발명은 안저영상을 이용한 딥러닝 기반의 질병 예측 시스템에 관한 것으로서, 구체적으로는 웹 기반의 실시간 서비스가 가능할 정도로 판정 시간을 획기적으로 단축하면서도 판정의 정확도를 향상시킬 수 있는 딥러닝 기반의 질병 예측 시스템 및 방법에 관한 것이다.The present invention relates to a deep-learning-based disease prediction system using fundus images, and specifically, a deep-learning-based disease prediction that can improve the accuracy of determination while dramatically shortening the determination time to the extent that a web-based real-time service is possible. It relates to systems and methods.

최근 들어 의료 분야에서 안저영상에 대한 관심이 크게 증가하고 있다. 안저영상은 안저카메라를 이용하여 비침습적으로 간편하고 저렴하게 획득할 수 있을 뿐만 아니라, 안저영상에 나타난 혈관, 망막신경섬유층, 황반, 시신경유두 등을 분석하여 녹내장, 당뇨성망막병증, 황반변성 등의 안과 질환을 조기에 진단하거나 위험도를 예측할 수 있기 때문이다.Recently, interest in fundus imaging has increased significantly in the medical field. Fundus images can be obtained non-invasively, simply and inexpensively by using a fundus camera, as well as glaucoma, diabetic retinopathy, macular degeneration, etc. by analyzing blood vessels, retinal nerve fiber layer, macula, optic nerve papilla, etc. This is because it can diagnose eye diseases at an early stage or predict their risk.

최근에는 안저영상을 이용하여 심장질환, 치매 등의 진단이 가능하다는 연구결과가 속속 발표되고 있어 안저영상의 중요성은 갈수록 커지고 있는 추세이다.Recently, research results have been published that it is possible to diagnose heart disease, dementia, etc. using fundus imaging, and the importance of fundus imaging is increasing.

그런데 안저영상에 나타난 미세한 병변을 육안으로 정확하게 판독하기 위해서는 고도의 훈련을 거쳐야 하기 때문에 실제 의료현장에서는 검사수요 대비 판독 전문의가 크게 부족한 실정이다. 또한 많은 경험을 가진 안과 전문의 사이에서도 판독결과가 일치하지 않는 경우가 자주 발생할 정도로 안저영상 분석이 쉽지 않은 문제도 있다.However, in order to accurately read microscopic lesions shown on fundus images with the naked eye, high-level training is required, so there is a significant shortage of specialists in reading compared to the demand for examination in the actual medical field. In addition, there is a problem in that fundus image analysis is not easy to the extent that the reading results are often inconsistent even among ophthalmologists with a lot of experience.

이에 따라 최근에는 딥러닝 기반의 인공지능을 이용하여 안저영상을 분석함으로써 판독의 정확성을 개선하려는 연구가 전세계적으로 활발히 진행되고 있으며, 현재 녹내장, 당뇨성망막병증 등의 경우에는 안과 전문의 보다 더 정확하게 판독할 수 있는 수준까지 도달한 것으로 알려져 있다.Accordingly, recently, research to improve the accuracy of reading by analyzing fundus images using deep learning-based artificial intelligence is being actively conducted around the world. It is known that it has reached a level where it can be read accurately.

그런데 이러한 개발 실적에도 불구하고 현재까지 딥러닝 기반의 진단보조 스프트웨어가 상용화된 사례가 드물고, 상용화되더라도 가격이 너무 비싸서 대형 병원에서나 사용할 수 있을 것으로 예상되고 있다. 또한 판정에 소요되는 시간이 너무 길어서 진료중인 의사가 실시간으로 환자의 상태를 확인하기 어려운 문제가 있다.However, despite these development results, there are few cases where deep learning-based diagnostic assistance software has been commercialized so far, and even if commercialized, the price is too high, so it is expected that it can only be used in large hospitals. In addition, there is a problem in that it is difficult for a doctor in treatment to check the patient's condition in real time because the time required for the determination is too long.

따라서 소규모 병원이나 의료접근성이 열악한 지역에서도 딥러닝 기반의 안저영상 판독 기술을 보다 쉽게 활용할 수 있는 방안을 마련할 필요가 있다.Therefore, it is necessary to prepare a way to more easily utilize deep learning-based fundus image reading technology even in small hospitals or areas with poor medical access.

한국등록특허 제10-1880678호(2018.07.20 공고)Korean Patent Registration No. 10-1880678 (2018.07.20 Announcement)

본 발명은 이러한 배경에서 고안된 것으로서, 종래의 안저영상 분석 모델에 비하여 질병 여부를 판정하는 시간을 크게 단축함으로써 의사와 환자의 이용 편의성이 높은 질병 예측 시스템을 제공하는데 그 목적이 있다.The present invention was devised against this background, and an object of the present invention is to provide a disease prediction system with high ease of use for doctors and patients by significantly reducing the time for determining whether a disease is present compared to a conventional fundus image analysis model.

또한 본 발명은 소규모 병원이나 의료접근성이 열악한 지역에서도 딥러닝 기반의 안저영상 판독기술을 쉽게 이용할 수 있고 이를 통해 관련 질환을 보다 신속하고 정확하게 진단함으로써 의료서비스의 질을 높이는 한편 중복검사 또는 과잉검사로 인한 환자의 불편과 의료비용의 낭비를 방지하는데 그 목적이 있다.In addition, the present invention can easily use deep-learning-based fundus image reading technology even in small hospitals or areas with poor medical access, and through this, the quality of medical services can be improved by diagnosing related diseases more quickly and accurately, while avoiding overlapping or over-testing. The purpose is to prevent patient inconvenience and waste of medical expenses.

이러한 목적을 달성하기 위하여, 본 발명의 일 양상은, 1개의 안저영상에 p개의 필터링 요소를 적용하여 p개의 이미지로 증폭시키는 데이터 증폭부; 데이터 증폭부에서 생성된 p 개의 학습용 이미지를 q개의 학습용 이미지세트로 분할하고, 딥러닝 기반의 서로 다른 r개의 모델 아키텍처마다 q개의 학습용 이미지세트를 입력하여 q*r개의 서로 다른 추론모델을 생성하는 추론모델 생성부; q*r개의 추론모델을 메모리에 로딩하고, 데이터 증폭부에서 생성된 p개의 판정용 이미지를 q개의 판정용 이미지세트로 분할하고, 각 추론모델마다 하나씩의 판정용 이미지세트를 입력하여 질병추론값을 산출하는 추론모델 실행부; 추론모델 실행부에서 산출된 각 추론모델의 질병추론값을 이용하여 질병지표를 산출하는 판정부를 포함하는 질병 예측 시스템을 제공한다.In order to achieve this object, an aspect of the present invention, a data amplification unit for amplifying the p number of images by applying p filtering elements to one fundus image; It divides the p training images generated by the data amplification unit into q training image sets, and generates q * r different inference models by inputting q training image sets for each r different deep learning-based model architectures. inference model generation unit; Load q * r inference models into the memory, divide the p judgment images generated by the data amplification unit into q judgment image sets, and input one judgment image set for each inference model to obtain a disease inference value. an inference model execution unit that calculates ; It provides a disease prediction system including a determination unit that calculates a disease index by using the disease inference value of each inference model calculated by the inference model execution unit.

본 발명의 일 양상에 따른 질병 예측 시스템에서, 데이터 증폭부는 생성된 이미지마다 적용된 필터링 요소를 의미하는 이미지코드를 부여하며, 추론모델 생성부는 매 학습단계마다 동일한 추론모델에는 동일한 이미지코드를 갖는 이미지세트를 입력하며, 추론모델 실행부는 각 추론모델마다 서로 다른 판정용 이미지세트를 입력하되 각 추론모델에는 학습 과정에서 사용된 학습용 이미지세트와 동일한 이미지코드를 갖는 판정용 이미지세트를 입력할 수 있다.In the disease prediction system according to an aspect of the present invention, the data amplification unit provides an image code that means a filtering element applied to each generated image, and the inference model generation unit is an image set having the same image code in the same inference model for every learning step. , and the inference model execution unit may input a different set of images for determination for each inference model, but a set of images for determination having the same image code as the image set for training used in the learning process may be input to each inference model.

또한 본 발명의 일 양상에 따른 질병 예측 시스템에서, 데이터 증폭부는, p개의 판정용 이미지를 생성할 때 스토리지에 관련 파일을 저장하지 않고 메모리 연산만으로 판정용 이미지를 생성한 후 각 추론모델로 전달할 수 있다.In addition, in the disease prediction system according to an aspect of the present invention, the data amplification unit generates the image for determination only by memory operation without storing the related file in the storage when generating p images for determination, and then transmits it to each inference model. have.

또한 본 발명의 일 양상에 따른 질병 예측 시스템에서, 추론모델 생성부는, 추론모델을 생성한 후에 각 모델 아키텍처는 json파일 형식으로 저장하고, 학습 결과 생성된 각 추론모델의 가중치파일은 hdf5 파일 형식으로 저장할 수 있다.In addition, in the disease prediction system according to an aspect of the present invention, the inference model generator, after generating the inference model, stores each model architecture in a json file format, and the weight file of each inference model generated as a result of learning is in the hdf5 file format. can be saved

또한 본 발명의 일 양상에 따른 질병 예측 시스템에서, 추론모델 실행부는, 판정을 위하여 q*r개의 스레드를 생성하고 각 스레드 마다 하나씩의 추론모델을 실행할 수 있다.Also, in the disease prediction system according to an aspect of the present invention, the inference model execution unit may generate q*r threads for determination and execute one inference model for each thread.

또한 본 발명의 일 양상에 따른 질병 예측 시스템에서, 추론모델 실행부는 q*r개의 추론모델을 각각 실행하여 입력된 p개의 판정용 이미지에 각각 대응하는 p개의 질병추론값을 산출하고, 판정부는 p*q*r 개의 질병추론값을 평균하여 질병지표를 산출할 수 있다.Also, in the disease prediction system according to an aspect of the present invention, the inference model execution unit executes q * r inference models to calculate p disease inference values corresponding to the input p judgment images, respectively, and the determination unit p A disease index can be calculated by averaging *q*r disease inferred values.

또한 본 발명의 일 양상에 따른 질병 예측 시스템에서, 서로 다른 r개의 모델 아키텍처는, InceptionV3, VGGNet, VGG, ResNet, AlexNet, GoogleNet, InceptionResNetV2 중에서 적어도 하나를 포함하거나, 이들 중에서 적어도 하나의 히든레이어를 변형한 것을 포함할 수 있다. Also, in the disease prediction system according to an aspect of the present invention, different r model architectures include at least one of InceptionV3, VGGNet, VGG, ResNet, AlexNet, GoogleNet, and InceptionResNetV2, or transform at least one hidden layer among them. may include one.

본 발명의 다른 양상은, 1개의 안저영상에 p개의 필터링 요소를 적용하여 p개의 이미지로 증폭시키는 학습용 데이터 증폭 단계; 데이터 증폭단계 생성된 p 개의 학습용 이미지를 q개의 학습용 이미지세트로 분할하고, 딥러닝 기반의 서로 다른 r개의 모델 아키텍처마다 q개의 학습용 이미지세트를 입력하여 q*r개의 서로 다른 추론모델을 생성하는 추론모델 생성단계; 1개의 안저영상에 p개의 필터링 요소를 적용하여 p개의 이미지로 증폭시키는 판정용 데이터 증폭 단계; q*r개의 추론모델을 메모리에 로딩하고, 판정용 데이터 증폭단계에서 생성된 p개의 판정용 이미지를 q개의 판정용 이미지세트로 분할하고, 각 추론모델마다 하나씩의 판정용 이미지세트를 입력하여 질병추론값을 산출하는 추론모델 실행단계; 추론모델 실행단계에서 산출된 각 추론모델의 질병추론값을 이용하여 질병지표를 산출하는 판정단계를 포함하는 질병 예측 방법을 제공한다.Another aspect of the present invention, a learning data amplification step of applying p filtering elements to one fundus image to amplify the p images; Inference that generates q * r different inference models by dividing the p training images generated in the data amplification step into q training image sets, and inputting q training image sets for each r different deep learning-based model architectures. model generation step; a decision data amplification step of applying p filtering elements to one fundus image and amplifying them into p images; Loading q * r inference models into memory, dividing p judgment images generated in the decision data amplification step into q judgment image sets, and inputting one judgment image set for each inference model an inference model execution step of calculating an inference value; It provides a disease prediction method including a determination step of calculating a disease index using the disease inference value of each inference model calculated in the inference model execution step.

본 발명에 따른 질병 예측 방법에 있어서, 학습용 데이터 증폭단계 및 판정용 데이터 증폭단계에서는 생성된 이미지마다 적용된 필터링 요소를 의미하는 이미지코드를 각각 부여하고, 추론모델 생성단계에서는 매 학습단계마다 동일한 추론모델에는 동일한 이미지코드를 갖는 이미지세트를 입력하며, 추론모델 실행단계에서는 각 추론모델마다 서로 다른 판정용 이미지세트를 입력하되 각 추론모델에는 학습 과정에서 사용된 학습용 이미지세트와 동일한 이미지코드를 갖는 판정용 이미지세트를 입력할 수 있다.In the disease prediction method according to the present invention, in the learning data amplification step and the judgment data amplification step, an image code indicating a filtering element applied to each generated image is respectively given, and in the inference model generation step, the same reasoning model for every learning step An image set having the same image code is input to the inference model execution stage, and a different image set for judgment is input for each inference model in the inference model execution step, but each inference model has the same image code as the image set for training used in the learning process. You can enter an image set.

본 발명에 따르면, 안저영상 판독시간이 크게 단축되므로 의사와 환자의 불편이 크게 해소될 수 있다. According to the present invention, since the fundus image reading time is greatly reduced, the discomfort of the doctor and the patient can be greatly reduced.

또한 웹기반의 안저영상 판독 서비스가 가능하므로 소형 안과병원이나 의료접근성이 열악한 지역이나 국가에서도 간편하게 정확한 판독결과를 획득할 수 있어 질병의 조기 발견과 치료에 크게 기여할 수 있고, 이를 통해 의료비용의 낭비를 방지하면서도 의료서비스의 품질 향상에 기여할 수 있다.In addition, as a web-based fundus image reading service is available, accurate reading results can be easily obtained even in small ophthalmic hospitals or in regions or countries with poor medical access, which can greatly contribute to early detection and treatment of diseases, thereby reducing medical costs. It can contribute to improving the quality of medical services while preventing

도 1은 본 발명의 일 실시예에 따른 질병 예측 시스템의 개략 구성도
도 2는 판독장치의 하드웨어 구성을 예시한 블록도
도 3은 판독장치의 기능 블록도
도 4는 안저영상의 전처리 방법을 예시한 도면
도 5는 딥러닝 모델아키텍처를 예시한 도면
도 6은 데이터증폭부에서 원본영상으로부터 추출한 다양한 이미지세트를 예시한 도면
도 7은 모델아키텍처와 다수의 이미지세트를 이용하여 다수의 추론모델을 생성하는 방법을 나타낸 개념도
도 8은 모델아키텍처와 가중치파일을 연계하여 추론모델을 생성하는 모습을 나타낸 개념도
도 9는 멀티스레딩의 일 실시예를 예시한 도면
도 10은 본 발명의 일 실시예에 따른 질병 예측 시스템에서 안저영상을 이용하여 질병을 추론하는 방법을 나타낸 개념도
도 11은 멀티스레딩의 다른 실시예를 예시한 도면
1 is a schematic configuration diagram of a disease prediction system according to an embodiment of the present invention;
2 is a block diagram illustrating a hardware configuration of a reading device;
3 is a functional block diagram of a reading device;
4 is a diagram illustrating a pre-processing method of a fundus image;
5 is a diagram illustrating a deep learning model architecture
6 is a diagram illustrating various image sets extracted from the original image by the data amplification unit;
7 is a conceptual diagram illustrating a method of generating a plurality of inference models using a model architecture and a plurality of image sets.
8 is a conceptual diagram showing a state in which an inference model is generated by linking a model architecture and a weight file;
9 illustrates an embodiment of multithreading;
10 is a conceptual diagram illustrating a method of inferring a disease using a fundus image in a disease prediction system according to an embodiment of the present invention;
11 is a diagram illustrating another embodiment of multithreading;

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, a preferred embodiment of the present invention will be described in detail with reference to the drawings.

참고로 본 명세서에서 어떤 부분이 어떤 구성요소를 포함 또는 구비하는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함하거나 구비할 수 있는 것을 의미한다. 또한 하나의 구성요소(element)가 다른 구성요소와 연결, 결합, 또는 통신하는 경우는, 다른 구성요소와 직접적으로 연결, 결합, 또는 통신하는 경우뿐만 아니라 중간에 다른 요소를 사이에 두고 간접적으로 연결, 결합, 또는 통신하는 경우도 포함한다. 또한 하나의 구성요소가 다른 구성요소와 직접 연결 또는 직접 결합되는 경우는 중간에 다른 요소가 개재되지 않는 것을 의미한다. 또한 본 명세서에 첨부된 도면은 발명의 요지를 이해하기 쉽도록 예시한 것에 불과하므로 이로 인해 본 발명의 권리범위가 제한되어서는 아니 됨을 미리 밝혀 둔다.For reference, in the present specification, if a part includes or includes any component, it means that other components may be further included or provided without excluding other components unless otherwise stated. In addition, when one element is connected, combined, or communicated with another element, it is not only directly connected, combined, or communicated with another element, but also indirectly connected with another element in between. , combining, or communicating. In addition, when one component is directly connected or directly coupled to another component, it means that another element is not interposed therebetween. In addition, since the accompanying drawings in the present specification are merely illustrative for easy understanding of the gist of the present invention, it is clarified in advance that the scope of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 질병 예측 시스템은, 도 1의 개략 구성도에 나타낸 바와 같이, 다수의 영상제공단말(100), 통신망(200)을 통해 영상제공단말(100)과 통신하는 판독장치(400)를 포함할 수 있다.As shown in the schematic configuration diagram of FIG. 1 , the disease prediction system according to an embodiment of the present invention is a reading device that communicates with the image providing terminal 100 through a plurality of image providing terminals 100 and a communication network 200 . (400).

영상제공단말(100)은 안저영상을 판독장치(400)로 전송할 수 있는 단말로서 구체적인 종류는 제한되지 않는다. 예를 들어, 영상제공단말(100)은 병원에 설치된 데스크톱 컴퓨터, 노트북 컴퓨터, 병원정보시스템 서버 중에서 적어도 하나일 수도 있고, 의사나 간호사가 사용하는 스마트폰, 태블릿(tablet), 핸드헬드(handheld) PC, PDA, PMP 등의 휴대용 컴퓨팅 장치일 수도 있다. 또한 영상제공단말(100)은 환자 또는 제3자가 사용하는 컴퓨팅장치일 수도 있다.The image providing terminal 100 is a terminal capable of transmitting the fundus image to the reading device 400, and the specific type is not limited. For example, the image providing terminal 100 may be at least one of a desktop computer, a laptop computer, and a hospital information system server installed in a hospital, and a smartphone, tablet, or handheld used by a doctor or nurse. It may be a portable computing device such as a PC, PDA, or PMP. Also, the image providing terminal 100 may be a computing device used by a patient or a third party.

도면에는 나타내지 않았으나, 영상제공단말(100)은 안저카메라와 유선 또는 무선으로 통신함으로써 안저카메라로부터 안저영상을 수신 및 저장할 수도 있다.Although not shown in the drawings, the image providing terminal 100 may receive and store the fundus image from the fundus camera by communicating with the fundus camera by wire or wirelessly.

통신망(200)은 영상제공단말(100)과 판독장치(400) 간의 통신을 중계하는 것으로서, 이미 알려져 있거나 이후에 개발되는 유선망, 무선망, 또는 이들의 적절한 조합으로 구성될 수 있다.The communication network 200 relays the communication between the image providing terminal 100 and the reader 400, and may be composed of a wired network, a wireless network, or an appropriate combination thereof, which is already known or developed later.

판독장치(400)는 영상제공단말(100)로부터 수신한 안저영상을 분석하여 특정 질병의 유무 또는 위험도를 판정하고, 판정 결과를 영상제공단말(100)로 전송하는 역할을 한다.The reading device 400 analyzes the fundus image received from the image providing terminal 100 to determine the presence or risk of a specific disease, and transmits the determination result to the image providing terminal 100 .

판독장치(400)는, 도 2의 블록도에 예시한 바와 같이, CPU(Central Processing Unit)(410), 제1 GPU(Graphics Processing Unit)(420), 제2 GPU(430), 메모리(440), 스토리지(450), 입력부(460), 디스플레이(470), 통신부(480), 버스(490) 등을 포함할 수 있다.As illustrated in the block diagram of FIG. 2 , the reading device 400 includes a central processing unit (CPU) 410 , a first graphics processing unit (GPU) 420 , a second GPU 430 , and a memory 440 . ), a storage 450 , an input unit 460 , a display 470 , a communication unit 480 , a bus 490 , and the like.

CPU(410). 제1 GPU(420), 및 제2 GPU(430)는 스토리지(450)에 저장된 컴퓨터프로그램과 데이터를 메모리(440)에 로딩하고 프로그램 코드에 따라 소정의 연산이나 데이터 처리를 수행한다.CPU 410 . The first GPU 420 and the second GPU 430 load a computer program and data stored in the storage 450 into the memory 440 and perform a predetermined operation or data processing according to the program code.

본 발명의 실시예에서는, 제1 및 제2 GPU(420,430)는 안저영상의 전처리 작업, 데이터증폭작업, 안저영상을 이용한 딥러닝 추론모델의 학습, 추론모델 실행 등과 같이 그래픽 처리 작업을 수행하는데 사용되고, CPU(410)는 그래픽 처리를 제외한 판독장치(400)의 전반적인 동작을 수행하는데 사용될 수 있다.In an embodiment of the present invention, the first and second GPUs 420 and 430 are used to perform graphic processing tasks such as preprocessing of fundus images, data amplification, learning of deep learning inference models using fundus images, and execution of inference models. , the CPU 410 may be used to perform the overall operation of the reading device 400 excluding the graphic processing.

본 발명의 실시예에서는 추론모델의 로딩 및 판정 속도를 개선하기 위하여 제1 및 제2 GPU(420,430)에 각각 다수의 스레드를 할당하여 한번에 다수의 예측모델을 동시에 실행할 수 있도록 하였다. 다만 안저영상 판독을 위한 예측모델의 개수와 병렬처리를 위한 스레드의 개수는 판독할 질병의 종류, 요구 정확도, 시스템 환경 등에 따라 다양하게 선택될 수 있다.In an embodiment of the present invention, a plurality of threads are allocated to the first and second GPUs 420 and 430, respectively, in order to improve the loading and determination speed of the inference model, so that a plurality of predictive models can be executed simultaneously. However, the number of prediction models for reading fundus images and the number of threads for parallel processing may be variously selected according to the type of disease to be read, required accuracy, system environment, and the like.

메모리(440)는 판독장치(400)의 동작을 위한 명령어, 데이터 등을 임시로 저장하며, CPU(410)를 위한 시스템메모리(RAM)와 GPU(420,430)를 위한 비디오메모리(VRAM)로 구분될 수 있다. 필요에 따라서는 CPU(410)와 GPU(420,430)가 시스템메모리(RAM)과 비디오메모리(VRAM) 중에서 적어도 하나를 공유메모리로 활용할 수도 있다.The memory 440 temporarily stores instructions, data, etc. for the operation of the reading device 400 , and is divided into a system memory (RAM) for the CPU 410 and a video memory (VRAM) for the GPUs 420 and 430 . can If necessary, the CPU 410 and the GPUs 420 and 430 may utilize at least one of the system memory (RAM) and the video memory (VRAM) as a shared memory.

스토리지(450)는 판독장치(400)의 동작에 필요한 각종 컴퓨터프로그램과 데이터를 저장하며, 그 종류는 특별히 제한되지 않는다. 예를 들어 내장형 또는 외장형의 HDD(Hard Disc Drive), ODD(Optical Disc Drive), SDD(Solid State Drive) 등을 포함할 수도 있고, Network Attached Storage(NAS), Storage Area Network(SAN) 등을 포함할 수도 있다.The storage 450 stores various computer programs and data necessary for the operation of the reading device 400 , and the type thereof is not particularly limited. For example, it may include internal or external HDD (Hard Disc Drive), ODD (Optical Disc Drive), SDD (Solid State Drive), etc., and includes Network Attached Storage (NAS), Storage Area Network (SAN), etc. You may.

스토리지(450)에는 판독장치(400)의 동작을 위한 OS프로그램과, 딥러닝 기반으로 안저영상을 분석하기 위한 프로그램 및 각종 데이터가 저장될 수 있다. The storage 450 may store an OS program for the operation of the reading device 400 , a program for analyzing the fundus image based on deep learning, and various data.

스토리지(450)에 저장되는 프로그램과 데이터는, 도 3의 기능 블록도를 참조하면, 웹서버(510), 영상전처리부(520), 데이터증폭부(530), 추론모델 생성부(540), 추론모델 실행부(550), 판정부(560), 스레드제어부(570), 모델아키텍처(580), 가중치파일(590) 등을 포함할 수 있다.Referring to the functional block diagram of FIG. 3 , the programs and data stored in the storage 450 include a web server 510 , an image preprocessor 520 , a data amplifier 530 , an inference model generator 540 , and reasoning. It may include a model execution unit 550 , a determination unit 560 , a thread control unit 570 , a model architecture 580 , a weight file 590 , and the like.

입력부(460)는 판독장치(400)의 관리자가 사용하는 입력장치로서, 키보드, 버튼, 터치패드, 터치스크린, 마우스 중에서 적어도 하나를 포함할 수 있다.The input unit 460 is an input device used by the manager of the reading device 400 and may include at least one of a keyboard, a button, a touch pad, a touch screen, and a mouse.

디스플레이(470)는 판독장치(400)의 동작 상태 또는 모델 실행 결과를 출력할 수 있다.The display 470 may output an operation state of the reading device 400 or a model execution result.

통신부(480)는 통신망(200)과의 통신을 위한 유선 또는 무선 통신 인터페이스를 포함하며, 근거리 무선통신(WiFi, 블루투스 등) 인터페이스를 추가로 포함할 수도 있다.The communication unit 480 includes a wired or wireless communication interface for communication with the communication network 200 , and may further include a short-range wireless communication (WiFi, Bluetooth, etc.) interface.

버스(490)는 판독장치(400)의 각 구성요소들 간에 데이터 또는 전기적 신호의 전송 경로이며, 회로패턴 또는 케이블의 형태로 제공될 수 있다.The bus 490 is a transmission path of data or electrical signals between each component of the reading device 400 , and may be provided in the form of a circuit pattern or a cable.

이하에서는 도 3의 기능 블록도를 참조하여 판독장치(400)의 동작을 설명한다.Hereinafter, the operation of the reading apparatus 400 will be described with reference to the functional block diagram of FIG. 3 .

먼저 판독장치(400)는 웹서버(510)를 통해 영상제공단말(100)과 데이터를 송수신할 수 있다. 웹서버(510)는 통신망(200)을 통해 접속한 영상제공단말(100)로 회원등록, 환자등록, 안저영상 업로드, 판독요청, 이력검색 등을 위한 소정의 웹페이지를 제공할 수 있다.First, the reading device 400 may transmit/receive data to and from the image providing terminal 100 through the web server 510 . The web server 510 may provide a predetermined web page for member registration, patient registration, fundus image upload, reading request, history search, etc. to the image providing terminal 100 connected through the communication network 200 .

영상전처리부(520)는 영상제공단말(100)로부터 수신한 안저영상에서 관심영역(ROI)을 추출하는 한편 이미지 크기를 설정된 크기(예, 299*299)로 스케일링하는 역할을 할 수 있다.The image preprocessor 520 may serve to extract a region of interest (ROI) from the fundus image received from the image providing terminal 100 and to scale the image size to a set size (eg, 299*299).

예를 들어 영상전처리부(520)는 도 4에 나타낸 바와 같이, 원본이미지에서 안저영상의 좌우 접선 및/또는 상하 접선을 기준으로 불필요영역을 제거하여 관심영역(ROI)을 추출하는 작업을 수행할 수 있다.For example, the image preprocessor 520 may perform an operation of extracting a region of interest (ROI) by removing unnecessary regions from the original image based on the left and right tangents and/or the upper and lower tangents of the fundus image, as shown in FIG. 4 . have.

데이터증폭부(530)는 영상전처리부(520)에서 전처리된 안저영상을 다양한 방식으로 변형하여 모델학습 및 판독에 사용할 다수의 이미지를 생성하는 역할을 한다.The data amplifier 530 transforms the fundus image preprocessed by the image preprocessor 520 in various ways to generate a plurality of images to be used for model learning and reading.

[표 1] [Table 1]

Figure pat00001
Figure pat00001

표 1에 예시한 바와 같이, 데이터증폭부(530)는 Bilateral 필터, Gaussian 필터, Histogram Equalization 필터, Median필터, Sharpening 필터 등을 적용하여 원본 영상으로부터 다양한 변형 영상을 생성할 수도 있다.As illustrated in Table 1, the data amplifier 530 may generate various transformed images from the original image by applying a Bilateral filter, a Gaussian filter, a Histogram equalization filter, a Median filter, a Sharpening filter, and the like.

또한 데이터증폭부(530)는 원본영상을 120% 확대한 후 소정 크기(예, 299*299)로 잘라낸 변형 영상을 생성할 수도 있다.Also, the data amplifier 530 may generate a modified image cut out to a predetermined size (eg, 299*299) after magnifying the original image by 120%.

또한 데이터증폭부(530)는 원본영상을 각각 90도, 180도, 270도 회전시킴으로써 다양한 변형 영상을 생성할 수도 있다.Also, the data amplifier 530 may generate various modified images by rotating the original image by 90 degrees, 180 degrees, and 270 degrees, respectively.

또한 데이터증폭부(530)는 컬러 원본영상을 흑백영상으로 변형할 수도 있다.Also, the data amplifier 530 may transform the original color image into a black-and-white image.

이러한 방법을 모두 적용하면, 데이터증폭부(530)는 영상전처리를 거친 1개의 원본영상으로부터 필터링 여부, 확대여부, 회전여부 및 컬러 여부에 따라 원본영상을 포함하여 총 96개(6*2*4*2)의 이미지를 생성할 수 있다. When all of these methods are applied, the data amplification unit 530 receives a total of 96 (6*2*4) images including the original image according to whether filtering, enlargement, rotation, and color from one original image that has undergone image preprocessing. *2) images can be created.

다만 표 1에 나타낸 변형 요소는 예시에 불과하므로 데이터증폭부(530)는 이 중에서 일부만을 적용할 수도 있고, 더 많은 필터링 요소를 추가하여 더 많은 변형 영상을 생성할 수도 있음은 물론이다.However, since the deformable elements shown in Table 1 are merely examples, the data amplifier 530 may apply only some of them, or may generate more deformed images by adding more filtering elements.

도 6은, 96개의 이미지를 12개의 이미지세트로 분할한 후 각 이미지를 표 1의 이미지코드로 나타낸 것이다. 이미지세트를 12개로 분할하는 방식은 도 6의 방식에 한정되지 않으므로 다양한 방식으로 8개씩의 이미지를 묶어서 12개 이미지세트를 설정할 수 있다.6 shows the image codes of Table 1 after dividing 96 images into 12 image sets. Since the method of dividing the image set into 12 is not limited to the method of FIG. 6 , 12 image sets may be set by bundling 8 images in various ways.

본 발명의 실시예에서는 이러한 방식으로 확장된 이미지를 이용하여 4개의 딥러닝 모델아키텍처(580)를 학습시켜서 안저영상 판독에 활용하기 위한 총48개의 추론모델을 생성한다. In an embodiment of the present invention, four deep learning model architectures 580 are learned using the image expanded in this way, and a total of 48 inference models are generated for use in reading fundus images.

또한 질병여부를 판정하기 위하여 학습된 추론모델을 실행하는 경우에도 영상제공단말(100)로부터 수신한 1개의 안저영상에 동일한 데이터증폭방법을 적용하여 총96개의 이미지를 생성하고, 96개의 이미지를 소정 방식으로 분할하여 48개의 추론모델에 입력하여 실행시켜서 질병여부를 판정한다.In addition, even when the learned inference model is executed to determine whether or not a disease is present, the same data amplification method is applied to one fundus image received from the image providing terminal 100 to generate a total of 96 images, and select 96 images. In this way, it is divided into 48 inference models and executed to determine whether or not there is a disease.

추론모델 생성부(540)는 임의의 가중치가 설정된 딥러닝 기반의 모델아키텍처(580)에 질병여부가 라벨링된 안저영상을 입력하여 출력값(예,질병확률)을 산출하고, 역전파 알고리즘을 이용하여 출력값을 기초로 가중치를 갱신하는 작업을 반복하여 추론모델을 생성한다.The inference model generator 540 inputs the fundus image labeled with the disease to the deep learning-based model architecture 580 to which an arbitrary weight is set, calculates an output value (eg, disease probability), and uses a backpropagation algorithm An inference model is created by repeating the task of updating the weights based on the output value.

딥러닝 기반의 모델아키텍처(580)는 도 5에 예시한 바와 같이 입력레이어와 출력레이어의 사이에 하나 이상의 히든레이어(hidden layer)를 가지며, 반복 학습을 통해 임의의 제1 레이어의 노드(뉴런)와 제2 레이어의 노드(뉴런) 사이에 부여된 가중치([W]1,,,,,[W]n)를 최적값으로 갱신함으로써 출력값의 정확도를 향상시킬 수 있다.The deep learning-based model architecture 580 has one or more hidden layers between an input layer and an output layer as illustrated in FIG. 5, and a node (neuron) of an arbitrary first layer through repeated learning. By updating the weights ([W]1,,,,,[W]n) given between and the node (neuron) of the second layer to an optimal value, the accuracy of the output value can be improved.

한편, 본 발명의 실시예에서는 판정의 정확도를 높이기 위하여 하나의 딥러닝 추론모델만을 사용하지 않고 다수의 추론모델을 생성한 후 각 추론모델의 출력을 평균하는 앙상블 기법을 적용한다.On the other hand, in an embodiment of the present invention, in order to increase the accuracy of determination, an ensemble technique of averaging the output of each inference model is applied after generating a plurality of inference models without using only one deep learning inference model.

다수의 추론모델을 생성하기 위하여 본 발명의 실시예에서는, 4개의 기본적인 모델 아키텍처(580)를 스토리지(450)에 저장한 상태에서, 1개의 안저영상에서 데이터증폭을 거쳐 생성된 96개의 이미지를 12개의 이미지세트로 분할한 후 4개의 모델 아키텍처(580)마다 12개의 이미지세트를 각각 입력하여 학습시킴으로써 총 48개의 추론모델을 생성한다.In an embodiment of the present invention to generate a plurality of inference models, in a state in which four basic model architectures 580 are stored in the storage 450, 96 images generated through data amplification from one fundus image are 12 After dividing into 4 image sets, a total of 48 inference models are generated by inputting and learning 12 image sets for each of the 4 model architectures 580 .

4개의 기본적인 모델 아키텍처(580)는, 도 7에 예시한 바와 같이, 서로 다른 제1 내지 제4 모델 아키텍처(581,582,583,584)로 나타낼 수 있다. The four basic model architectures 580 may be represented by different first to fourth model architectures 581 , 582 , 583 , and 584 , as illustrated in FIG. 7 .

이때 서로 다른 제1 내지 제4 모델 아키텍처(581,582,583,584)는 InceptionV3, VGGNet, VGG, ResNet, AlexNet, GoogleNet, InceptionResNetV2 등과 같은 공지된 딥러닝 아키텍처 중에서 각각 선택될 수 있다. 다른 방법으로서, 공지된 딥러닝 모델 아키텍처에서 하나를 선택한 후 해당 아키텍처의 히든 레이어(예, 컨벌루션레이어, 풀링레이어, FC레이어 등)의 일부를 변경하여 새로운 딥러닝 모델 아키텍처로 사용할 수도 있다. 예를 들어, 제1 모델 아키텍처(581)는 InceptionV3 이고, 제2 모델 아키텍처(582)는 InceptionV3 의 히든레이어 일부를 변형한 것이고, 제3 모델 아키텍처(583)는 InceptionResNetV2 이고, 제4 모델 아키텍처(584)는 InceptionResNetV2의 히든레이어 일부를 변형한 것일 수 있다.At this time, the first to fourth model architectures 581,582,583,584 different from each other may be selected from known deep learning architectures such as InceptionV3, VGGNet, VGG, ResNet, AlexNet, GoogleNet, InceptionResNetV2, and the like. Alternatively, after selecting one from a known deep learning model architecture, it is also possible to change some of the hidden layers (eg, convolutional layer, pooling layer, FC layer, etc.) of the architecture to use it as a new deep learning model architecture. For example, the first model architecture 581 is InceptionV3, the second model architecture 582 is a modified part of the hidden layer of InceptionV3, the third model architecture 583 is InceptionResNetV2, and the fourth model architecture 584 is ) may be a modified part of the hidden layer of InceptionResNetV2.

어떤 방식이든 4개의 서로 다른 모델 아키텍처(581,582,583,584)가 준비되면 각 모델 아키텍처(581,582,583,584)마다 서로 다른 12개의 이미지세트를 입력하고 딥러닝 학습을 수행함으로써 총 48개의 모델을 생성할 수 있다.In any way, if four different model architectures (581,582,583,584) are prepared, a total of 48 models can be generated by inputting 12 different image sets for each model architecture (581,582,583,584) and performing deep learning training.

한편 4개의 서로 다른 모델 아키텍처(581,582,583,584)는 각각 json파일로 저장되고, 각 모델 아키텍처(581,582,583,584)의 딥러닝 학습에 의해 생성 및 갱신되는 가중치(weight)는 hdf5 파일로 저장되는 것이 바람직하다.Meanwhile, the four different model architectures (581,582,583,584) are stored as json files, respectively, and the weights generated and updated by deep learning learning of each model architecture (581,582,583,584) are preferably stored as hdf5 files.

실행할 추론모델의 개수가 많은 경우에는 각각 가중치를 포함하여 별도의 파일로 컴파일된 추론모델을 로딩하는데 상당한 시간이 소요되지만, 이러한 방식으로 모델 아키텍처와 가중치를 분리된 파일로 저장하면 메모리에 로딩하는 시간을 크게 단축할 수 있기 때문에 판정에 소요되는 시간을 크게 단축시킬 수 있다.When the number of inference models to be executed is large, it takes a considerable amount of time to load the compiled inference model into separate files including weights, respectively, but if the model architecture and weights are saved as separate files in this way, the loading time into memory Since it can greatly shorten the time required for judgment, it is possible to greatly shorten the

도 6을 참조하면, 1개의 안저영상에서 데이터증폭된 96개의 이미지에 표 1의 코드를 부여하면, 제1 이미지는 [O,O,O,C], 제2 이미지는 [O,O,O,G], 제3 이미지는 [O,O,R90,C],,,,, 제96 이미지는 [S,U,R270,G]로 표시될 수 있다. 즉, 데이터증폭된 96개의 이미지에는 각각 적용된 필터링 요소를 의미하는 서로 다른 이미지코드가 부여될 수 있다.Referring to FIG. 6 , when the code of Table 1 is assigned to 96 data-amplified images in one fundus image, the first image is [O,O,O,C], and the second image is [O,O,O ,G], the third image may be [O,O,R90,C],,,,, and the 96th image may be displayed as [S,U,R270,G]. That is, each of the 96 data-amplified images may be given different image codes indicating the applied filtering factors.

그리고 96개의 이미지를 8개씩 순차적으로 또는 랜덤하게 분할하면, 서로 다른 이미지코드가 각 8개씩 포함된 총 12개의 이미지세트를 생성할 수 있다.And if 96 images are sequentially or randomly divided into 8 images, a total of 12 image sets including 8 different image codes can be generated.

이와 같이 12개의 이미지세트가 생성되면, 도 7에 예시한 바와 같이, 제1 모델 아키텍처(581)에 제1 이미지세트의 8개 이미지를 순차적으로 입력하고 학습을 통해 가중치를 갱신하는 방식으로 제1 추론모델을 생성할 수 있다.When the 12 image sets are generated in this way, as illustrated in FIG. 7 , 8 images of the first image set are sequentially input to the first model architecture 581 and the weights are updated through learning. Inference models can be created.

또한 제1 모델 아키텍처(581)에 제2 이미지세트의 8개 이미지를 순차적으로 입력하고 학습을 통해 가중치를 갱신하는 방식으로 제2 추론모델을 생성할 수 있다.In addition, the second inference model may be generated by sequentially inputting eight images of the second image set to the first model architecture 581 and updating the weights through learning.

이러한 방식을 계속 적용하여, 제1 모델 아키텍처(581)에 제12 이미지세트의 8개 이미지를 순차적으로 입력하고 학습을 통해 가중치를 갱신하는 방식으로 제12 추론모델을 생성할 수 있다.By continuing to apply this method, the twelfth inference model can be generated by sequentially inputting 8 images of the twelfth image set to the first model architecture 581 and updating the weights through learning.

제2 모델 아키텍처(582)에 대해서도 동일한 방법을 적용하여 제1 내지 제12 이미지세트를 입력하고 학습을 통해 제13 내지 제24 추론모델을 생성할 수 있다.The same method may be applied to the second model architecture 582 to input the first to twelfth image sets and to generate thirteenth to twenty-fourth inference models through learning.

또한 제3 모델 아키텍처(583)에 대해서도 동일한 방법을 적용하여 제1 내지 제12 이미지세트를 입력하고 학습을 통해 제25 내지 제36 추론모델을 생성할 수 있다.In addition, by applying the same method to the third model architecture 583 , the first to twelfth image sets may be input and 25th to 36th inference models may be generated through learning.

또한 제4 모델 아키텍처(584)에 대해서도 동일한 방법을 적용하여 제1 내지 제12 이미지세트를 입력하고 학습을 통해 제37 내지 제48 추론모델을 생성할 수 있다.In addition, by applying the same method to the fourth model architecture 584, the first to twelfth image sets may be input and 37th to 48th inference models may be generated through learning.

이상의 과정은 1장의 안저여상을 이용하여 모델 학습을 수행한 것이므로 판정 정확도를 높이기 위해서는 더 많은 안저영상을 이용한 모델 학습을 수행해야 한다. 본 출원인은 정상 안저영상 2,000장 및 녹내장 안저영상 2,000장을 이용하여 지도학습을 수행함으로써 녹내장 판정의 정확도를 크게 향상시킬 수 있었다. 다만 학습량이 특별히 한정되지 않음은 물론이다.In the above process, model learning was performed using one fundus image, so in order to increase the accuracy of determination, model learning using more fundus images should be performed. The present applicant was able to significantly improve the accuracy of glaucoma determination by performing supervised learning using 2,000 normal fundus images and 2,000 glaucoma fundus images. However, it goes without saying that the amount of learning is not particularly limited.

한편 다른 안저영상을 이용하여 모델 학습을 수행하는 경우에도, 각 안저영상을 96개로 증폭한 후 각 추론모델마다 8개씩의 이미지를 입력하는 것이 바람직하다.Meanwhile, even when model learning is performed using other fundus images, it is preferable to input 8 images for each inference model after amplifying each fundus image to 96.

특히, 판정의 정확도를 높이기 위해서는 각 추론모델에 입력되는 이미지세트의 이미지코드는 항상 동일한 것이 바람직하다.In particular, in order to increase the accuracy of determination, it is preferable that the image codes of the image sets input to each inference model are always the same.

일 예로서, 제1 추론모델을 생성하기 위하여 제1 모델 아키텍처(581)에 제1 학습용 영상에서 증폭된 96개 이미지 중에서 제1 이미지세트(도 6 참조)를 입력하였다면, 이후에 제2 학습용 영상을 96개로 데이터증폭한후 제1 추론모델에 입력하는 경우에도 이전 학습에 사용된 이미지코드와 동일한 코드를 갖는 제2 학습용 영상의 제1 이미지 세트(도 6 참조)를 입력하는 것이 바람직하다. 또한 실제 질병판정을 위하여 판정용 안저영상을 96개로 데이터증폭한후 제1 추론모델을 실행하는 경우에도 제1 추론모델에는 학습에 사용된 이미지코드와 동일한 코드를 갖는 판정용 안저영상의 제1 이미지 세트(도 6 참조)를 입력하는 것이 바람직하다.As an example, if a first image set (refer to FIG. 6 ) among 96 images amplified from the first training image is input to the first model architecture 581 to generate the first inference model, thereafter, the second training image Even when the data is amplified to 96 and input to the first inference model, it is preferable to input the first image set of the second training image (see FIG. 6 ) having the same code as the image code used in the previous learning. In addition, even when the first inference model is executed after amplifying the data of 96 judgment fundus images for actual disease determination, the first inference model has the same code as the image code used for learning. It is preferable to input a set (see Fig. 6).

다른 예로서, 제14 추론모델을 생성하기 위하여 제2 모델 아키텍처(582)에 제1 학습용 영상에서 증폭된 96개 이미지 중에서 제2 이미지세트(도 6 참조)를 입력하였다면, 이후에 제2 학습용 영상을 96개로 데이터증폭한 후 제14 추론모델에 입력하는 경우에도 이전 학습에 사용된 이미지코드와 동일한 코드를 갖는 제2 학습용 영상의 제2 이미지 세트(도 6 참조)를 입력하는 것이 바람직하다. 또한 실제 질병판정을 위하여 판정용 안저영상을 96개로 데이터증폭한후 제14 추론모델을 실행하는 경우에도 제14 추론모델에는 학습에 사용된 이미지코드와 동일한 코드를 갖는 판정용 안저영상의 제2 이미지 세트를 입력하는 것이 바람직하다.As another example, if a second image set (refer to FIG. 6 ) from among 96 images amplified from the first training image is input to the second model architecture 582 to generate the 14th inference model, thereafter, the second training image It is preferable to input the second image set (see FIG. 6 ) of the second training image having the same code as the image code used in the previous training even when the data is amplified to 96 and then input to the 14th inference model. In addition, even when the 14th inference model is executed after amplifying the data of 96 judgment fundus images for actual disease determination, the 14th reasoning model has the same code as the image code used for learning the second image of the judgment fundus image. It is preferable to enter a set.

또 다른 예로서, 제36 추론모델을 생성하기 위하여 제3 모델 아키텍처(583)에 제1 학습용 영상에서 증폭된 96개 이미지 중에서 제12 이미지세트(도 6 참조)를 입력하였다면, 이후에 제2 학습용 영상을 96개로 데이터증폭한 후 제36 추론모델에 입력하는 경우에도 이전 학습에 사용된 이미지코드와 동일한 코드를 갖는 제2 학습용 영상의 제12 이미지 세트(도 6 참조)를 입력하는 것이 바람직하다. 또한 실제 질병판정을 위하여 판정용 안저영상을 96개로 데이터증폭한후 제36 추론모델을 실행하는 경우에도 제36 추론모델에는 학습에 사용된 이미지코드와 동일한 코드를 갖는 판정용 안저영상의 제12 이미지 세트를 입력하는 것이 바람직하다.As another example, if the twelfth image set (refer to FIG. 6 ) among 96 images amplified from the first training image is input to the third model architecture 583 to generate the 36th inference model, thereafter, for the second training Even when the data is amplified to 96 images and then input to the 36th inference model, it is preferable to input the twelfth image set (refer to FIG. 6 ) of the second training image having the same code as the image code used for the previous learning. In addition, even when the 36th inference model is executed after amplifying the data of 96 judgment fundus images for actual disease determination, the 36th inference model has the same code as the image code used for learning. It is preferable to enter a set.

마찬가지로 제37 추론모델을 생성하기 위하여 제4 모델 아키텍처(584)에 제1 학습용 영상에서 증폭된 96개 이미지 중에서 제1 이미지세트(도 6 참조)를 입력하였다면, 이후에 제2 학습용 영상을 96개로 데이터증폭한 후 제37 추론모델을 실행하는 경우에도 이전 학습에 사용된 이미지코드와 동일한 제2 학습용 영상의 제1 이미지 세트(도 6 참조)를 입력하는 것이 바람직하다. 또한 실제 질병판정을 위하여 판정용 안저영상을 96개로 데이터증폭한후 제37 추론모델을 실행하는 경우에도 제37 추론모델에는 학습에 사용된 이미지코드와 동일한 코드를 갖는 판정용 안저영상의 제1 이미지 세트를 입력하는 것이 바람직하다.Similarly, if the first image set (see FIG. 6 ) among 96 images amplified from the first training image is input to the fourth model architecture 584 to generate the 37th inference model, thereafter, the second training image is reduced to 96. Even when the 37th inference model is executed after data amplification, it is preferable to input the same first image set (see FIG. 6 ) of the second training image as the image code used for the previous training. In addition, even when the 37th inference model is executed after amplifying the data of 96 judgment fundus images for actual disease determination, the 37th inference model has the same code as the image code used for learning the first image of the judgment fundus image. It is preferable to enter a set.

이상에서 설명한 바와 같이, 본 발명의 실시예에 따르면 4개의 모델 아키텍처(581,582,583,584)와 1개의 안저영상에서 증폭된 12개의 이미지세트를 이용하여 48개의 추론모델을 생성할 수 있다.As described above, according to an embodiment of the present invention, 48 inference models can be generated using four model architectures 581,582,583,584 and 12 image sets amplified from one fundus image.

48개의 추론모델을 생성하면, 도 8에 예시한 바와 같이, 각 추론모델에 각각 대응하는 48개의 가중치파일(591-1,591-2,,,,,594-12)이 생성된다.When 48 inference models are generated, as illustrated in FIG. 8 , 48 weight files 591-1, 591-2,,,,,594-12 corresponding to each inference model are generated.

이때 48개의 가중치파일(591-1,591-2,,,,,594-12)과 이에 대응하는 모델 아키텍처(581,582,583,584)를 이용하여 48개의 추론모델을 별도의 파일로 컴파일링할 수도 있다.At this time, 48 inference models may be compiled into separate files using 48 weight files 591-1,591-2,,,,,594-12 and corresponding model architectures 581,582,583,584.

그러나 본 발명의 실시예에서는, 앞서 설명한 바와 같이, 모델 로딩시간을 단축시키기 위하여 모델 아키텍처(581,582,583,584)는 json파일로 저장하고 48개의 가중치파일(591-1,591-2,,,,,594-12)은 hdf5 파일로 저장한다. 이와 같이 모델 아키텍처와 가중치파일을 분리하여 저장하면, 판정단계에서 모델 아키텍처(581,582,583,584)와 가중치파일(591-1,591-2,,,,,594-12)이 메모리(440)에 로딩되는 시간을 크게 단축시킬 수 있다.However, in the embodiment of the present invention, as described above, in order to shorten the model loading time, the model architecture (581,582,583,584) is stored as a json file and 48 weight files (591-1,591-2,,,,,594-12) is saved as an hdf5 file. When the model architecture and the weight file are stored separately as described above, the loading time of the model architecture (581,582,583,584) and the weight file (591-1,591-2,,,,,594-12) into the memory 440 in the determination step is greatly increased. can be shortened

추론모델 실행부(550)는 안저영상과 함께 판독명령이 입력되면 스토리지(450)에 저장된 모델 아키텍처(581,582,583,584)와 가중치파일(591-1,591-2,,,,,594-12)을 독출하여 메모리(440)에 로딩하여 48개의 추론모델을 실행한다.The inference model execution unit 550 reads the model architecture (581,582,583,584) and weight files (591-1,591-2,,,,,594-12) stored in the storage 450 when a read command is input together with the fundus image, and reads the memory Load 440 and run 48 inference models.

추론모델 실행부(550)는 영상전처리부(520) 및 데이터증폭부(530)로 판독할 안저영상의 전처리 및 데이터증폭을 요청하고, 데이터증폭된 96개의 이미지를 12개의 이미지세트로 분할한 후 각 추론모델에 입력한다.The inference model execution unit 550 requests preprocessing and data amplification of the fundus image to be read by the image preprocessing unit 520 and the data amplification unit 530, and after dividing 96 data-amplified images into 12 image sets, each input into the inference model.

한편, 본 발명의 실시예에서는 판정에 걸리는 시간을 단축하기 위하여 판정할 안저영상을 대상으로 이미지전처리 및 데이터증폭을 수행할 경우에는 이미지처리 과정에서 생성되는 파일을 스토리지(450)에 저장하지 않고 안저영상을 메모리(440)에 로딩한 상태에서 메모리 연산만으로 이미지전처리와 데이터증폭을 수행하고, 처리결과를 추론모델에 입력할 수 있다.On the other hand, in the embodiment of the present invention, when image pre-processing and data amplification are performed on the fundus image to be determined in order to shorten the time taken for determination, the file generated in the image processing process is not stored in the storage 450 but the fundus In a state in which the image is loaded into the memory 440 , image preprocessing and data amplification may be performed only by memory operation, and the processing result may be input to the inference model.

이 경우에도, 앞서 설명한 바와 같이 데이터증폭을 통해 생성된 96개의 이미지를 12개의 이미지세트로 분할하고, 추론모델을 학습할 때 사용한 이미지세트와 동일한 이미지코드를 갖는 이미지세트를 대응하는 추론모델에 입력하는 것이 바람직하다.Even in this case, as described above, 96 images generated through data amplification are divided into 12 image sets, and an image set having the same image code as the image set used to train the inference model is input to the corresponding inference model. It is preferable to do

또한 본 발명의 실시예에서는 판정 시간을 단축시키기 위하여 판정단계에서는 48개의 스레드를 할당하여 48개의 추론모델을 동시에 병렬 처리한다.In addition, in the embodiment of the present invention, 48 threads are allocated in the decision step in order to shorten the decision time, and 48 inference models are concurrently processed in parallel.

즉, 도 9에 나타낸 바와 같이, 스레드제어부(570)를 통해 제1 GPU(420)에는 제1 내지 제24 스레드(601,,,,,624)를 할당하고 제2 GPU(430)에는 제25 내지 제48스레드(625,,,,,648)를 할당한 후, 각 스레드마다 하나의 추론모델을 실행하도록 설정할 수 있다.That is, as shown in FIG. 9 , the first to twenty-fourth threads 601,,,,,624 are allocated to the first GPU 420 through the thread control unit 570, and the twenty-fifth threads are allocated to the second GPU 430. After allocating the to 48th threads 625,,,,,648, it may be set to execute one inference model for each thread.

이렇게 하면, 도 10에 나타낸 바와 같이, 48개의 추론모델에는 각각 8개의 이미지를 포함하는 이미지세트가 입력되고 딥러닝 연산을 통해 각 추론모델마다 8개의 추론값을 출력한다.In this way, as shown in FIG. 10, an image set including 8 images is input to each of the 48 inference models, and 8 inference values are output for each inference model through a deep learning operation.

본 발명의 실시예에서는 이러한 과정이 48개의 스레드에서 동시에 병렬 처리되므로 판정 속도를 크게 단축시킬 수 있다.In the embodiment of the present invention, since this process is concurrently processed in parallel by 48 threads, the speed of determination can be greatly reduced.

판정부(560)는 48개의 추론모델에서 각각 8개씩 출력된 총384개의 추론값을 이용하여 다양한 방식으로 질병의 유무 및/또는 정도를 나타내는 질병지표를 출력할 수 있다. 예를 들어 다수 추론값의 평균값만을 출력할 수도 있다.The determination unit 560 may output a disease index indicating the presence and/or degree of a disease in various ways using a total of 384 inference values outputted from each of the 48 inference models, 8 each. For example, only the average value of multiple inference values may be output.

판정부(560)에서 출력된 질병지표는 웹서버(510)를 통해 영상제공단말(100)로 전송되거나, 사전에 설정된 단말로 전송될 수 있다.The disease index output from the determination unit 560 may be transmitted to the image providing terminal 100 through the web server 510 or may be transmitted to a preset terminal.

본 발명의 실시예에 따르면, 48개의 추론모델을 2개의 GPU(420,430)에 분산하여 로딩하고 판정단계에서는 48개의 스레드를 통해 병렬로 처리하므로 추론모델의 판정 시간을 크게 단축시킬 수 있다. 실험에 따르면, 추론모델이 로딩된 상태에서는 안저영상으로부터 평균확률을 산출하는데 소요되는 시간이 1.5초 미만이었으며 이를 통해 원격지의 의사 및/또는 환자에게 실시간으로 웹기반의 서비스를 제공할 수 있음을 알 수 있다.According to an embodiment of the present invention, since 48 inference models are distributed and loaded on two GPUs 420 and 430 and processed in parallel through 48 threads in the determination step, the determination time of the inference model can be greatly reduced. According to the experiment, when the inference model was loaded, the time required to calculate the average probability from the fundus image was less than 1.5 seconds. can

또한 본 발명의 실시예에 따르면 모델 아키텍처와 가중치파일을 분리하여 저장함으로써 모델 로딩시간을 크게 단축시킬 수 있으며, 이를 통해 장치운영 및 관리자의 편의를 크게 개선할 수 있다.In addition, according to the embodiment of the present invention, by storing the model architecture and the weight file separately, the model loading time can be greatly shortened, and thus, the convenience of the device operation and the administrator can be greatly improved.

한편 스레드제어부(570)는 멀티스레딩을 위하여 스레드풀 생성, 스레드 할당, 스레드 상태(실행대기, 일시정지, 종료 등)등의 역할을 수행한다. On the other hand, the thread control unit 570 performs the roles of creating a thread pool, allocating a thread, and a thread state (execution waiting, pause, termination, etc.) for multi-threading.

본 발명의 실시예에서는 판정단계에서는 판정속도를 향상시키기 위하여 추론모델의 개수와 동일한 개수의 스레드를 생성하였으나 학습단계에서는 이와 다른 방식으로 스레드를 할당할 수도 있다.In the embodiment of the present invention, the same number of threads as the number of inference models are created in the decision step to improve the decision speed, but threads may be allocated in a different way in the learning step.

예를 들어 도 11에 예시한 바와 같이, 제1 GPU(420)에는 제1 스레드(710)와 제2 스레드(720)를 할당하고 제2 GPU(430)에는 제3 스레드(730)와 제4 스레드(740)를 할당한 후 제1 스레드(710)에서는 제1 내지 제12 추론모델을 실행하고, 제2 스레드(720)에서는 제13 내지 제24 추론모델을 실행하고, 제3 스레드(730)에서는 제25 내지 제36 추론모델을 실행하고, 제4 스레드(740)에서는 제37 내지 제48 추론모델을 실행하도록 제어할 수도 있다. For example, as illustrated in FIG. 11 , a first thread 710 and a second thread 720 are allocated to the first GPU 420 , and a third thread 730 and a fourth thread 720 are allocated to the second GPU 430 . After allocating the thread 740 , the first thread 710 executes the first to twelfth reasoning models, the second thread 720 executes the thirteenth to 24th reasoning models, and the third thread 730 . In , the 25th to 36th inference models are executed, and the fourth thread 740 may be controlled to execute the 37th to 48th inference models.

이 경우 스레드제어부(570)는 각 스레드에 실행될 추론모델을 랜덤하게 할당할 수도 있고 각 스레드의 작업량을 비슷한 수준으로 맞추기 위하여 비슷한 크기의 추론모델을 할당할 수도 있다. 즉, 예를 들어 제1 내지 12 모델, 제13 내지 제24 모델, 제25 내지 제36 모델, 제37 내지 제48 모델 중에서 각각 비슷한 크기의 추론모델을 하나씩 선택하여 4개의 스레드(710,720,730,740)에서 동시에 실행되도록 제어할 수도 있다. In this case, the thread control unit 570 may randomly allocate a reasoning model to be executed to each thread, or may allocate a reasoning model of a similar size to match the workload of each thread to a similar level. That is, for example, one inference model of a similar size is selected from among the first to twelfth models, the 13th to the 24th models, the 25th to the 36th models, and the 37th to the 48th models, and simultaneously in the four threads 710, 720, 730 and 740. You can also control it to run.

또한 스레드제어부(570)는 48개의 추론모델 중에서 공통 특징을 갖는 추론모델을 동일한 GPU 또는 동일한 스레드에 할당할 수도 있다. 예를 들어 추론모델 중에서 컬러이미지를 기반으로 학습된 모델은 제1 GPU(420)에서 실행하고, 흑백이미지를 기반으로 학습된 모델은 제2 GPU(430)에서 실행하도록 설정할 수도 있다.Also, the thread control unit 570 may allocate an inference model having a common characteristic among 48 inference models to the same GPU or the same thread. For example, among the inference models, a model learned based on a color image may be executed on the first GPU 420 , and a model learned based on a black-and-white image may be set to be executed on the second GPU 430 .

한편 판독장치(400)의 기능을 구현하는, 웹서버(510), 영상전처리부(520), 데이터증폭부(530), 추론모델 생성부(540), 추론모델 실행부(550), 판정부(560), 스레드제어부(570) 등의 각 구성요소 중에서 적어도 하나 또는 일부는 하드웨어로 구현될 수도 있고, 소프트웨어와 하드웨어의 조합으로 구현될 수도 있다. 이때 하드웨어는 주문형 반도체(ASIC)일 수도 있다.On the other hand, the web server 510, the image preprocessor 520, the data amplification unit 530, the inference model generation unit 540, the inference model execution unit 550, the determination unit ( 560), and at least one or a part of each component such as the thread control unit 570 may be implemented as hardware or a combination of software and hardware. In this case, the hardware may be an application specific integrated circuit (ASIC).

또한 본 발명의 실시예에 따른 질병 예측 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다.In addition, the disease prediction method according to an embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable recording medium.

이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 관련 통상의 기술자에게 공지되어 사용 가능한 것일 수도 있다.In this case, the computer-readable recording medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art related to computer software.

컴퓨터로 판독 가능한 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등에서 적어도 하나를 포함할 수 있다.The computer-readable recording medium includes magnetic media such as hard disks, floppy disks and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. It may include at least one of optical media (Magneto-Optical Media), ROM, RAM, flash memory, and the like.

또한 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.In addition, the program instructions may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

또한 이상에서는 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 전술한 실시예에 한정되지 않고 구체적인 적용 과정에서 다양하게 변형 또는 수정되어 실시될 수 있다.In addition, although preferred embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments and may be implemented with various modifications or modifications in a specific application process.

일 예로서, 본 명세서에서는 안저영상을 이용하여 예측하고자 하는 질병을 특별히 한정하지 않았으므로 본 발명에 따른 질병 예측 방법은 안저영상을 이용한 딥러닝 학습을 통해 녹내장, 당뇨성망막병증, 황반변성, 심장질환, 치매 등의 다양한 질병을 예측하는데 활용될 수 있다.As an example, since the present specification does not specifically limit the disease to be predicted using the fundus image, the disease prediction method according to the present invention is glaucoma, diabetic retinopathy, macular degeneration, heart through deep learning learning using the fundus image. It can be used to predict various diseases such as disease and dementia.

다른 예로서, 이상에서는 판독장치(400)가 원격의 영상제공단말(100)로부터 통신망(200)을 거쳐 안저영상을 수신하는 경우를 설명하였으나 반드시 이에 한정되는 것은 아니다. 예를 들어, 병원 등에 판독장치(400)를 설치하고 안저카메라로부터 직접 안저영상을 수신하여 질병 여부를 추론하는데 활용될 수도 있다.As another example, in the above description, the case in which the reading device 400 receives the fundus image from the remote image providing terminal 100 through the communication network 200 has been described, but the present invention is not limited thereto. For example, the reader 400 may be installed in a hospital, etc. and the fundus image may be directly received from the fundus camera to infer whether there is a disease.

또 다른 예로서, 이상에서는 원본영상을 이용한 데이터증폭 방법으로서 영상필터, 영상 확대, 영상 회전 및 컬러 여부를 적용하였으나 이중에서 적어도 하나의 요소를 생략하거나 다른 요소를 추가함으로써 데이터증폭부에서 생성되는 이미지의 개수를 변경할 수도 있다.As another example, in the above, image filter, image enlargement, image rotation, and color are applied as data amplification methods using the original image. You can also change the number of

또 다른 예로서, 전술한 실시예에서는 4개의 모델아키텍처와 12개의 이미지세트를 이용하여 48개의 추론모델을 생성하는 것으로 설명하였으나 모델아키텍처, 이미지세트 및 추론모델의 개수가 반드시 이에 한정되지 않음은 물론이다.As another example, in the above embodiment, it has been described that 48 inference models are generated using 4 model architectures and 12 image sets, but the number of model architectures, image sets, and inference models is not necessarily limited thereto. am.

또 다른 예로서, 이상에서는 판독장치(400)가 2개의 GPU(420,430)를 포함하는 것으로 설명하였으나 GPU의 개수가 이에 한정되는 것은 아니므로 경우에 따라서는 1개의 GPU만을 사용할 수도 있고 3개 이상의 GPU를 사용할 수도 있다.As another example, in the above, it has been described that the reading device 400 includes two GPUs 420 and 430, but the number of GPUs is not limited thereto. In some cases, only one GPU may be used, or three or more GPUs. can also be used.

또 다른 예로서, 스레드 제어부(570)가 할당하는 스레드의 개수가 반드시 전술한 실시예에 한정되는 것은 아니므로 추론모델이나 입력데이터의 종류에 따라 스레드의 개수는 적절히 조절될 수도 있다.As another example, since the number of threads allocated by the thread controller 570 is not necessarily limited to the above-described embodiment, the number of threads may be appropriately adjusted according to the type of inference model or input data.

이상에서 설명한 바와 같이 본 발명은 구체적인 적용 과정에서 다양하게 변형 또는 수정되어 실시될 수 있으며, 변형 또는 수정된 실시예도 후술하는 특허청구범위에 개시된 본 발명의 기술적 사상을 포함한다면 본 발명의 권리범위에 속함은 당연하다 할 것이다.As described above, the present invention can be implemented with various modifications or modifications in the specific application process, and the modified or modified embodiments are also within the scope of the present invention if the technical ideas of the present invention disclosed in the claims to be described later are included. belonging will be taken for granted.

100: 영상제공단말 200: 통신망 400: 판독장치
410: CPU 420: 제1 GPU 430: 제2 GPU
440: 메모리 450: 스토리지 460: 입력부
470: 디스플레이 480: 통신부 510: 웹서버
520: 영상전처리부 530: 데이터증폭부 540: 추론모델 생성부
550: 추론모델실행부 560: 판정부 570: 스레드제어부
580: 모델아키텍처 590: 가중치파일
100: image providing terminal 200: communication network 400: reading device
410: CPU 420: first GPU 430: second GPU
440: memory 450: storage 460: input
470: display 480: communication unit 510: web server
520: image preprocessor 530: data amplification unit 540: inference model generation unit
550: inference model execution unit 560: determination unit 570: thread control unit
580: model architecture 590: weight file

Claims (9)

1개의 안저영상에 p개의 필터링 요소를 적용하여 p개의 이미지로 증폭시키는 데이터 증폭부;
데이터 증폭부에서 생성된 p 개의 학습용 이미지를 q개의 학습용 이미지세트로 분할하고, 딥러닝 기반의 서로 다른 r개의 모델 아키텍처마다 q개의 학습용 이미지세트를 입력하여 q*r개의 서로 다른 추론모델을 생성하는 추론모델 생성부;
q*r개의 추론모델을 메모리에 로딩하고, 데이터 증폭부에서 생성된 p개의 판정용 이미지를 q개의 판정용 이미지세트로 분할하고, 각 추론모델마다 하나씩의 판정용 이미지세트를 입력하여 질병추론값을 산출하는 추론모델 실행부;
추론모델 실행부에서 산출된 각 추론모델의 질병추론값을 이용하여 질병지표를 산출하는 판정부
를 포함하는 질병 예측 시스템
a data amplifying unit applying p filtering elements to one fundus image to amplify p images;
It divides the p training images generated by the data amplification unit into q training image sets, and generates q * r different inference models by inputting q training image sets for each r different deep learning-based model architectures. inference model generation unit;
Load q * r inference models into the memory, divide the p judgment images generated by the data amplification unit into q judgment image sets, and input one judgment image set for each inference model to obtain a disease inference value. an inference model execution unit that calculates ;
A decision unit that calculates a disease index using the disease inference value of each inference model calculated by the inference model execution unit
Disease prediction system comprising
제1항에 있어서,
데이터 증폭부는 생성된 이미지마다 적용된 필터링 요소를 의미하는 이미지코드를 부여하며,
추론모델 생성부는 매 학습단계마다 동일한 추론모델에는 동일한 이미지코드를 갖는 이미지세트를 입력하며,
추론모델 실행부는 각 추론모델마다 서로 다른 판정용 이미지세트를 입력하되 각 추론모델에는 학습 과정에서 사용된 학습용 이미지세트와 동일한 이미지코드를 갖는 판정용 이미지세트를 입력하는 것을 특징으로 하는 질병 예측 시스템
According to claim 1,
The data amplification unit gives an image code that means a filtering factor applied to each generated image,
The inference model generator inputs an image set having the same image code to the same inference model at every learning step,
A disease prediction system, characterized in that the inference model execution unit inputs a different set of images for judgment for each inference model, but inputs a set of images for judgment having the same image code as the set of images for learning used in the learning process to each inference model.
제1항에 있어서,
데이터 증폭부는, p개의 판정용 이미지를 생성할 때 스토리지에 관련 파일을 저장하지 않고 메모리 연산만으로 판정용 이미지를 생성한 후 각 추론모델로 전달하는 것을 특징으로 하는 질병 예측 시스템
According to claim 1,
The data amplification unit generates the image for determination only by memory operation without storing the related file in storage when generating p images for determination, and then transmits the image to each inference model.
제1항에 있어서,
추론모델 생성부는, 추론모델을 생성한 후에 각 모델 아키텍처는 json파일 형식으로 저장하고, 학습 결과 생성된 각 추론모델의 가중치파일은 hdf5 파일 형식으로 저장하는 것을 특징으로 하는 질병 예측 시스템
According to claim 1,
Inference model generation unit, after generating the inference model, each model architecture is stored in a json file format, and the weight file of each inference model generated as a result of learning is stored in an hdf5 file format.
제1항에 있어서,
추론모델 실행부는, 판정을 위하여 q*r개의 스레드를 생성하고 각 스레드 마다 하나씩의 추론모델을 실행하는 것을 특징으로 하는 질병 예측 시스템
According to claim 1,
The inference model execution unit generates q * r threads for determination and executes one inference model for each thread.
제1항에 있어서,
추론모델 실행부는 q*r개의 추론모델을 각각 실행하여 입력된 p개의 판정용 이미지에 각각 대응하는 p개의 질병추론값을 산출하고,
판정부는 p*q*r 개의 질병추론값을 평균하여 질병지표를 산출하는 것을 특징으로 하는 질병 예측 시스템
According to claim 1,
The inference model execution unit executes q * r inference models, respectively, and calculates p disease inference values corresponding to the input p judgment images, respectively,
A disease prediction system, characterized in that the determination unit calculates a disease index by averaging p * q * r disease inferred values
제1항에 있어서,
서로 다른 r개의 모델 아키텍처는, InceptionV3, VGGNet, VGG, ResNet, AlexNet, GoogleNet, InceptionResNetV2 중에서 적어도 하나를 포함하거나, 이들 중에서 적어도 하나의 히든레이어를 변형한 것을 포함하는 것을 특징으로 하는 질병 예측 시스템.
According to claim 1,
The different r model architectures include at least one of InceptionV3, VGGNet, VGG, ResNet, AlexNet, GoogleNet, and InceptionResNetV2, or at least one hidden layer from among them. Disease prediction system, characterized in that it comprises a modified one.
1개의 안저영상에 p개의 필터링 요소를 적용하여 p개의 이미지로 증폭시키는 학습용 데이터 증폭 단계;
데이터 증폭단계에서 생성된 p 개의 학습용 이미지를 q개의 학습용 이미지세트로 분할하고, 딥러닝 기반의 서로 다른 r개의 모델 아키텍처마다 q개의 학습용 이미지세트를 입력하여 q*r개의 서로 다른 추론모델을 생성하는 추론모델 생성단계;
1개의 안저영상에 p개의 필터링 요소를 적용하여 p개의 이미지로 증폭시키는 판정용 데이터 증폭 단계;
q*r개의 추론모델을 메모리에 로딩하고, 판정용 데이터 증폭단계에서 생성된 p개의 판정용 이미지를 q개의 판정용 이미지세트로 분할하고, 각 추론모델마다 하나씩의 판정용 이미지세트를 입력하여 질병추론값을 산출하는 추론모델 실행단계;
추론모델 실행단계에서 산출된 각 추론모델의 질병추론값을 이용하여 질병지표를 산출하는 판정단계
를 포함하는 질병 예측 방법
A learning data amplification step of applying p filtering elements to one fundus image and amplifying the p images;
It divides the p training images generated in the data amplification step into q training image sets, and generates q * r different inference models by inputting q training image sets for each r different deep learning-based model architectures. inference model generation step;
a decision data amplification step of applying p filtering elements to one fundus image and amplifying them into p images;
q * r inference models are loaded into the memory, p judgment images generated in the decision data amplification step are divided into q judgment image sets, and one judgment image set is input for each inference model. an inference model execution step of calculating an inference value;
A decision step of calculating a disease index using the disease inference value of each inference model calculated in the inference model execution step
A disease prediction method comprising
제8항에 있어서,
학습용 데이터 증폭단계 및 판정용 데이터 증폭단계에서는 생성된 이미지마다 적용된 필터링 요소를 의미하는 이미지코드를 각각 부여하고,
추론모델 생성단계에서는 매 학습단계마다 동일한 추론모델에는 동일한 이미지코드를 갖는 이미지세트를 입력하며,
추론모델 실행단계에서는 각 추론모델마다 서로 다른 판정용 이미지세트를 입력하되 각 추론모델에는 학습 과정에서 사용된 학습용 이미지세트와 동일한 이미지코드를 갖는 판정용 이미지세트를 입력하는 것을 특징으로 하는 질병 예측 방법
9. The method of claim 8,
In the data amplification step for learning and the data amplification step for judgment, an image code, which means a filtering element applied to each generated image, is given, respectively,
In the inference model generation step, an image set with the same image code is input to the same inference model at every learning step,
In the inference model execution step, a different judgment image set is input for each inference model, but a judgment image set having the same image code as the training image set used in the learning process is input to each inference model.
KR1020200020794A 2020-02-20 2020-02-20 Disease prediction system and method based on deep learning using fundus image KR20210106096A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200020794A KR20210106096A (en) 2020-02-20 2020-02-20 Disease prediction system and method based on deep learning using fundus image

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200020794A KR20210106096A (en) 2020-02-20 2020-02-20 Disease prediction system and method based on deep learning using fundus image

Publications (1)

Publication Number Publication Date
KR20210106096A true KR20210106096A (en) 2021-08-30

Family

ID=77502029

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200020794A KR20210106096A (en) 2020-02-20 2020-02-20 Disease prediction system and method based on deep learning using fundus image

Country Status (1)

Country Link
KR (1) KR20210106096A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101880678B1 (en) 2016-10-12 2018-07-20 (주)헬스허브 System for interpreting medical images through machine learnings

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101880678B1 (en) 2016-10-12 2018-07-20 (주)헬스허브 System for interpreting medical images through machine learnings

Similar Documents

Publication Publication Date Title
US11869184B2 (en) Method and device for assisting heart disease diagnosis
Schmidt-Erfurth et al. Artificial intelligence in retina
KR101848321B1 (en) Method for facilitating dignosis of subject based on fovea image thereof and apparatus using the same
KR102285878B1 (en) Fundus Image Processing Using Machine Learning Models
WO2020200087A1 (en) Image-based detection of ophthalmic and systemic diseases
KR20200005411A (en) Cardiovascular disease diagnosis assistant method and apparatus
US11771318B2 (en) Method for supporting reading of fundus image of subject, and device using same
US20240144478A1 (en) Method and device for assisting heart disease diagnosis
KR101848322B1 (en) Method for facilitating generation of finding and dignosis data of subject based on fovea image thereof and apparatus using the same
CN112868068B (en) Processing fundus camera images using machine learning models trained with other modes
US20220218198A1 (en) Method and system for measuring pupillary light reflex with a mobile phone
KR20220122573A (en) Diagnosis assistance method and apparatus
CN113241183A (en) Treatment scheme prediction method and device
CN113362958A (en) Method and device for predicting effect after application of treatment scheme
CN116309346A (en) Medical image detection method, device, equipment, storage medium and program product
KR20210106096A (en) Disease prediction system and method based on deep learning using fundus image
US20240108276A1 (en) Systems and Methods for Identifying Progression of Hypoxic-Ischemic Brain Injury
US20220301152A1 (en) Predicting disease progression from tissue images and tissue segmentation maps
KR20210113084A (en) Method and system for predicting biomarker expression in medical image
Young et al. Automated Detection of Vascular Leakage in Fluorescein Angiography–A Proof of Concept
Rao et al. OCTAI: Smartphone-based Optical Coherence Tomography Image Analysis System
Dhinakaran et al. Keratoviz-A multistage keratoconus severity analysis and visualization using deep learning and class activated maps
WO2024057942A1 (en) Ocular fundus image processing device and ocular fundus image processing program
JP7452847B2 (en) State change estimation system
EP3905259A1 (en) Predictions for clinical decision support using patient specific physiological models

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right