주 메뉴 바로가기본문 내용 바로가기
메뉴 넘어가기
현장 PLUS.1

이게 돌이 아니라
석기라고?: 딥러닝을 통한 석기 유물 식별 프로그램 제작

창원과학고 R&E팀

안녕하세요, 저희는 2021년 융합 부문 R&E에 '이게 돌이 아니라 석기라고? - 딥러닝을 통한 석기 유물 식별 프로그램 제작 -'이라는 주제로 참가한 창원과학고등학교 1학년 김가람, 김동훈, 정재민입니다. 이 글을 통해 저희의 R&E 진행 과정과 그 과정에서의 어려움, 그리고 R&E 참여를 통해 얻은 점에 대해 이야기 해 보려고 합니다.

주제 선정의 과정

저희 팀은 고등학교 1학년, 3명의 학생들로 구성되어 함께 연구를 시작하게 되었습니다. 함께 연구를 진행하게 된 저희는 각자 연구를 진행해보고 싶은 주제를 간단히 계획서로 만들어 공유해보기로 했습니다. 여러 가지 주제가 나왔지만, 저희를 가로막은 것이 있었습니다. 과연 이 주제가 우리가 진행할 수 있는 것인지, 그리고 연구로서의 의미가 있는가? 라는 의문이었습니다. 저희는 이 의문을 해결하기 위해 고민에 고민을 거듭하였고, 마침내 의문에 답을 할 수 있는 최종 연구 주제를 선정하였습니다.

최종 주제로 선정된 것은 '딥러닝을 통한 석기 유물 식별 프로그램 제작'이었습니다. 연구의 주제는 한 팀원의 경험에서부터 시작되었습니다. 팀원은 어머니와 함께 박물관에서 여러 유물들을 둘러보던 도중, 석기 유물을 보며 돌과 석기는 그냥 보아서는 구분하기 어렵다고 팀원의 어머니께서 말씀하셨습니다. 실제로 석기 유물은 일반인이 보아서는 쉽게 자연석과 구분하기 어렵습니다. 하지만 석기 유물의 경우 일반인에 의해 발견되는 경우가 많았고, 대규모 개발현장에서 발견되는 사례도 존재하였습니다. 하지만 석기 유물은 자연석과 구분이 어려워 유물 보전에 어려움을 겪게 될 수 있다는 문제점이 있었습니다. 이러한 문제점을 해결하고자 이미지 딥러닝 기술을 사용하여 돌과 석기를 일반인도 쉽게 구분하는 프로그램을 만드는 것을 주제로 선정하였고, 더 나아가 애플리케이션 개발을 통해 일반인의 접근성을 높여 석기 유물 구분 및 보전뿐만 아닌, 역사 교육 현장 등에서의 활용을 이끌어내고자 하였습니다.

체내 저밀도 지방단백질(LDL)을 제거할 수 있다면?

제 부모님은 주기적으로 건강검진을 받으시는데, 제가 고등학교 1학년 때 받으신 건강검진 검사 결과, 아버지의 혈중 저밀도 지방단백질(Low Density Lipoprotein) 농도가 정상보다 높게 나왔습니다. 저는 인터넷 검색을 통해 저밀도 지방단백질(지단백의 한 종류로 콜레스테롤을 운반하는데, 혈관벽에 과도한 콜레스테롤 침착을 일으켜 심질환을 발생시키기 때문에 인체에 유해한 물질로 분류된다.)에 대해 구체적인 정보를 얻을 수 있었습니다. 저는 이때 'LDL을 제거하는 방법을 연구해볼까?' 라는 막연한 생각을 갖게 되었습니다.

연구를 진행하며

이러한 우여곡절 끝에 저희는 석기 유물과 돌을 구분하는 인공지능 프로그램을 만들고자 하였습니다. 본격적인 연구를 시작하면서 저희가 처음 고민한 것은 어떻게 돌과 석기를 분류하는 프로그램을 만들 지였습니다. 그전까지 프로그램을 만들어 본 적이 없었던 저희에게 새로운 프로그램 제작이라는 것은 결코 쉬운 일이 아니었습니다. 그렇게 연구의 방향을 잡지 못하던 저희에게 큰 도움이 되었던 것은 학교의 선배가 이전에 진행하였던 암석의 종류를 구분하는 딥러닝 방식의 인공지능이었습니다. 이 연구를 보면서 암석의 사진으로 딥러닝을 진행하여 암석을 구분할 수 있는데, 우리 또한 딥러닝을 통한 인공지능을 제작한다면 석기와 돌을 구분하는 프로그램을 제작할 수 있을 것이라고 생각했습니다.

