
초고용량, 초고해상도 원격 탐사 이미지를 처리할 수 있는 서비스형 소프트웨어(SAAS) 공간정보 AI 플랫폼(MLops)을 개발하는 것은 복잡하고 까다로운 작업입니다. 업계에서는 공간정보 데이터 전문가의 요구 사항을 충족하기 위해 빅 데이터, 머신 러닝, 고급 컴퓨팅 기술을 통합할 수 있는 혁신적인 솔루션을 요구하고 있습니다. 이러한 플랫폼을 개발하는 과정에서 직면한 어려움과 기술적 과제, 그리고 지난 4년간 옴니스랩스 주식회사가 구현한 솔루션을 커뮤니티와 공유하고자 합니다.
1. 공간 정보 영상 데이터를 처리하는 방법과 이것이 어려운 이유는 무엇인가요?
원격 탐사 이미지는 웹 브라우저에서 지원되지 않는 GeoTIFF 형식으로 촬영되는 경우가 많습니다. 따라서 서버는 사용자가 Deep Block과 같은 웹 앱에서 이미지를 볼 수 있도록 이미지를 호환 가능한 형식으로 변환해야 하는데, 이 과정은 생각보다 복잡한 작업입니다. 변환 프로세스는 효율적이고 빨라야 하며, HTTP 요청에 대한 응답 시간이 지연되거나 시간 초과되지 않아야 합니다. 이를 위해서는 백그라운드 처리와 변환이 완료된 후 사용자에게 알림을 주고, 프론트엔드를 갱신할 수 있는 기능이 필요합니다. 옴니스랩스 주식회사는 처리 시간을 단축하기 위해 특허받은 알고리즘을 구현하고, 플랫폼 아키텍처를 최적화하여 대용량 원격 탐사 이미지를 문제없이 처리할 수 있습니다.
2. 처리된 초고해상도 이미지를 표시하는 방법은 무엇인가요?
경우에 따라 위성 사진이나 항공 사진은 해상도가 30K를 초과하며, 용량은 10GB를 초과할 수 있습니다. 이 경우 브라우저에서 이미지를 렌더링할 때 상당한 문제가 발생합니다. 당사는 이를 처리하기 위해 이미지를 더 작은 섹션으로 분할하는 특수 알고리즘을 구현했습니다. 브라우저에서 이미지는 일반적으로 HTML의 'canvas' 컴포넌트를 사용하여 클라이언트 측에서 렌더링됩니다. 당사는 렌더링된 이미지에 빠르게 액세스할 수 있도록 다양한 캐싱 기술과, 동적 할당 기술을 활용하고, 원활하고 매끄러운 렌더링을 보장하기 위해 특수 알고리즘을 구현했습니다.
3. canvas의 한계를 극복하는 방법은 무엇인가요?
이전 섹션에서 살펴본 것처럼 HTML의 캔버스 컴포넌트는 이미지를 렌더링하고 조작하는 데 사용됩니다. 그러나 단일 캔버스에 렌더링할 수 있는 이미지 해상도의 권장 최대 크기는 5000x5000픽셀입니다. 이러한 한계를 극복하기 위해 저희는 큰 이미지를 캔버스에 부분적으로 렌더링할 수 있는 특수 알고리즘을 구현했습니다. 또한 사전 변환 작업을 통해, 서버 측에서 이미지 모자이크를 생성한 다음 클라이언트 측에 제공하여 볼 수 있도록 하는 기술을 개발하여, 서비스에 탑재했습니다.
최신 웹 브라우저는 메모리 사용량에 제한이 있으며, 대부분의 웹 페이지는 50MB 미만의 메모리를 사용하는 것이 권장됩니다. 프론트엔드에서 사용하는 메모리가 128MB를 초과하면 브라우저의 성능이 크게 저하되기 시작되며, 2GB가 넘는 메모리를 사용하는 프론트엔드 애플리케이션은 일반적으로 작동하지 않습니다. 이는 인터페이스에서 초고해상도 공간정보 이미지를 렌더링할 때 문제가 됩니다. 따라서 이러한 한계를 극복하기 위해서는 이미지의 필요한 부분만 메모리에 로드하여 프론트엔드에서 사용하여야 합니다.
4. 그렇다면 왜 웹 기반 서비스 개발을 선택했나요?
웹 브라우저의 한계에도 불구하고, 전 세계 사용자가 서비스에 접속할 수 있도록 하기 위해서는 Deep Block의 AI 플랫폼은 웹 기반이어야 합니다. 그렇지 않으면 최종 사용자 소프트웨어를 만들기 위해 C++나 파이썬 QT를 사용해야 하고, 이를 바이너리나 실행 가능한 포맷으로 배포하여야 하는데, C++를 제외한 다른 기술은 대중적으로 사용되지 않습니다. 반면 웹 앱은 레이아웃과 디자인에 무한한 유연성을 제공하며 플랫폼을 설계하고 유지 관리할 때도 많은 이점을 가지고 있습니다.
5. 초고해상도 이미지 분석에 병렬 처리가 필요한 이유는 무엇인가요?
이전 글에서 설명한 것처럼 초고해상도 이미지를 분석하려면 이미지를 여러 부분으로 나눠야 합니다. 이미지를 분할하면 여러 개의 파일이 생성되므로 오버헤드가 발생하고, 여러 개의 이미지를 처리하는 데는 하나의 이미지를 이루는 여러 조각들이더라도, 더 많은 처리 시간이 소요됩니다. 이런 상황에서 빠른 서비스 속도를 유지하기 위해서 저희는 병렬 처리 기법을 사용합니다. 그러나 이러한 기술을 구현하는 것은 쉽지 않으며 상당한 전문성이 필요합니다. 저희는 동일한 코드의 여러 인스턴스를 여러 프로세서 또는 노드에서 동시에 실행하여 전체 처리 시간을 단축할 수 있는 특수 알고리즘을 개발했습니다. 즉, 분산 컴퓨팅 기술을 사용하여 대규모 공간정보 이미지의 처리를 병렬화합니다. 이 접근 방식을 통해 Deep Block은 이미지를 여러 컴퓨팅 노드에 분산하여 더 빠르게 처리할 수 있습니다.
또한 GEOTIFF 이미지에는 공간정보 메타데이터가 별도로 포함되어 있으며, 이미지 안에는 하나의 객체가 작게 나타나기 때문에 이를 인식하기 위해 전처리와 다양한 알고리즘이 필요합니다. 이러한 문제를 해결하기 위해 Deep Block은 공간정보 이미지를 전처리하여 관련 정보를 추출하는 맞춤형 알고리즘을 개발했습니다. 또한, 하나의 작은 객체를 잘 인식하기 위한 다양한 알고리즘이 내부에 적용되어 있으며, 이 외에도 공간정보 영상 처리에 활용되는 다양한 알고리즘이 구현되어 탑재되어 있습니다.
6. 적합한 전문가를 선택하는 방법
공간정보 이미지의 분석은 그 크기와 해상도가 커서 빅데이터의 한 형태입니다. 그리고, 이를 처리하고 다루는 작업은 생각보다 매우 까다로운 작업입니다. 머신 러닝과 병렬 컴퓨팅과 같은 기술을 이러한 빅데이터와 결합하면 이 문제는 더욱 어려워지며, 원격 탐사 분야의 전문가, 혹은 관련 분야 연구자 혼자서도 이 문제를 해결하는 것은 거의 불가능합니다.
게다가 작동하는 소프트웨어를 개발하고, 머신 러닝 알고리즘을 구현하는 것만으로는 충분하지 않습니다. 매일 전 세계적으로 수백 페타바이트 혹은 그 이상의 이미지가 생성되고 있으며, 지상은 끊임없이 변화하고 있습니다. 따라서 소프트웨어는 사용자 친화적이고 입력 이미지를 빠르게 분석할 수 있어야하며, 원활한 사용자 경험을 보장할 수 있어야 합니다. 속도와 사용자 경험, 최종 사용자 소프트웨어의 완성도는 연구자나 개인이 간과하는 요소입니다. 이러한 요소들은 소프트웨어 엔지니어링과 컴퓨터 소프트웨어 기술의 조합으로 완성되며, 많은 공간정보 산업 종사자들이 이 기술들의 중요성을 인식하지 못하고 간과하고 있습니다. 대부분의 공간정보 산업 종사자 혹은 기업들은 Deep Block과 유사한 소프트웨어를 개발하라는 요청을 받으면, 이 소프트웨어를 어떻게 설계해야하는지조차 모를 것으로 예상합니다.
공간정보 데이터 산업은 매우 낙후되어 있고, 아직도 많은 분석 작업을 사람의 노동력에 크게 의존하고 있으며, 고전적인 측량 회사가 여전히 시장을 지배하고 있습니다. 컴퓨터 과학 분야의 전문성을 갖춘 옴니스랩스 주식회사는 초고용량의 공간정보 이미지를 빠르게 처리하고 사용자가 쉽게 조작할 수 있는 소프트웨어를 개발하여, 이러한 문제를 해결하는 데 도움을 줄 수 있습니다. 옴니스랩스 주식회사가 항측업체가 아니더라도, 당사는 강력한 소프트웨어를 제공함으로써 공간 정보 산업의 혁신에 기여할 수 있습니다.