3. GSD 추정

"Ground Sampling Distance"란? GSD(Ground Sample Distance)는 지상 샘플링 거리라고도 하며, 드론 카메라로 촬영한 지상의 두 연속 픽셀 중심 사이의 거리를 말합니다. 간단히 말해서 지상의 한 픽셀의 실제 크기입니다.

Figure 1: Ground Sample Distance in Images (출처arrow-up-right)

1. GSD 정확도 향상 방법


1.1. Orthophoto

Orthophoto 를 통해 원근감이 제거된 상태에서 드론 고도, 카메라 초점 거리, 이미지 해상도를 기반으로 GSD를 계산하는 데 사용됩니다. 아래 예시 이미지는 이러한 과정을 설명하는 데 활용됩니다.

Figure 2: Images Before BEV Transformation
Figure 3: Images After BEV Transformation

이미지에서 BEV 변환 전에는 카메라와 가까운 팬스의 벽이 상대적으로 크게 표현되고, 뒤쪽에 있는 팬스의 벽은 작게 보이는 원근감 왜곡이 존재합니다. 이러한 왜곡은 픽셀 간 크기가 일정하지 않게 만들어 GSD 계산의 정확도를 떨어뜨리는 원인이 됩니다.

BEV 변환 후에는 팬스의 벽이 카메라와의 거리와 상관없이 거의 동일한 크기로 표현되었습니다. 이를 통해 픽셀 간의 물리적 거리가 일관되게 조정되었으며, GSD의 정확도를 향상시킬 수 있습니다.

1.2. 사용자 입력 활용


사용자가 제공한 선박의 실제 길이 정보를 활용하여 GSD를 보정합니다.

선박의 실제 길이는 영상 속 픽셀 크기와 실제 크기를 연결하는 중요한 기준이 되며, 이를 통해 BEV 변환 후 남아 있을 수 있는 잔여 오차를 줄일 수 있습니다. 실제 길이를 기준으로 GSD를 보정하면, 픽셀 크기와 실제 크기의 일관성을 유지할 수 있습니다.

2. 'META GSD'와 '사용자 입력 데이터 활용 GSD' 오차율 비교

사용자 입력 없이 계산된 'META GSD'와 '사용자 입력 데이터 활용 GSD' 간의 오차율을 비교·분석했습니다. 두 방식의 GSD 예측 결과를 바탕으로, still cut(단일 프래임)과 영상에 대한 동일 지점에서 실제 측정값과 비교해 오차율을 표로 정리하였습니다.

종합적으로 볼 때, Still Cut과 Video 자료 모두에서 META GSD보다 사용자 입력 데이터를 활용한 방식이 오차율을 크게 낮추는 데 도움이 되는 것으로 확인되었습니다.

2.1. 'META GSD'와 '사용자 입력 데이터 활용 GSD' 계산 방식

META GSD의 계산 방식은 다음과 같습니다.

meta_GSD=pixel_size×(eo[2]ground_height)focal_length\text{meta\_GSD} = \frac{\text{pixel\_size} \times (\text{eo}[2] - \text{ground\_height})}{\text{focal\_length}}

사용자 입력 데이터 활용 GSD의 계산 방식은 다음과 같습니다.

사용자는 실제로 측정한 두 점 사이의 거리를 입력값으로 넣고, 동일한 두 점의 이미지 상 픽셀 거리를 통해 GSD를 계산합니다.

Input_GSD=real_distancepixel_distance\text{Input\_GSD} = \frac{\text{real\_distance}}{\text{pixel\_distance}}
  • real_distance: 사용자가 입력한 실제 거리 (m 단위)

  • pixel_distance: 해당 두 점 사이의 이미지 픽셀 거리 (px 단위)

2.2. 실측 데이터(Ground Truth)

a
b
c
d
e
f
g
h
i

2.39

6

2.35

6

2.4

6

2.4

6

36

2.3. Still Cut

Still Cut 영상에 대해 META GSD를 적용한 결과, 평균 오차율이 약 64.22%로 나타났습니다. 반면에 사용자 입력 데이터를 활용한 GSD는 평균 22.03%의 오차율을 보여, META GSD 대비 큰 폭으로 오차율을 개선할 수 있었습니다.

