23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요 저희는 SKT AI Fellowship 4기 4번 과제 딥러닝 기반 흑백 이미지 컬러화 기술 개발에 참여하게 된 SK(슼)케치북 팀의 이광한, 고동근, 신새별입니다.
본 프로젝트는 이미지/비디오 등의 미디어 데이터에 AI 기술을 적용해 품질을 향상시키는 다양한 선행 기술을 개발하여 다수의 상용화 이력이 있는 SKT SUPERNOVA팀과 함께 진행하게 되었습니다.
현재 1950~1980년대 이미지는 흑백 이미지인 경우가 대다수이며 이러한 오래된 기록물, 콘텐츠에 대한 Colorization 기술에 대한 Needs가 증가하고 있습니다.
이미지/비디오 등의 미디어 데이터에 AI 기술을 적용하여 품질을 향상시키는 기술이 발전함에 따라 역사적 정보를 담고 있는 흑백 이미지에 Colorization 기술을 통해 자료들을 복원하는 것은 사회/경제적 가치 측면에서 매우 의미 있는 일이라고 할 수 있습니다.
따라서 저희 SK(슼)케치북 팀은 한국영상자료원과 한국방송공사 등에 보관되어 있는 오래된 기록물, 콘텐츠 등을 대상으로 대한민국의 역사를 담고 있는 디지털 흑백 이미지에 컬러를 입히는 AI 복원 기술 개발 및 이미지가 담고 있는 상황 (전쟁, 해방, 시위) 및 특성에 맞는 Adaptive한 Colorization model 개발을 목표로 하고 있습니다.
이미지의 context 를 파악하지 못해서 피가 물로 colorization되기도 하고 사과와 아스팔트의 색이 함께 colorization 되는 등, Instance들이 bias된 colorization 결과물로 예측됨.
=> context & instance adaptive model 필요
흑백 이미지에 컬러를 입힐 때 한 가지 정답만 존재하지 않는다. 여러 가지 정답이 존재할 수 있기에, 항상 적절하게 context와 instance를 고려하는 colorizatoin을 수행할 수 없음.
=> User interactive colorization 필요
기존의 연구에서는 context confusion을 해결하기 위해 instance detection 정보를 활용했지만, 모든 데이터셋에 적용하기에는 cost가 크다는 문제점이 있습니다.
본 연구에서는 instance를 식별하기 위해 trainable mask를 생성하여 각 region마다 항상 다른 convolution을 수행하는 region adaptive convolution을 적용합니다.
하지만 trainable mask를 생성하고 각 region마다 adaptive한 convolution을 적용하기 위해서는 argmax 과정이 포함되고 이 과정은 미분 불가능하기 때문에 학습 트릭이 필요합니다. 이를 해결하기 위해 저희는 gumbel-softmax를 적용하여 학습시킬 예정입니다. 설명은 아래와 같습니다.
Gumbel-Softmax는 one-hot vector와 같은 이산확률변수(discrete random variable)를 모델링 해야 하는 상황에 사용됩니다. 이러한 discrete sampling을 할 때 argmax를 사용하게 되면 bacpropagation 과정에서 미분 불가능(혹은 기울기가 0)인 레이어를 학습할 수 없다는 문제가 있습니다.
간단하게 말하면, argmax가 아닌 softmax를 사용하여 Backpropagation이 불가능하다는 문제를 differentiable하게 만듦으로써 해결할 수 있습니다. 또한 gumbel-softmax를 사용하는 것이 아닌 단순한 softmax estimator를 사용하여 학습할 수도 있습니다. training 중에 천천히 temperature τ 를 낮추면서 One-hot vector처럼 작동하게 만든 뒤 inference 시에는 argmax를 사용하여 gumbel-softmax를 대체할 수 있습니다.
=> 위의 custom convolution을 적용할 경우 detection 정보가 없어도 학습을 통해 instance를 식별할 수 있을 뿐만 아니라, instance(region) adaptive convolution을 수행하기 때문에 context confusion 문제를 더 효율적으로 해결할 수 있습니다.
(ref : https://github.com/richzhang/colorization-pytorch)
다양한 colorization method들 중에 instance의 detail을 섬세하게 고려할 수 있는 user-interactive colorization 방법론이 있습니다. 이 방법론은 기존 automatic colorization, 즉 처음부터 끝까지 deep-learning base로 colorization을 수행하는 것보다 더 다양한 색을 이용하여 minor 한 부분도 디테일하게 색을 입힐 수 있는 기술입니다. 이 방법을 이용하면 놓치기 쉬운 세부 instance들의 이미지의 색상 (예: 피, 머리색, 옷 색)을 고려할 수 있습니다.
=> 위의 방법을 적용할 경우 ill-posed problem를 겪을 수밖에 없는 image colorization task에서 사용자가 개입하여 색상을 변경할 수 있기 때문에, 상황에 더 적절하고 정확한 colorization을 수행할 수 있습니다.
ImageNet, ActivityNet, Kinetic400
ImageNet
100만장 가량의 이미지 데이터셋
클래스 1000개
ActivityNet (http://activity-net.org/)
2만개 가량의 동영상 클립
200가지 유형의 활동과 youtube에서 수집한 총 849시간의 동영상 포함
Kinetic400 (https://www.deepmind.com/open-source/kinetics)
30만개 가량의 동영상 클립
클래스 400개
Image colorization을 효과적으로 수행하기 위해서는 많은 데이터로 학습시킨 pretrain model이 필요하다고 생각했습니다. 따라서, 다양한 object와 상황을 포함하는 데이터셋을 구축하기 위해 ImageNet, Activitynet, Kinetic400 데이터를 활용할 예정입니다.
먼저 ActivityNet과 Kinetic400 데이터셋의 경우 동영상 클립으로 이루어져 있습니다. 이 데이터를 활용하기 위해서 먼저 영상마다 2~4 프레임만을 추출했습니다(데이터 중복에 의한 오버피팅 막기위해) . 이렇게 생성된 약 200만장의 데이터 중 5만장을 validation으로 사용하였고 나머지 195만장을 train 데이터로 사용하였습니다.
이때 video_id 가 같으면서 train과 validation에 이미지가 나뉘어 들어가면 data leakage가 발생하는데, 이를 막기 위해 groupkfold를 통해 데이터를 split 하였습니다.
모델을 학습시키기 위해 region adaptive network는 pretrained weights를 불러와서 freeze 시키고 나머지 백본 네트워크를 학습시킵니다. region adaptive network에서는 instance를 masking 하고 feature를 추출해야 하기 때문에 최대한 잘 추출할 수 있도록 ImageNet, ActivityNet, Kinetic400과 같은 대용량 데이터셋으로 학습을 시켜놓습니다. 또한, guided mask를 예측하는 과정에서 gumbel softmax or softmax estimator를 사용할 수 있는데, 둘 모두 사용해서 학습시켜보고 더 좋은 방법을 적용할 예정입니다.
위의 context-aware adaptive network가 학습되고 나면 Local and Global Hint Network 의 방법론을 적용하여 user-interactive하게 세세한 색상을 변경할 수 있도록 추가로 학습할 예정입니다.
SK(슼)케치북 팀은 SKT SUPERNOVA 팀의 정지연 멘토님과 함께 월 2회 온/오프라인 미팅을 통해 프로젝트를 진행하고 있습니다.
펠로우는 이광한 (석박통합과정), 고동근 (석사과정), 신새별 (학부과정) 3명입니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.