딥러닝을 이용한 석기 구분 프로그램 제작으로 주제를 구체화한 이후 저희가 가장 먼저 진행한 것은 딥러닝에 대한 기본적인 이론 공부였습니다. 딥러닝을 이용한 프로그래밍이라는 방향은 잡았지만, 어떻게 딥러닝을 통한 인공지능을 만들지는 몰랐기 때문에 이의 제작방법을 알기 위하여 주변의 선배들께 질문하고, 책을 찾아보며 이미지에 대한 인공지능 모델의 제작방법에 대하여 찾기 시작하였습니다. 그때, 어느 한 선배의 조언으로 인공지능 프로그램을 처음부터 만들기는 어렵지만, 딥러닝 모델을 제작하는데 도움이 되는 다양한 오픈 라이브러리들이 있다는 것을 알게 되었습니다. 그래서 저희가 할 수 있는 연구의 수준을 생각해보고, 오픈 라이브러리를 이용하여 딥러닝 모델을 제작하고자 하였습니다. 뿐만 아니라 이에 대한 책을 읽으며 딥러닝 제작을 조금 더 구체화 시켰습니다. 이 과정에서 저희가 느꼈던 것은 연구를 진행할 때 가장 중요한 것은 저희가 할 수 있는 연구를 하는 것이었습니다. 딥러닝 모델을 제작하는 과정에서 모델 자체를 처음부터 제작할 수도 있었지만, 그러기 위해서는 다른 이들의 도움을 많이 받아야 했습니다. 물론 다른 이들에게 조언을 받는 것이 잘못된 것은 아니지만 오픈 라이브러리를 사용하지 않고 모델을 만드는 과정은 저희의 역량을 넘어선다고 생각하여 처음 진행하는 연구인만큼 저희의 힘만으로 시도해 보고자 하였습니다.

이후 저희는 책을 보면서 pytorch를 이용한 딥러닝 모델 제작에 들어갔습니다. 정보와 관련된 연구의 특성상 기존에 개발된 선행연구들이 다양하다는 장점이 있었고, 이때 이미지를 구분하는 데에는 CNN 방식의 딥러닝 모델이 유리하다는 것을 알게 되었습니다. 그 후 CNN을 이용한 모델의 일종인 Fashion mnist 구분 모델을 참고하여 저희 팀만의 인공지능 모델을 만들고자 하였습니다. 이때 저희가 고민했던 것은 어떻게 해야 기존에 존재하는 모델들과 차이점을 만들 수 있을지였습니다. 기존모델을 참고하여 돌과 석기를 구분하는 인공지능 프로그램을 제작할 수는 있었으나, 이 과정에서 조금 더 정확도를 높이고 저희만의 모델을 만들고자 모델을 제작한 후 계속해서 의논하며 모델의 신경망을 조작하고 정확도를 측정해 보며 모델을 개선해 나갔습니다.

이렇게 pytorch를 이용하여 모델을 제작한 후 저희는 딥러닝 과정에 필요한 사진을 수집하기 시작했습니다. 딥러닝의 특성상 석기와 돌에 대한 사진이 매우 많이 필요했는데, 이 과정이 저희에겐 매우 힘든 과정이었습니다. 처음에는 구글에서 석기 사진과 돌의 사진을 수집하려고 시도하였습니다. 구글 웹사이트에서 석기 유물과 돌을 검색하고, 해당 사진을 일일이 저장하여 돌과 석기로 구분하였습니다. 하지만 CNN 방식의 딥러닝 모델에는 수십 장 정도가 아닌, 수천 장 이상의 사진이 필요하였기 때문에 조금 더 효율적으로 사진을 모을 수 있는 방법이 없는지 고민하게 되었습니다. 이후 이미지를 한 번에 저장할 수 있는 확장 프로그램을 이용하여 조금 더 많은 양의 이미지 데이터를 얻을 수 있었습니다,

수집한 이미지 데이터
수집한 이미지 데이터

