获取Azure Kinect摄像头的内参¶
约 645 个字 • 23 行代码
由于同学需要摄像头的焦距等参数来将深度帧的数据转换成3维坐标系中的坐标,所以开始在网上搜索相应的方法
一开始找到了这篇文章,
Azure Kinect 获取相机内参 - BuckyI - 博客园 (cnblogs.com)
但是安装了pykinect_azure包后,运行文章中的代码出现了报错,就放弃参考这篇文章了
找到了这个issue
Get intrinsic from Azure Kinect? · Issue #2071 · isl-org/Open3D (github.com)
theNded的回答说道需要一个使用azure kinect摄像头录制的mkv文件,再使用Open3D中的 azure_kinect_mkv_reader.py
文件来解析mkv文件,会得到一个 intrinsic.json
,里面包含着摄像头的内参
We need the mkv file recorded by AzureKinect to parse the calibration. It will be stored in a json file
intrinsic.json
, see https://github.com/intel-isl/Open3D/blob/master/examples/python/ReconstructionSystem/sensors/azure_kinect_mkv_reader.py#L60但他的回答中对应的文件的路径已经更改了,应该是
于是克隆仓库,然后发现可以参考Open3D官方文档的这个部分进行操作。
使用Azure Kinect摄像头录制mkv视频¶
但是还需要使用azure kinect摄像头录制一个mkv文件,于是搜索如何进行录制,
然后找到这篇文章
How to record using Azure Kinect. You can check out the official… | by Jo Jiyao Zhang | Medium
文章中提到如果已经安装好Azure Kinect SDK(对于在linux上,安装好的标志应该是是否可以使用 k4aviewer
),那么就可以使用 k4arecorder
来录制mkv视频,
linux上可以运行类似下面这样的命令进行录制
-l
参数指的是录制的时长,单位是秒
解析录制好的mkv视频获取摄像头内参¶
参考Open3D官方文档的这个部分,在克隆的Open3D仓库根目录下,运行下面这个命令解析mkv
python3 examples/python/reconstruction_system/sensors/azure_kinect_mkv_reader.py --input ~/output.mkv
但是只有显示没有输出,如果要输出出文件,要加上 --output
参数,例如
python3 examples/python/reconstruction_system/sensors/azure_kinect_mkv_reader.py --input ~/output.mkv --output frames
--output
参数传入的值,会被解析成相对仓库根目录的路径(或许也可以传入绝对路径),然后就可以在 frames
文件夹中找到 intrinsic.json
这个json文件。
打开文件,发现是这样的内容
{
"color_mode" : "MJPG_1080P",
"depth_mode" : "NFOV_UNBINNED",
"height" : 1080,
"intrinsic_matrix" :
[
915.332763671875,
0.0,
0.0,
0.0,
915.34014892578125,
0.0,
965.72125244140625,
538.07537841796875,
1.0
],
"serial_number" : "000162502412",
"stream_length_usec" : 5120700,
"width" : 1920
}
但是不知道 "intrinsic_matrix"
中的数值都对应哪些参数,然后找到这个issue
Azure kinect intrinsic json structure (question) · Issue #1823 · isl-org/Open3D (github.com)
根据theNded的回答得知了 intrinsic.json
中参数的格式
It is simply
[[fx, 0, 0], [0, fy, 0], [cx, cy, 1]]
. Open3D at current does not support other parameters in the pinhole camera model (esp. for the downstream applications) so the rest have been ignored.
创建日期: 2024-09-10