Coherent Line Drawing 논문 세미나 그래픽스 연구실 윤종철 2008.5.22 ㅌㄹㅊㅎㅇㄹ철호철ㅊ호롱러로
목차 Abstract 1. Introduction 1.1 Related work 1.2 Contribution and Overview 2. Flow construction 2.1 Edge Tangent Flow 3. Line construction 3.1 Flow-based Difference-of-Gaussians 3.2 Iterative FDoG filtering 4. Results 5. Discussion and Future work
Abstract
Abstract Image로부터 automatically Line을 drawing하는 NPR technique 제안 Coherent, smooth, stylistic line에 초점 Noise는 억제하고, highly coherent line을 찾는 flow-guided anisotropic filtering 소개 간단하고 구현이 쉬운 method
1. Introduction
1. Introduction Line drawing은 prehistoric ages로 부터 visual communication의 the simplest, oldest임이 틀림없다. Line drawing은 minimal amount of data를 사용하고, object shape을 효 율적으로 나타낼 수 있음
1. Introduction Object surface의 tonal information 이 아닌 shape을 그리는 Black-and- white line drawing에 초점 Image로부터 line을 그리는 Automatic technique Clean, smooth, coherent, stylistic line
1. Introduction Flow-driven anisotropic filtering framework가 main contribution Edge detection filter를 변형하여 flow에 의해 정의된 anisotropic kernel에 적용 Noise 억제
1.1 Related work NPR community에서, 3D model의 line을 그리는 methods Suggestive Contours for Conveying Shape [DeCarlo et al. 2003] Coherent Stylized Silhouetees [Kalnins et al. 2003] A Few Good Lines: Suggestive Drawing of 3D Models Sousa and Prusinkiewicz 2003]
1.1 Related work 순수한 line drawing보다 부분적으로 사용 ex) color, tone, material etc. Interactive pen-and-ink illustration [Salisbury et al. 1994] Processing images and video for an impressionist effect [Litwinowicz 1997]
Stylization and Abstraction of Photographs [DeCarlo and Santella 2002] 1.1 Related work Photograph tooning 같은 NPR style 은 explicit display of line을 요구 Stylization and Abstraction of Photographs [DeCarlo and Santella 2002]
Real-time video abstraction 1.1 Related work Real-time video abstraction [Winnemoller et al. 2006]
1.2 contribution and Overview feature-preserving local edge flow(edge tangent flow라고 불리는), Kernel-based nonlinear vector smoothing technique 개발 Line illustration을 그리는 Flow-based anisotropic DoG filtering technique 제안
1.2 contribution and Overview Advantages Line coherence: kernel size 조정으로 isolated edge point의 set으로부터 line drawing 가능 Robustness: noise 억제 spurious line 줄임 Quality: good Simplicity: 구현 쉬움 Generality: flow-based filtering framework가 general. Feature preservation term에서 다른 filter 사용가능
2. Flow construction
2.1 Edge Tangent Flow High-quality line drawing을 위해 vector field는 다음 요구를 만족해야 Vector flow must describe the salient edge tangent direction in the neighborhood Neighboring vectors must be smoothly aligned except at sharp corners Important edges must retain their original directions
2.1 Edge Tangent Flow
2.1 Edge Tangent Flow 각 pixel-centered kernel에서, nonlinear vector smoothing을 실행 두드러진 edge direction은 보존, 약한 edge는 이 웃의 지배적인 direction을 따르게. Sharp corners 보존하고 원하지 않는 swirling artifact를 피하기 위해 similar orientation의 edge에 smoothing을 장려. 강하지만 관계없는 vector에 영향을 받는 약한 vector를 예방
2.1 Edge Tangent Flow X : (x, y) image pixel I(x) : input image : Neighborhood of x k : vector normalizing term t(x) : edge tangent: a vector perpendicular to the image gradient
2.1 Edge Tangent Flow For the spatial weight function Ws, radially-symmetric box filter of radius r, where r is the radius of the kernel :
2.1 Edge Tangent Flow The other two weight functions, Wm and Wd, play the key role in feature preserving. Wm : magnitude weight function denotes the normalized gradient magnitude at z, and controls the fall-off rate Wd : direction weight function Wm weight function은 단조롭게 증가하고, center x보다 높은 gradient magnitude를 갖는 neighboring pixel y에 큰 weight가 주어지는 것을 가리킨다. 이것은 지배적인 방향의 보존을 보장한다. 큰 value의 7는 dominant vector로의 더 엄격한 복종을 의미한다. tcur(z)는 z에서 current normalized tangent vector를 나타낸다. 이 weight function은 두 벡터가 가까이에 정렬되어 있을수록 크고, 수직이 될수록 작다.
2.1 Edge Tangent Flow denotes the ‘current’ normalized tangent vector at y Sign function This induces tighter alignment of vectors while avoiding swirling flows 0보다 작으면 부호 반대 이것은 vector의 정렬을 야기하는 반면, swirling을 피한다.
2.1 Edge Tangent Flow t(x)는 initial gradient map of the input image I 로부터 perpendicular vector를 구해서 얻음 t(x)는 normalize된 후 사용 Initial gradient map은 Sobel operator(appendix 참고)로 계산 Our filter는 ETF를 update하기 위해 iteratively 제공할 수 있음: g(x)도 따라서 update됨(gradient magnitude 는 변하지 않음) 본 논문에서는 2~3번 update 했음
Appendix : Sobel operator Mathematically, the operator uses two 3×3 kernels which are convolve d with the original image to calculate approximations of the derivatives - one for horizontal changes, and one for vertical. If we define A as th e source image, and Gx and Gy are two images which at each point co ntain the horizontal and vertical derivative approximations, the comput ations are as follow: Edge detection 알고리즘 중 하나
2.2 Discussion
3. Line construction 방정식 1에의해 만들어진 ETF, 주어진 t(x), 우리는 local flow에 의해 모양이 정의된 커널을 사용하는 flow-guided anisotropic DoG filter를 제공한다. t(x)는 local edge 방향을 나타낸다. 이것은 gradient 방향의 수직방향에서 highest contrast를 가질 가능성이 높을 것이라는 것을 의미한다. 이 idea는 edge flow를 따라서 이 gradient direction에 linear DoG filter를 제공하는 것이다. 우리는 flow를 따라 filter의 반응을 누적한다. 결과적으로 우리는 진짜 edge를 따라 filter를 과장할 수 있고, 가짜 edge로 부터 output을 감소 시킬 수 있다. 이것은 edge의 coherence를 증가시키고, noise를 억제한다.
3.1 Flow-based Difference-of-Gaussians 방정식 1에 의해 만들어진 local flow에 의해 모 양이 정의된 커널을 사용하는 flow-guided anisotropic DoG filter를 제공 t(x)는 local edge 방향을 나타내고 이것은 gradient의 수직방향에서 highest contrast를 가 질 가능성이 높을 것이라는 것을 의미 이 idea는 edge flow를 따라서 이 gradient direction에 linear DoG filter를 제공하는 것 flow를 따라 filter의 반응을 누적 결과적으로 우리는 진짜 edge를 따라 filter를 과장할 수 있고, 가짜 edge로 부터 output을 감소 시킬 수 있다. 이것은 edge의 coherence를 증가시키고, noise를 억제한다.
3.1 Flow-based Difference-of-Gaussians
3.1 Flow-based Difference-of-Gaussians Cx(s)는 x에서 integal curve를 나타내고, s는 arc-length parameter인데 positive, negative value를 가진다. x는 curve의 center로 Cx(0)=x다. 우리의 filtering framework는 다음과 같이 나타내진다. Cx를 따라 이동함에 따라, 우리는 1차원 filter f를 t(Cx(s))의 수직방향인 line ls를 따라 적용한다. (6) 여기서 ls(t)는 parameter t에서 line ls상의 점을 나타낸다. t는 arc-length parameter이고, ls는 Cx(s)의 센터에 위치한다고 가정한다. ls(0)=Cx(s)다. ls는 gradient vector g(Cx(s))에 평행하다. I(ls(t))는 ls(t)에서 input image I의 값을 나타낸다. f, 우리는 difference-of-Gaussians(DoG) 모델을 채용: (7) 여기서 Gsigma는 variance sigma의 1차원 gaussian function을 나타낸다. (8) 두 편차 sigma_c 와 sigma_s는 각각 center와 surrounding section이다. 우리는 sigma_s=1.6sigma_c로 setting. sigma_c는 유저가 준다. 그러면 자동으로 sigma_s가 결정되고 T의 크기가 결정된다. 이것은 line width에 영향을 준다. rho는 noise detected의 level을 조절.
3.1 Flow-based Difference-of-Gaussians F(s)는 Cx를 따라 누적된다: (9) 여기서 F는 s를 따라 다양한 weight가 주어진다. 유저가 주는 sigma_m은 자동으로 S의 크기를 결정한다. sigma_m은 길어진 flow kernel의 길이를 조절하고, line coherence의 degree가 조절된다. 한번 우리가 (9)로부터 H를 얻으면, 우리는 binary thresholding에 의해서 black-and-white image로 convert한다. (10) 여기서 tau는 0~1다. 이 binary결과는 우리의 목표 line illustration이 된다.
3.1 Flow-based Difference-of-Gaussians 그림 6은 FDoG filter 다른 parameter를 사용한 결과를 보인다. default setting sigma_m=3.0, sigma_c=1.0, rho=0.99에서 바꾼 것만 캡션
3.1 Flow-based Difference-of-Gaussians 그림 7은 전통적인 edge detector와 다른 것을 보인다. 그림 8은 FDoG가 noise에 robustness한 것을 보인다. threshold값에 변화에 따라 line coherence가 변하지만 noise가 생김 하지만 FDoG는 낮은 threshold에서도 좋은 결과를 보임
3.2 Iterative FDoG filtering FDoG에서 파라미터 변경하는 것보다 iterative FDoG filtering은 line coherence를 향상에 종종 더 효과 원본 이미지에 (10)에서 얻은 이미지 중첩시키고 다시 FDoG filter 사용 만족할 때까지 반복 FDoG filter 사용 전에 Gaussian-blur 쓰면 더 smooth해짐 초기에 disconnected component는 connect 됨 우리의 FDoG filter는 filter response를 더 높이기 위해 iteratively 제공될 것이다. 우리 FDoG에서 파라미터 변경하는 것보다 iterative FDoG filtering은 line coherence를 향상시킬때 종종 더 효과적이다. 각 FDoG application 후에, 우리는 오리지날 이미지에 (10)에서 얻은 output이미지를 중첩시켜서 filter input을 reinitialize한다. 그리고 다시 FDoG filter를 먹인다. 만족할만한 line connectivity가 나올때까지 한다. 대부분 우리 테스트 이미지는 2~3번했다. FDoG filter먹이기 전에 optionally gaussian-blur를 먹이면 더 부드러워진다. 그림 9는 오리지날에서 disconnected component들이 connect된걸 보인다.
4. Results
4. Results
4. Results 우리 method와 다른 popular line extraction technique과의 비교 512 by 512에서 4~6초 걸림
4. Results(Bonus)
5. Discussion and Future work DoG filter 기반인 우리의 FDoG filter 는 몇몇 limitation 공유 high-contrast background일 때, 비록 이 area가 지각에 의해 중요하지 않아도 line의 빽빽한 집합으로 채워짐 well-defined strokes보다는 line이 픽셀 집합처럼 형성 isolated edge segments에 FDoG filter 유용, but여전히 local kernel상에서 작동하기 때문에 global scale subjective contour는 찾기 어려움 future work 가속 line drawing은 NPR의 기초라고 보고, 다른 NPR에 많이 사용될 수 있을 거라고 믿는다. 우리 flow-based anisotropic filtering framework는 general하고, filter에 독립적이고, 다른 filter를 사용해서 결과를 향상 시킬 수 있다. DoG filter상에 만들어진 우리의 FDoG filter는 limitation의 몇몇을 공유하고 있다. 예를 들어, high-contrast background는 line의 빽빽한 집합으로 채울 것이다. 비록 이 area가 지각에 의해 중요하지 않더라도. 또 well-defined strokes보다는 DoG처럼, line이 픽셀 집합처럼 형성된다. isolated edge segments에 FDoG filter가 유용하지만, 이것은 여전히 local kernal상에서 작동하기 때문에 global scale subjective contour는 찾기 어렵다. future work 가속 하고 싶다.
END