META GSD 오차율

  • 평균 오차율: 64.22%

  • 최소 오차율: 17.64%

  • 최대 오차율: 94.5%

이미지 이름
오차율
a
b
c
d
e
f
g
h
i

bev_DJI_0010.JPG

77.21

0.000534429

0.001364323

0.000521131

0.001356697

0.0005440491648

0.00144576453

0.000548518

0.001377456

0.008154865

bev_DJI_0013.JPG

91.66

0.000432801

0.001164016

0.00044025

0.001126477

0

0

0

0

0

bev_DJI_0016.JPG

94.5

0.000276369

0.000816515

0.000258875

0.000797337

0

0

0

0

0

bev_DJI_0025.JPG

65.97

0

0

0

0

0.001587667

0.0043603

0.00218608

0.004582697

0

bev_DJI_0028.JPG

75.28

0

0

0

0

0.00129637

0.00273562

0.00189499

0.00263261

0

bev_DJI_0034.JPG

65.41

0.0023152

0.00385866

0.00195414

0.00401877

0

0

0

0

0

bev_DJI_0037.JPG

71.76

0.00297359

0.00934067

0.00264895

0.00918271

0

0

0

0

0

bev_DJI_0046.JPG

17.64

0.00262932

0.00668977

0.00270861

0.00646235

0.00228479

0.00835525

0.00323118

0.00751233

0.03975222

bev_DJI_0050.JPG

24.17

0.00265008

0.00696904

0.00284875

0.00696904

0.00226251

0.00814419

0.00412067

0.00754744

0.04108836

bev_DJI_0493.JPG

58.56

0

0

0

0

0.00221958

0.0054309

0.00234523

0.00553584

0

Input GSD 오차율

  • 평균 오차율: 22.03%

  • 최소 오차율: 1.97%

  • 최대 오차율: 125.47%

