logo
문의하기
서비스리소스블로그아카데미
logo
문의하기
logo

데이터와 IT 흐름을 읽는 시선,
뉴스레터 EXEM View 구독하기

Subscribe

주식회사 엑셈

서울시 강서구 마곡중앙8로5길 40

Tel 02-6203-6300 ㅣ Fax 02-6203-6301

ⓒ EXEM Co., Ltd. All Rights Reserved.
개인정보 처리방침서비스 이용약관
  • 서비스

    • Database
    • Application
    • AIOps
    • LLMOps
    • Big Data
    • All-in-One
    • Consulting
  • 신청

    • 세미나
    • 사옥 투어
  • 회사

    • 기업 소개
    • 채용 안내
    • IR
    • 오시는 길
  • 자료

    • 제품 브로슈어
    • 제품 살펴보기
    • 도서 실습자료
  • awsaws
  • microsoftmicrosoft
  • oracleoracle
  • naver-cloudnaver-cloud
Part.4 KNIME - 이미지 분석
Part.4 KNIME - 이미지 분석
Part.4 KNIME - 이미지 분석
Part.4 KNIME - 이미지 분석

Part.4 KNIME - 이미지 분석

Part. 4 KNIME을 활용한 이미지 분석


Q1. 이미지 분석이란 무엇인가요?
A1. 컴퓨터에서 이미지란 화면을 구성하는 가장 기본 단위인 픽셀의 집합이라고 생각하시면 될 것 같아요! 즉, 디지털 데이터로 표현이 가능한 카메라로 찍은 사진, 동영상, 일러스트레이션 등이 있어요. 이미지 분석에는 여러 개의 분야들이 있는데, 이미지 내의 물건이나 사람과 같이 개체를 탐지할 수 있고, 특정 기준으로 이미지를 분류할 수도 있어요.
  • 개체 탐지
notion image
notion image
 
  • 이미지 분류
notion image
 
아울러 일반적인 사진 이외에 의료영상도 이미지 분석이 가능해요. 의료영상은 DICOM(Digital Imaging and Communications in Medicine) file(확장자 .dcm)로 저장되어 있어요. 'Digital' 즉, 숫자 형식으로 되어있기에 이미지 분석이 가능해요. 아래의 이미지는 뇌종양을 진단하기 위한 MRI 이미지예요!
 
notion image
notion image
 
이 이미지를 이용해서 뇌종양을 예측하는 알고리즘을 아래에서 실습해볼테니 끝까지 봐주세요!
 
Q2. 그렇다면 이미지 분석은 어떤 식으로 진행이 되나요??
A2. 모든 데이터 분석 과정이 그러하듯 이미지 분석에서도 전처리가 매우 중요해요! 전처리를 한 뒤, 최고의 성능을 나타내는 알고리즘과 최적의 Hyper parameter를 찾는 과정을 반복해요. 아래에서 이미지 분석의 과정을 간략하게 설명드릴게요.
 
1) 균등한 데이터 준비
예측할 이미지들의 개수는 비율이 비슷해야해요! 동일하면 더더욱 좋아요! 만약에 A와 B를 나눠야 하는 경우에 A와 관련된 이미지가 9,900개이고, B와 관련된 이미지가 100개라면 당연히 모든 이미지가 A라고 예측을 해도 99%의 정확도가 나오니 B를 예측하는 데에 어려움이 있겠죠!!?
 
2) 이미지 크기 통일
이미지 사이즈를 통일시켜야 해요! 사진 10개를 가로, 세로가 각각 30cm인 액자에 넣어야하는데 사진의 사이즈가 제각각이라면 많이 어렵겠죠? 이와 마찬가지로 이미지 분석을 위해서는 이미지의 사이즈를 전부 통일시켜주는 작업이 필요해요.
 
3) 데이터 증강 (Optional)
학습해야 할 이미지의 수가 부족하다면 개수를 증가(augmentation) 시켜야 해요! 사람이 보는 이미지와 컴퓨터가 인식하는 이미지는 약간의 차이가 있어요! 아래의 이미지를 보면 (flip, rotation, shear, crop)총 4가지의 방법으로 이미지를 지지고 볶고 해 두었는데요. 사람이 보았을 때는 전부 다 동일한 이미지지만, ‘0’과 ‘1’로 받아들이는 컴퓨터의 입장에서는 모두 다른 이미지로 인식해요!!
notion image
 
4) 데이터 나누기
이렇게 증가시킨 데이터를 학습 / 검증 / 테스트 용도로 적절히 나누어요. 나누어진 데이터 세트들은 각각 여러 후보의 알고리즘을 훈련시킬 때, 훈련시킨 알고리즘들의 성능을 검증할 때, 마지막으로 최적의 알고리즘을 선택한 뒤 성능을 평가할 때 할 때 사용해요!
 
5) 알고리즘 개발 및 튜닝이제 알고리즘을 선택해야 할 차례에요! 일반적으로는 논문에서 검증된 알고리즘이나 통상적으로 사용하는 알고리즘을 base line으로 설정한 뒤, 적용할 알고리즘과 앞서 말한 Hyper parameter를 조정해가며 최적의 성능을 찾아나서게 됩니다.
 
