MAPLE UPSCALE · TRAINING INPUTS

모델이 학습 때 본 "작은 그림(LR)"은 이렇게 생겼습니다.

LR은 Low Resolution(저해상도 입력), HR은 High Resolution(정답)입니다. 학습률(learning rate)과는 다른 뜻입니다. 학습 400계열 중 10개를 무작위로 골라 같은 HR에서 만든 세 종류의 LR을 나란히 놓았습니다. LR은 실제 96×96이지만 픽셀이 보이도록 2배로 키워 표시합니다.

Bicubic LR (첫 실험)HR을 Pillow Bicubic으로 절반으로 줄인 것. 주변 4×4 픽셀의 색이 섞여 흐릿합니다.
점 샘플링 LR (두 번째 실험)2×2 블록마다 오른쪽 아래(HR[2i+1,2j+1]) 픽셀 하나를 그대로 뽑은 것. 색이 섞이지 않지만 경계선이 그 위치에 없으면 사라집니다.
경계선 보존 LR (새 제안)2×2 블록 안에 경계 픽셀이 있으면 그 픽셀을 뽑습니다. 경계 = 밝기 70 이하이면서 상하좌우에 훨씬 밝은 픽셀(차이 80 이상)이나 투명 픽셀이 붙은 것. 경계가 없으면 어두운 픽셀 → 불투명 픽셀 → 기본 위치 순으로 고르고, 같은 급이 여럿이면 기본 위치(오른쪽 아래)에 가장 가까운 것을 골라 윤곽 위치의 흔들림을 줄입니다.
실측 색학습 스프라이트의 어두운 픽셀 중 순수 검정(0,0,0)은 26%, 나머지는 (17,17,17)·(34,34,34)·(51,34,17) 같은 17단계 팔레트 색입니다. 그래서 정확한 색이 아니라 밝기와 대비로 경계를 잡았습니다.

10개 합계 HR 경계 픽셀 14,620개 중 점 샘플링 LR에 남는 것 3,445개(24%), 경계선 보존 LR에 남는 것 8,421개(58%). 경계선 보존은 LR 블록 5,550/92,160(6%)에서 기본 위치 대신 다른 픽셀을 골랐습니다.

HR[2i+1, 2j+1]이 무슨 뜻인가요?

HR을 2×2 블록으로 나누면 블록 하나가 LR의 한 픽셀이 됩니다. LR의 (i, j) 픽셀은 HR의 2i~2i+1행, 2j~2j+1열 네 칸 중 하나를 그대로 가져온 것이고, 규칙마다 고르는 칸이 다릅니다. 아래는 개조 당한 허세로이드 HR의 (y 84~91, x 96~103) 영역 8×8을 실제로 잘라 그린 것입니다.

개조 당한 허세로이드 추가 표본 · 학습에 쓰지 않은 스프라이트 · 위 합계에는 포함하지 않음

HR 정답 166×182
경계선 마스크 보기 · 경계 픽셀 1,814개
Bicubic LR 83×91 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 83×91 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 486개 살아남음 (27%)
경계선 보존 LR 83×91 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 1,061개 (58%) · 블록 693/7,553 변경

