전체 글 14

Segmentation of the lungs on a Chest X-ray image

안녕하세요! M_AI 입니다! 이번에는 Segmentation인데, U-Net을 이용한 기본적인 segmentation을 하는 방법을 소개하고자 합니다! 이 글을 읽으면 좋을 것 같은 사람들! - 기본적인 분류(classfication) 모델을 Tensorflow 2.x 버전으로 구현할 줄 아는 사람 - Clssification을 넘어서 Semantic segmentation을 하길 원하는데 오픈 소스를 봐도 이해가 가질 않는 사람. - 오픈 소스를 이해하더라도 입맛대로 수정하는 방법을 모르는 사람. 본 게시글의 목적 ※ 본 게시글은 딥러닝 모델의 상세한 이론적 설명보다는 모델 구조를 바탕으로 코드 분석하고 이해하는 데에 목적에 있습니다! ※ 상세한 이론을 원하면 다른 곳에서 찾아보시길 바랍니다! 본 게..

Tensorflow 2.4.1 Nvidia GPU(RTX 3090)로 학습 방법 - Windows 10에서 CUDA 11.0 설치, cudnn

안녕하세요! M_AI 입니다! 이번 포스팅은 Nvdia GPU인 RTX 3090을 Windosw 10 환경에서 Tensorflow 2.4.1 버전을 설치하는 방법을 소개해드리겠습니다. 본 게시글은 koos808 님의 Tstory에 포스팅한 내용을 기반으로 하여 설치를 설명하도록 하겠습니다. 티스토리 : https://koos808.tistory.com/41 [동작 확인]Windows10 RTX 3090 3080 Cuda, Cudnn, Tensorflow 데스크탑 Setting 연구실 컴퓨터 그래픽카드를 RTX 2080 TI에서 RTX 3090으로 바꿔서 CUDA와 CUDNN 등 여러 호환성 문제 때문에 몇일을 고생했습니다. 몇일 고생한 뒤에 나온 tf-nightly dev버전으로 설치하니까 잘 되더라구 ..

3. 기타 등등 2021.10.20

[영상처리] 안저 영상(Fundus Image)에서 심플하게 시신경유두(Optic Disc) 찾기

안녕하세요! M_AI 입니다! 이번 포스팅은 딥러닝 모델이 아닌, 그냥 안저 영상(fundus image)에서 간단하게 시신경유두(optic disc, OD)를 찾는 방법을 알려드리고자 합니다! 사실 제 학사 학위 논문 주제가 당뇨망막병증 안저 영상(diabetic retinopathy fundus image)에서 삼출물(exudates)를 찾는 것인데, 여기서 삼출물이 밝다는 특성을 이용하여 추출하고자 하였습니다. 하지만 이 과정에서 가장 큰 걸림돌이 다름이 아닌 optic disc인데, 이 optic disc 또한 fundus image에서 매우 밝아 이를 찾아서 제거할 필요가 있었습니다. 그래서 본인은 optic disc의 위치를 찾는 방법을 구글링을 했는데 그 방법들이 어마어마하더라구요. 처음에는..

3. 기타 등등 2021.05.31

Tensorflow AMD GPU로 학습 방법 - Ubuntu 설치, ROCm 설치, tensorflow-rocm 설치

안녕하세요! M_AI 입니다! 이번 포스팅은 코딩이 아니라, AMD GPU인 Radeon RX 470 / 480 / 570 / 570X / 580 / 580X / 590을 중점으로 Tensorflow를 학습하는 방법을 설명드리고자 합니다! 많은 사람들이 코딩을 윈도우(windows) 환경에 진행하고 GPU로 학습 시에는 NVDIA GPU로 많이 사용하여 일반적으로 GPU로 사용한다하면 NVDIA사 GPU를 떠올리곤 합니다. 그에 따라 tensorflow-gpu도 nvdia에 맞춰져있구요. 그래서 AMD GPU를 소유하고 있는 사람들은 정말로 난감합니다. - 혹시나 싶어서 tensorflow-gpu를 설치했는데 여전히 CPU로 학습하고 있고 - 텐서플로우에서는 nvdia만 지원한다고 하고.... 그래서 결..

3. 기타 등등 2021.05.31

[당뇨망막병증(Diabetic Retinopathy)에서 Grad-CAM으로 병변 찾기] 2. Model Training and Result

안녕하세요! M_AI 입니다! ​ 이전 글에서는 데이터셋 준비법을 알아보았습니다. 이전글 : [당뇨망막병증(Diabetic Retinopathy)에서 Grad-CAM으로 병변 찾기] 1. Data Preprocessing https://yhu0409.tistory.com/10 [당뇨망막병증(Diabetic Retinopathy)에서 Grad-CAM으로 병변 찾기] 1. Data Preprocessing 안녕하세요! M_AI 입니다! 이번에는 분류(Classfication) 모델에 대해서, 예측 결과가 왜 그렇게 나오는 지에 대해 파악하고자 Grad-CAM으로 파악하고자 합니다! 직전에는 당뇨망막병증(Diabetic Retinopa yhu0409.tistory.com 하지만 결과를 미리 말씀드리자면, 5개..