사용자 입력 정보를 활용한 input GSD 방식은 전반적인 오차율이 상대적으로 낮은 성능을 보였습니다. 그러나 이 방식에서는 최대 오차율이 높게 나타났습니다. 주요 원인 분석 결과 BEV(Bird's Eye View) 변환 과정에서 원근감에 대한 왜곡보정이 없는 이미지가 생성되었음을 확인했습니다. 이러한 특정 케이스를 제외하고는 사용자 입력 데이터를 사용한 GSD가 전체적으로 성능이 우수합니다.

최대 오차율 BEV 변환 이미지

이미지 이름
오차율
a
b
c
d
e
f
g
h
i

bev_DJI_0010.JPG

4.93

2.47

5.88

2.32

0

2.62

6.47

2.23

6.47

35.67

bev_DJI_0013.JPG

1.97

2.38

6.218097096

2.306298563

0

0

0

0

0

0

bev_DJI_0016.JPG

10.64

2.176577145

6.193260107

1.885296629

0

0

0

0

0

0

bev_DJI_0025.JPG

13.57

0

0

0

0

2.335576896

5.734976498

3.206310199

0

0

bev_DJI_0028.JPG

38

2.016652762

5.900843371

2.369882285

0

1.02138651

1.929099577

1.31946869

1.821486955

19.46046605

bev_DJI_0034.JPG

0

0

0

0

0

0

0

0

0

0

bev_DJI_0037.JPG

125.47

4.043295104

5.620969144

3.13462635

0

7.293510411

19.05496693

6.38969759

19.76521008

63.98871224

bev_DJI_0046.JPG

8.16

2.467567403

5.800383129

2.357022604

0

2.1499354

6.574360974

2.940143609

6.80032679

35.07579095

bev_DJI_0050.JPG

11.48

2.114899652

6

2.458520907

0

2.550234059

6.997073167

3.26900087

6.988429466

35.94825025

bev_DJI_0493.JPG

6.03

0

0

0

0

2.255375628

5.737749626

2.584649371

0

0

예시

DJI_0010.JPG

구분
a
b
c
d
e
f
g
h
i

실측값

2.39

6.00

2.35

6.00

2.40

6.00

2.40

6.00

36.00

metadata GSD

0.000534429

0.001364323

0.000521131

0.001356697

0.0005440491648

0.00144576453

0.000548518

0.001377456

0.008154865

metadata GSD 오차율

99.977639

99.977261

99.977824

99.977388

99.977331

99.975904

99.977145

99.977042

99.977348

input GSD

2.47

5.88

2.32

입력값

2.62

6.47

2.23

6.47

35.67

input GSD 오차율

-3.347280%

2.0%

1.276596%

0.0%

-9.166667%

-7.833333%

7.083333%

-7.833333%

0.916667%

2.4. Video

Video 자료에 대해 META GSD를 적용한 결과, 오차율이 약 447.15%로 매우 크게 나타났으나, 사용자 입력 데이터를 활용했을 경우에는 평균 10.64%로 크게 개선된 수치를 보였습니다. 특히 video는 로그 싱크가 정확히 맞춰지지 않아 Still cut에 비해 오차율이 증가한 것으로 추정됩니다.(사용자 입력 방식에서는 ‘d’ 값을 직접 입력함으로써 오차율에 기입하지 않음)

META GSD 오차율

프래임 이름
오차율
a
b
c
d
e
f
g
h
i

DJI_0040_bev_frame_0000

498.67

15.621410221697914

39.82255677546087

14.02041431520073

39.5058481

13.72698005167853

32.80109648298453

14.045280573547137

32.64113353101328

204.3851718096255

DJI_0040_bev_frame_0100

596.77

16.76003313778712

52.12684837113039

15.375301789286851

52.99987837530595

12.140934633523806

36.91579504202492

18.420189825815324

35.65104678539449

244.9682032810649

DJI_0040_bev_frame_0300

355.13

8.783149339200001

25.03582757882892

12.076830341399983

23.28984171720924

13.220390433454236

26.09663455846591

13.356452924624836

27.160389338321664

149.1560371197005

DJI_0040_bev_frame_0400

418.14

12.678936222850364

31.458203698268274

11.99419632370733

30.09413810715636

13.366900236443511

28.56683667249441

14.488049515819815

28.736586375025023

173.09666654778005

DJI_0040_bev_frame_0700

394.12

10.29764577360756

26.77607927263267

11.332609988768478

27.46038872962024

11.716007917834473

32.14522652238994

14.763949738226565

31.243735331992152

169.2667638727734

DJI_0040_bev_frame_0800

420.06

12.404559106466166

27.630089350349994

11.720200458628089

28.73150521238636

13.451745859770352

31.358170792884085

15.268301419466194

31.651636005921127

171.5691916151304

Input GSD 오차율

프래임 이름
오차율
a
b
c
d
e
f
g
h
i

DJI_0040_bev_frame_0000

11.72

2.4007903224458564

6.167380141140297

2.018206037713531

0

1.9044112982904768

4.889669259579008

2.2284303996035524

4.89423158

31.798536620167443

DJI_0040_bev_frame_0100

23.12

1.7392228912822432

6.25893552

1.903262104651944

0

1.5580070256953855

4.342685938658899

1.942108192754756

4.1311487556724185

28.277522120253227

DJI_0040_bev_frame_0300

9.3

2.447004212216329

6.162110225732501

2.7157418046816835

0

2.715741804681684

5.901833867708274

2.9847482489371604

6.755660236665675

36.71202554303722

DJI_0040_bev_frame_0400

5.5

2.425356250363329

5.956098817361246

2.173472314167471

0

2.255210156654751

5.371282782821223

2.425356250363328

5.530663187549722

32.80133536626146

DJI_0040_bev_frame_0700

7.64

2.591802649675833

5.924120342116217

2.4448213761561384

0

2.5275330774750264

6.617155575136483

2.896540468727545

6.594326994838172

36.43943529725647

DJI_0040_bev_frame_0800

6.54

2.221545128293587

5.629862711540992

2.158953795884637

0

2.7409061715570497

6.370151262998435

2.522103354603522

6.146720932157391

34.88211023752721

예시

DJI_0040_bev_frame_0000

구분
a
b
c
d
e
f
g
h
i

실측값

2.39

6.00

2.35

6.00

2.40

6.00

2.40

6.00

36.00

metadata GSD

15.621410221697914

39.82255677546087

14.02041431520073

39.5058481

13.72698005167853

32.80109648298453

14.045280573547137

32.64113353101328

204.3851718096255

input GSD

2.4007903224458564

6.167380141140297

2.018206037713531

입력값

1.9044112982904768

4.889669259579008

2.2284303996035524

4.89423158

31.798536620167443

Last updated