PaperReview

[딥러닝 기반 암세포 사진 분류 알고리즘] 리뷰

jiwoolee 2021. 1. 6. 01:02

APA: 서영민, 한종기 (2018). 딥러닝 기반 암세포 사진 분류 알고리즘. 방송공학회논문지, 23(5), 669-681

 

Main Idea:

고해상도 자궁경부암 세포사진(종류: ascus, inflammation, rcc, normal)을 CNN=.Convolution Neural Network를 이용해 인식하고 분류

-이미지 분류 시 발생하는 정보 loss와 이를 해결하기 위한 solution 제시

-dilated convolution을 이용하여 고해상도 사진의 정보의 손실을 최소화

 

암세포 분류에 있어 병리과 의사가 암세포를 구별하는 데에 Deep Learning기술을 통한 암세포 사진 분류를 1차로 진행하고 정확도가 낮은 사진들을 추려 한번 더 확인한다면 시간과 피로를 줄일 수 있다.

 

이 논문에서 사용하는 암세포 이미지 해상도는 2048*1536. 사용하려는 CIFAR-10 알고리즘의 최적화 해상도와 일치하지 않는다. 그래서 최적화 사이즈 32*32로 사이즈 조절을 하고 이미지를 사용했다.

-> 내가 사용하려는 알고리즘과 데이터의 특성을 확인 및 비교 후 진행해야 한다.

 

최종적으로 하고 싶은 것은 "발생하는 정보의 loss를 최소화하고 전처리 과정을 거쳐 노이즈를 제거해 고해상도 의료 이미지를 훈련 영상으로 이용하여 CNN 모델을 학습시키기"다.

논문에서 제시한 알고리즘의 단계는 다음과 같다.

 

1. 이미지 전처리 과정으로써 임계값을 주어 이미지에 존재하는 노이즈를 제거

2. 고해상도 영상들을 대상으로 효율적인 convoultion 계산을 하기 위해 dilated convolution 진행

 

여기서 dilated convolution은 수용필드영역은 늘리면서 Parameter의 개수는 유지하고 입출력의 이미지 사이즈가 유지되어야 할 때 사용되는 Convolution 방법이라고 서술되어 있다.

 

 

 

dilated convolution

 Dilated Convolution은 필터 내부에 zero padding을 추가해 강제로 receptive field 즉 수용필드(=필터가 한번 보는 영역으로 사진의 feature를 추출하기 위해선 receptive field가 높을수록 좋습니다)를 늘리는 방법이다. 위 그림에서 진한 파란 부분만 weight가 있고 나머지 부분은 0으로 채워진다.
pooling을 수행하지 않고도 receptive field를 크게 가져갈 수 있기 때문에 spatial dimension 손실이 적고 대부분의 weight가 0이기 때문에 연산의 효율이 좋다.

 

 

본 논문에서 제시한 32*32 사진을 확인해보면 핵의 모양이나 사진의 형태들이 블러 처리되어 있는 것을 알 수 있다. 암세포임을 확인할 수 있는 요소인 세포들의 모양이나 구조가 블러 처리가 되어 저해상도가 되었기 떄문에 CIFAR-10 모델에서는 암세포의 유무 및 종류를 판단하는 것이 어려울 것이다. 

 

 

 

본 논문이 제안하는 CNN 구조

이 논문에서는 다양한 rate를 사용해서 dilated convolution을 수행한다. 3x3 크기의 커널에서 rate(=kernel 크기가 확장(dilated)되는 비율)를 6, 12, 18, 24 비율로 dilated convolution을 수행한다.

(예를 들어 rate가 6이라면, kernel을 구성하는 3x3 크기의 계수 사이마다 5개의 0을 삽입하여, 최종적으로 13x13 크기의 kernel을 구성하는 것을 의미-> dilated convolution에 대한 설명은 조금 더 자세히 추가 예정)

또한 이 부분을 구현하기 위해서 본 연구자들은 Liang-Chieh Chen의 DeepLab에서 개발한 dilated convolution을 multi-scale에 적용하여 만든 ASPP(Atrous Spatial Pyramid Pooling)방법을 사용해 다양한 rate 의 dilated convolution을 병렬로 진행하여 다양한 receptive field를 분석할 수 있게 했다. ASPP(Atrous Spatial Pyramid Pooling)은 아래에서 설명.

 

이 사진처럼 rate 6, 12, 18, 24로 설정되어 dilated convolution을 수행하면 각각 다른 해상도 이미지 4장을 얻게 된다. 이렇게 얻은 각각의 영상들을 up-sampling하여 해상도를 원래 영상의 해상도와 같게 변형시키고 변형된 영상들을 결합시켜 3차원 구조의 데이터 형태로 만든 후,  1×1 convolution을 적용했다. 1×1 convolution을 통해 얻어진 데이터를 사용하여 최종적인 세포 타입을 결정하는 데에 사용한다.

 

 

이미지 전처리

4가지 종류의 암세포 종류를 학습할 때, 세포 사진 내의 핵의 이미지가 노이즈에 영향 받지 않도록, 임계값을 사용하여 세포 핵의 모양만 검출하여 학습시키는 전처리 과정을 사용했다. (세포핵을 포함하는 영역만을 추축해서 제안하는 CNN 구조로 학습하는 게 계산량 복잡도는 낮추고 학습률을 향상시키기 때문)

