기하학과 CUDA로 무작위 섬의 위치 찾기

1 hour ago 2

리조트 사진 속 세 육지의 상대 거리와 각도를 기하학적 지문으로 바꿔 전 세계 해안선과 대조한 결과, Micronesia의 Oan 리조트를 찾아냄 OpenStreetMap의 882MB 육지 폴리곤을 위도·밀도·군집 조건으로 줄이고 8,069만 개 삼각형을 생성한 뒤, 삼각형마다 CUDA 스레드 하나를 배정해 RTX 3050에서 204.1ms 만에 검사함 GPU 검사를 통과한 158,784개 후보에 중복 제거, 열린 수면 확인, 산호섬의 조밀도·미소 섬 분포·타원형 검사를 적용해 137개 후보로 압축함 Sentinel-2 기반 NDVI 0.6 이상과 Copernicus DEM 고도 조건을 적용해 식생이 있고 낮고 평평하며 전방에 산지가 있는 리조트 섬 후보 26개를 남김 위성사진으로 최종 확인한 위치는 7.363444°N, 151.755750°E이며, 카메라는 P0에서 P1로 향하는 방위각 324.97°를 따라 북서쪽(NW)을 바라봄 사진 한 장으로 풀어야 할 과제 OSINT Exercise #004는 섬의 리조트 사진 한 장에서 다음 세 가지를 찾는 과제임 리조트 이름 섬의 좌표 촬영 당시 카메라가 향한 방위 Google Lens 대신 수학과 프로그래밍으로 해결했으며, 코드와 최종 보고서는 GitHub 저장소에서 확인할 수 있음 입력 이미지는 736×515 크기의 무손실 WEBP였고 EXIF·GPS·카메라 정보가 없었음 사진을 기하학적 지문으로 변환 사진에 보이는 육지를 세 지점으로 구분함 P0: 리조트가 있는 작은 섬 P1: 오른쪽 섬 P2: 앞쪽 왼편에 있으며 산봉우리가 보이는 섬 드론의 촬영 고도를 알 수 없어 정확한 조감 원근 모델을 만들기 어려웠고, 대신 세 섬 사이의 상대 거리와 삼각형 각도를 사용함 01_triangle_gui.py의 클릭 GUI에서 각 지점의 픽셀 좌표를 순서대로 기록하고 삼각형 기하를 계산함 육안으로 중심을 클릭할 때 생기는 오차를 고려해 각도와 거리 비율에 ±20% 허용 범위를 적용함 전 세계 육지에서 후보 추리기 검색 데이터로 WGS84 전 세계 해안선 벡터인 882MB 규모의 OpenStreetMap land-polygons-split-4326을 사용함 열대 위도와 국소 밀도 사진이 열대 지역으로 보인다는 휴리스틱에 따라 위도 -30°~30° 밖의 육지를 제거해 141,131개 폴리곤을 남김 후보 중심점 반경 5km 안에 다른 중심점이 10개를 넘으면 조밀한 암초·해안·군도...

Read Entire Article