ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Document Enhancement] Document Enhancement using Visibility Detection 번역 및 정리
    Paper review/Document Enhancement 2021. 12. 21. 11:50

    @ 굵은 글씨 중요한 내용, 빨간 글씨는 내가 추가한 내용

     

    https://openaccess.thecvf.com/content_cvpr_2018/papers/Kligler_Document_Enhancement_Using_CVPR_2018_paper.pdf

     

    주요 기여:

    •  

     

    0. Abstract

    본 논문은 Document Enhancement의 고전적인 문제를 다룬다.

    핵심 아이디어는 최신 알고리즘에 새로운 정보를 제공하여 결과를 개선하는 것이다. 흥미롭게도, 이 새로운 정보는 관련 없어 보이는 3d visibility detection의 솔루션을 기반으로 한다. 이미지를 3D point cloud로 간단하게 표현하면 이 cloud에서 visibility를 감지하는 새로운 해석을 제공한다.

    What does it mean for a point to be visible? 이 질문은 CV에서 널리 연구되어 왔지만, 항상 point가 실제 장면의 샘플링이라고 가정되어 왔다. 우리는 본 연구에서 이 질문에 대한 답이 이미지에 대한 독특하고 유용한 정보를 드러낸다는 것을 보여준다. 우리는 문서 이진화와 그림자 제거에 대한 이 아이디어의 이점을 보여준다.

     

    1. Introduction

    우리는 일상생활 속에서 문서를 자주 접하지만, 이는 다음 이유들에 의해 손상된다. 시간이 지남에 따라 얼룩, 잉크 번짐 등과 같은 것들이 문서에 포함될 수 있고, 카메라로 문서를 사진 찍을 때, 빛 혹은 그림자에 의해  손상될 수 있다. 이 두 문제는 본질적으로 다르므로 각각 따로 처리되지만, 우리는 한번에 두 문제를 해결할 수 있는 통합 보정법을 제안한다.

    본 방법론의 핵심 아이디어는 3D의 포인트로 픽셀의 적절한 표현을 선택한 다음 viewpoint에서 볼 수 있는 포인트의 하위 집합을 탐지하면 이미지에 대한 숨겨진 정보가 드러나는 것이다. 이 정보는 새로운 이미지를 만드는 데 사용되며, 기존 알고리즘에 입력으로 주어졌을 때 알고리즘의 일반적인 구조는 그대로 두면서 자체적인 결과를 개선한다.

     

    Visibility는 다양한 차원과 다양한 유형의 객체에 대해 정의되어 있다. 본 논문은 그것의 특정 변형에 초점을 맞춘다. 3D에 설정된 포인트와 viewpoint가 주어지면, viewpoint에서 볼 수 있는 포인트의 하위 집합을 결정한다. 포인트가 서로 가려질 수 없기 때문에, 포인트가 샘플링된 표면이 알려진 경우, 정확한 목표는 가시적인 포인트의 부분 집합을 결정하는 것이다.

     

    Why does visibility information assist us? 위의 그림(a)을 살펴보면, 우리가 제안하는 표현은 흰색 배경에 어두운 텍스트 픽셀을 깊은 계곡의 지점에 할당할 것이다. 일정하고 강도가 높은 배경은 높은 고원으로 바뀝니다 (3D에서 텍스트는 밑으로, 배경은 위로). 뚜렷한 강도 특성이 없는 텍스트의 얼룩은 무구조로 표현돼 '화산' 지형을 닮게 된다. 어두운 지역인 배경에 얼룩이 생기면 높은 고원의 분화구나 얕은 계곡이 생긴다. visibility detection operators는 텍스트와 나머지로 구분하는데 성공한다.

    우리는 이 아이디어의 이점을 위의 그림에 설명된 것처럼 두 가지 작업에서 입증한다. 

    1. Text image binarization: 왜곡되거나 성능이 저하된 문서에서 텍스트를 추출하고 이진 이미지를 만든다. 
    2. Document unshadowing : 이미지 조명을 조정하여 비그림자 이미지를 만든다.

    요약하자면, 이 논문의 주요 기여는

    1. 문서 처리에 visibility detection을 도입하는 새로운 아이디어이다. 이러한 의미에서, 이 논문은 겉보기에는 관련이 없어 보이는 CV의 두 가지 문제를 결합한다.
    2. 위 아이디어를 실현하는 일반적인 프레임워크를 만든다.
    3. 두 애플리케이션에 대한 SOTA 결과를 제공한다.

     

    2. Algorithm

    아래 그림과 같이 손상된 이미지가 주어지면, 우리의 목표는 배경과 텍스트를 구분하여 새로운 이미지를 생성하는 것이다. 생성된 이미지는 문서를 처리하는 모든 알고리즘에 있어서 도움이 된다. 본 방법론의 핵심 아이디어는 이미지를 3D point로 변환하는 것이다. Visible과 invisible로 point를 분류하는 것은 배경과 전경 픽셀을 구분하는 것이다. 알고리즘은 총 4단계이다.

    Stage 1: Transform each pixel to a 3D point

    초기 intuition을 얻기 위해, 사람들은 그 이미지가 세계의 한 부분에 붙여진 것처럼 상상할 수 있다. 이것은 표면의 계곡과 크레이터가 주변과 상대적으로 낮은 강도(어두운 색)의 픽셀에서 생성되고, 능선과 산은 주변과 상대적으로 높은 강도(밝은 색)의 픽셀에서 생성되며, 고원은 낮은 강도의 픽셀 영역에서 생성되도록 수행된다. 

    이를 실현하기 위해 픽셀의 (x, y) 좌표를 사용하여 포인트를 3D 구에 분산시킨 다음 저강도 픽셀(어두운 픽셀=텍스트)은 고강도 픽셀(밝은 픽셀=배경)보다 구의 중심에 가깝게 변환된다. 위 그림 (b)는 전체 이미지를 나타내는 전체 포인트 cloud와 이미지를 통한 단일(주황색) 곡선 변환을 모두 보여준다. 

     

    Stage 2: Detect the visible/occluding points

    3D 구의 중심으로부터 visible 포인트를 탐지한다. 그림 (c)에서 볼 수 있듯이, 빨간색 점은 배경에 존재하고 전경에는 존재하지 않는다. 이것이 우리의 핵심 아이디어이다. 

     

    Stage 3: Create a visibility-based image

    그림 (d)과 같이 stage 2정보를 활용하여 visibility 기반 이미지를 생성한다.

     

    Stage 4: Apply an existing algorithm

    Input 이미지 대신 visibility 기반 이미지 그림(d)를 사용하여 기존 알고리즘을 적용한다.

     

    우리 접근법의 계산 복잡도는 n개의 점에 대해 O(nlogn)이다. Step 1&3은 선형인 반면, step 2는 적용되는 볼록 껍질 구성으로 인해 O(nlogn)이다. 

     

    2.1. Image to point-set transformation (Stage 1)

    pi는 이미지에서 (xi, yi)의 점이라 하고, intensity level을 Ii ∈ [0, 1]라 한다. Color 이미지에서는 L∗a∗ b∗ colorspace의 휘도 channel을 intensity라 한다.

    더보기

    Intensity

     

    특정 화소의 밝은 정도를 나타내는 값

    먼저 이미지를 장치 구체 표면의 한 부분에 퍼트린 다음, 픽셀을 강도에 따라 더 가까이 또는 더 멀리 놓음으로써 변환을 수행한다.

     

    pi는 먼저 이미지 좌표계에 상대적으로 스케일링된 좌표계로 변환되며, 원점은 다음과 같은 영향을 받는다.

    M은 maximum image 차원이다. (xi′ , yi′) ∈ ([−0.5, 0.5] × [−0.5, 0.5]).

     

    구에서 포인트의 높이를 설정하기 위해, 모든 픽셀에 대해 초기 높이가 정의되고 pi는 극좌표 (ri, θi, φi)로 표현된다. 그리고 나서, 각 픽셀은 (1, θi, φi)의 단위구로 변환된다. 마지막으로, ri는 다음과 같은 조건에 따라 Ii에 대한 선형 변환을 사용하여 pi의 intensity에 상대적으로 설정된다.

    구에서, a1과 a0의 선택은 지형의 성격에 영향을 미친다. a0이 높으면 가장 깊은 계곡(intensity가 낮은 픽셀)도 viewpoint와 멀리 떨어져 있게 된다. a1을 높은 값으로 설정할 때 변환을 수행하면 생성된 픽셀의 intensity가 유사한 경우에도 상당한 계곡과 능선이 발생한다. a1과 a0는 하이퍼 파라미터이다.

     

    2.2. Detecting visible/occluding points (Stage 2)

    우리는 그림 (b)를 고려하여 약간의 직관으로 시작한다. 텍스트 문자는 낮은 강도의 픽셀로 구성되며, 텍스트 이미지의 일반적인 배경인 많은 높은 강도의 픽셀과 천천히 변화하는 픽셀로 구성됩니다. 우리의 이미지 변환은 text에서 비롯된 점들은 좁은 계곡 안에 위치하게 할 것이다. 한편, 수직 crease는 text 픽셀보다 얕고 넓은 계곡을 형성한다. 마지막으로, 배경에서 비롯된 주변 지점들이 고원에 상주하게 된다. 

     

    기본적으로 좁은 계곡(text)과 그외를 구별하는 연산자를 찾아야 한다. 표면에 대해 다양한 방법으로 수행할 수 있지만 포인트 세트의 경우 문제가 훨씬 더 어렵다. 그러나 흥미롭게도, 보이는 점/가시하는 점을 탐지하는 연산자는 약간의 비틀림 없이 작업을 수행할 수 있다. 

    먼저 문제와 연산자에 대해 간단히 말하면, point set P ⊂ R^3와 viewpoint C가 주어지면, 목표는 보이는 점의 부분 집합을 찾는 것이다. What does it mean for a point to be visible? P가 표면 S에서 추출되는 경우 C에서 S가 보이면 점이 보이는 것으로 간주된다. 

    Hidden Point Removal(HPR) 연산자는 표면 reconstruction을 제외하고 P의 visible point의 하위 세트를 직접 결정한다. 연산자는 두 단계로 구성된다 (C가 원점에 있다고 가정).

    어렵게 설명이 되어 있지만, 간단히 말해서 HPR이나, TPO 알고리즘은 viewpoint에 따라 안보이는 점들이 존재한다는 한계점이 존재했고, 본 알고리즘을 이러한 한계점을 반대로 이점으로 활용하여 한보이는 부분은 text로 처리한다는 말인듯 하다.

    이 정보는 이미지 분석에 매우 중요하다. 예를 들어, 텍스트 이미지 영역에서, 우리의 이미지 변환은 글자에서 비롯된 포인트가 깊은 계곡 내에 상주하게 하므로, TPO 연산자에 의해 감지될 가능성이 낮다. 반대로, 배경에서 유래된 점은 visibility로 감지될 가능성이 더 높다. 이 두 관측치는 그림 (c)에서 확인할 수 있다. 문자 내 빨간 점의 밀도는 배경의 빨간 점 밀도보다 상당히 낮다. 그러나 주름으로 인해 텍스트 픽셀보다 얕고 넓은 계곡이 만들어진다. 따라서 TPO 연산자는 그 안에 있는 visibility point를 감지하여 더 깨끗한 이미지(d)를 만든다. 



    다음 섹션에서는 두 개의 텍스트 처리 애플리케이션에 대한 일반적인 접근 방식의 적응을 보여 줍니다.

     

    3. Application: Text Image Binarization

    Result

    Text image binarization에 대해 정성적 정량적 평가를 수행한다.


    각 데이터 세트에 대한 평균 결과는 아래와 같다. 본 알고리즘은 모든 dataset에 대해 원래 결과를 능가한다.  

    아래 그림은 SOTA 알고리즘의 결과보다 노이즈를 잘 처리하는 것을 확인할 수 있다.

     

    4. Document Unshadowing

    Result

    수기 문서, 인쇄 문서, 포스터, 글꼴의 네 가지 범주에서 381개의 인공 그림자 이미지의 새롭고 다양한 벤치마크에서 알고리즘 평가를 수행한다. 각 범주는 7-10개의 문서로 구성되며 각 문서는 그림자 강도, 모양 및 위치의 8-12가지 변형이 존재한다. 여기에는 11개의 문서에서 생성된 81개의 이미지가 포함된 데이터 세트가 포함되어 있으며, 모두 글꼴이 작고 색 변화가 거의 없으며 그림자가 완만하다(즉, 입력이 실제와 유사함).

    아래 그림은 네 가지 범주의 대표적인 이미지의 질적 비교를 보인다. 가장 큰 차이점은 본 방법론이 색상을 보존하면서 동시에 더 풍부하고 디테일한 그림자가 없는 이미지를 복원한다는 것이다.



    성능을 정량적으로 평가하기 위해 MSE, PSNR 및 SSIM으로 측정한다. 아래 표는 각 범주의 평균 결과를 보인다. SSIM과 MSE의 경우, 네 가지 범주 모두에서 결과가 기존을 능가한다.
    PSNR 측면에서, 두 카테고리에 대해 기존보다 약간 성능이 낮다. 이는 음영 처리 이미지에 대해 기존 방법의 우수한 성능으로 설명될 수 있다.

    아래 그림은 인터넷에서 얻은 실제 이미지에 대한 시각적 질적 비교이다. 좋은 성능을 보이는 것을 확인할 수 있다.

     

    5. Conclusion

    본 논문은 다양한 유형의 문서를 처리하기 위한 general한 접근법을 제안한다. 고유성 (Uniqueness), 다양한 강도 (varying intensity), 상대성(relativity)과 같은 픽셀의 특성을 측정하는 대신, 3D point의 visibility 혹은 occlusion을 결정한다. 우리는 간단하고 효율적인 O(nlogn) 연산을 통해 다른 방법으로 숨겨진 이미지의 속성을 드러낸다는 것을 보여준다.

    우리는 텍스트 이미지 이진화와 문서 그림자 제거를 위한 프레임워크를 적용했다. Visibility 정보가 기존 알고리즘에 대한 더 깨끗하고 명확한 입력을 생성하고 자체 결과를 개선하는 데 어떻게 도움이 되는지 보여주었다. 우리의 수정은 모든 알고리즘에 적용될 수 있기 때문에, 그것은 향후 도메인 개발에 도움이 될 것이다.

    우리는 CV에서의 우리 개념의 사용을 연구하고자 한다. 그것은 특징점들이 더 높은 차원에 내재되어 있는 경우에도 유리할 수 있다.

     

    My Discussion

    --> point로 뽑아내는 경우, 오히려 더 얼룩이 생기지 않음? attention 맵으로 하는 방법은 없을까? 아니면 사실 point cloud로 했다고 말하지만 결국에는 pixel값에 따라 한것이다. 그냥 밑에 그림처럼 2d로 뽑아낼 순 없는건가?

    --> 배경이 어둡거나, 노이즈 (그림자, 이물질 등)가 밝거나, 글자(전경)이 밝은 색인 경우 해결X --> 이미지의 색상을 이용하는 것은 너무 문서 이미지에만 국한되어버린다고 생각함 (반대로 문서 이미지에 특화된 그림자 제거라고 생각할 수도 있긴 하지만,,)

    --> 글씨가 연하게 써진 경우, 두껍게 써진경우는?

     

    --> 이미지를 3d로 처리한다는 것과 문서 이미지의 2가지 문제에 대해 한번에 해결한다는 점에서 참신하다고 생각하지만, 그만큼 한계점이 많은 방법론이라고 생각된다. 

    댓글

Designed by Tistory.