SYDLAB_inha/Metrics for Dynamic Mesh Coding

Metrics - Point-based metric(2) / Point cloud metric / D1 / D2 / Geometric & Attribute PSNR

빈그레 2024. 2. 19. 15:04

 

 

 

 

 

 


Point Cloud Metric

 

 

 

 

 

5.5 Geometric Distortion //기하학적 오류

 

A : original point cloud

B : compressed point cloud

A와 B를 5.1에서 다룬 Grid sampling을 통해 얻은 point cloud라 하자.

 

기준 cloud A와  compressed cloud B에 대한, compression errors를 e_BA로 표시한다.

point-to-point error인 D1과, point-to-plane error인 D2를 계산하는 방법은 아래 5.6/5.7에서 다룬다.

 

포인트 클라우드 B의 각 점 bi에 대해 원본 포인트 클라우드 A에서 해당하는 점 aj를 식별한다. 가장 가까이 존재하는 점이  대응 point로 선정된다. 계산 복잡성을 줄이면서, 가장 가까운 이웃 point를 찾기 위해 KD-tree search가 사용된다.

 

compressed version에서의 point cloud에 대응하는 원본 point cloud를 찾아서 그 둘에 대해 D1,D2 등을 계산한다.

 

 

 

 

5.6 Computing D1(e_BA의 평균)

 

[Computing process]

1. sampling을 통해 추출한 두 point cloud간의 오류를 측정하기 위해, 참조(원본) cloud A의 점 aj와 타겟 point cloud B의 점 bi를 연결하는 error vector E(i,j)를 결정한다.

2 error vector의 길이는 point-to-point erorr를 의미한다. aj와 bi사이의 유클리디언 거리로 계산된다.
*** 유클리디언 거리 : 그 머시기,,, 제곱해서 더해서 루트 씌우는 너가 아는 그거,,,ㅋㅎㅋㅎ

3. point cloud B에 있는 모든 점 i에 대해 error vector에 대한 거리를 계산한 뒤, point cloud B의 전체 점에 대한 평균 point-to-point error을 계산한다. 
모든 점에 대한 error를 모두 더한 뒤에 point cloud B의  점의 수 N_B로 나눈다. //평균값이 D1인 듯

point-to-point error의 평균값은 point cloud B의 모든 점이 reference point cloud A의 해당하는 점들과 얼마나 일치하는지를 나타내는 척도이다. 값이 작을수록 두 point cloud간의 기하학적 유사도가 더 높다는 것을 의미한다.

 

 

 

 

5.7 Computing D2

 

[Computing process]

1. error vector E(i,j)를 A에서의 점 aj의 normal vector를 따라 projection(투영)한다.
 이렇게 하여 새로운 error vector E'(i,j)를 얻는다. //Projected error vector


2. Point-to-plane erorr는 E'(i,j)의 크기를 계산함으로써 얻어진다. 구체적으로 error vector와 normal vector의 내적을 취한 뒤, 이 값을 제곱하여 계산한다. 수식으로는 아래와 같다. E(i,j)가 normal vector방향으로 투영된 vector인 E'(i,j)의 길이가 point-to-plane erorr을 의미한다 이는 평면 위의 점 aj에 대한 bi의 수직거리이다.
//error vector을 normal vector 방향으로 내려서 찍기...가 내적.!ㅋㅎㅋㅎ
//normal vector가 결국 plane에 대해 수직인 거니까 plane에 대한 error정도를 표현한거네


3. 타겟 point cloud B에 속한 모든 점들에 대해 point-to-plane error를 계산하고, B의 전체 점의 수 N_B로 나누어 평균을 구한다. 이 평균값은 point cloud B의 전체적인 point-to-plane error를 나타낸다

point-to-plane error는 표면에 방향성을 고려하기 때문에, 더 정교한 error 측정 방법으로 볼 수 있다. 
아래 그림은 D1(point-to-poitnt distance)와 D2(point-to-plane distance)를 도식화한 것이다.

 

 

 

5.8 Geometric PSNR Calculation

 

https://kycu-sb.tistory.com/199

-> PSNR tistory

 

1. PSNR 계산식

- Geometric PSNR value
p : sequence bounding box의 최대 길이이다.//maxBBLength
     이는 reference point cloud내에서 가장 긴 변의 길이이다.
MSE : symmetric mean squared error를 의미하는 평균 제곱 오류이다

 

 

2. MSE 계산

MSE는 point-to-point error나 point-to-plane error를 모두 고려하여 계산된다.

A에서 B로의 오류와 B에서 A로의 오류 중 더 큰 값을 symmetric(대칭) error로 MSE로서 사용된다.

//D1에 대한 PSNR과 D2에 대한 PSNR은 독립적으로 계산된다.

 

 

3.가정

dynamic content에서 peak value는 sequence의 전체 frame에 거쳐서 변하지 않는다고 가정한다.

 

 

 

4. Geometric PSNR 의미

PSNR은 신호가 가질 수 있는 최대 전력 대비 오류(잡음)의 전력을 log scale로 나타낸 값이다.
Geometric psnr에서는 point cloud가 그 신호가 되고, 오류(잡음)은 geomtric distortion를 의미한다.
PSNR값이 높을수록 오류가 적고, 압축 품질이 더 좋다는 것을 의미한다.

 

 

 

 

 

5.9 Attribute PSNR Calculation

 

 

-Attribute PSNR 계산식

 

 

 

 

color attrivutes에 대해, 3가지 색상에 대한 MSE가 계산된다.

YUV영역이 human perception 반영에 더 적합하기 때문에, RGB영역에서 YUV영역으로의 색영역 변환이 수행된다.

 

geometric distortion과 동일한 방식으로 distortion의 symmetric computiation이 계산된다.  two pass중 더 큰 distortion이 최종 distortion으로 선정된다 

 

모든 test data에 대한 color attribute는 모두 8bit 영역을 쓰기 때문에, peak value(p)는 255이다.

 

 

 

- Geometry PSNR vs Attribute PSNR

5.8 절에서 언급된 기하학적 PSNR 계산에는 최대 시퀀스 경계 상자 길이(maxBBLength)를 p로 사용하며, MSE는 대칭 평균 제곱 오차(esymmD1 또는 esymmD2)로 계산됩니다. 이때, PSNR 계산 공식에는 3p^2가 사용되는데, 이는 3D 공간 내에서의 거리를 다루기 때문에 x, y, z 세 축에 대한 오차를 모두 고려하는 것으로 해석될 수 있습니다

반면, 5.9 절에서 언급된 속성 PSNR 계산에는 3을 곱하지 않습니다. 이 계산은 각 색상 구성 요소(RGB)에 대한 MSE를 별도로 계산하며, RGB 공간에서 YUV 공간으로의 변환을 ITU-R BT.709를 사용하여 수행하여 인간의 지각과 더 잘 상관되는 YUV 공간에서의 색상 속성을 처리합니다. 여기서 p는 PSNR 계산을 위한 피크 값으로, 테스트 데이터의 모든 색상 속성이 포인트 당 8비트의 비트 깊이를 가지므로 255로 설정됩니다

요약하자면, 기하학적 PSNR 계산은 3차원 공간 내의 오차를 고려하여 3을 곱하는 반면, 속성 PSNR 계산은 YUV 색상 공간에서의 오차를 다루며 별도로 각 색상 구성 요소에 대한 오차를 계산하므로 3을 곱하지 않습니다.