이렇게 이미지 데이터를 모은 후에, pytorch로 제작한 CNN 방식의 석기 구분 인공지능에 학습시키는 과정을 진행하였고, 정확도를 얻게 되었습니다. 예상했던 것보다 모델의 성능도 우수하였고 꽤 좋은 결과를 얻을 수 있었습니다.

돌과 석기를 식별할 수 있는 프로그램을 제작하게 되었으나 저희가 다시 한번 도전해 보는 계기가 된 것은 중간성과발표공유회였습니다. 다른 학교의 학생들과 함께 진행했었던 연구 결과들에 대하여 서로 공유하는 시간을 가졌었는데, 이때 저희는 단순히 프로그램을 만드는 것만으로는 독창적인 연구가 되기는 어렵다는 한 가지 조언을 듣게 되었습니다. 저희는 다시 한번 머리를 맞대어 어떻게 해야 조금 더 '우리만의 연구'를 할 수 있을지를 고민해 보았었습니다. 그렇게 고민을 하고 있을 때 저희에게 한 가지 아이디어가 떠올랐습니다. 바로 석기와 돌 뿐만이 아니라 석기를 한 번 세분화 된 종류별로 구분하고, 이에 대한 정보를 바탕으로 앱을 개발하여 일반인들의 석기 유물에 대한 관심도를 올릴 수 있다면 조금 더 의미있는 연구가 될 것이라 생각하였습니다.

그래서 저희는 기존에 제작했었던 프로그램을 이용하여 tensorflow 라이브러리를 이용한 석기와 돌뿐만 아니라, 뗀석기와 간석기를 구분할 수 있는 2차 모델을 제작했었으며 중간성과발표공유회를 통해 받은 조언을 바탕으로 문제점을 개선하는 것에 집중하였습니다. 또한, 1차 모델 제작 후 중간성과발표공유회를 진행하면서 인공지능 모델의 학습 과정에 사용한 이미지들의 수가 너무 부족하다는 것을 깨닫고 이미지의 개수를 늘리기 위한 방법을 찾기 위해 고민했습니다. 이미지 수를 늘릴 방법을 고민하던 저희에게 도움이 되었던 것은 바로 다른 학교 R&E 팀들의 연구였습니다. 다른 학교 학생들이 사용한 이미지 증식 기술을 보고, 저희도 그 방법을 이용하여 이미지 수를 늘릴 수 있을 것이라고 생각하였습니다. 그래서 국립중앙박물관 e-museum 웹사이트를 이용하여 석기의 사진을 더욱 많이 수집하고, 파이썬을 이용한 이미지 증식을 통해 수천 장의 사진을 수만 장으로 늘릴 수 있었습니다. 이를 바탕으로 인공지능을 학습시키고 2차 모델의 목표에 결과를 얻었습니다.

재미있었던 것은 프로그램을 만드는 시간보다, 수많은 양의 데이터를 정리하고 구분하는데 걸린 시간이 더욱 길었다는 것이었습니다. 이 경험을 통하여 인공지능과 같이 소위 빅데이터를 이용하는 경우에는 가끔은 프로그램 자체보다는 그에 이용되는 자료의 신뢰성, 정확도 등이 결과에 더 큰 영향을 미칠 수 있다는 것을 알게 되었습니다.

작성한 인공지능 프로그램 코드
작성한 인공지능 프로그램 코드

그리고 저희는 개발한 프로그램을 활용하여 애플리케이션을 만들 준비를 하였습니다. 먼저 앱에 필요한 기능들에 대하여 상의하는 시간을 가졌는데, 이때 고민했던 것은 프로그램을 앱에 사용할 수 있는 형태로 바꾸는 것이었습니다. 그래서 프로그램을 조금 더 개선하여 사진을 입력하면 학습된 모델을 통하여 바로 석기와 돌, 그리고 뗀석기와 간석기를 구분할 수 있도록 개선하였습니다. 이후 발표를 위하여 학습에 사용되지 않은 석기 사진과 주변에서 직접 돌 사진을 찍어 앱과 연동시킬 프로그램에 입력해 결과를 얻을 수 있었고 저희의 전체적인 연구는 이렇게 마무리를 지을 수 있었습니다.

이렇게 저희의 첫 연구 활동을 진행하며 가장 힘들었던 것은, 주제가 프로그램을 개발하는 정보과학과 관련되어 있었기 때문에 다양한 모듈들을 이용할 수 있었지만 기존의 프로그램들과 차이점을 두는 것이 어렵다는 것이었습니다. 그럼에도 저희는 할 수 있는 최선을 다하여 연구를 진행하였고, 그 과정에서 연구는 어떻게 진행하여야 하는지 깨닫게 되었습니다.

