AI 이미지 생성기

개발 목적

모델 제작에서 가장 많은 시간을 소요 하는 것은 데이터 수집과 전처리 과정 입니다.  수집된 데이터들의 다양성이 모델의 정확도를 결정짓기 때문에 이 과정의 중요도는 높지만 그 만큼 공수도 매우 큽니다.

생산 과정에서 불량 검사 자동화를 위한 모델을 하나 제작한다고 생각해봅시다.

생산자가 검사하는 포인트에 카메라를 하나 설치하고 며칠 동안 촬영을 한다면 데이터 수십 만 개는 쉽게 모을 수 있을 것 입니다. 하지만 데이터가 많다고 해서 모델의 정확도가 높아지는 게 아닙니다. 전체 수집된 데이터 100개 중에서 정상이 98개, 불량이 2개 뿐이라면 과연 이 데이터를 이용하여 학습을 진행 했을 때 불량을 잘 검출 할 수 있는 모델을 제작 할 수 있을 까요? 

정답은 '아니다' 입니다. 불량을 잘 검출하기 위해선 정상과 불량 데이터의 비율이 적어도 7:3을 유지해야 합니다. 하지만 생산 공정에서 불량이 많이 생성되는 것도 아니고 불량 데이터의 수를 만족할 때까지 계속해서 데이터 수집을 할 수도 없습니다.


그래서 우리는 생각했습니다.

데이터를 임의적으로 생성하여 사용할 수 있다면 

데이터 수집 공수를 크게 줄일 수 있지 않을까?

개발 내용

확산 모델의 가능성이 세상에 알려지기 전까지는 새로운 이미지를 생성하는 데에 GAN 모델의 영향력이 컸습니다. 하지만 GAN 모델은 학습을 진행할 수록 그 수렴이 불안정하고 실제 생성 결과물의 다양성이 적은 단점을 가지고 있습니다.

확산 모델은 비평형 열역학(non-equilibrium thermodynamics)에서 영감을 받은 모델 입니다.

먼저, 데이터에 랜덤한 노이즈를 추가하는 확산 단계인 Markov 체인을 정의한 다음 생성된 노이즈에서 원래 데이터 정보로 복원하기 위한 과정을 이용하여 generate를 수행하는 모델 입니다.

간단하게 정리하면 노이즈 영역을 복원하는 과정을 수행하는 모델이라고 이해하면 쉽습니다.


우리는 데이터 크롤링을 이용하여 웹 상에서 다양한 이미지들을 수집하기 시작했습니다.

크롤링에서 사용한 검색어를 수집한 이미지들의 태그로 이용하고 수집된 데이터들의 노이즈들은 자사에서 이미 개발한 '이미지 자동 분류기'를 이용하여 잘못 분류된 이미지들을 추출하도록 합니다.


데이터 처리가 완료되었으니 학습을 진행하고 테스트 결과를 살펴보도록 합시다.

아래는 AI를 통해 제작된 실제하지 않는 이미지들 입니다