본 논문에서는 미리 정해진 임계값을 이용해서 세포핵의 모양을 검출하여 그림 10 (a)와 같은 사진을 만든 후, 이 사진을 기반으로 학습에 사용할 영역과 사용하지 않을 영역을 구분하는 그림 10 (b)를 만들었다. 그림 10 (b)과 같은 훈련 데이터들 중에서 학습에 사용할 영역 데이터만을 그림 8의 학습 모델에 입력으로 사용하여 학습을 진행했다.

 

-> 임계값을 사용하여 염증 부위의 모양만 검출해 학습시킨다면 다른 암 케이스에도 적용할 수 있을 것. 어떤 방법을 이용해 임계값을 이용해서 세포핵의 모양을 검출했을까. Canny filter를 이용해 edge 검출하는 것도 이용할 수 있을까

(다음 논문 리뷰는 canny filter와 cancer)

 

 

 

Multi-Rate 과정

세포들을 분류할 때 우수한 성능을 가짐과 동시에 receptive field을 늘리려면 convolution과 pooling의 반복이 필요하다. 하지만 반복되는 pooling 때문에 detail이 사라지게 된다. 그래서 세포의 세부적인 정보보다는 사진 전체적인 윤곽 정보로 분류를 진행하게 된다. 이러한 문제점을 극복하기 위해서 본 연구 에서는 multi-rate로 구성된 학습 모델을 이용했다. 본 논문에서는 ASPP(Atrous Spatial Pyramid Pooling)방법을 이용하였다.

 

ASPP(Atrous Spatial Pyramid Pooling):

 multi-scale 에 잘 대응할 수 있도록 하기 위한 방법이다. atrous convolution 을 위한 확장 계수를 6, 12, 18, 24 로 적용하고 그 결과를 취합하여 사용하는 방식이다. 이로써 다양한 receptive field 를 볼 수 있게 되는 것이다. 

Atrous convolution:

보다 넓은 Scale 을 수용하기 위해 중간에 구멍(hole)을 채워 넣고 컨볼루션을 수행하게 된다. 즉, 기본 컨볼루션에 비해 연산량을 유지하면서 최대한 넓은 receptive field 를 커버하는 방법이다.

 

Multi-Rate를 활용하면 다양한 해상도에서 학습을 시키고 그것을 비교하게 됨으로써 세포 사진의 윤곽 정보 뿐만 아니라 세밀한 정보를 이용해서 세포 종류를 분류할 수 있 게 된다. (dilated convolution을 사용함으로써 receptive field은 효과적으로 늘리고 Pooling layer 삭제 가능)

 

Up-scaling

Up-scaling은 픽셀단위로 예측을 하기 위해 필요하다. dilated convolution을 하고 나면 원본 이미지의 크기가 줄어들게 되고 이 컨디션으로 픽셀단위 예측을 하게 되면 정확도가 떨어지기 때문이다. Multi-rate과정을 거친 feature는 다양한 rate별로 축소되었기 때문에 이 다양한 feature들을 일정한 크기로 up-scaling하여 겹치게 되면 밀도에 따라서 픽셀단위 예측을 할 수 있다. 정확한 정보를 근거로 예측을 할 수 있게 된 것이다.

 

 

1x1 convolution

보통 CNN 모델의 마지막 단계에서는 fully connected layer 역할을 하는 layer가 필요하다. 그런데 fully connected layer는 고정된 크기의 입력밖에 받아들이지 못하고, 위치정보도 사라지기 때문에, 이 논문에서는 segmentation에 우수한 성능을 제공하는 1x1 convolution을 사용한다. 1x1 convolution 을 fully connected layer 대신 사용하게 되면 정해진 해상도의 이미지 및 다양한 해상도의 이미지들을 처리할 수 있으며, patch 단위로 영상을 처리하지 않고, 전체 영상을 한 번 에 처리하기 때문에 효율적인 연산이 가능하다.

 

 

 

 

 

 

 

 

 

 

결과

 

 

 

 

결론

결론은 고해상도 영상의 분류를 위해서 dilated convolution이 사용되는 CNN 구조와 계산량을 추가로 감소시키고 성능을 향상시키기 위해서 임계값를 사용한 전처리 기법을 사용함으로써 기존의 연구보다 인식률이 크게 향상된 것을 확인할 수 있었다.

-> 내 프로젝트에 있어 어떤 전처리가 효과적일지 추가 조사가 필요하다.

 

 

 

 

 

** 흥미로운 내용이었다. 다루는 데이터에 따라 효과적인 전처리 방식과 알고리즘을 연구해야겠다. dilated convolution에 대한 이해가 아직은 부족한 것 같다. 관련 자료 찾아보면서 채워야겠다. + ASPP(Atrous Spatial Pyramid Pooling)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 자료: zzsza.github.io/data/2018/02/23/introduction-convolution/

참고 자료: https://eehoeskrap.tistory.com/459 [Enough is not enough]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이로 인해 암세포를 판단하기 위한 근거인 세포들의 모양이나 구조가 저해상도로 변환되었기 때문에 CIFAR-10 모델에서 암세 포의 유무 및 종류를 판단하는 것이 어려울 것으로 예상된다.

 

 

 

zzsza.github.io/data/2018/02/23/introduction-convolution/

 

딥러닝에서 사용되는 여러 유형의 Convolution 소개

An Introduction to different Types of Convolutions in Deep Learning을 번역한 글입니다. 개인 공부를 위해 번역해봤으며 이상한 부분은 언제든 알려주세요 :)

zzsza.github.io