발표를 준비하며

앞서 진행한 연구 활동을 정확하게 전달하기 위해서 발표하는 과정도 중요하다고 생각합니다. 발표를 진행하기 위해 가장 첫 번째로 진행한 것은 발표에 사용할 파워포인트 제작이었습니다. 파워포인트 제작을 통해 연구 내용을 다시 한번 되짚어보며 어떤 부분이 중요한지, 그리고 어떠한 부분을 보완해야 할지에 대하여 고민해 볼 수 있었습니다. 파워포인트를 제작할 때 많은 수정을 거쳤는데, 가독성과 전달력 부분에서 많이 수정을 진행하였습니다. 발표를 통해 저희의 연구를 정확히 전달하는데 초점을 맞추었습니다.

그리고 각자의 부분을 나누어 발표 대본을 작성하고, 본 발표 전 리허설을 진행해보았습니다. 발표 시간은 10분이었는데 첫 리허설에서 15분을 초과하는 발표를 하게 되었습니다. 그 후 엄청난 연습과 피드백을 통해 발표 시간을 줄여 10분 내로 발표를 마칠 수가 있었습니다.

발표과정에서 중요한 것은 수많은 연습과 피드백이라고 생각합니다. 사실 이 글을 쓰고 있는 저희조차도 다른 사람 앞에 서면 초조해지고, 긴장되고, 말을 더듬는 실수를 합니다. 하지만 이때 중요한 것은 연습이었습니다. 연습을 통해 발표를 진행하며 일어날 수 있는 실수를 줄일 수 있었고, 긴장도 조금이나마 덜게 되었습니다. 두 번째로는 피드백이 중요하였습니다. 연습 과정에서 객관적인 판단을 해 줄 수 있는 분께 부탁을 드려 어떤 부분에서 문제가 있는지, 어떤 부분에서 덜 매끄러웠는지 등을 피드백 받고, 고쳐나가면서 더욱 발표의 질을 높여나갈 수 있었던 것 같습니다.

맺는말

약 1년이라는 짧다면 짧고 길다면 긴 시간 동안 연구를 진행하며 많은 것을 얻을 수 있었습니다. R&E를 진행하며 직접 정한 주제를 집중적으로 탐구하여보고, 보고서 작성 및 발표회까지 진행하는 과정에서 연구에 필요한 자세 및 보고서 작성 능력, 더 나아가 연구를 더 많은 사람에게 효과적으로 전달하기 위한 능력도 얻을 수 있었습니다. 학업과 다른 요인들로 인해 연구를 진행하는 것에 어려움을 느낄 수도 있지만, 이러한 연구 활동을 통해 미래에 연구자로서 필요한 소양을 기를 수 있고, 단순히 학문적인 것에서 벗어나 의사소통 능력 등 협업 능력도 기를 수 있다고 생각합니다.

맺는말

약 1년이라는 짧다면 짧고 길다면 긴 시간 동안 연구를 진행하며 많은 것을 얻을 수 있었습니다. R&E를 진행하며 직접 정한 주제를 집중적으로 탐구하여보고, 보고서 작성 및 발표회까지 진행하는 과정에서 연구에 필요한 자세 및 보고서 작성 능력, 더 나아가 연구를 더 많은 사람에게 효과적으로 전달하기 위한 능력도 얻을 수 있었습니다. 학업과 다른 요인들로 인해 연구를 진행하는 것에 어려움을 느낄 수도 있지만, 이러한 연구 활동을 통해 미래에 연구자로서 필요한 소양을 기를 수 있고, 단순히 학문적인 것에서 벗어나 의사소통 능력 등 협업 능력도 기를 수 있다고 생각합니다.

감사의 말

우선 저희 팀을 위해 아낌없이 지원해주시고, 많은 도움을 주신 지도교사 권현지 선생님께 감사드립니다. 또한 연구비 지원 및 피드백, 그리고 이렇게 글을 남길 수 있는 기회를 주신 과학영재 창의연구 지원센터에 감사드립니다. 마지막으로 함께 R&E를 진행하였던 팀원들에게 감사하다는 말을 전하고 싶습니다.

창원과학고 R&E팀