AI/국제공동프로젝트 6

6. (코드 공유)Brain Tumor 예측 인공지능 - Flask 웹, HTML, UNet, pytoch, Jupyter Notebook (최종)

드디어 끝났습니다. 다른 모델도 적용하려고 했지만 뻥정확도? 라고 해야하나.. 훈련 정확도만 높고(대부분 90프로 이상) 예측 모델로 불러와 활용하면 예측조차 못하거나 두개골을 Tumor 라고 판단해버리는 미친 성능을 보여줬습니다. 그래서 가장 흔히 쓰이는 UNet 모델을 이용해 모델 생성부터 예측까지 진행할 수 있는 코드를 공유하기로 했습니다. (캡스톤때 했던것도 올려야하는데 잠이 항상 부족하네요) - UNet 모델이란? 1. 의료 이미지 예측에 많이 사용되는 모델로 모델의 구조가 마치 U 자 형태를 가지고 있어 UNet 이라고 합니다. 2. 가장 중요한 점은 UNet 은 인코더와 디코더가 있는데 인코더는 이미지의 크기가 점차 줄어듭니다. 디코더는 다시 커지구요. 인코더에서 이미지의 특징을 뽑아내고 디..

5. Brain Tumor 예측 인공지능 - 웹 구현하기(1), Flask 웹 개발

웹을 구현하기 위해 필요한것이 있습니다. Java Scrip, CSS, HTML 을 알아야 한다는 점입니다. 저는 오직 python 에 몰빵했기 때문에 웹을 만들기엔 만만치 않았습니다. (GPT 야 고마워!) Flask 라이브러리를 이용해서 웹에 사용될 백엔드를 구축했습니다. from werkzeug.utils import secure_filename from flask import Flask, render_template, request, jsonify, render_template import torch import time import warnings warnings.filterwarnings("ignore") import import_ipynb import models_web import Trai..

4. Brain Tumor 예측 인공지능 - 이미지 예측하기

모델의 학습이 끝났으면 이제 이 모델을 이용해 예측해봐야겠죠. import torch import torch.nn as nn from PIL import Image from torchvision.transforms.functional import to_tensor, to_pil_image import cv2 import numpy as np import os import matplotlib.pyplot as plt from skimage.segmentation import mark_boundaries import import_ipynb import models_web class predictUnet: def __init__(self, model_path): self.device = torch.device..

3. Brain Tumor 예측 인공지능 - 모델 훈련시키기

(라이브러리 버전은 이전 글을 확인해주세요.) 사용자가 선택한 값을 받아 훈련을 진행해야 합니다. 사용한 모델 중 가장 유명한 UNet 모델을 사용한 코드를 이용해 설명하겠습니다. 1. 사용 모델 : UNet 2. import 내용 from werkzeug.utils import secure_filename # 간단한 웹에 구현하기 위해 사용했습니다. from flask import Flask, render_template, request, jsonify, render_template # Flask 을 이용해서 웹을 구현했습니다. import torch # tensorflow 보단 pytorch 를 이용해 개발했습니다. import warnings # 개발 IDE 가 jupyter notebook 이라 ..

2. Brain Tumor 예측 인공지능 - UNet 모델 구조 구현

import torch import torch.nn as nn import torchvision import torchvision.models as models # UNet 모델 구조 정의 class UNet(nn.Module): def __init__(self, in_channels, out_channels): super(UNet, self).__init__() self.encoder1 = nn.Sequential( nn.Conv2d(in_channels, 64, 3, padding=1), nn.ReLU(inplace=True), nn.Conv2d(64, 64, 3, padding=1), nn.ReLU(inplace=True) ) self.pool1 = nn.MaxPool2d(2) self.encode..

1. Brain Tumor 예측 인공지능 - 개발 환경설정

1. 개발 환경 OS : Ubuntu 20.04 RAM : 125.9 Gb GPU : NVIDIA-A100-SXM4-40 Gb IDE : jupyter notebook python==3.8.10 CUDA==11.3 cuDNN==8 pytorch==1.12.1 chardet==5.0.1 Flask==2.0.1 werkzeug==2.0.1 markupsafe==2.0.1 Anaconda 환경에서 python 3.8.10 가상환경 생성 후 conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch 로 설치 2. 개발 목적 - 구글에서 다운로드한 임의의 Brian Tumor Image 를 예측하기 ..