machine-learning - 地理坐标系中的对象投影
问题描述
我想弄清楚如何在图像中粗略地投影带注释对象的地理位置?
设置
- 包含已知对象的图片。即我们知道宽度/高度。
- 突出显示该对象在框架中的位置的边界框。X,Y,宽度,高度。
- 拍摄照片的相机的精确经度和纬度。起源。
- 相机的航向。
- 相机的焦距。
- 相机传感器尺寸。
- 相机离地的高度。
给定这些数据点,谁能指出我从图像原点位置粗略投影对象位置的解决方案?
解决方案
The solution is simple if you assume an ellipsoidal surface for the Earth. If you need to use a Digital Terrain Model (DTM) things will get quickly more complicated. For example, your object may be visible in the image but occluded on the DTM because of various sources of error. In the following I assume you work with the ellipsoid.
Briefly, what you need to do is backproject the vertices of the image bounding box, obtaining four vectors (rays) in camera coordinates. You then transform them into Earth-Centered Earth-Fixed (ECEF) coordinates and solve for the intersection of the rays with the WGS-72 (or WGS-84) ellipsoid as explained here.
I recommend using the nvector library to help with this kind of calculations. You didin't specify the language you work with, but there are ports of nvector to many common languages, including Python and Matlab.
推荐阅读
- mysql - SQL 函数在调用两次时导致数据库服务器 (MariaDB) 上的 Segfault
- php - 登录pdo后如何打印用户名
- reporting-services - 在 SSRS 2016 中使用自定义 dll 运行 SSRS 报告时出现问题。未能授予执行权限
- android - 将宽度匹配的父级分配给水平滚动视图内的卡片视图
- scala - 如何在scala的for循环中将字符串附加到列表或数组?
- matlab - 如何在 MATLAB 中以乳胶格式发布符号矩阵?
- ios - 如何将 iOS 应用程序连接到现有数据库
- javascript - 如何让用户停止执行 HTML5 音频自动播放文件,点击页面上的任何内容?
- javascript - Alternative for this react code burger ingereidnet add app
- objective-c - What is the benefit of writing C function in Objective C?