스노우맨 f_9dbd787c75edc10b

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 2,627개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 614개 살아남음 (23%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 1,494개 (57%) · 블록 925/9,216 변경

미스틱 그린 코니언 f_44a5b5006cd14bc7

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 1,649개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 416개 살아남음 (25%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 962개 (58%) · 블록 621/9,216 변경

리들리 f_b76982f961ccddd0

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 1,483개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 301개 살아남음 (20%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 871개 (59%) · 블록 641/9,216 변경

춤추는 이들 f_1536813f4fbea404

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 2,084개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 510개 살아남음 (24%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 1,220개 (59%) · 블록 784/9,216 변경

블랙윙 보안담당자 f_294c883927d0af38

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 1,387개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 325개 살아남음 (23%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 784개 (57%) · 블록 499/9,216 변경

켄 f_fa0139a904e61b96

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 1,103개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 276개 살아남음 (25%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 628개 (57%) · 블록 363/9,216 변경

설산의 마녀 f_30a0d5da5fa42b51

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 525개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 125개 살아남음 (24%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 327개 (62%) · 블록 228/9,216 변경

암시장의 시비꾼 f_ab621a07addeb7c6

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 1,349개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 312개 살아남음 (23%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 768개 (57%) · 블록 485/9,216 변경

퍼펫골렘 f_1c6ed237e5054961

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 1,425개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 333개 살아남음 (23%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 787개 (55%) · 블록 462/9,216 변경

화가 난 유령 f_edb123b1ae5d717a

HR 정답 192×192
경계선 마스크 보기 · 경계 픽셀 988개
Bicubic LR 96 (2배 표시)
10,000스텝 실험이 학습한 입력
점 샘플링 LR 96 (2배 표시)
HR[2i+1,2j+1] · 경계 픽셀 233개 살아남음 (24%)
경계선 보존 LR 96 (2배 표시)
블록에 경계 픽셀이 있으면 그것을 선택 · 580개 (59%) · 블록 542/9,216 변경

추가 · 경계 없이 학습하려면

알파 마스크를 1px 수축한 LR

전경 전용 손실이 경계 픽셀까지 배우지 않도록, 실루엣 바깥쪽 한 줄을 지운 입력입니다. LR은 1px, HR 손실 마스크는 같은 비율인 2px을 4방향 침식으로 지웁니다. 지워진 픽셀은 완전 투명(네 값 0)입니다. 추론 때도 같은 1px 수축 입력을 넣고, 결과에 원래 알파 마스크와 경계선을 후처리로 되돌리는 방식을 전제합니다.

10개 합계 HR 전경 104,691px 중 14,731개(14.1%) 제거, LR 전경 27,507px 중 3,525개(12.8%) 제거. 작은 도트일수록 지워지는 비율이 큽니다. 경계선 보존으로 살린 경계 픽셀 대부분이 이 수축으로 다시 사라진다는 점도 확인하세요.

개조 당한 허세로이드 HR 전경 21,104px 중 2px 수축으로 1,598개 제거 · LR 전경 5,407px 중 1px 수축으로 387개 제거 · 추가 표본

HR 정답 166×182 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 83×91 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 83×91 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

스노우맨 HR 전경 19,877px 중 2px 수축으로 2,025개 제거 · LR 전경 5,150px 중 1px 수축으로 483개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

미스틱 그린 코니언 HR 전경 10,243px 중 2px 수축으로 1,817개 제거 · LR 전경 2,711px 중 1px 수축으로 432개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

리들리 HR 전경 8,313px 중 2px 수축으로 1,299개 제거 · LR 전경 2,195px 중 1px 수축으로 313개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

춤추는 이들 HR 전경 11,064px 중 2px 수축으로 1,857개 제거 · LR 전경 2,931px 중 1px 수축으로 445개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

블랙윙 보안담당자 HR 전경 9,521px 중 2px 수축으로 1,170개 제거 · LR 전경 2,483px 중 1px 수축으로 288개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

켄 HR 전경 4,079px 중 2px 수축으로 812개 제거 · LR 전경 1,094px 중 1px 수축으로 193개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

설산의 마녀 HR 전경 11,531px 중 2px 수축으로 1,295개 제거 · LR 전경 3,002px 중 1px 수축으로 300개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

암시장의 시비꾼 HR 전경 10,291px 중 2px 수축으로 1,195개 제거 · LR 전경 2,687px 중 1px 수축으로 281개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

퍼펫골렘 HR 전경 7,328px 중 2px 수축으로 1,094개 제거 · LR 전경 1,943px 중 1px 수축으로 274개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

화가 난 유령 HR 전경 12,444px 중 2px 수축으로 2,167개 제거 · LR 전경 3,311px 중 1px 수축으로 516개 제거

HR 정답 192 (원본)
HR 손실 마스크 2px 수축
이 안쪽 픽셀만 전경 손실에 넣음
경계선 보존 LR 96 (2배 표시)
지워질 픽셀을 빨강으로 표시
1px 수축 LR 96 (2배 표시)
학습·추론 입력 후보 · 투명 PNG

추가 · 경계선을 없애는 방향으로

가장 밝은 픽셀 샘플링 + 1px 수축 LR

경계선 보존과 반대로, 2×2 블록의 불투명 픽셀 중 가장 밝은 것을 뽑아 어두운 윤곽선이 LR에 거의 남지 않게 합니다. 그 뒤 알파를 1px 수축해 남은 가장자리도 지웁니다. 모델은 윤곽선 없는 안쪽 색만 보고 배우고, 손실은 2px 수축한 HR 마스크 안에서만 셉니다.

10개 합계 · 어두운 픽셀(밝기 70 이하) 수 HR 32,582 → 점 샘플링 LR 7,956 → 가장 밝은 픽셀 LR 6,157 → 1px 수축 후 4,118. LR 전경 픽셀은 수축으로 27,507 → 23,982개(13% 제거).

개조 당한 허세로이드 어두운 픽셀(밝기≤70): HR 10,541 → 점 샘플링 LR 2,649 → 가장 밝은 픽셀 LR 2,310 → 1px 수축 후 2,027 · 추가 표본

HR 정답 166×182
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 83×91 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 83×91
학습·추론 입력 후보 · 투명 PNG

스노우맨 어두운 픽셀(밝기≤70): HR 3,944 → 점 샘플링 LR 938 → 가장 밝은 픽셀 LR 596 → 1px 수축 후 304

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

미스틱 그린 코니언 어두운 픽셀(밝기≤70): HR 4,184 → 점 샘플링 LR 1,053 → 가장 밝은 픽셀 LR 787 → 1px 수축 후 516

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

리들리 어두운 픽셀(밝기≤70): HR 2,561 → 점 샘플링 LR 565 → 가장 밝은 픽셀 LR 415 → 1px 수축 후 223

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

춤추는 이들 어두운 픽셀(밝기≤70): HR 3,224 → 점 샘플링 LR 791 → 가장 밝은 픽셀 LR 482 → 1px 수축 후 215

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

블랙윙 보안담당자 어두운 픽셀(밝기≤70): HR 5,467 → 점 샘플링 LR 1,350 → 가장 밝은 픽셀 LR 1,195 → 1px 수축 후 977

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

켄 어두운 픽셀(밝기≤70): HR 1,425 → 점 샘플링 LR 355 → 가장 밝은 픽셀 LR 197 → 1px 수축 후 85

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

설산의 마녀 어두운 픽셀(밝기≤70): HR 526 → 점 샘플링 LR 125 → 가장 밝은 픽셀 LR 139 → 1px 수축 후 2

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

암시장의 시비꾼 어두운 픽셀(밝기≤70): HR 3,017 → 점 샘플링 LR 752 → 가장 밝은 픽셀 LR 603 → 1px 수축 후 412

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

퍼펫골렘 어두운 픽셀(밝기≤70): HR 1,967 → 점 샘플링 LR 470 → 가장 밝은 픽셀 LR 333 → 1px 수축 후 149

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG

화가 난 유령 어두운 픽셀(밝기≤70): HR 6,267 → 점 샘플링 LR 1,557 → 가장 밝은 픽셀 LR 1,410 → 1px 수축 후 1,235

HR 정답 192
HR 손실 마스크 2px 수축 (확정)
점 샘플링 LR (비교용)
가장 밝은 픽셀 LR 96 (2배 표시)
블록의 불투명 픽셀 중 가장 밝은 것
가장 밝은 픽셀 + 1px 수축 LR 96
학습·추론 입력 후보 · 투명 PNG