Econ. Environ. Geol. 2024; 57(5): 473-486
Published online October 29, 2024
https://doi.org/10.9719/EEG.2024.57.5.473
© THE KOREAN SOCIETY OF ECONOMIC AND ENVIRONMENTAL GEOLOGY
Correspondence to : *jangwonsuh@kangwon.ac.kr
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided original work is properly cited.
Boring logs are essential for the evaluation of ground stability in abandoned mine areas, representing geomaterial and subsurface structure information. However, because boring logs are maintained in various analog formats, extracting useful information from them is prone to human error and time-consuming. Therefore, this study develops an algorithm to efficiently manage and analyze boring log data for abandoned mine ground investigation provided in PDF format. For this purpose, the EfficientNet deep learning model was employed to classify the boring logs into five types with a high classification accuracy of 1.00. Then, optical character recognition (OCR) and PDF text extraction techniques were utilized to extract text data from each type of boring log. The OCR technique resulted in many cases of misrecognition of the text data of the boring logs, but the PDF text extraction technique extracted the text with very high accuracy. Subsequently, the structure of the database was established, and the text data of the boring logs were reorganized according to the established schema and written as structured data in the form of a spreadsheet. The results of this study suggest an effective approach for managing boring logs as part of the transition to digital mining, and it is expected that the structured boring log data from legacy data can be readily utilized for machine learning analysis.
Keywords boring log, deep learning, optical character recognition, database construction, smart mining
한호상1 · 서장원2,*
1강원대학교 에너지자원융합공학과 박사과정
2강원대학교 에너지자원화학공학과 부교수
시추주상도는 지질매체와 지하구조 정보를 나타내며, 폐광산 지역의 지반 안정성 평가에 필수적으로 사용되는 중요한 자료이다. 다만 시추주상도는 양식이 다양하고 아날로그 형태로 관리되고 있어 이로부터 유용한 정보를 도출하는 과정에는 인적 오류가 발생되거나 시간 및 비용이 소모된다는 단점이 있다. 따라서 본 연구에서는 PDF 파일 형식으로 제공되는 폐광산 지반조사용 시추주상도 데이터를 효율적으로 관리하고 분석할 수 있는 알고리즘을 개발하였다. 이를 위해 EfficientNet 딥러닝 모델을 사용하여 시추주상도를 5개 유형으로 분류하였으며, 분류 정확도는 1.00으로 매우 높게 나타났다. 이후 분류된 각 유형별 시추주상도를 광학문자인식(optical character recognition, OCR) 기술과 PDF 텍스트 추출 기법을 활용하여 텍스트를 추출하였다. OCR기술은 시추주상도의 텍스트 데이터를 오인식하는 결과가 다수 발생하였으나, PDF 텍스트 추출 기법은 매우 높은 정확도로 텍스트를 추출하였다. 이후 데이터베이스의 구조를 정립하고, 설계된 구조에 따라 시추주상도의 텍스트 데이터를 재구성하여 스프레드시트 형태의 정형 데이터로 작성하였다. 본 연구결과는 디지털 광산으로의 전환에 있어 효과적인 시추주상도 관리 방안을 제시하며, 레거시 데이터로부터 정형화된 시추주상도 데이터는 머신러닝 분석에 용이하게 활용될 수 있을 것으로 기대한다.
주요어 시추주상도, 딥러닝, 광학문자인식, 데이터베이스 구축, 스마트 마이닝
The management of analog boring logs is a time-consuming and error-prone process.
Deep learning enabled high-accuracy automated classification of boring log types.
An OCR-based automated algorithm was developed for boring log extraction and structuring.
시추주상도(boring log)는 시추된 코어 샘플을 기반으로 지반 및 지하의 지질학적 정보를 기록한 문서로, 지층의 연속적 구성과 깊이, 물리적 특성 등과 같은 지질매체와 지하 구조를 이해하는 데 필수적인 정보를 제공한다. 이는 일반적으로 지상에서 진행되는 지질조사에서획득하기 어려운 지표 하부에 대한 정보를 얻기 위한 목적으로 작성된다(Kim et al., 2013, Kim et al., 2018). 특히 폐광산 지역의 시추주상도는 지질학적 층서, 광물의분포, 지반의 조건, 균열의 정도, 지하수위 등을 파악하는 데 중요한 역할을 한다. 또한, 광산피해를 예방 및 관리하고 안전을 확보하기 위해 지반안정성을 평가하고, 이에 적절한 보강 대책을 수립하는 데에 중요한 기초 자료로 활용된다. 이러한 시추주상도들은 국내 광산의 경우한국광해광업공단이 운영하는 국가광물자원지리정보망(Korea Mineral Resources Geographic Information System, KMRGIS)에서 2004년부터 광업지적에 따라 정보들을 디지털화하여 관리하고 있다(Jang et al., 2013).
현재 폐광산 지반조사용 시추주상도는 아날로그 형태로 구축 및 관리되고 있어 여러 한계가 존재한다. 사람의 수작업에 의한 데이터 입력과 분석은 인적 오류의 발생 가능성이 높고, 시간과 비용 소모를 초래한다. 이러한점들은 전국을 망라하는 광산 데이터가 대규모이기에 현대 광산 데이터 분석과 정보 관리 환경에서 큰 비효율을초래할 수 있다. 이를 극복하기 위해서는 아날로그 형식의 시추주상도를 디지털 데이터베이스(database, DB) 형태로 전환 또는 구축할 필요가 있다. 특히 다양한 DB 형식 중 스프레드시트와 같은 정형 데이터는 머신러닝 분석 등에 용이하게 활용되고 가장 적합한 자료 형태이다.따라서 이는 추후 폐광산 지반안전성 평가 시 머신러닝기반 분석과 효율적인 데이터 관리라는 측면에서 큰 장점이 될 수 있다.
최근 인공지능(artificial intelligence, AI)은 광산 피해(광해) 예방과 관리와 같은 지질 및 환경 분야에서 널리 적용되고 있으며, 특히 딥러닝(deep-learning) 모델을 활용한 이미지 인식 기술은 국내·외 지질학적 데이터 분석에서도 높은 정확도를 보이고 있다(Pham and Shin, 2020, Sim et al., 2022, Qiu et al., 2023). 국외에서는 시추코어이미지를 인식해 암종을 분류하는 연구(Alzubaidi et al., 2021)나 다중 웰 로그 데이터를 이용해 암종을 분류하는연구(Saroji et al., 2021)가 진행된 바 있다. 최근에는 광학문자인식(optical character recognition, OCR) 기술을 이용해 시추주상도 데이터의 손글씨를 인식하는 연구(Ghaeminmood, 2021)와 지하 정보를 추출하는 연구(Zhang et al., 2020)도 보고되었다. 국내에서도 시추주상도의 DB구축과 관리가 점차 중요시되고 있으며(Park et al., 2015),이에 따라 Park et al.(2021)은 국내 국토지반정보 포털시스템에서 관리되는 토목 분야의 시추주상도를 대상으로AI 기반의 DB 구축 자동화 방안을 제안했다. 그러나 폐광산 지역의 지반안정성 조사에 활용되는 다양한 형식의시추주상도를 자동으로 분류하고, 데이터베이스화한 사례는 존재하지 않았다.
따라서 본 연구에서는 폐광산 지역의 지반안정성 평가용 시추주상도를 효율적으로 관리하는 접근법을 제시하였다. 딥러닝 모델을 활용하여 시추주상도의 유형을 분류하고, PDF (portable document format) 형식의 문서에서 OCR 기술과 텍스트 추출을 이용해 데이터를 자동으로 수집하고 스프레드시트 형태로 정리하는 프로세스를개발하였다. 이를 통해 기존의 수작업 중심 데이터 관리방식에서 벗어나 디지털화와 자동화라는 측면에서 스마트 마이닝의 요소 기술 구현에 필요한 기초 데이터를 제시할 수 있을 것으로 기대된다.
Fig. 1은 본 연구에서 사용된 연구 방법과 절차를 순서도 형태로 나타낸 것이다. 해당 과정은 폐광산 지반조사보고서(PDF 파일) 수집, 보고서 내 시추주상도 페이지만추출하는 전처리 단계, 딥러닝 모델을 이용한 시추주상도 유형 분류, 시추주상도 유형 분류 결과의 검증, 각 시추주상도 페이지에서 OCR 및 PDF 내 텍스트 추출 적용,추출된 텍스트 데이터의 구조화, DB 생성 순으로 진행되었다. 본 연구는 Python 3.11.9 환경에서 진행하였으며, 컴퓨터 사양은 Intel(R) i7-13700K, 32GB RAM, NVIDIA GeForce RTX 4070 Ti로 구성하였다.
본 연구에서는 한국광해광업공단에서 원천데이터 형태로 개방한, 2019년(1차, 27건)과 2020년(2차, 20건)에 구축된 폐광산 지역의 지반안정성 조사 보고서(https://miregis.komir.or.kr/board/noticeDetail.do?ntcSeq=2020112000001)로 총 47건에 대한 시추 지반정보를 획득하였다. Table 1은 지반정보 공개 데이터의 통계량으로, 해당 전체 데이터의 총 시추공 수는 423개였으나 유효한 시추주상도의개수는 403개였다. 또한 전체 지반안정성 보고서 PDF 파일은 총 2,961페이지였으나, 시료 사진과 물성현장시험,물성실내시험, 물리검층시험, 물리탐사시험 등의 페이지를 제거한 시추주상도는 908페이지로 구성되었다.
Table 1 Number of abandoned mine ground stability investigation reports and boring logs used in this study.
Item | Number | |
---|---|---|
Ground stability investigation report | ea | 47 |
pages | 2961 | |
Boring logs (in reports) | ea | 403 |
pages | 908 |
시추주상도의 구성 요소(Fig. 2)는 전체 데이터의 맥락을 설명하거나 데이터가 속한 범주를 정의하는 헤더 정보(header information)와 시추코어 데이터의 주요 물성값을 제시하는 바디 정보(body information)로 분류하였다.헤더 정보는 일반적인 메타데이터(meta data)로써 사업명,시추공번, 위치(좌표), 지반표고, 굴진심도, 시추방법, 지하수위, 시추기, 시추공경 등의 필드로 구성되었으며, 동일 사업 내에서 시추 공번 또는 시추 작업의 식별과 관리를 위해 사용된다. 반면, 바디 정보는 심도별로 변화히는 지층의 세부 정보로써 심도나 표고, 두께, 지층명, 설명, 암질, 절리간격 등의 필드가 포함된 데이터이며, 지질매체 특성 또는 지하 구조를 파악하는 데 주로 사용된다.
데이터 전처리는 시추주상도의 유형을 분류하고, 보고서 내 시추주상도 페이지만을 추출하기 위한 단계로 수행되었다. 먼저 지반안정성 보고서들의 작성 연도를 검토한 결과, 해당 보고서는 2003년부터 2020년 사이에 작성된 것들로, 작성 연도에 따라 시추주상도의 레이아웃이나 세부 항목들이 다르게 구성된 것을 확인하였다. 보고서들은 이미지로만 구성된 PDF 파일부터 벡터화된 텍스트 또는 텍스트 레이어를 포함한 PDF 파일까지 다양한 형태로 존재하였다. 이후 전체 지반안정성 조사 보고서의 유형을 작성된 양식과 바디 정보의 피드 차이에 따라 고려하여 수동으로 분류한 결과 47개 보고서를 5개유형(Type 1~5)으로 분류할 수 있었다. 유형별 보고서에 대한 예시는 Fig. 3에 제시하였다. 또한 전체 지반안정성조사 보고서와 시추주상도 데이터의 유형에 따른 개수와비율을 Table 2에 요약하였다.
Table 2 The number of abandoned mine ground stability investigation reports and boring logs by types.
Class | Report | Borehole log (in report) | ||
---|---|---|---|---|
Number | % | Pages | % | |
Type 1 | 16 | 34.0 | 175 | 19.7 |
Type 2 | 23 | 48.9 | 545 | 61.4 |
Type 3 | 4 | 8.5 | 85 | 7.2 |
Type 4 | 3 | 6.4 | 19 | 2.1 |
Type 5 | 1 | 2.1 | 84 | 9.5 |
Sum | 47 | 100.0 | 908 | 100.0 |
최근 딥러닝 기술은 이미지 분석에서 뛰어난 성능을 보이고 있으며, 이 기술들은 인간의 신경망(neural network)구조를 모방해 만든 인공신경망(artificial neural network, ANN)을 기반으로 한다. ANN 기법에 다수의 은닉층(hidden layer)을 추가하면서 개선된 심층신경망(deep neural network, DNN)이 개발되었고, 이후 입력 데이터 유형에따라 신경망을 최적화하여 학습하고 결과를 얻기 위해합성곱신경망(convolutional neural network, CNN) 계열과 순환신경망(recurrent neural network, RNN) 계열이 지속해서 개발 및 발표되고 있다(Bonassi et al., 2022, Yu et al., 2022).
CNN은 주로 이미지 데이터를 처리하기 위하여 설계된신경망으로, 합성곱 층(convolutional layer)과 풀링 층(pooling layer)을 이용하여 입력 이미지의 공간적 특성을학습한다. 이는 이미지 분류나 객체 탐지 등에 뛰어난 성능을 보이며 다양한 컴퓨터 비전(computer vision) 분야의 작업에 주로 활용된다. 반면 RNN의 경우 순차적 데이터(sequential data) 처리에 특화된 신경망으로, 이전 입력된 데이터 정보를 기억하고 다음 입력 데이터에 반영하는 순환(recurrent) 구조를 갖는다. 따라서 RNN은 주로시계열 데이터나 텍스트 데이터 처리 등에 활용된다. 특히 RNN 모델 계열의 한 종류인 장단기 기억 신경망(long short-term memory, LSTM)은 시계열 예측 분야에서 널리 사용되고 있으며, 에너지 자원 분야에서도 그 적용 사례를 찾아볼 수 있다(Lee et al., 2019).
본 연구에서는 시추주상도의 유형 분류를 위한 이미지분석에 해당하므로 RNN보다는 CNN이 더 적합하다고판단하였다. CNN 계열에서도 VGGNet이나 Inception, DenseNet, EfficientNet, ResNet 등 다양한 모델이 존재하기 때문에 기법 선정에 앞서 해당 모델들의 장단점을Table 3과 같이 비교하였다. 본 연구에서는 CNN 계열 모델의 장단점 비교분석을 통해 제한적인 계산 자원의 효율성을 가지면서도 높은 성능의 균형을 유지하고, 컴퓨팅 리소스에 대한 적응성을 고려하여 EfficientNet 모델을 선택하였다. 또한, EfficientNet은 여러 버전(네트워크크기)으로 제공되기에 47개 보고서라는 소규모 데이터세트에 알맞은 EfficientNet-B3 모델을 선정하였다.
Table 3 Comparison of the advantages and disadvantages of the CNN family of models.
Model | Advantages | Disadvantages | Reason for Selection |
---|---|---|---|
VGGNet1 | - Simple and uniform architecture - Good feature extraction | - Large number of parameters - High computational cost - Memory intensive | - Not selected due to high computational requirements and potential overfitting |
Inception2 | - Efficient use of computational resources - Reduced number of parameters | - Complex architecture - Difficult to modify | - Not selected due to complexity and less flexibility for our specific task |
DenseNet3 | - Feature reuse - Reduced number of parameters - Strong gradient flow | - Memory intensive during training - Computationally expensive for very deep networks | - Considered but not selected due to memory constraints in our setup |
ResNet4 | - Solves vanishing gradient problem - Can be very deep - Good performance on various tasks | - Still relatively large number of parameters - Training very deep versions can be time-comsuming | - Strong contender, but not selected due to EfficientNet’s better efficiency |
EfficientNet4 | - Scalable to different computational budgets | - Relatively new, less extensively tested - May require careful tuning of compound scaling | - Selected due to its balance of efficiency and performance, and its adaptability to our computational resources |
4. Tan and Le, 2019.
EfficientNet 모델은 네트워크의 깊이와 너비, 해상도를균형 있게 확장하여 높은 성능과 효율성을 동시에 달성한 CNN의 발전된 모델(Tan and Le, 2019)이다. 이는 기존 CNN의 복잡성과 자원 소모를 줄이면서도 성능을 극대화하기 위해 컴퓨터의 리소스 효율성을 고려한 스케일링(scaling) 접근법을 도입하였다. 특히 EfficientNet-B3 모델은 적절한 깊이와 너비, 해상도를 조합하여 다양한 이미지 분류 작업에서 우수한 성능을 보인다. 본 연구에서사용된 EfficientNet-B3 모델의 구조를 Fig. 4에 도시하였다. 이 모델은 기본적으로 5×5와 3×3 크기의 합성곱 필터를 병렬로 사용하여 다양한 크기의 특징(feature)을 학습할 수 있게 설계되었다. 또한 MBConv (mobile inverted bottleneck convolution) 블록을 사용하여 네트워크의 효율성을 극대화하고, 마지막 단계에서는 전역 평균 풀링(global average pooling) 층을 지나 Fully Connected (FC)층에서 최종 이미지 분류 결과를 출력한다. 해당 구조 덕에 EfficientNet-B3 모델은 상대적으로 적은 자원으로도높은 성능을 유지한다.
본 연구에서는 사전에 학습된 EfficientNet-B3 모델을활용하여 전이 학습을 수행하였다. 주요 하이퍼파라미터와 설정값은 Table 4에 제시하였다. 하나의 시추주상도이미지를 하나의 데이터로 간주하며, 총 908개의 데이터를 8대 2의 비율로 나누어 훈련용(training) 726개, 테스트용(test) 182개로 구성하였다. 각 이미지는 높이와 너비,색 채널(RGB)를 가진 3차원 행렬로 변환한 후, 모델 입력 전 300×300 크기로 축소하였다. 데이터 정규화(data normalization)를 통해 학습의 안정성과 속도를 향상하였으며, 이때 사용된 평균과 표준편차는 ImageNet 데이터세트의 일반적 값인 [0.485, 0.456, 0.406]과 [0.229, 0.224, 0.225]를 적용하였다. 이는 전이 학습의 일반적 관행으로, EfficientNet-B3 모델이 ImageNet 모델로 사전 학습되었기 때문에 같은 통계값으로 정규화된 입력 이미지를사용하면 모델의 초기 레이어들이 더 효과적으로 특징을 추출할 수 있다고 알려져 있다. 배치 크기(batch size)는 32로 설정하였으며, 모델은 ImageNet으로 사전 학습된 가중치를 초깃값으로 사용하고, 마지막 분류 층을연구 목적에 맞게 초기화하고 최적화하였다. 최적화는고정된 학습률(learning rate=0.001)을 가진 Adam 옵티마이저를 사용하여 진행되었으며, 손실 함수(loss function)는 다중 클래스 분류를 위해 교차 엔트로피 손실 함수(CrossEntropyLoss)를 사용하였다. 학습은 총 20 에포크동안 진행되었으며, 완료 후 모델의 가중치(weight)를 저장하여 후속 검증과 추가 실험에 사용하였다. 또한, NVIDIA의 CUDA (compute unified device architecture)를 지원하는 GPU (graphics processing unit)가 존재하는 경우 GPU를 통해 학습이 진행되었고, 없는 경우에는 CPU (central processing unit)를 통해 학습을 수행하도록 구성하였다.
Table 4 The hyperparameters setting for the EfficientNet-B3 deep learning model.
Hyperparameter | Value |
---|---|
Input Size | 300 × 300 |
Batch Size | 32 |
Number of Classes | 5 |
Optimizer | Adam |
Learning Rate | 0.001 |
Loss Function | CrossEntropyLoss |
Number of Epochs | 20 |
Transformations | Resize, ToTensor, Normalize |
Normalization Mean | [0.485, 0.456, 0.406] |
Normalization Standard Deviation | [0.229, 0.224, 0.225] |
Hardware | CUDA* (if available) / CPU |
* CUDA: Compute Unified Device Architecture
본 연구에서는 시추주상도의 유형 분류 결과의 정확도와 신뢰성을 평가하기 위해서 분류 정확도(classification accuracy)를 주요 지표로 활용하였다. 분류 정확도는 전체 예측 중 맞게 분류된 샘플의 비율로, 모델의 전반적인 성능을 나타낸다. 이는 모든 클래스가 균등하게 분포할 때 특히 유용한 지표로 사용된다. 해당 지표는 1에 가까울수록 높은 성능을, 0에 가까울수록 낮은 성능을 나타낸다.
분류 정확도는 혼동 행렬(confusion matrix, Fig. 5)을통해 계산할 수 있으며, 해당 표는 각 클래스에 대해 모델이 갈 클래스를 얼마나 정확하게 예측하였는지를 시각적으로 나타낸 것이다. 이는 클래스 간의 오차 분포를 명확히 파악할 수 있으며, 아래 네 가지 요소로 구성된다.
■TP(true positive): 실제 참인 데이터를 예측이 참으로판단한 경우
■TN(true negative): 실제 거짓인 데이터를 예측이 거짓으로 판단한 경우
■FP(false positive): 실제 거짓인 데이터를 예측이 참으로 판단한 경우
FN(false negative): 실제 참인 데이터를 예측이 거짓으로 판단한 경우
또한, 분류 정확도의 계산식은 아래와 같다:
시추주상도는 지반안정성 조사 및 평가에 필수적인 데이터들을 포함하고 있으므로, 이를 정확하게 추출하는 것이 중요하다. 본 연구에서는 EfficientNet-B3 딥러닝 모델의 이미지 분석을 통해 시추주상도 페이지를 분류한 후,다양한 OCR 기법과 PDF 내 텍스트 추출 기법을 적용하여 PDF 형식으로 구성된 시추주상도 문서에서 텍스트데이터를 추출하였다. 이때, PyTesseract와 EasyOCR, CLOVA OCR 등 여러 OCR 엔진의 결과와 PDF 내 텍스트 추출 기법의 결과를 비교하여 성능을 분석하였다.이후 가장 텍스트 데이터 추출 성능이 우수하고 시추주상도 데이터 처리에 적합한 기법을 연구 결과에 제시하였으며, 그 이외의 나머지 기법들에 대한 비교 및 분석은 토의에 작성하였다. 이미지 전처리(preprocessing) 과정에서는 노이즈 제거와 대비 조정, 해상도 최적화 등의적용을, 후처리(postprocessing) 과정에서 동의어를 하나의 용어로 인식하는 작업으로 성능을 개선하였다.
일반적으로 PDF 형식으로 제공되는 시추주상도의 경우, 텍스트 데이터는 벡터화된 텍스트(vectorized text)나텍스트 레이어(text layer)로 존재한다. 이는 PDF 변환 또는 작성하는 과정에서 소프트웨어가 삽입한 데이터이다.본 연구에서는 이러한 텍스트를 추출하기 위해 PDF 텍스트 추출 기법을 지원하는 ‘PyMuPDF(fitz)’ 라이브러리를 사용하였다. PDF 파일 내 텍스트 데이터는 시추주상도의 구성 요소를 구분한 것과 같이 가로로 작성되는 헤더 정보와 심도에 따라 세로로 작성되는 바디 정보를 구분하여 추출하였다. 헤더 정보는 필드와 텍스트 데이터가 가로쓰기로 작성되어 있어 별도의 처리 없이 추출할수 있었으며, 추출된 텍스트 데이터에서 오류가 발생하지 않았다. 반면, 바디 정보는 텍스트 데이터가 세로쓰기로 작성되어 있어 정확히 추출되지 않았으며, 이 문제를해결하기 위해 줄 바꿈(\n) 값을 공백 값으로 재구성하여데이터를 수집하였다. 또한 ‘절리간격’ 요소 중 값이 ‘N/A’로 작성된 값이 인식되지 않는 문제를 해결하기 위해해당 값을 ‘NA_VALUE’ 값으로 대체하였다. 그 결과, 바디 정보의 필드에 맞는 텍스트 데이터들을 명확하게 인식하여 추출할 수 있었다. PDF 텍스트 추출 과정은 시추 주상도 페이지별로 반복하여 모든 페이지의 데이터를 개별 CSV (comma separated value) 파일로 저장하였으며,추가적인 처리 및 분석을 위해 추출된 CSV 파일들을Microsoft Excel 파일로 변환하였다. 변환 과정에서는 표의 열(column)들을 정규화하고, ‘사업명’과 ‘시추공번’, ‘지층명’ 등의 중요한 키워드를 기반으로 텍스트를 필터링하여 정리하였다. 또한, 특정 키워드(‘심도’, ‘표고’, ‘깊이’ 등)를 기준으로 데이터의 시작 행(row)을 설정하고, 그아래에 있는 모든 텍스트 데이터를 수집하는 방식으로세로 방향으로 작성된 바디 정보의 값들을 추출하였다.마지막으로 중복되는 데이터를 제거하여 최종 텍스트 데이터를 저장하였다.
아날로그 형식의 시추주상도를 디지털 DB로 구축하고체계적으로 관리하기 위해서는 명확한 DB 구조 정립이필수적이다. 이에 본 연구에서는 5개 유형의 시추주상도데이터를 효율적으로 저장하고, 필요한 정보를 정확하게조회할 수 있도록 스프레드시트 형태의 DB 구조를 구성하였다(Table 5). 또한 데이터 입력 작업의 반복성을 최소화하고, 데이터의 일관성과 정확성을 확보하기 위해서DB 구축 과정을 자동화하였다. 그러나 해당 부분에서도추후 용이한 데이터 처리를 위해 텍스트 데이터를 재구성하여 추출한 부분 또한 다수 존재하였다. 원본 시추주상도에는 위치(위·경도)가 함께 표시되어 있었으나 실제데이터 추출 시에는 두 개의 열(X 좌표, Y 좌표)로 나누어 표기하였으며, 지층명의 경우 시주추상도 유형에 따라 존재하거나 존재하지 않는 필드로써 각 시추주상도의 ‘기술’이나 ‘설명’ 필드에서 정보를 추출하여 정리하였다. 이외에도 각 유형에 따라 다르게 존재하는 헤더와 바디정보 필드를 최적화하여 구조를 정립하였다.
Table 5 Design of DB schema fields (header and body information).
Header information | Body information | |
---|---|---|
Field name | -사업명 -시추공번 -조사일 - 위치(X) - 위치(Y) -지반표고(m) -굴진심도(m) -시추방법 -지하수위(m) -케이싱심도(m) -시추기 -시추공경 | -지층명 -심도(m) -표고(m) -두께(m) -설명 - TCR(%) - RQD(%) - D - S - F -절리간격_최대(cm) -절리간격_최소(cm) -절리간격_평균(cm) |
DB 스키마 설계는 시추주상도 데이터의 필수 정보를체계적으로 구조화하는 과정으로서, 헤더 정보와 바디 정보로 구분하여 각 정보에 필요한 필수 항목을 정의하였다. 헤더 정보는 시추주상도의 메타데이터를 담고 있으며, ‘사업명’, ‘시추공번’, ‘조사일’, ‘위치(X)’, ‘위치(Y)’, ‘지반표고(m)’, ‘굴진심도(m)’, ‘시추방법’, ‘지하수위(m)’, ‘케이싱심도(m)’,‘시추기’, ‘시추공경’ 등의 필드를 포함한다. 해당 필드들은 시추조사의 기본적인 정보를 제공하며, 조사 환경을 설명하는 데에 필수적이다. 반면, 바디정보는 ‘지층명’, ‘심도(m)’, ‘표고(m)’, ‘두께(m)’, ‘설명’,그리고 지질학적 특성을 나타내는 ‘TCR(%)’과 ‘RQD(%)’, ‘D’, ‘S’, ‘F’와 같은 암질 지표, 그리고 ‘절리간격_최대(cm)’, ‘절리간격_최소(cm)’, ‘절리간격_평균(cm)’과 같은지반 및 지하의 지질학적 데이터가 포함되었다. 이 항목들은 동일 시추조사에서 획득된 지질 데이터이며, 지반안전성 조사 및 평가에 직접적으로 활용되는 중요한 자료들이다.
본 연구에서 설계한 스프레드시트 기반의 DB에서는헤더와 바디 정보를 각각 열(column)로 구성하고, 각 행(row)은 개별 시추주상도의 특정 지층 데이터를 나타내도록 설계하였다.
Fig. 6은 훈련 자료를 학습한 EfficientNet-B3 딥러닝 모델을 이용해 테스트 데이터인 182개 시추주상도 이미지를 분류한 결과를 혼동 행렬로 나타낸 것이다. 혼동 행렬에서 대각선으로 존재하는 요소(true positive)는 딥러닝 모델이 올바르게 분류한 샘플의 수를 나타내며, 대각에서 위치하지 않은 값(misclassification)들은 모델이 잘못 분류한 샘플의 수를 의미한다. 테스트 데이터에서 Type 1은 35개, Type 2는 109개, Type 3은 17개, Type 4는 4개, Type 5는 17개로 분류되었다. 총 182개의 시추주상도를 분류하는데 소요된 시간은 6.85 초로, 사람이 작업할 때보다시간 및 비용 측면에서 매우 효율적인 것을 확인할 수있다. 정량화된 성능 평가 지표인 분류 정확도는 1.00으로 계산되었기에, 정밀도(precision)나 재현율(recall), F1-scare 등의 추가적인 지표들은 모두 1.00의 값을 갖게 되어 별도의 분석이 불필요하다고 판단하였다. 이는 본 연구에서 적용한 EfficientNet 딥러닝 모델이 지반안정성 평가용 시추주상도의 유형을 매우 정확하게 분류하였음을확인할 수 있다.
EfficientNet-B3 모델의 학습 과정에서 에포크 실행 수에 따른 학습 손실(learning loss)의 변화 추이를 Fig. 8에도시하였다. 해당 그래프에서 X축은 에포크 수를, Y축은학습 손실 값을 나타낸다. X축의 에포크는 4개 구간으로나누어 해석할 수 있는데, 이는 초기 손실 감소 구간(1~2에포크), 손실 안정화 구간(3~16 에포크), 최소 손실 구간(17~19 에포크), 마지막 손실의 약한 증가 구간(20 에포크)로 구분하였다. 초기 손실 감소 구간에서는 첫 번째에포크가 약 0.38에서 시작하여, 두 번째 에포크에서는약 0.03으로 급격히 감소하였다. 이는 사용된 EfficientNet-B3 모델이 학습 초기 입력 데이터 세트 몇 번의 반복에서 구조와 분포를 빠르고 효과적으로 학습하면서 손실값이 빠르게 줄어들었음을 의미한다. 손실 안정화 구간에서는 손실값의 변동이 작고, 낮은 값을 유지하며 대부분의 에포크에서 손실은 거의 0에 가까웠다. 이는 모델이학습 과정에서 매우 낮은 손실값을 유지하면서 새로운에포크에서 추가적인 큰 변화가 없었던 것으로 해석할수 있다. 해당 상태에서는 이미 모델이 학습 데이터에 대해 상당히 낮은 손실값을 유지하고 있어 학습이 안정화된 것으로 판단된다.
본 연구에서는 앞에서 분류된 5개 유형 중 Type 1의시추주상도 데이터를 자동으로 데이터베이스화하였다. Type 2의 시추주상도 데이터가 가장 많은 수를 차지하나, Type 1을 선택한 이유는 폐광산 시추주상도에서 요구되는 모든 필수 세부 사항들을 포함하고 있기 때문이다. 해당 세부 사항들은 ‘사업명’, ‘시추공번’, ‘위치’, ‘지반표고’, ‘굴진심도’, ‘시추방법’, ‘지하수위’ 등의 헤더 정보와 ‘심도’, ‘표고’, ‘두께’, ‘지층명’, ‘TCR’, ‘RQD’, ‘절리간격’ 등의 바디 정보를 모두 포함하여 암반의 안정성을획득할 수 있는 정보이다. 또한 해당 Type 1의 구조가 가장 체계적이고 일관성 있게 구성되어 있어, DB 스키마설계와 적용에 있어 가장 적합한 템플릿이라고 판단하였다. 따라서 Type 1을 표준적인 시추주상도로 간주하고,이를 기반으로 DB 스키마를 설계하고 자동화 알고리즘을 개발하는 것이 가장 효과적이라고 판단하였다.
Fig. 8은 해당 시추주상도 PDF 파일 한 페이지의 테이블 텍스트를 추출하여 하나의 CSV 파일로 저장한 것으로, 시추주상도 텍스트 데이터가 오류 없이 추출되었음을 확인할 수 있었다. PDF 문서에서 추출된 텍스트는 상당히 높은 정확도로 추출되었으며, 테이블 형식에 따라바디 정보의 위치를 자동으로 인식하고 구조화하는 데에효과적임을 확인하였다. 해당 과정에서 또한 PDF 파일에서의 텍스트 데이터 추출 정확도를 높이기 위해 전처리 과정을 진행하였다. 또한 추출된 텍스트의 구조화를용이하게 진행하기 위해 추출된 텍스트 데이터의 정렬과검증을 자동화하는 스크립트를 작성하여 데이터 처리의효율성을 향상시켰다.
이후 각 CSV 파일에 저장된 텍스트 데이터를 차례대로 호출하여 정립한 구조에 따라 Excel DB 작성 과정에서 헤더 정보와 심도 정보를 구분하여 재구성하였다. 헤더 정보의 경우 기준이 되는 필드 우측 두 번째나 세 번째에 시추조사의 데이터가 저장되어 있음을 확인하고 해당 데이터를 추출하였다. 바디 정보는 ‘심도(m)’부터 ‘설명’까지는 5행, 암질인 ‘TCR(%)’부터 ‘F’까지는 6행, 절리간격의 세부 요소인 ‘절리간격_최대(cm)’부터 ‘절리간격_평균(cm)’까지는 7행에 위치함에 따라 Python에서 해당하는 행부터 인식되도록 설정하여 추출하였다. 이 부분을 자동화하여 전체 CSV 파일을 정형 데이터 형태로작성하였으며, 그 결과는 Fig. 10과 같다.
결과적으로 재구성한 DB 구조에 따라 헤더 정보와 바디 정보가 올바르게 위치하였음을 확인하였으며, 해당 텍스트 데이터들이 스프레드시트에 체계적인 형태로 배열되었다. 먼저 헤더 정보의 경우 동일 사업에서 진행된 다른 ‘시추공번’에 따라 행 정보를 나열하였으며, ‘위치’ 열의 경우 원본에서 X 좌표와 Y 좌표가 하나의 텍스트로작성된 것을 추후 추가적인 처리가 쉽도록 두 열로 구분하여 표현하였다. 반면, 바디 정보의 데이터는 각 시추공번에 따라 연속적인 심도의 변화를 명확하게 나타냈고, ‘설명’ 열에서 기술되어 있는 ‘지층명’ 정보를 추출하여배열하였다. 암질을 표현하는 ‘TCR(%)’부터 ‘절리간격_평균(cm)’까지의 열들의 경우, 토양층에서는 해당 정보가존재하지 않았기 때문에 해당 행에서는 공백으로 표현하고 암석층일 때부터 시작되도록 하였다.
본 연구에서는 PDF 파일 형식의 시추주상도 데이터를효율적으로 추출하기 위해 여러 OCR 엔진과 PDF 내 레이아웃의 텍스트를 추출하는 방법을 적용하고 결과를 비교분석하였다. OCR 기술과 PDF 내 레이아웃의 텍스트를 그대로 추출하는 방법은 텍스트 구조와 처리 속도 등에서 차이를 보였다. 우선 적용된 세 OCR 엔진(PyTesseract, EasyOCR, CLOVA OCR)의 성능은 상이한 것으로 나타났다. OCR 엔진 적용시의 결과에는 텍스트 인식 오류(오타및 오인식)와 시추주상도의 레이아웃 및 구조 인식 실패(표 형식의 텍스트 인식 실패), 이미지 및 그림 요소의 혼동(그림 요소를 잘못된 텍스트로 인식) 등이 발생하는 것으로 나타났다.
본 연구에서 사용된 OCR 엔진 중 원본 텍스트와 CLOVA OCR, EasyOCR의 결과를 Table 6으로 나타내었다. 이는사용횟수 100회 초과 시 요금을 부과하는 CLOVA OCR과 EasyOCR을 통해 시추주상도 한 페이지의 헤더 정보와 바디 정보의 필드를 출력한 예시로, 텍스트 오타 또는 오인식된 부분을 의미한다. 오픈소스 엔진인 EasyOCR을 이용하여 동일한 시추주상도의 페이지를 인식해 추출한 결과는 CLOVA OCR의 결과보다 텍스트 인식 오류가 다수 발생한 것을 확인하였으며, 상세 내용인 시추주상도의 레이아웃 및 구조 인식과 이미지 그림 요소의 혼동은 CLOVA OCR과 동일하게 발생하였다. 또한, 다른오픈소스 엔진인 PyTesseract의 결과는 EasyOCR보다 더많은 인식 오류의 발생률을 보여주었다. 따라서 오픈소스 엔진들은 한글 인식률이 CLOVA OCR보다 상대적으로 낮은 것을 확인할 수 있었다.
Table 6 Brief comparison of misrecognized examples from different OCR techniques for header information fields.
Original text | Recognized text | |
---|---|---|
CLOVA OCR | EasyOCR | |
-사업명 -시추공번 -조사일 -위치 -표고 -굴진심도 -시추방법 -지하수위 -케이싱심도 -시추기 -시추공경 | - 사업영 X - 시추공번 ○ - 조사 일 X -위 치 X -표 고 ○ - 굴진심도 ○ - 시추방법 ○ - 지하수위 ○ -케이싱싱도 X - 시추기 ○ - 시추공경 ○ | -사 업 영 X -시추공번 ○ -조 사 입 X -뭐 지 X -포, 고 X -굽진심도 X - N구방번 X -지하수위 ○ -캐이싱심도 X -시 수 기 X -시즌공럽 X |
X: Misrecognized, ○: Correct
오픈소스 엔진인 EasyOCR과 PyTesseract의 성능 차이는 단순 하드웨어의 차이가 아닌, 두 엔진이 사용하는 기술적 접근 방식의 차이에 따라 발생한 것으로 판단된다. EasyOCR의 경우 딥러닝 모델 기반 접근 방식을 통해 다양한 폰트와 복잡한 배경에서도 비교적 높은 정확도를달성하나, 더 많은 연산 자원이 필요하다. 반면, 전통적컴퓨터 비전(computer vision) 기법과 LSTM 네트워크를결합한 PyTesseract는 상대적으로 적은 연산 자원으로 빠른 처리가 가능하지만, 복잡한 이미지에서는 상대적으로낮은 정확도를 보여준다. 따라서 각 OCR 엔진의 성능 차이는 사용된 알고리즘의 특성과 학습 데이터의 다양성,최적화 정도 등에 따라 변화되며, 이에 따라 두 엔진의정확도는 상이하였다.
Fig. 10은 OCR 엔진을 시추주상도에 적용했을 때의 텍스트 데이터 인식 결과를 보여준다. 좌측에 있는 원본 이미지와 우측에 있는 하이라이트 된 이미지를 비교하면일부 텍스트 데이터가 원활하게 인식되지 않았음을 확인할 수 있었다. 청색 상자로 강조한 부분들에서는 헤더 정보에서 ‘조사일’과 같은 키워드와 추출할 텍스트를 확인하면 하나의 텍스트를 여러 개로 나눠 인식한 것을 볼수 있었다. 바디 정보에서는 세로로 작성된 필드를 나눠서 인식하였거나, 시추 코어의 형상을 나타내는 ‘주상도’ 열에서는 그림에 존재하는 ‘+’를 텍스트로 인식하여 하이라이트 한 것을 확인하였다. 이는 결국 OCR 엔진이 테이블로 구성된 시추주상도의 레이아웃 형식을 올바르게인식 또는 처리하지 못해 발생한 문제로 판단된다. 이를해결하기 위해서는 OCR 엔진 인식 이후 후처리를 진행하거나, 기존보다 정교한 인식 알고리즘이 개발되어야 할것으로 사료된다.
본 연구에서 OCR 엔진을 이용해 추출한 헤더 정보들의 오인식 예시를 Table 7에 제시하였다. ‘위치’와 ‘지반표고’ 필드는 OCR 엔진이 대부분 올바르게 인식하였으나, ‘사업명’과 ‘시추공번’, ‘굴진심도’, ‘케이싱심도’ 등과같은 필드는 오인식된 경우가 다수 발견되었다. 이와 같은 오인식된 필드 및 내용들의 발생 원인은 크게 복잡한레이아웃과 특수 문자 및 기호, OCR 엔진의 한계 등으로 판단된다. 먼저 시추주상도의 복잡한 레이아웃과 다양한 정보 배치 및 특수 문자/기호가 OCR 엔진의 텍스트 인식 성능을 저하하였다고 생각되며, 사용된 OCR 엔진의 성능과 한계 또한 오인식의 원인이 되었다고 여겨진다. 따라서 향후 OCR 엔진의 성능 개선을 위해서는 전술한 바와 같이 전처리 기술의 향상, OCR 엔진의 최적화, 후처리 알고리즘의 개발 등을 진행해야 할 것으로 판단된다.
Table 7 Examples of misrecognized text data on a boring log using the OCR engine
Original text | Example of misrecognized text |
---|---|
사업명 | 사업영, 사영영, 사명명, 면명, 사영명, 사험명, 사엉명, 사업펄, 사업형 등 |
시추공번 | 시추공법, 시추공변, 시추공방, 시추공연 등 |
조사일 | 초사일, 조사할 등 |
위치 | - |
지반표고 | - |
굴진심도 | 굴진산도, 금전성도, 금전상도, 굴진실도, 금진삼도, 골진삼도, 궁진심도 등 |
케이싱심도 | 케이싱싱도, 케이심심도, 케이성이도, 케이침실도, 케이십삼도, 케이십삼도 등 |
시추방법 | 시추불편 등 |
지하수위 | 자동수위 등 |
시추기 | 시주기, 시주거 등 |
시추공경 | 시추공정, 시추공검 등 |
본 연구에서는 폐광산 지반안정성 조사 및 평가에 필수적인 시추주상도 데이터를 자동으로 추출하고, 이를 정형화된 DB 구조로 자동 구축하는 알고리즘을 설계하였다. EfficientNet-B3 딥러닝 모델을 활용하여 시추주상도의 유형을 높은 정확도로 자동 분류하였으며, 이 분류된결과를 바탕으로 PDF 형식의 시추주상도 문서에서 OCR기술과 PDF 내 텍스트 추출 기법을 통해 텍스트를 정확하게 인식하고 추출하였다. 이를 머신러닝 분석과 같은다양한 응용 분야에 활용이 용이한 스프레드시트의 형태의 데이터베이스로 구축하였다.
다만 본 연구에서 사용된 데이터 세트는 제한된 양의데이터와 특정 시추 조건에 국한된 샘플로 구성되어 있어, 연구의 신뢰성을 향상하고 범용성을 확장하기 위해서는 지질자원 분야의 다양한 데이터 유형을 반영함으로써 확정성을 넓힐 필요가 있을 것으로 사료된다. 특히,더 많은 유형의 시추주상도를 포함하여 다양한 지질매체와 지하구조 정보를 학습할 수 있도록 데이터를 확장해야 하며, 이를 위해 복잡한 패턴을 인식할 수 있는 알고리즘과 추가적인 튜닝이 필요하다고 사료된다. 또한 OCR엔진을 통한 텍스트 인식의 정확도를 높이기 위해 한글빅데이터를 활용한 학습 모델을 설계하고, 테이블로 나뉜 영역에 따라 데이터를 정확히 추출하는 방법을 개발한다면 텍스트 레이어가 존재하지 않는 PDF 형식의 데이터도 높은 정확도로 인식할 수 할 수 있을 것이다. 마지막으로 모델의 일반화 성능을 보장하기 위해서는 지속적인 업데이트와 환경적 요인, 데이터 품질 저하 등을 고려한 개선이 필요하다. 이를 위해서는 다양한 지질 조건과 지역에서 데이터를 수집·정제하고, 주기적으로 모델을재학습하여 최신 데이터를 반영해야 할 것으로 판단된다.또한, 실제 환경에서의 검증을 통해 예상치 못한 오류와데이터 노이즈에 대응할 수 있도록 알고리즘의 견고성을강화해야 한다.
본 연구는 레거시 데이터(legacy data)의 활용률을 높일수 있는 사례의 하나로써, 아날로그 형식의 시추주상도를 디지털 DB로 자동 구축하는 알고리즘의 개발은 데이터 입력 과정에서의 인적 오류 가능성을 감소시킴으로써데이터의 안전성과 신뢰성을 확보하고 시추주상도 관리의 효율성을 높이는 데 기여할 수 있다. 정형 데이터 형태로 재구성함에 따라 머신러닝 기반 분석과의 연계성을높임으로써 새로운 가치를 창출하고 의사결정에 유용한정보를 제공할 수 있을 것이다. 또한 딥러닝 기반 시추주상도의 자동화된 분류와 분석은 AI 기반 광업 자동화시스템의 개발에 활용될 수 있고, 향후 디지털 광산(digital mine) 또는 스마트 마이닝(smart mining)으로의 전환에중요한 역할을 할 수 있을 것으로 기대한다.
본 연구는 2021년도 정부(산업통상자원부)의 재원으로 해외자원개발협회의 지원을 받아 수행된 연구임(데이터사이언스 기반 석유·가스 탐사 컨소시엄).
Econ. Environ. Geol. 2024; 57(5): 473-486
Published online October 29, 2024 https://doi.org/10.9719/EEG.2024.57.5.473
Copyright © THE KOREAN SOCIETY OF ECONOMIC AND ENVIRONMENTAL GEOLOGY.
Hosang Han1, Jangwon Suh2,*
1Department of Energy and Mineral Resources Engineering, Kangwon National University, Samcheok, Korea
2Department of Energy Resources and Chemical Engineering, Kangwon National University, Samcheok, Korea
Correspondence to:*jangwonsuh@kangwon.ac.kr
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided original work is properly cited.
Boring logs are essential for the evaluation of ground stability in abandoned mine areas, representing geomaterial and subsurface structure information. However, because boring logs are maintained in various analog formats, extracting useful information from them is prone to human error and time-consuming. Therefore, this study develops an algorithm to efficiently manage and analyze boring log data for abandoned mine ground investigation provided in PDF format. For this purpose, the EfficientNet deep learning model was employed to classify the boring logs into five types with a high classification accuracy of 1.00. Then, optical character recognition (OCR) and PDF text extraction techniques were utilized to extract text data from each type of boring log. The OCR technique resulted in many cases of misrecognition of the text data of the boring logs, but the PDF text extraction technique extracted the text with very high accuracy. Subsequently, the structure of the database was established, and the text data of the boring logs were reorganized according to the established schema and written as structured data in the form of a spreadsheet. The results of this study suggest an effective approach for managing boring logs as part of the transition to digital mining, and it is expected that the structured boring log data from legacy data can be readily utilized for machine learning analysis.
Keywords boring log, deep learning, optical character recognition, database construction, smart mining
한호상1 · 서장원2,*
1강원대학교 에너지자원융합공학과 박사과정
2강원대학교 에너지자원화학공학과 부교수
시추주상도는 지질매체와 지하구조 정보를 나타내며, 폐광산 지역의 지반 안정성 평가에 필수적으로 사용되는 중요한 자료이다. 다만 시추주상도는 양식이 다양하고 아날로그 형태로 관리되고 있어 이로부터 유용한 정보를 도출하는 과정에는 인적 오류가 발생되거나 시간 및 비용이 소모된다는 단점이 있다. 따라서 본 연구에서는 PDF 파일 형식으로 제공되는 폐광산 지반조사용 시추주상도 데이터를 효율적으로 관리하고 분석할 수 있는 알고리즘을 개발하였다. 이를 위해 EfficientNet 딥러닝 모델을 사용하여 시추주상도를 5개 유형으로 분류하였으며, 분류 정확도는 1.00으로 매우 높게 나타났다. 이후 분류된 각 유형별 시추주상도를 광학문자인식(optical character recognition, OCR) 기술과 PDF 텍스트 추출 기법을 활용하여 텍스트를 추출하였다. OCR기술은 시추주상도의 텍스트 데이터를 오인식하는 결과가 다수 발생하였으나, PDF 텍스트 추출 기법은 매우 높은 정확도로 텍스트를 추출하였다. 이후 데이터베이스의 구조를 정립하고, 설계된 구조에 따라 시추주상도의 텍스트 데이터를 재구성하여 스프레드시트 형태의 정형 데이터로 작성하였다. 본 연구결과는 디지털 광산으로의 전환에 있어 효과적인 시추주상도 관리 방안을 제시하며, 레거시 데이터로부터 정형화된 시추주상도 데이터는 머신러닝 분석에 용이하게 활용될 수 있을 것으로 기대한다.
주요어 시추주상도, 딥러닝, 광학문자인식, 데이터베이스 구축, 스마트 마이닝
The management of analog boring logs is a time-consuming and error-prone process.
Deep learning enabled high-accuracy automated classification of boring log types.
An OCR-based automated algorithm was developed for boring log extraction and structuring.
시추주상도(boring log)는 시추된 코어 샘플을 기반으로 지반 및 지하의 지질학적 정보를 기록한 문서로, 지층의 연속적 구성과 깊이, 물리적 특성 등과 같은 지질매체와 지하 구조를 이해하는 데 필수적인 정보를 제공한다. 이는 일반적으로 지상에서 진행되는 지질조사에서획득하기 어려운 지표 하부에 대한 정보를 얻기 위한 목적으로 작성된다(Kim et al., 2013, Kim et al., 2018). 특히 폐광산 지역의 시추주상도는 지질학적 층서, 광물의분포, 지반의 조건, 균열의 정도, 지하수위 등을 파악하는 데 중요한 역할을 한다. 또한, 광산피해를 예방 및 관리하고 안전을 확보하기 위해 지반안정성을 평가하고, 이에 적절한 보강 대책을 수립하는 데에 중요한 기초 자료로 활용된다. 이러한 시추주상도들은 국내 광산의 경우한국광해광업공단이 운영하는 국가광물자원지리정보망(Korea Mineral Resources Geographic Information System, KMRGIS)에서 2004년부터 광업지적에 따라 정보들을 디지털화하여 관리하고 있다(Jang et al., 2013).
현재 폐광산 지반조사용 시추주상도는 아날로그 형태로 구축 및 관리되고 있어 여러 한계가 존재한다. 사람의 수작업에 의한 데이터 입력과 분석은 인적 오류의 발생 가능성이 높고, 시간과 비용 소모를 초래한다. 이러한점들은 전국을 망라하는 광산 데이터가 대규모이기에 현대 광산 데이터 분석과 정보 관리 환경에서 큰 비효율을초래할 수 있다. 이를 극복하기 위해서는 아날로그 형식의 시추주상도를 디지털 데이터베이스(database, DB) 형태로 전환 또는 구축할 필요가 있다. 특히 다양한 DB 형식 중 스프레드시트와 같은 정형 데이터는 머신러닝 분석 등에 용이하게 활용되고 가장 적합한 자료 형태이다.따라서 이는 추후 폐광산 지반안전성 평가 시 머신러닝기반 분석과 효율적인 데이터 관리라는 측면에서 큰 장점이 될 수 있다.
최근 인공지능(artificial intelligence, AI)은 광산 피해(광해) 예방과 관리와 같은 지질 및 환경 분야에서 널리 적용되고 있으며, 특히 딥러닝(deep-learning) 모델을 활용한 이미지 인식 기술은 국내·외 지질학적 데이터 분석에서도 높은 정확도를 보이고 있다(Pham and Shin, 2020, Sim et al., 2022, Qiu et al., 2023). 국외에서는 시추코어이미지를 인식해 암종을 분류하는 연구(Alzubaidi et al., 2021)나 다중 웰 로그 데이터를 이용해 암종을 분류하는연구(Saroji et al., 2021)가 진행된 바 있다. 최근에는 광학문자인식(optical character recognition, OCR) 기술을 이용해 시추주상도 데이터의 손글씨를 인식하는 연구(Ghaeminmood, 2021)와 지하 정보를 추출하는 연구(Zhang et al., 2020)도 보고되었다. 국내에서도 시추주상도의 DB구축과 관리가 점차 중요시되고 있으며(Park et al., 2015),이에 따라 Park et al.(2021)은 국내 국토지반정보 포털시스템에서 관리되는 토목 분야의 시추주상도를 대상으로AI 기반의 DB 구축 자동화 방안을 제안했다. 그러나 폐광산 지역의 지반안정성 조사에 활용되는 다양한 형식의시추주상도를 자동으로 분류하고, 데이터베이스화한 사례는 존재하지 않았다.
따라서 본 연구에서는 폐광산 지역의 지반안정성 평가용 시추주상도를 효율적으로 관리하는 접근법을 제시하였다. 딥러닝 모델을 활용하여 시추주상도의 유형을 분류하고, PDF (portable document format) 형식의 문서에서 OCR 기술과 텍스트 추출을 이용해 데이터를 자동으로 수집하고 스프레드시트 형태로 정리하는 프로세스를개발하였다. 이를 통해 기존의 수작업 중심 데이터 관리방식에서 벗어나 디지털화와 자동화라는 측면에서 스마트 마이닝의 요소 기술 구현에 필요한 기초 데이터를 제시할 수 있을 것으로 기대된다.
Fig. 1은 본 연구에서 사용된 연구 방법과 절차를 순서도 형태로 나타낸 것이다. 해당 과정은 폐광산 지반조사보고서(PDF 파일) 수집, 보고서 내 시추주상도 페이지만추출하는 전처리 단계, 딥러닝 모델을 이용한 시추주상도 유형 분류, 시추주상도 유형 분류 결과의 검증, 각 시추주상도 페이지에서 OCR 및 PDF 내 텍스트 추출 적용,추출된 텍스트 데이터의 구조화, DB 생성 순으로 진행되었다. 본 연구는 Python 3.11.9 환경에서 진행하였으며, 컴퓨터 사양은 Intel(R) i7-13700K, 32GB RAM, NVIDIA GeForce RTX 4070 Ti로 구성하였다.
본 연구에서는 한국광해광업공단에서 원천데이터 형태로 개방한, 2019년(1차, 27건)과 2020년(2차, 20건)에 구축된 폐광산 지역의 지반안정성 조사 보고서(https://miregis.komir.or.kr/board/noticeDetail.do?ntcSeq=2020112000001)로 총 47건에 대한 시추 지반정보를 획득하였다. Table 1은 지반정보 공개 데이터의 통계량으로, 해당 전체 데이터의 총 시추공 수는 423개였으나 유효한 시추주상도의개수는 403개였다. 또한 전체 지반안정성 보고서 PDF 파일은 총 2,961페이지였으나, 시료 사진과 물성현장시험,물성실내시험, 물리검층시험, 물리탐사시험 등의 페이지를 제거한 시추주상도는 908페이지로 구성되었다.
Table 1 . Number of abandoned mine ground stability investigation reports and boring logs used in this study..
Item | Number | |
---|---|---|
Ground stability investigation report | ea | 47 |
pages | 2961 | |
Boring logs (in reports) | ea | 403 |
pages | 908 |
시추주상도의 구성 요소(Fig. 2)는 전체 데이터의 맥락을 설명하거나 데이터가 속한 범주를 정의하는 헤더 정보(header information)와 시추코어 데이터의 주요 물성값을 제시하는 바디 정보(body information)로 분류하였다.헤더 정보는 일반적인 메타데이터(meta data)로써 사업명,시추공번, 위치(좌표), 지반표고, 굴진심도, 시추방법, 지하수위, 시추기, 시추공경 등의 필드로 구성되었으며, 동일 사업 내에서 시추 공번 또는 시추 작업의 식별과 관리를 위해 사용된다. 반면, 바디 정보는 심도별로 변화히는 지층의 세부 정보로써 심도나 표고, 두께, 지층명, 설명, 암질, 절리간격 등의 필드가 포함된 데이터이며, 지질매체 특성 또는 지하 구조를 파악하는 데 주로 사용된다.
데이터 전처리는 시추주상도의 유형을 분류하고, 보고서 내 시추주상도 페이지만을 추출하기 위한 단계로 수행되었다. 먼저 지반안정성 보고서들의 작성 연도를 검토한 결과, 해당 보고서는 2003년부터 2020년 사이에 작성된 것들로, 작성 연도에 따라 시추주상도의 레이아웃이나 세부 항목들이 다르게 구성된 것을 확인하였다. 보고서들은 이미지로만 구성된 PDF 파일부터 벡터화된 텍스트 또는 텍스트 레이어를 포함한 PDF 파일까지 다양한 형태로 존재하였다. 이후 전체 지반안정성 조사 보고서의 유형을 작성된 양식과 바디 정보의 피드 차이에 따라 고려하여 수동으로 분류한 결과 47개 보고서를 5개유형(Type 1~5)으로 분류할 수 있었다. 유형별 보고서에 대한 예시는 Fig. 3에 제시하였다. 또한 전체 지반안정성조사 보고서와 시추주상도 데이터의 유형에 따른 개수와비율을 Table 2에 요약하였다.
Table 2 . The number of abandoned mine ground stability investigation reports and boring logs by types..
Class | Report | Borehole log (in report) | ||
---|---|---|---|---|
Number | % | Pages | % | |
Type 1 | 16 | 34.0 | 175 | 19.7 |
Type 2 | 23 | 48.9 | 545 | 61.4 |
Type 3 | 4 | 8.5 | 85 | 7.2 |
Type 4 | 3 | 6.4 | 19 | 2.1 |
Type 5 | 1 | 2.1 | 84 | 9.5 |
Sum | 47 | 100.0 | 908 | 100.0 |
최근 딥러닝 기술은 이미지 분석에서 뛰어난 성능을 보이고 있으며, 이 기술들은 인간의 신경망(neural network)구조를 모방해 만든 인공신경망(artificial neural network, ANN)을 기반으로 한다. ANN 기법에 다수의 은닉층(hidden layer)을 추가하면서 개선된 심층신경망(deep neural network, DNN)이 개발되었고, 이후 입력 데이터 유형에따라 신경망을 최적화하여 학습하고 결과를 얻기 위해합성곱신경망(convolutional neural network, CNN) 계열과 순환신경망(recurrent neural network, RNN) 계열이 지속해서 개발 및 발표되고 있다(Bonassi et al., 2022, Yu et al., 2022).
CNN은 주로 이미지 데이터를 처리하기 위하여 설계된신경망으로, 합성곱 층(convolutional layer)과 풀링 층(pooling layer)을 이용하여 입력 이미지의 공간적 특성을학습한다. 이는 이미지 분류나 객체 탐지 등에 뛰어난 성능을 보이며 다양한 컴퓨터 비전(computer vision) 분야의 작업에 주로 활용된다. 반면 RNN의 경우 순차적 데이터(sequential data) 처리에 특화된 신경망으로, 이전 입력된 데이터 정보를 기억하고 다음 입력 데이터에 반영하는 순환(recurrent) 구조를 갖는다. 따라서 RNN은 주로시계열 데이터나 텍스트 데이터 처리 등에 활용된다. 특히 RNN 모델 계열의 한 종류인 장단기 기억 신경망(long short-term memory, LSTM)은 시계열 예측 분야에서 널리 사용되고 있으며, 에너지 자원 분야에서도 그 적용 사례를 찾아볼 수 있다(Lee et al., 2019).
본 연구에서는 시추주상도의 유형 분류를 위한 이미지분석에 해당하므로 RNN보다는 CNN이 더 적합하다고판단하였다. CNN 계열에서도 VGGNet이나 Inception, DenseNet, EfficientNet, ResNet 등 다양한 모델이 존재하기 때문에 기법 선정에 앞서 해당 모델들의 장단점을Table 3과 같이 비교하였다. 본 연구에서는 CNN 계열 모델의 장단점 비교분석을 통해 제한적인 계산 자원의 효율성을 가지면서도 높은 성능의 균형을 유지하고, 컴퓨팅 리소스에 대한 적응성을 고려하여 EfficientNet 모델을 선택하였다. 또한, EfficientNet은 여러 버전(네트워크크기)으로 제공되기에 47개 보고서라는 소규모 데이터세트에 알맞은 EfficientNet-B3 모델을 선정하였다.
Table 3 . Comparison of the advantages and disadvantages of the CNN family of models..
Model | Advantages | Disadvantages | Reason for Selection |
---|---|---|---|
VGGNet1 | - Simple and uniform architecture - Good feature extraction | - Large number of parameters - High computational cost - Memory intensive | - Not selected due to high computational requirements and potential overfitting |
Inception2 | - Efficient use of computational resources - Reduced number of parameters | - Complex architecture - Difficult to modify | - Not selected due to complexity and less flexibility for our specific task |
DenseNet3 | - Feature reuse - Reduced number of parameters - Strong gradient flow | - Memory intensive during training - Computationally expensive for very deep networks | - Considered but not selected due to memory constraints in our setup |
ResNet4 | - Solves vanishing gradient problem - Can be very deep - Good performance on various tasks | - Still relatively large number of parameters - Training very deep versions can be time-comsuming | - Strong contender, but not selected due to EfficientNet’s better efficiency |
EfficientNet4 | - Scalable to different computational budgets | - Relatively new, less extensively tested - May require careful tuning of compound scaling | - Selected due to its balance of efficiency and performance, and its adaptability to our computational resources |
2. Szegedy et al., 2015..
3. Huang et al., 2017..
4. Tan and Le, 2019..
EfficientNet 모델은 네트워크의 깊이와 너비, 해상도를균형 있게 확장하여 높은 성능과 효율성을 동시에 달성한 CNN의 발전된 모델(Tan and Le, 2019)이다. 이는 기존 CNN의 복잡성과 자원 소모를 줄이면서도 성능을 극대화하기 위해 컴퓨터의 리소스 효율성을 고려한 스케일링(scaling) 접근법을 도입하였다. 특히 EfficientNet-B3 모델은 적절한 깊이와 너비, 해상도를 조합하여 다양한 이미지 분류 작업에서 우수한 성능을 보인다. 본 연구에서사용된 EfficientNet-B3 모델의 구조를 Fig. 4에 도시하였다. 이 모델은 기본적으로 5×5와 3×3 크기의 합성곱 필터를 병렬로 사용하여 다양한 크기의 특징(feature)을 학습할 수 있게 설계되었다. 또한 MBConv (mobile inverted bottleneck convolution) 블록을 사용하여 네트워크의 효율성을 극대화하고, 마지막 단계에서는 전역 평균 풀링(global average pooling) 층을 지나 Fully Connected (FC)층에서 최종 이미지 분류 결과를 출력한다. 해당 구조 덕에 EfficientNet-B3 모델은 상대적으로 적은 자원으로도높은 성능을 유지한다.
본 연구에서는 사전에 학습된 EfficientNet-B3 모델을활용하여 전이 학습을 수행하였다. 주요 하이퍼파라미터와 설정값은 Table 4에 제시하였다. 하나의 시추주상도이미지를 하나의 데이터로 간주하며, 총 908개의 데이터를 8대 2의 비율로 나누어 훈련용(training) 726개, 테스트용(test) 182개로 구성하였다. 각 이미지는 높이와 너비,색 채널(RGB)를 가진 3차원 행렬로 변환한 후, 모델 입력 전 300×300 크기로 축소하였다. 데이터 정규화(data normalization)를 통해 학습의 안정성과 속도를 향상하였으며, 이때 사용된 평균과 표준편차는 ImageNet 데이터세트의 일반적 값인 [0.485, 0.456, 0.406]과 [0.229, 0.224, 0.225]를 적용하였다. 이는 전이 학습의 일반적 관행으로, EfficientNet-B3 모델이 ImageNet 모델로 사전 학습되었기 때문에 같은 통계값으로 정규화된 입력 이미지를사용하면 모델의 초기 레이어들이 더 효과적으로 특징을 추출할 수 있다고 알려져 있다. 배치 크기(batch size)는 32로 설정하였으며, 모델은 ImageNet으로 사전 학습된 가중치를 초깃값으로 사용하고, 마지막 분류 층을연구 목적에 맞게 초기화하고 최적화하였다. 최적화는고정된 학습률(learning rate=0.001)을 가진 Adam 옵티마이저를 사용하여 진행되었으며, 손실 함수(loss function)는 다중 클래스 분류를 위해 교차 엔트로피 손실 함수(CrossEntropyLoss)를 사용하였다. 학습은 총 20 에포크동안 진행되었으며, 완료 후 모델의 가중치(weight)를 저장하여 후속 검증과 추가 실험에 사용하였다. 또한, NVIDIA의 CUDA (compute unified device architecture)를 지원하는 GPU (graphics processing unit)가 존재하는 경우 GPU를 통해 학습이 진행되었고, 없는 경우에는 CPU (central processing unit)를 통해 학습을 수행하도록 구성하였다.
Table 4 . The hyperparameters setting for the EfficientNet-B3 deep learning model..
Hyperparameter | Value |
---|---|
Input Size | 300 × 300 |
Batch Size | 32 |
Number of Classes | 5 |
Optimizer | Adam |
Learning Rate | 0.001 |
Loss Function | CrossEntropyLoss |
Number of Epochs | 20 |
Transformations | Resize, ToTensor, Normalize |
Normalization Mean | [0.485, 0.456, 0.406] |
Normalization Standard Deviation | [0.229, 0.224, 0.225] |
Hardware | CUDA* (if available) / CPU |
* CUDA: Compute Unified Device Architecture.
본 연구에서는 시추주상도의 유형 분류 결과의 정확도와 신뢰성을 평가하기 위해서 분류 정확도(classification accuracy)를 주요 지표로 활용하였다. 분류 정확도는 전체 예측 중 맞게 분류된 샘플의 비율로, 모델의 전반적인 성능을 나타낸다. 이는 모든 클래스가 균등하게 분포할 때 특히 유용한 지표로 사용된다. 해당 지표는 1에 가까울수록 높은 성능을, 0에 가까울수록 낮은 성능을 나타낸다.
분류 정확도는 혼동 행렬(confusion matrix, Fig. 5)을통해 계산할 수 있으며, 해당 표는 각 클래스에 대해 모델이 갈 클래스를 얼마나 정확하게 예측하였는지를 시각적으로 나타낸 것이다. 이는 클래스 간의 오차 분포를 명확히 파악할 수 있으며, 아래 네 가지 요소로 구성된다.
■TP(true positive): 실제 참인 데이터를 예측이 참으로판단한 경우
■TN(true negative): 실제 거짓인 데이터를 예측이 거짓으로 판단한 경우
■FP(false positive): 실제 거짓인 데이터를 예측이 참으로 판단한 경우
FN(false negative): 실제 참인 데이터를 예측이 거짓으로 판단한 경우
또한, 분류 정확도의 계산식은 아래와 같다:
시추주상도는 지반안정성 조사 및 평가에 필수적인 데이터들을 포함하고 있으므로, 이를 정확하게 추출하는 것이 중요하다. 본 연구에서는 EfficientNet-B3 딥러닝 모델의 이미지 분석을 통해 시추주상도 페이지를 분류한 후,다양한 OCR 기법과 PDF 내 텍스트 추출 기법을 적용하여 PDF 형식으로 구성된 시추주상도 문서에서 텍스트데이터를 추출하였다. 이때, PyTesseract와 EasyOCR, CLOVA OCR 등 여러 OCR 엔진의 결과와 PDF 내 텍스트 추출 기법의 결과를 비교하여 성능을 분석하였다.이후 가장 텍스트 데이터 추출 성능이 우수하고 시추주상도 데이터 처리에 적합한 기법을 연구 결과에 제시하였으며, 그 이외의 나머지 기법들에 대한 비교 및 분석은 토의에 작성하였다. 이미지 전처리(preprocessing) 과정에서는 노이즈 제거와 대비 조정, 해상도 최적화 등의적용을, 후처리(postprocessing) 과정에서 동의어를 하나의 용어로 인식하는 작업으로 성능을 개선하였다.
일반적으로 PDF 형식으로 제공되는 시추주상도의 경우, 텍스트 데이터는 벡터화된 텍스트(vectorized text)나텍스트 레이어(text layer)로 존재한다. 이는 PDF 변환 또는 작성하는 과정에서 소프트웨어가 삽입한 데이터이다.본 연구에서는 이러한 텍스트를 추출하기 위해 PDF 텍스트 추출 기법을 지원하는 ‘PyMuPDF(fitz)’ 라이브러리를 사용하였다. PDF 파일 내 텍스트 데이터는 시추주상도의 구성 요소를 구분한 것과 같이 가로로 작성되는 헤더 정보와 심도에 따라 세로로 작성되는 바디 정보를 구분하여 추출하였다. 헤더 정보는 필드와 텍스트 데이터가 가로쓰기로 작성되어 있어 별도의 처리 없이 추출할수 있었으며, 추출된 텍스트 데이터에서 오류가 발생하지 않았다. 반면, 바디 정보는 텍스트 데이터가 세로쓰기로 작성되어 있어 정확히 추출되지 않았으며, 이 문제를해결하기 위해 줄 바꿈(\n) 값을 공백 값으로 재구성하여데이터를 수집하였다. 또한 ‘절리간격’ 요소 중 값이 ‘N/A’로 작성된 값이 인식되지 않는 문제를 해결하기 위해해당 값을 ‘NA_VALUE’ 값으로 대체하였다. 그 결과, 바디 정보의 필드에 맞는 텍스트 데이터들을 명확하게 인식하여 추출할 수 있었다. PDF 텍스트 추출 과정은 시추 주상도 페이지별로 반복하여 모든 페이지의 데이터를 개별 CSV (comma separated value) 파일로 저장하였으며,추가적인 처리 및 분석을 위해 추출된 CSV 파일들을Microsoft Excel 파일로 변환하였다. 변환 과정에서는 표의 열(column)들을 정규화하고, ‘사업명’과 ‘시추공번’, ‘지층명’ 등의 중요한 키워드를 기반으로 텍스트를 필터링하여 정리하였다. 또한, 특정 키워드(‘심도’, ‘표고’, ‘깊이’ 등)를 기준으로 데이터의 시작 행(row)을 설정하고, 그아래에 있는 모든 텍스트 데이터를 수집하는 방식으로세로 방향으로 작성된 바디 정보의 값들을 추출하였다.마지막으로 중복되는 데이터를 제거하여 최종 텍스트 데이터를 저장하였다.
아날로그 형식의 시추주상도를 디지털 DB로 구축하고체계적으로 관리하기 위해서는 명확한 DB 구조 정립이필수적이다. 이에 본 연구에서는 5개 유형의 시추주상도데이터를 효율적으로 저장하고, 필요한 정보를 정확하게조회할 수 있도록 스프레드시트 형태의 DB 구조를 구성하였다(Table 5). 또한 데이터 입력 작업의 반복성을 최소화하고, 데이터의 일관성과 정확성을 확보하기 위해서DB 구축 과정을 자동화하였다. 그러나 해당 부분에서도추후 용이한 데이터 처리를 위해 텍스트 데이터를 재구성하여 추출한 부분 또한 다수 존재하였다. 원본 시추주상도에는 위치(위·경도)가 함께 표시되어 있었으나 실제데이터 추출 시에는 두 개의 열(X 좌표, Y 좌표)로 나누어 표기하였으며, 지층명의 경우 시주추상도 유형에 따라 존재하거나 존재하지 않는 필드로써 각 시추주상도의 ‘기술’이나 ‘설명’ 필드에서 정보를 추출하여 정리하였다. 이외에도 각 유형에 따라 다르게 존재하는 헤더와 바디정보 필드를 최적화하여 구조를 정립하였다.
Table 5 . Design of DB schema fields (header and body information)..
Header information | Body information | |
---|---|---|
Field name | -사업명 -시추공번 -조사일 - 위치(X) - 위치(Y) -지반표고(m) -굴진심도(m) -시추방법 -지하수위(m) -케이싱심도(m) -시추기 -시추공경 | -지층명 -심도(m) -표고(m) -두께(m) -설명 - TCR(%) - RQD(%) - D - S - F -절리간격_최대(cm) -절리간격_최소(cm) -절리간격_평균(cm) |
DB 스키마 설계는 시추주상도 데이터의 필수 정보를체계적으로 구조화하는 과정으로서, 헤더 정보와 바디 정보로 구분하여 각 정보에 필요한 필수 항목을 정의하였다. 헤더 정보는 시추주상도의 메타데이터를 담고 있으며, ‘사업명’, ‘시추공번’, ‘조사일’, ‘위치(X)’, ‘위치(Y)’, ‘지반표고(m)’, ‘굴진심도(m)’, ‘시추방법’, ‘지하수위(m)’, ‘케이싱심도(m)’,‘시추기’, ‘시추공경’ 등의 필드를 포함한다. 해당 필드들은 시추조사의 기본적인 정보를 제공하며, 조사 환경을 설명하는 데에 필수적이다. 반면, 바디정보는 ‘지층명’, ‘심도(m)’, ‘표고(m)’, ‘두께(m)’, ‘설명’,그리고 지질학적 특성을 나타내는 ‘TCR(%)’과 ‘RQD(%)’, ‘D’, ‘S’, ‘F’와 같은 암질 지표, 그리고 ‘절리간격_최대(cm)’, ‘절리간격_최소(cm)’, ‘절리간격_평균(cm)’과 같은지반 및 지하의 지질학적 데이터가 포함되었다. 이 항목들은 동일 시추조사에서 획득된 지질 데이터이며, 지반안전성 조사 및 평가에 직접적으로 활용되는 중요한 자료들이다.
본 연구에서 설계한 스프레드시트 기반의 DB에서는헤더와 바디 정보를 각각 열(column)로 구성하고, 각 행(row)은 개별 시추주상도의 특정 지층 데이터를 나타내도록 설계하였다.
Fig. 6은 훈련 자료를 학습한 EfficientNet-B3 딥러닝 모델을 이용해 테스트 데이터인 182개 시추주상도 이미지를 분류한 결과를 혼동 행렬로 나타낸 것이다. 혼동 행렬에서 대각선으로 존재하는 요소(true positive)는 딥러닝 모델이 올바르게 분류한 샘플의 수를 나타내며, 대각에서 위치하지 않은 값(misclassification)들은 모델이 잘못 분류한 샘플의 수를 의미한다. 테스트 데이터에서 Type 1은 35개, Type 2는 109개, Type 3은 17개, Type 4는 4개, Type 5는 17개로 분류되었다. 총 182개의 시추주상도를 분류하는데 소요된 시간은 6.85 초로, 사람이 작업할 때보다시간 및 비용 측면에서 매우 효율적인 것을 확인할 수있다. 정량화된 성능 평가 지표인 분류 정확도는 1.00으로 계산되었기에, 정밀도(precision)나 재현율(recall), F1-scare 등의 추가적인 지표들은 모두 1.00의 값을 갖게 되어 별도의 분석이 불필요하다고 판단하였다. 이는 본 연구에서 적용한 EfficientNet 딥러닝 모델이 지반안정성 평가용 시추주상도의 유형을 매우 정확하게 분류하였음을확인할 수 있다.
EfficientNet-B3 모델의 학습 과정에서 에포크 실행 수에 따른 학습 손실(learning loss)의 변화 추이를 Fig. 8에도시하였다. 해당 그래프에서 X축은 에포크 수를, Y축은학습 손실 값을 나타낸다. X축의 에포크는 4개 구간으로나누어 해석할 수 있는데, 이는 초기 손실 감소 구간(1~2에포크), 손실 안정화 구간(3~16 에포크), 최소 손실 구간(17~19 에포크), 마지막 손실의 약한 증가 구간(20 에포크)로 구분하였다. 초기 손실 감소 구간에서는 첫 번째에포크가 약 0.38에서 시작하여, 두 번째 에포크에서는약 0.03으로 급격히 감소하였다. 이는 사용된 EfficientNet-B3 모델이 학습 초기 입력 데이터 세트 몇 번의 반복에서 구조와 분포를 빠르고 효과적으로 학습하면서 손실값이 빠르게 줄어들었음을 의미한다. 손실 안정화 구간에서는 손실값의 변동이 작고, 낮은 값을 유지하며 대부분의 에포크에서 손실은 거의 0에 가까웠다. 이는 모델이학습 과정에서 매우 낮은 손실값을 유지하면서 새로운에포크에서 추가적인 큰 변화가 없었던 것으로 해석할수 있다. 해당 상태에서는 이미 모델이 학습 데이터에 대해 상당히 낮은 손실값을 유지하고 있어 학습이 안정화된 것으로 판단된다.
본 연구에서는 앞에서 분류된 5개 유형 중 Type 1의시추주상도 데이터를 자동으로 데이터베이스화하였다. Type 2의 시추주상도 데이터가 가장 많은 수를 차지하나, Type 1을 선택한 이유는 폐광산 시추주상도에서 요구되는 모든 필수 세부 사항들을 포함하고 있기 때문이다. 해당 세부 사항들은 ‘사업명’, ‘시추공번’, ‘위치’, ‘지반표고’, ‘굴진심도’, ‘시추방법’, ‘지하수위’ 등의 헤더 정보와 ‘심도’, ‘표고’, ‘두께’, ‘지층명’, ‘TCR’, ‘RQD’, ‘절리간격’ 등의 바디 정보를 모두 포함하여 암반의 안정성을획득할 수 있는 정보이다. 또한 해당 Type 1의 구조가 가장 체계적이고 일관성 있게 구성되어 있어, DB 스키마설계와 적용에 있어 가장 적합한 템플릿이라고 판단하였다. 따라서 Type 1을 표준적인 시추주상도로 간주하고,이를 기반으로 DB 스키마를 설계하고 자동화 알고리즘을 개발하는 것이 가장 효과적이라고 판단하였다.
Fig. 8은 해당 시추주상도 PDF 파일 한 페이지의 테이블 텍스트를 추출하여 하나의 CSV 파일로 저장한 것으로, 시추주상도 텍스트 데이터가 오류 없이 추출되었음을 확인할 수 있었다. PDF 문서에서 추출된 텍스트는 상당히 높은 정확도로 추출되었으며, 테이블 형식에 따라바디 정보의 위치를 자동으로 인식하고 구조화하는 데에효과적임을 확인하였다. 해당 과정에서 또한 PDF 파일에서의 텍스트 데이터 추출 정확도를 높이기 위해 전처리 과정을 진행하였다. 또한 추출된 텍스트의 구조화를용이하게 진행하기 위해 추출된 텍스트 데이터의 정렬과검증을 자동화하는 스크립트를 작성하여 데이터 처리의효율성을 향상시켰다.
이후 각 CSV 파일에 저장된 텍스트 데이터를 차례대로 호출하여 정립한 구조에 따라 Excel DB 작성 과정에서 헤더 정보와 심도 정보를 구분하여 재구성하였다. 헤더 정보의 경우 기준이 되는 필드 우측 두 번째나 세 번째에 시추조사의 데이터가 저장되어 있음을 확인하고 해당 데이터를 추출하였다. 바디 정보는 ‘심도(m)’부터 ‘설명’까지는 5행, 암질인 ‘TCR(%)’부터 ‘F’까지는 6행, 절리간격의 세부 요소인 ‘절리간격_최대(cm)’부터 ‘절리간격_평균(cm)’까지는 7행에 위치함에 따라 Python에서 해당하는 행부터 인식되도록 설정하여 추출하였다. 이 부분을 자동화하여 전체 CSV 파일을 정형 데이터 형태로작성하였으며, 그 결과는 Fig. 10과 같다.
결과적으로 재구성한 DB 구조에 따라 헤더 정보와 바디 정보가 올바르게 위치하였음을 확인하였으며, 해당 텍스트 데이터들이 스프레드시트에 체계적인 형태로 배열되었다. 먼저 헤더 정보의 경우 동일 사업에서 진행된 다른 ‘시추공번’에 따라 행 정보를 나열하였으며, ‘위치’ 열의 경우 원본에서 X 좌표와 Y 좌표가 하나의 텍스트로작성된 것을 추후 추가적인 처리가 쉽도록 두 열로 구분하여 표현하였다. 반면, 바디 정보의 데이터는 각 시추공번에 따라 연속적인 심도의 변화를 명확하게 나타냈고, ‘설명’ 열에서 기술되어 있는 ‘지층명’ 정보를 추출하여배열하였다. 암질을 표현하는 ‘TCR(%)’부터 ‘절리간격_평균(cm)’까지의 열들의 경우, 토양층에서는 해당 정보가존재하지 않았기 때문에 해당 행에서는 공백으로 표현하고 암석층일 때부터 시작되도록 하였다.
본 연구에서는 PDF 파일 형식의 시추주상도 데이터를효율적으로 추출하기 위해 여러 OCR 엔진과 PDF 내 레이아웃의 텍스트를 추출하는 방법을 적용하고 결과를 비교분석하였다. OCR 기술과 PDF 내 레이아웃의 텍스트를 그대로 추출하는 방법은 텍스트 구조와 처리 속도 등에서 차이를 보였다. 우선 적용된 세 OCR 엔진(PyTesseract, EasyOCR, CLOVA OCR)의 성능은 상이한 것으로 나타났다. OCR 엔진 적용시의 결과에는 텍스트 인식 오류(오타및 오인식)와 시추주상도의 레이아웃 및 구조 인식 실패(표 형식의 텍스트 인식 실패), 이미지 및 그림 요소의 혼동(그림 요소를 잘못된 텍스트로 인식) 등이 발생하는 것으로 나타났다.
본 연구에서 사용된 OCR 엔진 중 원본 텍스트와 CLOVA OCR, EasyOCR의 결과를 Table 6으로 나타내었다. 이는사용횟수 100회 초과 시 요금을 부과하는 CLOVA OCR과 EasyOCR을 통해 시추주상도 한 페이지의 헤더 정보와 바디 정보의 필드를 출력한 예시로, 텍스트 오타 또는 오인식된 부분을 의미한다. 오픈소스 엔진인 EasyOCR을 이용하여 동일한 시추주상도의 페이지를 인식해 추출한 결과는 CLOVA OCR의 결과보다 텍스트 인식 오류가 다수 발생한 것을 확인하였으며, 상세 내용인 시추주상도의 레이아웃 및 구조 인식과 이미지 그림 요소의 혼동은 CLOVA OCR과 동일하게 발생하였다. 또한, 다른오픈소스 엔진인 PyTesseract의 결과는 EasyOCR보다 더많은 인식 오류의 발생률을 보여주었다. 따라서 오픈소스 엔진들은 한글 인식률이 CLOVA OCR보다 상대적으로 낮은 것을 확인할 수 있었다.
Table 6 . Brief comparison of misrecognized examples from different OCR techniques for header information fields..
Original text | Recognized text | |
---|---|---|
CLOVA OCR | EasyOCR | |
-사업명 -시추공번 -조사일 -위치 -표고 -굴진심도 -시추방법 -지하수위 -케이싱심도 -시추기 -시추공경 | - 사업영 X - 시추공번 ○ - 조사 일 X -위 치 X -표 고 ○ - 굴진심도 ○ - 시추방법 ○ - 지하수위 ○ -케이싱싱도 X - 시추기 ○ - 시추공경 ○ | -사 업 영 X -시추공번 ○ -조 사 입 X -뭐 지 X -포, 고 X -굽진심도 X - N구방번 X -지하수위 ○ -캐이싱심도 X -시 수 기 X -시즌공럽 X |
X: Misrecognized, ○: Correct.
오픈소스 엔진인 EasyOCR과 PyTesseract의 성능 차이는 단순 하드웨어의 차이가 아닌, 두 엔진이 사용하는 기술적 접근 방식의 차이에 따라 발생한 것으로 판단된다. EasyOCR의 경우 딥러닝 모델 기반 접근 방식을 통해 다양한 폰트와 복잡한 배경에서도 비교적 높은 정확도를달성하나, 더 많은 연산 자원이 필요하다. 반면, 전통적컴퓨터 비전(computer vision) 기법과 LSTM 네트워크를결합한 PyTesseract는 상대적으로 적은 연산 자원으로 빠른 처리가 가능하지만, 복잡한 이미지에서는 상대적으로낮은 정확도를 보여준다. 따라서 각 OCR 엔진의 성능 차이는 사용된 알고리즘의 특성과 학습 데이터의 다양성,최적화 정도 등에 따라 변화되며, 이에 따라 두 엔진의정확도는 상이하였다.
Fig. 10은 OCR 엔진을 시추주상도에 적용했을 때의 텍스트 데이터 인식 결과를 보여준다. 좌측에 있는 원본 이미지와 우측에 있는 하이라이트 된 이미지를 비교하면일부 텍스트 데이터가 원활하게 인식되지 않았음을 확인할 수 있었다. 청색 상자로 강조한 부분들에서는 헤더 정보에서 ‘조사일’과 같은 키워드와 추출할 텍스트를 확인하면 하나의 텍스트를 여러 개로 나눠 인식한 것을 볼수 있었다. 바디 정보에서는 세로로 작성된 필드를 나눠서 인식하였거나, 시추 코어의 형상을 나타내는 ‘주상도’ 열에서는 그림에 존재하는 ‘+’를 텍스트로 인식하여 하이라이트 한 것을 확인하였다. 이는 결국 OCR 엔진이 테이블로 구성된 시추주상도의 레이아웃 형식을 올바르게인식 또는 처리하지 못해 발생한 문제로 판단된다. 이를해결하기 위해서는 OCR 엔진 인식 이후 후처리를 진행하거나, 기존보다 정교한 인식 알고리즘이 개발되어야 할것으로 사료된다.
본 연구에서 OCR 엔진을 이용해 추출한 헤더 정보들의 오인식 예시를 Table 7에 제시하였다. ‘위치’와 ‘지반표고’ 필드는 OCR 엔진이 대부분 올바르게 인식하였으나, ‘사업명’과 ‘시추공번’, ‘굴진심도’, ‘케이싱심도’ 등과같은 필드는 오인식된 경우가 다수 발견되었다. 이와 같은 오인식된 필드 및 내용들의 발생 원인은 크게 복잡한레이아웃과 특수 문자 및 기호, OCR 엔진의 한계 등으로 판단된다. 먼저 시추주상도의 복잡한 레이아웃과 다양한 정보 배치 및 특수 문자/기호가 OCR 엔진의 텍스트 인식 성능을 저하하였다고 생각되며, 사용된 OCR 엔진의 성능과 한계 또한 오인식의 원인이 되었다고 여겨진다. 따라서 향후 OCR 엔진의 성능 개선을 위해서는 전술한 바와 같이 전처리 기술의 향상, OCR 엔진의 최적화, 후처리 알고리즘의 개발 등을 진행해야 할 것으로 판단된다.
Table 7 . Examples of misrecognized text data on a boring log using the OCR engine.
Original text | Example of misrecognized text |
---|---|
사업명 | 사업영, 사영영, 사명명, 면명, 사영명, 사험명, 사엉명, 사업펄, 사업형 등 |
시추공번 | 시추공법, 시추공변, 시추공방, 시추공연 등 |
조사일 | 초사일, 조사할 등 |
위치 | - |
지반표고 | - |
굴진심도 | 굴진산도, 금전성도, 금전상도, 굴진실도, 금진삼도, 골진삼도, 궁진심도 등 |
케이싱심도 | 케이싱싱도, 케이심심도, 케이성이도, 케이침실도, 케이십삼도, 케이십삼도 등 |
시추방법 | 시추불편 등 |
지하수위 | 자동수위 등 |
시추기 | 시주기, 시주거 등 |
시추공경 | 시추공정, 시추공검 등 |
본 연구에서는 폐광산 지반안정성 조사 및 평가에 필수적인 시추주상도 데이터를 자동으로 추출하고, 이를 정형화된 DB 구조로 자동 구축하는 알고리즘을 설계하였다. EfficientNet-B3 딥러닝 모델을 활용하여 시추주상도의 유형을 높은 정확도로 자동 분류하였으며, 이 분류된결과를 바탕으로 PDF 형식의 시추주상도 문서에서 OCR기술과 PDF 내 텍스트 추출 기법을 통해 텍스트를 정확하게 인식하고 추출하였다. 이를 머신러닝 분석과 같은다양한 응용 분야에 활용이 용이한 스프레드시트의 형태의 데이터베이스로 구축하였다.
다만 본 연구에서 사용된 데이터 세트는 제한된 양의데이터와 특정 시추 조건에 국한된 샘플로 구성되어 있어, 연구의 신뢰성을 향상하고 범용성을 확장하기 위해서는 지질자원 분야의 다양한 데이터 유형을 반영함으로써 확정성을 넓힐 필요가 있을 것으로 사료된다. 특히,더 많은 유형의 시추주상도를 포함하여 다양한 지질매체와 지하구조 정보를 학습할 수 있도록 데이터를 확장해야 하며, 이를 위해 복잡한 패턴을 인식할 수 있는 알고리즘과 추가적인 튜닝이 필요하다고 사료된다. 또한 OCR엔진을 통한 텍스트 인식의 정확도를 높이기 위해 한글빅데이터를 활용한 학습 모델을 설계하고, 테이블로 나뉜 영역에 따라 데이터를 정확히 추출하는 방법을 개발한다면 텍스트 레이어가 존재하지 않는 PDF 형식의 데이터도 높은 정확도로 인식할 수 할 수 있을 것이다. 마지막으로 모델의 일반화 성능을 보장하기 위해서는 지속적인 업데이트와 환경적 요인, 데이터 품질 저하 등을 고려한 개선이 필요하다. 이를 위해서는 다양한 지질 조건과 지역에서 데이터를 수집·정제하고, 주기적으로 모델을재학습하여 최신 데이터를 반영해야 할 것으로 판단된다.또한, 실제 환경에서의 검증을 통해 예상치 못한 오류와데이터 노이즈에 대응할 수 있도록 알고리즘의 견고성을강화해야 한다.
본 연구는 레거시 데이터(legacy data)의 활용률을 높일수 있는 사례의 하나로써, 아날로그 형식의 시추주상도를 디지털 DB로 자동 구축하는 알고리즘의 개발은 데이터 입력 과정에서의 인적 오류 가능성을 감소시킴으로써데이터의 안전성과 신뢰성을 확보하고 시추주상도 관리의 효율성을 높이는 데 기여할 수 있다. 정형 데이터 형태로 재구성함에 따라 머신러닝 기반 분석과의 연계성을높임으로써 새로운 가치를 창출하고 의사결정에 유용한정보를 제공할 수 있을 것이다. 또한 딥러닝 기반 시추주상도의 자동화된 분류와 분석은 AI 기반 광업 자동화시스템의 개발에 활용될 수 있고, 향후 디지털 광산(digital mine) 또는 스마트 마이닝(smart mining)으로의 전환에중요한 역할을 할 수 있을 것으로 기대한다.
본 연구는 2021년도 정부(산업통상자원부)의 재원으로 해외자원개발협회의 지원을 받아 수행된 연구임(데이터사이언스 기반 석유·가스 탐사 컨소시엄).
Table 1 . Number of abandoned mine ground stability investigation reports and boring logs used in this study..
Item | Number | |
---|---|---|
Ground stability investigation report | ea | 47 |
pages | 2961 | |
Boring logs (in reports) | ea | 403 |
pages | 908 |
Table 2 . The number of abandoned mine ground stability investigation reports and boring logs by types..
Class | Report | Borehole log (in report) | ||
---|---|---|---|---|
Number | % | Pages | % | |
Type 1 | 16 | 34.0 | 175 | 19.7 |
Type 2 | 23 | 48.9 | 545 | 61.4 |
Type 3 | 4 | 8.5 | 85 | 7.2 |
Type 4 | 3 | 6.4 | 19 | 2.1 |
Type 5 | 1 | 2.1 | 84 | 9.5 |
Sum | 47 | 100.0 | 908 | 100.0 |
Table 3 . Comparison of the advantages and disadvantages of the CNN family of models..
Model | Advantages | Disadvantages | Reason for Selection |
---|---|---|---|
VGGNet1 | - Simple and uniform architecture - Good feature extraction | - Large number of parameters - High computational cost - Memory intensive | - Not selected due to high computational requirements and potential overfitting |
Inception2 | - Efficient use of computational resources - Reduced number of parameters | - Complex architecture - Difficult to modify | - Not selected due to complexity and less flexibility for our specific task |
DenseNet3 | - Feature reuse - Reduced number of parameters - Strong gradient flow | - Memory intensive during training - Computationally expensive for very deep networks | - Considered but not selected due to memory constraints in our setup |
ResNet4 | - Solves vanishing gradient problem - Can be very deep - Good performance on various tasks | - Still relatively large number of parameters - Training very deep versions can be time-comsuming | - Strong contender, but not selected due to EfficientNet’s better efficiency |
EfficientNet4 | - Scalable to different computational budgets | - Relatively new, less extensively tested - May require careful tuning of compound scaling | - Selected due to its balance of efficiency and performance, and its adaptability to our computational resources |
2. Szegedy et al., 2015..
3. Huang et al., 2017..
4. Tan and Le, 2019..
Table 4 . The hyperparameters setting for the EfficientNet-B3 deep learning model..
Hyperparameter | Value |
---|---|
Input Size | 300 × 300 |
Batch Size | 32 |
Number of Classes | 5 |
Optimizer | Adam |
Learning Rate | 0.001 |
Loss Function | CrossEntropyLoss |
Number of Epochs | 20 |
Transformations | Resize, ToTensor, Normalize |
Normalization Mean | [0.485, 0.456, 0.406] |
Normalization Standard Deviation | [0.229, 0.224, 0.225] |
Hardware | CUDA* (if available) / CPU |
* CUDA: Compute Unified Device Architecture.
Table 5 . Design of DB schema fields (header and body information)..
Header information | Body information | |
---|---|---|
Field name | -사업명 -시추공번 -조사일 - 위치(X) - 위치(Y) -지반표고(m) -굴진심도(m) -시추방법 -지하수위(m) -케이싱심도(m) -시추기 -시추공경 | -지층명 -심도(m) -표고(m) -두께(m) -설명 - TCR(%) - RQD(%) - D - S - F -절리간격_최대(cm) -절리간격_최소(cm) -절리간격_평균(cm) |
Table 6 . Brief comparison of misrecognized examples from different OCR techniques for header information fields..
Original text | Recognized text | |
---|---|---|
CLOVA OCR | EasyOCR | |
-사업명 -시추공번 -조사일 -위치 -표고 -굴진심도 -시추방법 -지하수위 -케이싱심도 -시추기 -시추공경 | - 사업영 X - 시추공번 ○ - 조사 일 X -위 치 X -표 고 ○ - 굴진심도 ○ - 시추방법 ○ - 지하수위 ○ -케이싱싱도 X - 시추기 ○ - 시추공경 ○ | -사 업 영 X -시추공번 ○ -조 사 입 X -뭐 지 X -포, 고 X -굽진심도 X - N구방번 X -지하수위 ○ -캐이싱심도 X -시 수 기 X -시즌공럽 X |
X: Misrecognized, ○: Correct.
Table 7 . Examples of misrecognized text data on a boring log using the OCR engine.
Original text | Example of misrecognized text |
---|---|
사업명 | 사업영, 사영영, 사명명, 면명, 사영명, 사험명, 사엉명, 사업펄, 사업형 등 |
시추공번 | 시추공법, 시추공변, 시추공방, 시추공연 등 |
조사일 | 초사일, 조사할 등 |
위치 | - |
지반표고 | - |
굴진심도 | 굴진산도, 금전성도, 금전상도, 굴진실도, 금진삼도, 골진삼도, 궁진심도 등 |
케이싱심도 | 케이싱싱도, 케이심심도, 케이성이도, 케이침실도, 케이십삼도, 케이십삼도 등 |
시추방법 | 시추불편 등 |
지하수위 | 자동수위 등 |
시추기 | 시주기, 시주거 등 |
시추공경 | 시추공정, 시추공검 등 |
Lydie Uwibambe, Jun Hyeon Jo, Wansoo Ha
Econ. Environ. Geol. 2024; 57(5): 499-512Ho Sim, Wonwoo Jung, Seongsik Hong, Jaewon Seo, Changyun Park, Yungoo Song
Econ. Environ. Geol. 2022; 55(3): 309-316