Table of contents
들어가며
안녕하세요~ 이번 포스트에서는 개인화 배너 QA를 위한 ’배너 자동 검증 모델’의 개발 과정에 대해 소개해 드리겠습니다.
우선 개인화 배너 및 QA 모델 개발 취지에 대해 이야기해 드리고, 뒤이어 QA 배너 검증 모델의 개발 프로세스와 활용 기술에 대해 소개해 드릴게요!
개인화 배너란?
유저 타겟팅
유저의 나이, 성별, 사는 지역 뿐만 아니라 게임 내에서의 상품 구매, 레벨, 주요 행동 등을 바탕으로 유저 개개인 특성을 분석해 개인화된 액션을 할 수 있습니다.
배너의 개인화
오른쪽 이미지를 개인화 배너의 예시로 들 수 있는데, 카트라이더 게임에서 유저가 플레이한 km를 실제 거리로 환산하고, 이를 배너에 포함함으로써 유저 데이터를 활용한 개인화 배너를 만들 수 있습니다.
그림2 : 개인화 배너 예시 (유저의 카트라이더 실제 주행 km 기입)
아래 이미지처럼 유저의 닉네임과 유저가 주로 플레이하는 캐릭터(주 캐릭터) 이미지가 담긴 개인화 배너를 생성할 수 있습니다.
그림3 : 실제 넥슨닷컴에 노출된 개인화 배너 예시 (유저의 주 캐릭터와 닉네임 기입)
개인화 배너 QA
1. 개인화 배너 QA 가 필요한 이유
위에서 살펴보신 것처럼 개인화 배너에는 유저별로 다른 ‘텍스트 정보(ex. 유저 닉네임, 주행한 거리)’와 ‘이미지 정보(ex.주 캐릭터)’가 포함되는 경우가 있습니다. 이렇게 모든 유저에게 동일한 배너가 나가지 않고, 각 유저에게 개인화된 배너가 나가기 때문에 간헐적으로 의도치 않는 배너가 생성 될 수 있는데요.
이런 잘못된 배너를 검증하기 위해 기존엔 개인화 배너를 배포하기 전, 전체 배너 중 일부 배너를 아래와 같이 사람이 직접 QA하고 있었습니다.
그림4 : 개인화 배너 검증 프로세스
1) 개발 오류에 대한 점검
유저의 주 캐릭터 이미지가 배너에 포함되도록 하는, 배너 생성 코드가 잘 동작하는지 점검하는 과정을 거칩니다.
2) 텍스트 or 이미지 오류에 대한 점검
이미지가 잘려 보인다던지, (아래 이미지처럼) 텍스트 표기에 있어서 오류가 될 수 있는 예외적인 케이스가 있기 때문에 해당 사항에 대한 체크가 필수적입니다.
그림 5 : 닉네임이 길어서 글자가 안보이는 배너
그림 6: 닉네임이 깨지는 폰트 사용 배너
2. 개인화 배너 QA의 한계점
노출처가 늘어남에 따라 QA해야 할 개인화 배너가 점점 많아지고, 동시에 개인화 요소가 다양해짐에 따라 QA 담당자가 파악해야 할 배너별 개인화 요소도 늘어났습니다. 그렇게 점차 QA 담당자의 업무 부담이 늘어나게 되었죠.
그림7 : QA 담당자가 진행하는 개인화 QA 절차
3. 해결 방안
그래서 시간과 비용을 줄이고, 효율을 늘리기 위해 ‘자동 QA 모델’을 구상했습니다.
그림8 : 자동 QA 모델을 활용한 개인화 배너 QA 프로세스
개인화 배너 QA 모델 개발
QA 모델은 크게 텍스트 검증, 이미지 검증 기능을 가지고 있습니다.
텍스트 검증 기능
배너 안에 있는 개인화 텍스트를 인식해서 해당 배너가 잘 생성되었는지 확인합니다.
예를 들어 배너 안에 게임 내 유저 닉네임이 들어가야 하지만, 다른 유저의 닉네임이 들어갈 수 있기 때문에 확인이 필요한 거죠.
그림9 : 개인화 텍스트 영역 인식 결과
이미지 검증 기능
배너 안에 있는 개인화 이미지를 인식해서 해당 배너가 잘 생성되었는지 확인합니다.
예를 들어 유저의 주 캐릭터가 ‘엔젤릭버스터’ 라면, 배너 안에 ‘엔젤릭버스터’ 이미지가 들어가야 하지만 다른 직업인 ‘아델’ 이미지가 들어갔는지 검증하는 과정을 거치는 거죠.
그림10 : 개인화 이미지 영역 인식 결과
1. 텍스트 QA 기능 구현
첫째, QA 진행이 필요한 배너 이미지에서 이미지 OCR 기능을 통해 이미지 내 텍스트를 추출합니다.
둘째, 해당 텍스트 내에서 개인화 텍스트 부분을 검증하는 과정을 거치게 됩니다.
그림11 : 텍스트 QA 프로세스 단계
<실제 QA 모델 데모 테스트>
아래 이미지처럼 오류 텍스트가 감지된 개인화 배너를 확인 할 수 있습니다.
그림12 : 실제 QA 모델 데모 테스트 설명 이미지
2. 이미지 QA 기능 구현
이미지 QA 모델은 Siamese Network 기반으로 설계되었습니다.
Siamese Network의 구조는 두 장의 이미지를 입력받고 동일한 모델로 특징을 추출합니다. 이때 추출된 특징을 비교해 두 이미지의 유사한 정도를 0 ~ 1 값으로 수치화하고, 유사도 값이 1에 가까울수록 두 이미지가 일치한다고 판단합니다.
아래는 이미지 QA 절차입니다.
첫째, 최초 1회 사용자가 개인화 이미지 영역을 지정하고, 개인화 이미지 종류별로 1장씩 저장소에 저장합니다. (저장된 이미지는 개인화 이미지 QA에 활용됩니다.)
그림13 : 개인화 이미지 영역 인식 결과
둘째, 이미지 URL을 이용해 개인화 배너 이미지를 1장씩 불러오면서 개인화 이미지 영역의 이미지를 추출합니다.
셋째, 추출된 개인화 이미지가 유저의 주 캐릭터 이미지와 일치하는지 체크합니다. 일치하지 않는다면 유저 닉네임과 함께 불일치 결과를 로그에 남깁니다.
그림14 : 이미지 QA 프로세스
위 과정을 거쳐 이미지 QA 모델은 잘못 생성된 개인화 이미지를 구분합니다.
나가며
지금까지 공유드린 개인화 QA 모델 개발기 어떠셨나요?
텍스트 인식 및 이미지 일치 여부 검증의 시간 단축과 성능 개선은 계속해서 진행하고 있습니다. 이후 발전된 QA 모델에서는 사용자가 개인화 이미지 영역을 지정하는 절차를 생략하는 완전 자동화를 목표하고 있습니다.
시간이 지남에 따라 사람이 진행하는 반복적인 작업들이 자동화 되어가고 있습니다. 반복 작업의 자동화를 통해 정확한 배너를 빠르게 전달하고, 니즈에 맞는 내용을 담은 개인화 배너 노출을 목표하고 있습니다.
이번 블로그 읽어주셔서 감사합니다.
Reference
테크블로그 문의 devrel@nexon.co.kr