6) 평가마지막으로 여러가지의 알고리즘 중 최적의 성능인 알고리즘으로 최종 테스트를 거치게 됩니다! 최종 테스트를 통해 우리의 알고리즘이 얼마나 정확한 결과를 내는지 평가하고, 어떤 문제를 해결하거나 프로덕트에 적용할 수 있죠.
 
Q3. 이런 복잡한 과정들이 KNIME으로 가능하다구요?
A3. 네! 위에서 보았던 뇌종양 양성과 음성의 MRI 이미지 데이터로 뇌종양 진단을 한다면 아래와 같이 할 수 있어요.
notion image
 
하나씩 살펴볼게요!
 
1) 균등한 데이터 준비
notion image
 
양성 1500개, 음성 1500개­인 균등한 데이터를 준비해서 <Image Reader>로 읽었어요. ‘yes’ 주석이 있는 윗줄이 양성 이미지이고 ‘no’ 주석이 있는 아랫줄이 음성 이미지에요.
notion image
 
2) 이미지 크기 통일
notion image
 
먼저 <Image Calculator>를 이용해서 픽셀(숫자)값을 0에서 1 사이의 값으로 바꾸었어요. 그 뒤 <Image Resizer>를 이용해서 이미지 크기를 조정해주었어요.
 
3) 데이터 나누기
notion image
 
윗줄의 양성 데이터와 아랫줄의 양성 데이터를 받아서 <Concatenate>를 이용해 하나로 합친 다음 <Partitioning>을 이용해 훈련 데이터와 테스트 데이터로 나누어주었어요. 이때, 검증 데이터는 일단 생략할게요!<Partitioning>의 두 화살표가 하나는 위로 하나는 수평으로 연결되어 있죠? 위로 뻗은 화살표는 훈련 데이터가 알고리즘으로 향하고, 수평으로 뻗은 화살표는 테스트 데이터가 예측기로 향하는 것을 의미해요.
 
4) 알고리즘 개발 및 튜닝
notion image
 
이 부분이 예측 알고리즘이에요. 이 알고리즘이 훈련 데이터와 함께 <Keras Network Learner>에 전달되면 데이터를 학습이 수행되어요.
 
notion image
 
마지막으로 만든 알고리즘을 이용해서 예측하고, 성능을 평가해요!
<Keras Network Executor>가 알고리즘과 테스트 데이터를 받아 예측을 수행하면 <Scorer>에서 성능을 확인할 수 있어요.
 
notion image
 
테이블에서 행(row)은 실제 정답이고, 열(column)은 예측인데요, 아래 성능에 대한 더욱 직관적인 지표를 볼 수 있죠?
실제 정답을 제대로 예측한 건수(Correct classified)가 879건이고, 정답을 예측하지 못한 건수(Wrong classified)가 21건으로 정확도(Accuracy)가 97.667%예요.
 
이상으로 간단한 이미지 분석을 KNIME으로 해보았어요. 아래는 data set 링크와 KNIME Community에서 다운받을 수 있는 이미지 분석 workflow들 중 간단한 예시들이니 궁금하신 분들은 직접 다운받아서 실행시켜보아도 좋을 것 같아요.
 
MNIST
  • Data set : http://yann.lecun.com/exdb/mnist/
  • https://hub.knime.com/knime/spaces/Examples/latest/04_Analytics/14_Deep_Learning/02_Keras/03_Train_MNIST_classifier~rSLmj3rQRcLXOyKB
Fashion MNIST
  • Data set : https://github.com/zalandoresearch/fashion-mnist
  • https://hub.knime.com/kathrin/spaces/Blog%20Posts/latest/A%20Friendly%20Introduction%20to%20Deep%20Neural%20Networks/CNN_For_Image_Classification_(Fashion_MNIST)_Simple~rIwMe76ruOJQ0vMM
cats and dogs
  • Data set : https://www.microsoft.com/en-us/download/details.aspx?id=54765
  • https://hub.knime.com/knime/spaces/Examples/latest/04_Analytics/14_Deep_Learning/02_Keras/04_Cats_and_Dogs/04_Fine-tune_VGG16~EUWPBdnVuIxuFMGf
 

 
이미지 출처:
  • https://www.kaggle.com/code/aruchomu/yolo-v3-object-detection-in-tensorflow
  • https://www.kaggle.com/code/gpiosenka/explore-birds-450-dataset
  • https://www.kaggle.com/code/abhranta/brain-tumor-detection-resnet50
 
데이터 셋 출처:
  • https://www.kaggle.com/datasets/abhranta/brain-tumor-detection-mri
 
 

 
 
함께 보면 좋은 아티클
Part.5 KNIME - 텍스트 분석 | 엑셈
KNIME으로 텍스트 분석하는 방법 알아보기
Part.5 KNIME - 텍스트 분석 | 엑셈
https://ex-em.com/ko/academy/Part.5-KNIME
Part.5 KNIME - 텍스트 분석 | 엑셈
Part.3 KNIME - 데이터 시각화 | 엑셈
데이터를 그래프, 차트 등과 같이 시각적 요소를 활용하는 방법 알아보기
Part.3 KNIME - 데이터 시각화 | 엑셈
https://ex-em.com/ko/academy/Part.3-KNIME
Part.3 KNIME - 데이터 시각화 | 엑셈