๋ณธ ๋ ผ๋ฌธ์ Naver Clova์์ CVPR 2019 ์ ๋ฐํํ Text Detection ๋ ผ๋ฌธ์ผ๋ก, CRAFT ๋ผ๋ ๋ชจ๋ธ์ ์ ์ํ๋ค. Text Detection ๋ถ์ผ์์ ์๋ ์ ๋ช ๋ ๋ ผ๋ฌธ์ด๊ณ ๊ฐ์ธ์ ์ผ๋ก ํ ์คํธ ๊ฒ์ถ์ ์ํด ํ ์คํธ์ ํน์ฑ๊ณผ ๋ฅ๋ฌ๋์ ํ์ต ํน์ฑ์ ์์ฃผ ํจ์จ์ ์ผ๋ก ์ด์ฉํ ๋งค๋ ฅ์ ์ธ ์ฐ๊ตฌ๋ผ ์๊ฐํ๋ค. ์์ธํ ์ค๋ช ์ ๋ค๋ฅธ ๋ธ๋ก๊ทธ์์๋ ์ ๋์์์ผ๋ ๋๋ ๋ชจ๋ธ ํ์ต์ ์ํ ํต์ฌ์ ์ธ ๋ถ๋ถ๋ง ์ ๋ฆฌํ๋ ค ํ๋ค.
CRAFT ๋ชจ๋ธ์ ํต์ฌ
- CRAFT ๋ชจ๋ธ์ ํ ์คํธ ๊ฒ์ถ์ ์ํด ๋จ์ด bbox๋ฅผ ๋ฐ๋ก ์์ธกํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฌธ์์ ์์น๋ฅผ ๋ํ๋ด๋ region score, ๋ฌธ์๊ฐ ๊ฑฐ๋ฆฌ๋ฅผ ๋ํ๋ด๋ affinity score๋ฅผ ์์ธก
- ์ด๋ฅผ ์ํด์๋ character-level annotation์ด ํ์ํ๋ฐ ๋ฌธ์ ํ๋ ํ๋ bbox๋ฅผ ๋ง๋๋ ์์ ์ ์๊ฐ๋ง ํด๋ ๋์ฐํ๊ฒ ์ค๋๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ pseudo-GT๋ฅผ ์์ฑํด์ ํ์ตํ๋ weakly-supervised learning ๋ฐฉ๋ฒ์ ์ฌ์ฉ
- Character ๋จ์ bbox๊ฐ ์กด์ฌํ๋ฉด ์์ ๊ฐ์ด region score์ affinity score๋ฅผ ์์ฑํ๋ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ
- ๋ฌผ๋ก ํน์ character ๋ค์ ์กฐํฉ์ด ํ๋์ ๋จ์ด๋ผ๋ ์ ๋ณด๋ ๊ฐ์ง๊ณ ์์ด์ผ๋จ - ์์ ๊ฒฝ์ฐ p, e, a, c, e๊ฐ ๋ชจ์ฌ peace๋ผ๋ ํ ๋จ์ด๋ผ๋ ์ ๋ณด ํ์ (์๋ฐํ ๋ฐ์ง๋ฉด ํ ์คํธ ์ ๋ณด๋ ํ์์๊ณ , ํน์ character bbox๊ฐ ๋ชจ์ฌ ํ๋์ ๋จ์ด๋ฅผ ์ด๋ฃฌ๋ค๋ ์ ๋ณด ํ์)
CRAFT ๋ชจ๋ธ ํ์ต ๊ณผ์
- Character-level GT ๊ฐ ํฌํจ๋ ๋ฐ์ดํฐ์ ์ผ๋ก Interim model ์ ํ์ต (Train with Synthetic Image)
- Interim model ์ ๊ฐ์ ํ๊ธฐ ์ํด word-level annotation ๋ง ๋์ด ์๋ ๋ฐ์ดํฐ์ ์ผ๋ก character level pseudo-GT annotation data๋ฅผ ์์ฑ (Generate Pseudo-GT)
- Character-level GT์ ์์ฑํ pseudo-GT๋ก ํจ๊ป ๋ชจ๋ธ์ ํ์ต. Pseudo-GT๋ ์ ํํ GT๋ ์๋๊ธฐ ๋๋ฌธ์ character ๊ฐ์๋ฅผ ์ ํํ๊ฒ ์์ธกํ๋์ง์ ๋ฐ๋ผ confidence score ๋ฅผ ๋ฐ์ํ์ฌ ํ์ต (weakly supervised learning) (Train with Real Image + Train with Synthetic Image)
* ์ฌ์ค์ 2, 3๋ฒ ๋จ๊ณ๋ ๋์์ ์งํ. 3๋ฒ ๋จ๊ณ์์๋ Real data๋ง์ ์ด์ฉํด์ ํ์ตํ ์๋ ์๊ณ , Synthetic + Real ๋ฐ์ดํฐ๋ก ํ์ตํ ์๋ ์์.
* ์ฃผ์์ฌํญ : ๋ ผ๋ฌธ์์๋ ๋ฐ์ดํฐ์ ์ Synthetic Image, Real Image ๋ก ํํํ๋๋ฐ ์ฌ์ค ์ ํํ๊ฒ ๋งํ๋ฉด Synthetic Image ๋ character-level GT๊ฐ ์๋ ๋ฐ์ดํฐ์ ์ ๋ปํ๊ณ Real Image๋ word-level GT๋ง ์๋ ๋ฐ์ดํฐ์ ์ ๋ปํ๋ค. ๋น์ฐํ Synthetic Image๋ ํฉ์ฑ๋ฐ์ดํฐ์ด๊ธฐ ๋๋ฌธ์ character ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง, Real Image์ ๊ฒฝ์ฐ word-level GT๋ง ๊ฐ์ง๊ณ ์์ ์๋ ์๊ณ character-level GT๋ฅผ ๊ฐ์ง๊ณ ์์ ์๋ ์๋ค. ๋ ผ๋ฌธ์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ์ ๋ง ์๊ฐํ๋ ๊ฒฝ์ฐ ๋ ผ๋ฌธ์ ํํ์ด ๋ง์ง๋ง ํ์ค์ ๊ฒฝ์ฐ์ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํท๊ฐ๋ฆฌ์ง ์๊ธฐ๋ฅผ...
Train with Synthetic Image
- ๊ฐ์๊ฐ ์ ์ character level annotation ์ด ๋์ด ์๋ ๋ฐ์ดํฐ๋ก Interim model ์ ํ์ต
- Pseudo-GT๋ฅผ ์์ฑํ๊ธฐ ์ํ pre-train์ ์งํํ๋ ๋จ๊ณ๋ก ๋ณผ ์ ์์
- ์ด ๋จ๊ณ์์ ์ด๋์ ๋ ํ
์คํธ์ ๋ฌธ์ ์์น(region score)์ ๋ฌธ์๊ฐ ๊ฑฐ๋ฆฌ(affinity score)๋ฅผ ์์ธกํ๋ ๋ชจ๋ธ์ ๋ง๋ค์ด ๋์ผ ์ ์์ ์ธ ํ์ต์ด ๊ฐ๋ฅ
- Interim ๋ชจ๋ธ์ด region, affinity score๋ฅผ ์ํฐ๋ฆฌ๋ก ์์ธกํ๋ฉด ์ดํ์ ์์ฑํ๋ pseudo-GT๋ ๋ ์๋ง์ผํ ๋
Generate Pseudo-GT
- Pseudo-GT๋ฅผ ์์ฑํ๊ธฐ ์ํด word-level annotation(๋จ์ด bbox)์ ํ ์คํธ ์ ๋ณด(์๋ฐํ ๋งํ๋ฉด ๋จ์ด๊ฐ ๋ช ๊ฐ์ character ๋ก ์ด๋ฃจ์ด์ ธ ์๋์ง์ ๋ํ ์ ๋ณด)๋ ์์ด์ผ๋จ
- Synthetic Image(with GT)๋ก ํ์ตํ Interim model ์ inference ๊ฒฐ๊ณผ๋ฅผ pseudo-GT ๋ก ํ์ฉ
- Interim model ๋ก ์์ฑํ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋๋ก label ๋ก ์ฐ๊ธฐ์๋ ์ค์ฐจ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ ์์ธกํ character ๊ฐ์์ ์ค์ character ๊ฐ์์ ๋ฐ๋ฅธ confidence score ๋ฅผ ๋ฐ์
- e.g. 5๊ฐ์ ๊ธ์๋ก ๊ตฌ์ฑ๋ ๋จ์ด๋ฅผ 5๊ฐ๋ก ์์ธกํ ๊ฒฝ์ฐ → confidence score = 5/5, 3๊ฐ๋ก ์์ธกํ ๊ฒฝ์ฐ → confidence score= 3/5
- ๋ง์ฝ confidence score < 1/2 ์ธ ๊ฒฝ์ฐ ๋จ์ด๋ฅผ ๋์ผํ ์ฌ์ด์ฆ์ ์นธ์ผ๋ก ์๋ผ์ character bbox gt ๋ก ์ฌ์ฉ
Train with Real Image & Train with Synthetic Image
์ค๋ช ์ ์ํด Pseudo-GT ์์ฑ๊ณผ ํ์ต ๋จ๊ณ๋ฅผ ๋๋์ด ๋จ์ง๋ง, ์ค์ ๋ก๋ ๋์์ ์งํ
- ์์ฑํ pseudo-GT ์ ๊ธฐ์กด GT data ๋ฅผ ๋ชจ๋ ํ์ฉํ์ฌ ๋ชจ๋ธ ํ์ต.
- Character-level annotation์ ๊ฐ์ง ๋ฐ์ดํฐ์ -> GT ๋ฐ์ดํฐ๋ก ํ์ต
- Word-level annotation์ ๊ฐ์ง ๋ฐ์ดํฐ์ -> Pseudo-GT ๋ฐ์ดํฐ๋ก ํ์ต
- CRAFT ์คํผ์ ํ์ต ์ฝ๋๋ ๊ณต๊ฐ๋์ง ์์์ง๋ง, EasyOCR์์ ๊ณต๊ฐํ CRAFT ํ์ต ์ฝ๋๋ฅผ ๋ณด๋ฉด GPU๋ฅผ ๋ฐ๋ฐ ๋๋์ด ํ ์ชฝ์ GT ๋ฐ์ดํฐ๋ก ๋ชจ๋ธ์ ํ์ตํ๊ณ ๋ค๋ฅธ ํ ์ชฝ์ Pseudo-GT๋ฅผ ์์ฑํ๊ณ weakly-supervised learning์ ์งํ
- pseudo-GT ๋ confidence score ์ ์ฉ
์คํ ๊ฒฐ๊ณผ
- ํ์ต์ ์งํํ ์๋ก character์ ์์น๋ฅผ ์ฐพ๋ region score์ ํํ๋ ฅ์ด ์ข์์ง๋ ๊ฒ์ ๋ณผ ์ ์์
- pre-train ๋จ๊ณ์ธ Interim ๋ชจ๋ธ์ ๋ง๋๋ ๊ณผ์ ์์ ์ด๋์ ๋ ์ข์ ํํ๋ ฅ์ ๊ฐ์ ธ์ผ ์ฑ๊ณต์ ์ผ๋ก weakly supervised learning์ ์งํํ ์ ์์
ํ๊ตญ์ด ์คํ ๊ฒฐ๊ณผ
ํ๊ตญ์ด๋ก๋ ํ์ต์ ์งํํด๋ณด๋ฉด region score์ affinity score๋ฅผ ๊ฝค ์ ์์ธกํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.