고해상도 현미경 사진 분석의 어려움
항공기와 위성의 전자광학 센서뿐만 아니라 이미지 센서와 현미경도 계속 발전하고 있습니다. 광학 현미경과 전자현미경은 다양한 분야에서 활용되고 있으며, 그 가격은 점점 저렴해지고 있습니다. 그리고, 전자현미경 사진의 해상도와 용량 역시 점점 커지고 있으며, 이러한 현미경들은 다양한 제조 분야에서 널리 활용되고 있습니다. 또한, 원자힘 현미경도 반도체, 박막 분석 시장에서 점점 더 널리 사용되고 있습니다. Deep Block은 인공지능 기술과 거대한 현미경 이미지 처리 기술이 결합된 초고속 인공지능 플랫폼으로, 국내에서 유일하게, 거대한 TEM, SEM, 광학 현미경 이미지를 분석하는 인공지능 소프트웨어를 무료로 제공하고 있습니다. 이 글에서는 현미경 이미지 분석에 기계 학습 기술을 적용하는 과정에서 어떤 문제에 저희가 직면했었고, 이를 저희가 어떻게 해결했는지 살펴보겠습니다.
최신 딥러닝 기술을 활용하여 현미경 사진을 분석하는 데에는 현미경 이미지가 갖는 고유의 특성으로 인해 많은 과제를 제시합니다. 현미경 이미지와 소프트웨어, 딥러닝 기술을 결합하는 과정에서 발생하는 문제들에 대해 지금부터 살펴보겠습니다.
- 데이터 크기
경우에 따라 현미경 사진의 크기는 한 장에 10GB 이상이 될 수 있습니다. 현미경 제조 업체가 제공하는 소프트웨어를 활용하여 JP2, JPEG 형식으로 이미지를 추출할 수도 있지만, 이 이미지 역시 매우 용량이 크고, 그 해상도가 높습니다. 저희의 홈페이지에 소개되어 있듯, 이러한 고해상도 이미지를 처리하는 인공지능 소프트웨어를 만드는 것은 정말로 많은 문제를 가져옵니다. - 이미지 차원
주사전자현미경으로 촬영한 이미지는 3D 이미지 형식으로 촬영됩니다. 이 이미지를 분석할 때에는 3D 이미지 형태로 분석하거나 2D 이미지로 변환하여 분석합니다.
대조적으로 투과전자현미경으로 촬영한 사진은 2D로 촬영됩니다.
대부분의 현미경 사진은 고해상도이므로 tiled-TIFF라는 형식으로 저장됩니다. 이 형식은 초고해상도 이미지를 저장하는 데 사용되며, 이러한 tiled-TIFF 이미지는 일반 TIFF 이미지와 다르기 때문에 일반 이미지 뷰어에서 열 수 없습니다. - 이미지 해상도
현미경을 사용하는 목적은 작은 물체를 찾는 것입니다. 따라서 분해능이 좋은 현미경이 점점 더 많이 사용되고 있으며, 이러한 현미경으로 촬영한 사진의 해상도도 함께 높아지고 있습니다. 현미경 사진 한 장의 해상도는 100k에 달할 수 있으며, 고해상도 이미지에서는 무언가를 감지하는 것이 매우 어렵다는 점을 이미 설명했습니다. - 그래픽 인터페이스 구현
초고해상도 이미지를 처리할 수 있는 이미지 뷰어를 개발하는 것도 엄청난 도전입니다. 웹 애플리케이션을 만들려면, 서버, 프론트엔드 앱이 별도로 개발되어야 하며, 두 애플리케이션 간의 원활한 통신도 필수적입니다. 또한 tiled-TIFF 파일은 웹 브라우저에서 지원되지 않으므로, 현미경 이미지 파일을 서버에서 변환해야 합니다. 웹 브라우저에서는 120MB보다 큰 이미지는 렌더링할 수 없다는 점도 이러한 문제를 더욱 어렵게 만듭니다. 이러한 문제를 해결하기 위해서는 하나의 이미지를 작은 조각들의 집합으로 표현해야 하고, 웹 브라우저에는 이러한 작은 조각들을 필요에 따라 동적으로 렌더링해야 합니다. 결과적으로 프론트엔드는 이러한 작은 이미지 조각을 지속적으로 로드하고 처리해야 합니다. 이러한 조각을 적절하게 처리하지 못하면 브라우저의 메모리 누수, 메모리 과부하 문제가 필연적으로 발생합니다. - 추론 속도
최신 컴퓨터 비전 모델을 사용하여 현미경 이미지를 분석하려면 먼저 이미지를 더 작은 조각으로 나누어야 합니다. 이를 위해서는 상당한 파일 시스템 액세스가 필요하며 전체 데이터 볼륨이 증가합니다. 그러나 많은 자연 과학자, 현미경 데이터 분석가들은 대량의 데이터를 효과적으로 처리하는 데 능숙하지 않기 때문에 고해상도 현미경 사진을 신속하게 분석할 수 있는 현미경 제조 업체, 혹은 현미경 데이터 분석 분야 종사자들이 이러한 소프트웨어를 개발하는 것은 어렵습니다. 이러한 데이터를 처리하기 위해서는 소프트웨어, 컴퓨터 공학에 대한 이해가 풍부한 전문가의 도움이 필요하며, 딥블록의 팀은 이러한 전문가들로 구성되어 있습니다. - 소프트웨어 엔지니어링 기술
단일 현미경 이미지의 크기는 때때로 10GB를 초과할 수 있습니다. 이러한 대용량 이미지를 분산하여 저장하지 않으면 얼마 지나지 않아 저장 장치는 가득 차게 됩니다. 이 외에도 Deep Block과 같은 고해상도 이미지 분석을 생성하려면 딥러닝 모델을 구동할 수 있는 추론 서버, 파일 시스템 관리 기술 및 고해상도 이미지를 렌더링할 수 있는 프론트엔드 애플리케이션의 사용이 필요합니다. 이를 위해서는 병렬처리 기술, 다양한 클러스터 컴퓨팅 기술, 최신 웹 기술의 활용이 필수적이며, 이 외에도 엄청나게 다양한 컴퓨팅 기술이 사용됩니다. 이는 한 명의 개인이나 자연과학자, 혹은 컴퓨터 과학자나 머신 러닝 엔지니어가 수행할 수 있는 작업이 아닙니다. - 고해상도 사진에 대한 전문성
초고해상도 이미지를 처리하려면 해당 데이터를 다루는 오랜 경험을 갖춘 전문 팀이 필요합니다. 단순히 머신러닝 모델을 사용한다고, 이러한 이미지는 분석될 수 없으며, 인공지능 기술을 잘 알고 있다고 해서 이러한 이미지를 잘 처리할 수는 없습니다. 고해상도 이미지를 분석하고 딥러닝 기술을 분석 프로세스에 통합하는 것은 두 측면을 효과적으로 처리할 수 있는 전문가들과, 이러한 업무를 수행하는 경험과 전문 기술이 필수적입니다. Deep Block과 옴니스랩스 주식회사는 6년 넘는 시간 동안 딥러닝 기술을 사용하여 이러한 유형의 이미지를 성공적으로 분석해 왔으며 이를 고객의 문제 해결에 곧바로 적용할 수 있도록 소프트웨어 기술력을 고도화해왔습니다.