[당뇨망막병증(Diabetic Retinopathy)에서 Grad-CAM으로 병변 찾기] 1. Data Preprocessing

안녕하세요! M_AI 입니다! 이번에는 분류(Classfication) 모델에 대해서, 예측 결과가 왜 그렇게 나오는 지에 대해 파악하고자 Grad-CAM으로 파악하고자 합니다! 직전에는 당뇨망막병증(Diabetic Retinopathy) 데이터셋에서 segmentation 하고자 하였습니다. 이에 대해 궁금하시면 아래 링크 게시글을 읽어보시길 바랍니다! 이전글 : 2D Multi-Class Semantic Segmentation [1편] : https://yhu0409.tistory.com/7 [2D Multi-Class Semantic Segmentation] 1. Data Preprocessing 2021.05.11 (화) 수정 내역 1. 데이터 추가 - 검증 데이터가 적어 모델에 대한 신뢰성이 떨..

[2D Multi-Class Semantic Segmentation] 3. Model Training, Evaluation and Result

안녕하세요! M_AI 입니다! 이전까지 데이터에 대한 설명과 학습을 위한 데이터 전처리 및 데이터셋 준비법을 설명했습니다! 이전글 : [2D Multi-Class Semantic Segmentation] 2. U-Net with Backbone and Loss Function https://yhu0409.tistory.com/8 [2D Multi-Class Semantic Segmentation] 2. U-Net with Backbone and Loss Function 안녕하세요! M_AI 입니다! 이전글에서는 당뇨망막병증(Diabetic Retinopathy)에서 무엇을 세그멘테이션할 지와 이를 위해 데이터셋을 어떻게 준비하는 지에 대해 설명했습니다. 이번 장에서는 ImageNet yhu0409.tis..

[2D Multi-Class Semantic Segmentation] 2. U-Net with Backbone and Loss Function

안녕하세요! M_AI 입니다! 이전글에서는 당뇨망막병증(Diabetic Retinopathy)에서 무엇을 세그멘테이션할 지와 이를 위해 데이터셋을 어떻게 준비하는 지에 대해 설명했습니다. 이번 장에서는 ImageNet으로 Pre-trained된 모델을 Backbone으로 가지는 U-Net 모델을 구현 방법을 설명하도록 하겠습니다. 이전글 : [2D Multi-Class Semantic Segmentation] 1. Data Preprocessing https://yhu0409.tistory.com/7 [2D Multi-Class Semantic Segmentation] 1. Data Preprocessing 2021.05.11 (화) 수정 내역 1. 데이터 추가 - 검증 데이터가 적어 모델에 대한 신뢰성..

[2D Multi-Class Semantic Segmentation] 1. Data Preprocessing

2021.05.11 (화) 수정 내역 1. 데이터 추가 - 검증 데이터가 적어 모델에 대한 신뢰성이 떨어져, DIARETDB1 데이터셋을 추가. 2. 클래스 변경 - 기존에는 optic disc를 추가하여 함께 segmentation을 했으나 새로 추가하는 DIARETDB1에는 optic disc 마스크가 없기에, 여기에 맞춰서 optic disc를 제외하여 클래스 수를 4 -> 3으로 변경. Class 0 - Background 1 - MA + HE 2 - EX + SE 3. 데이터 증식(Data Augmentation) - 기존에는 회전은 5도 마다 해주었지만, 너무 많은 관계로 20도로 변경. 4. 데이터셋 생성 코드 수정 - 모델 검증을 K-Fold Cross Validation으로 하기 위해 t..

[RetinaNet] 5. Training the Model and Result

M_AI 입니다. Loss function의 설명에 이어서, 이제 RetinaNet을 해당 데이터셋에 학습하고, 그 결과를 시각화하여 보여주도록 하겠습니다! ​ 이전글 : [RetinaNet] 4. Loss Function https://yhu0409.tistory.com/5 [RetinaNet] 4. Loss Function M_AI 입니다. 이전 앵커 박스의 추가적인 설명과 데이터셋 준비에 방법에 이어서, 이제 RetinaNet의 핵심인 Loss function의 설명과 코드를 설명하도록 하겠습니다! 이전글 : [RetinaNet] 3. Prepare the Datase.. yhu0409.tistory.com 이 글을 읽으면 좋을 것 같은 사람들! - 기본적인 분류(classfication) 모델을 ..