[소개]
안녕하세요? 이번 2023년 겨울에 RCV연구실 9기 URP를 이수한 지능기전공학부 스마트기기공학전공 19학번 허재연입니다. 이 글을 읽고 계신 분은 연구자의 길을 고민중이신 분, RCV 연구실 진학을 고민하시는 분, 진로와 분야를 고민 중이신 분, 단순히 다양한 활동을 찾아보시는 분 등 다양할 것이라고 생각합니다. 연구실 진학을 고려하고 계신 분들에게는 먼저 ‘대학원생 때 알았더라면 좋았을 것들’ 이라는 책을 추천드립니다. 고민에 대한 답을 내리는데 많은 도움이 될 것입니다.
방학 8주간 진행되는 URP는 컴퓨터 비전 연구 사이클을 압축적으로 경험할 수 있는 프로그램입니다. 아래에 제가 8주동안 URP를 진행하면서 느꼈던 점들을 나름 정리해 보았으니, 읽어 보시고 도움이 되면 좋겠습니다.
[URP 지원 계기]
진로 탐색
저는 2학년때까지 진로를 위한 별다른 준비를 하지는 않았고 학교 수업과 동아리 활동에 집중했었습니다. 정신을 차리고 보니 대학 생활의 절반이 지나가고 있었고 이 때부터 진지하게 진로에 대한 고민을 시작했습니다.
제 주변의 많은 사람들은 소프트웨어 개발자가 되기 위해 준비하고 있습니다. 저도 막연하게 웹, 앱 개발자를 고려하고 있다 다른 여러 분야에 대해서도 알아보고 싶어서 무작정 다양한 활동을 찾아보고 부딪혀 보았습니다. 반도체 및 회로설계 분야도 알아보았고, 통신 분야에도 관심을 가진 적이 있습니다. 개발자에 대해 경험해 보고 싶어서 42서울에도 참여해 보았습니다. 이런 시행착오 과정 하나하나가 소중한 제 자산이 되었습니다. 다른 분야에 대한 지식이 지금은 쓰이지 않고 있지만, 이러한 탐색의 시간이 전혀 아깝게 느껴지지 않습니다. 진로와 분야에 대해 알아보고 계시다면 방 안에서 고민하는 것보다 밖으로 나와 직접 활동에 참여하고 부딪혀 보는 것을 강력히 추천드립니다.
연구냐 개발이냐
나름 이것저것 경험을 해 보고 나니, 개발자보다는 엔지니어가, 특히 AI 분야의 엔지니어가 되고 싶었습니다. 해당 분야에 대한 전문적인 지식을 갖추고 지속적으로 발전하는 사람이 되고 싶었습니다. 기존에 잘 만들어진 툴과 알려진 내용을 단순 적용시키는 작업이 아니라, 직접 새로운 영역을 개척하는 연구를 하고 싶었습니다. 이를 위해서는 우선 석사 이상의 학위가 필요하다는 결론을 내렸습니다.
연구자가 된다는 것은 자신의 분야에 대해 깊이 이해하고 이를 연구할 역량을 갖추는 것을 뜻합니다. 세상은 개선해야 할 다양한 문제로 가득 차 있고, 공학자의 일은 이 문제들을 해결하는 것으로 생각할 수 있습니다. 주어진 상황에서 개선할 점에 대해 문제 설정을 하고, 이 문제들을 해결해 나가는 일련의 과정입니다. 저는 이 과정을 수행함에 있어 두려움이 없는 사람이 되고 싶었습니다. 이 과정은 연구와 무척 흡사합니다. 아직 잘 알려지지 않은 영역에 대해 문제 설정을 하고, 이 문제를 해결해 나가기 위해 연구할 수 있는 역량을 갖추고 싶었습니다. 이 역량은 무엇보다 소중한 제 자산이 될 것이라 생각합니다.
사람인, 잡코리아, 원티드 등 채용 사이트에서 저의 관심 분야인 신호처리, 컴퓨터비전, 인공지능 관련 채용 공고를 쭉 살펴봤습니다. 대부분 R&D 관련 공고였으며, 절대 다수가 석사 이상의 학력을 요구했습니다. 현실적으로 해당 분야 취업을 위해서는 대학원 진학이 필수라고 생각했습니다.
이런 이유들로 저는 대학원에 진학하기로 결정하였고 그 이후에는 어떤 연구실에 진학할지, 무엇을 준비해야 할지 알아보았습니다. 마침 학과 내 랩실에서 방학동안 연구를 경험할 수 있는 URP 프로그램을 운영하고 있었고, 망설임 없이 지원했습니다.
[타대 진학이 아닌 RCV 진학을 결정한 이유]
저는 URP 8주동안 연구냐 개발이냐, 자대냐 타대냐, 비전이냐 아니냐 계속 고민했습니다. 고민 끝에 저는 RCV연구실에 남아 지금부터 석사과정까지 약 4년간 컴퓨터비전 연구에 집중하기로 결정했습니다.
자대 대학원과 타대 대학원은 선택에 따른 장, 단점이 명확합니다. 물론 해외 유학을 하거나 SPK에 진학한다면 좋겠지만, 저처럼 연구의 길을 뒤늦게 선택하여 대학원 입시에 전혀 준비되어 있지 않다면 자대 대학원도 좋은 대안이 될 수 있다고 생각합니다.
지금 인공지능은, 그 중에서도 컴퓨터 비전은 최고 인기 분야입니다. 전공하고 싶어하는 사람은 많고 상위 대학의 인기 랩은 이미 자대생이 줄 서있어 타대생이 그 틈을 비집고 들어가기 쉽지 않습니다. 컨택이 잘 되어서 입학을 하더라도 그 랩실에서 원하는 분야의 연구에 집중할 수 있는 환경이 주어지는지, 기존 연구실 구성원들과 원만히 지낼 수 있을지, 연구실 분위기가 본인과 맞을지는 입학 전에 미리 알기 어렵습니다(정말 중요한 부분인데 그냥 상위 대학원 진학에만 신경 쓰다 이런 부분을 챙기지 못한 사람들이 후회하는 경우를 본 적 있습니다). 저는 대학원 입시에 대한 충분한 경쟁력을 새로 갖추는 것, 각 대학의 연구실에 대한 정보를 수집하고 컨택하는 것 등 잘 될지도 모르는 대학원 입시에 에너지와 시간을 쏟는 것보다 자대의 좋은 랩에서 일찍 연구를 시작해 빠른 성취를 이루는 게 낫다고 생각했고, RCV에서 일찍 연구를 시작하기로 결정했습니다.
석사학위는 그 무엇도 보장해 주지 않습니다. 학위 취득 후 남는 것은 연구 및 과제 실적과 실력 뿐입니다. 본인이 성장하기 좋은 환경이라면 그 연구실을 마다할 이유가 없습니다. 저는 RCV가 바로 그런 연구실이라고 생각하고 진학을 결정했습니다. 랩실을 고를 때 이런 부분을 염두 해 두시면 좋겠습니다.
[URP 진행 과정]
URP 진행 과정은 기수별로 상이할 수 있습니다.
Boostcamp : 최유경 교수님 인공지능 수업 (수강하지 않았더라도 내용을 꼼꼼하게 숙지하고 URP를 시작 하는게 좋습니다)
1주차 : 인공지능 및 Detection 기초 내용 숙지
2주차 : SSD 논문 읽기 및 PASCAL VOC dataset에 대한 원복(코드 구현)
3주차 : KAIST PD dataset dataloader 구축 및 성능 원복
4~6주차 : KAIST PD 성능향상 challenge
7주차 : Camera grabber
8주차 : Calibration
22년 2학기를 마무리하고 크리스마스부터 URP 시작 전까지 약 일주일간의 시간이 있어서 이 기간동안 최유경 교수님의 인공지능 이론 강의를 전부 듣고 URP를 시작했습니다.
첫 주차에는 딥러닝에 대한 기초 개념을 공부했는데, 생각했던 것 보다 굉장히 많은 내용이 다루어졌습니다. 과제로는 PyTorch를 이용한 간단한 CNN모델(VGG-16 backbone) 구현이 주어졌습니다.
저를 제외한 다른 분들은 모두 최유경 교수님의 인공지능 수업을 수강해서 큰 어려움이 없어 보였는데, 저는 1학년 이후 파이썬을 써보는게 처음이었고 특히 PyTorch를 하나도 몰랐기 때문에 첫 주차부터 쉽지 않았습니다. 감사하게도 다른 동기분들이 많이 도와 주셔서 모델을 구현하는데 성공하였고(구현 당했다는 표현이 더 적절한 것 같습니다) PyTorch 사용법을 빠르게 익히는데 집중했습니다.
저를 제외한 네 분과 저는 애초에 출발선상이 다르다는 것을 인정할 수 밖에 없었고, 동기분들의 진도에 신경 쓰지 않고 저만의 페이스를 유지해서 끝까지 완주하는 것을 목표로 잡았습니다. 하지만 바로 옆에서 하루 종일 함께 하다 보니 다른 분들의 진도를 신경 쓰지 않을 수 없었습니다. 이 때문에 8주간 정신적 압박이 굉장히 심했습니다.
2주차에는 SSD라는 CNN모델의 논문을 읽고 해당 모델을 코드로 구현하는 과제가 주어졌습니다. 살면서 처음 논문을 접했고, 영어 논문이어서 이해하는 것조차 쉽지 않았습니다. 이 때 가장 동기들끼리 정보 공유가 활발했던 것 같습니다. 거의 매일 동기 스터디를 가지며 새롭게 공부한 정보를 공유하고 서로의 부족한 부분을 채워주려 했습니다. 이 때 Detection 분야의 기초개념을 가장 많이 공부한 것 같습니다.
3주차에는 새로운 데이터셋을 불러오는 dataloader를 구축하고 기존 SSD 모델에 보행자를 검출하도록 했습니다. 이때부터는 다양한 물체에 대한 detection이 아닌, 보행자에 대한 detection에 집중하기 시작합니다.
4주차~ 6주차에는 KAIST PD dataset에 대한 detection성능 향상 challenge가 진행되었습니다. 중간에 설날 연휴가 있었으니, 실제로는 2주 반 정도 진행되었습니다. 이 시기가 진짜 연구를 맛볼 수 있는 시간입니다. 많은 동기분들이 이 시기를 가장 힘들어하셨습니다. 어떻게 성능을 향상시킬 수 있을지, 무엇이 문제인지 문제 정의를 하고, 정의한 문제 해결을 위한 키워드를 중심으로 논문을 검색해보고, 논문을 읽어보고, 선택한 논문 내용을 직접 구현해서 실험해보고, 개선에 성공했으면 왜 성공했는지, 실패했으면 왜 실패했는지 분석하는 것의 반복입니다. 이 때 정말 많은 논문을 읽었습니다. 저는 운이 좋게도 가설 설정과 방법론 적용이 잘 되어서 챌린지가 끝날 때 목표하던 성능을 달성하는데 성공했습니다.
가장 중요하고 어려웠던 것은 문제 분석이었습니다. 성능 개선에 대한 가설을 세우고 나서는, 해당 문제에 대한 정량적, 정성적 분석이 철저히 이루어져야 합니다. 논리에 비약이 있으면 세미나 때 그 부분에 대한 질문이 집요하게 들어오기 때문에 이에 디펜스하기 위해서는 관련된 모든 질문에 대한 답변을 미리 준비해야 했습니다.
7주차 및 8주차는 비전 연구의 데이터셋 취득에 관련된 내용을 공부했습니다. 이 때 배운 것들은 6주차까지 진행했던 내용과 결이 많이 달랐고, 익숙하지 않은 내용들이라 오히려 굉장히 낯설고 어렵게 느껴졌습니다.
[느낀 점]
일단 정신적, 신체적으로 굉장히 힘들었습니다. 과제 완료 시기와 세미나가 다가오고 있다는, 그리고 다른 분들보다 뒤쳐지고 있다는 부담이 8주 내내 지속되었고 미처 완수하지 못한 과제를 어떻게든 끝내기 위해 한계까지 수면시간을 줄여가며 진행했습니다. 42서울 라피신 이후 이렇게까지 저를 몰아붙인 것은 처음이었습니다. 하지만 그만큼 발전하는 것이 느껴졌습니다. 힘든 만큼 성장합니다. 연구가 무엇인지 궁금하시다면, 컴퓨터비전의 연구는 어떻게 진행되는지 궁금하시다면, 방학동안 무엇인가에 몰입해서 공부해보고 싶으시다면 URP를 적극 추천 드립니다. 다른 곳에서는 쉽게 접할 수 없는 경험을 하실 수 있을 것입니다.
동료의 중요성을 절실히 깨달았습니다. 옆에 있는 동기는 페이스 메이커이기도 하고, 밥친구이기도 하고, 경쟁자가 될 때도 있고, 선생님이 되기도 하는, 마지막까지 함께 갈 동료입니다.
늦은 밤 연구실 제 옆에는 항상 동기들이 함께 있었습니다. URP를 무사히 이수하는데 동기들의 존재가 정신적으로 많은 도움이 되었습니다. 챌린지 기간에는 리더보드에 성능 순위가 일렬로 매겨지기 때문에 경쟁하는 분위기가 조성될 수도 있습니다. 하지만 동기들은 절대 서로 경쟁자가 아닌, 함께 URP과정을 헤쳐 나가는 동료입니다. 서로에게 좋은 동료이자 자극제가 되기를 바랍니다.
질문도 실력입니다. 멘토로 지정된 조교님들도 예전에 URP를 경험해 보셨고, 과제 내용에 대해 굉장히 잘 알고 계시기 때문에 질문을 잘 해서 배우는게 중요합니다. 조교님들이 학부생이라고 믿기 힘들 정도로 굉장히 실력 있으셔서 많이 놀랐고 많이 배웠습니다. 조교님들을 잘 이용하면 과제 해결 실마리를 잡는 것이 한결 쉬워질 것입니다.
[마치며]
저는 무사히 URP를 완수하고 다가오는 3월부터 RCV에 합류해 컴퓨터비전 연구를 시작합니다. 이런 좋은 기회를 제공해 주신 최유경 교수님, 분석의 중요성을 계속 강조해주신 담당 멘토 김주연 조교님, 귀찮을 법도 하신데 개인 시간까지 쪼개시며 저희를 도와 주신 이상인, 김도경 조교님 감사드립니다. 그리고 8주동안 제 옆에서 서로 격려해주고 도움을 주었던 9기 동기분들께 정말 감사드립니다.
저는 URP를 통해 많은 정말 많이 성장했습니다. 곧 새로운 봄학기와 연구실 생활이 시작되는데 제가 잘 헤쳐 나가면 좋겠습니다.
긴 글 읽어 주셔서 감사합니다.