先说下关于我们的标定的事情,可能有的代码的注释是英文的:
对照在此
1、打印一张棋盘格,把它贴在一个平面上,作为标定物。
2、通过调整标定物或摄像机的方向,为标定物拍摄一些不同方向的照片。
3、从照片中提取棋盘格角点。
4、估算理想无畸变的情况下,五个内参和六个外参。
5、应用最小二乘法估算实际存在径向畸变下的畸变系数。
6、极大似然法,优化估计,提升估计精度。
计算参数的步骤。
https://www.smarttof.com/zh-hans/join
找到一个国内做深度相机的公司,感觉都快倒闭了都。。。
公司也在招人,可以看看这个职位的要求
https://github.com/smarttofsdk
他们的开发SDK在GT
https://github.com/smarttofsdk/3DWorld
微信阅读里面有本它公司出的书,我下午读了半本了
公司Logo,比奥比的好看。。。
这是他的SDK
pip install -U dmcam
它有个基于C接口封装的Python包,感兴趣
看来是封装了一些算法在里面,就依赖一个Numpy
https://pypi.org/project/dmcam/
pypi的位置
注意到这句话
C的头在这里
相机参数。后面是失真系数
日志等级
剩下的是TOF的东西了,总的来说感觉和结构光是完全不同的东西。
这是帧结构
帧数据格式
数据集名称 | 缩写 | 功能 | 链接 |
---|---|---|---|
ModelNet | ModelNet | 3D点云识别数据集 | http://modelnet.cs.princeton.edu/ |
NYU Depth Dataset V2 | NYU V2 | RGBD物体识别数据集 | https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html |
SUNRGB-D 3D Object Detection Dataset | SUNRGB-D | RGBD物体识别数据集 | http://rgbd.cs.princeton.edu/challenge.html |
Labeled Faces in the Wild Home | LFW | 人脸识别数据集 | http://vis-www.cs.umass.edu/lfw/ |
NTU RGB+D Dataset | NTU RGB+D | RGBD人体动作识别数据集 | http://rose1.ntu.edu.sg/Datasets/actionRecognition.asp |
Human 3.6M Dataset | Human 3.6M | RGBD人体姿态动作数据集 | http://vision.imar.ro/human3.6m/description.php |
3D ToF Top-view Human Detection Dataset | 3D TTHD | 3D人员检测与人数统计数据集 | http://bat.sjtu.edu.cn/3d-tof-sjj/ |
这里插一些RGBD数据集的下载位置
以前的Openni2是这样的安装版本
安装的时候要安装驱动(被果子买了)
安装后的目录结构
C:\Program Files\OpenNI2
在这里,后面就卸载了。
然后打开奥比的SDK
里面有个名字叫sample.old,我以为没用,就压缩了,没想到是有用的。
下面的东西是来自demo
深度和红外图像
数据类型定义
RGB的封装形式
还有YUV422格式
这里第一次见模板
template <class T>
作用是减少重复的工作。
T是参数的类型名字,class是类型参数
视频模式,像素格式,XY的分辨率和fps
输出的深度和RGB的格式
这是RGB888的格式
相机参数
pColor = (RGB888Pixel *)frame.getData();
获得当前帧的数据,其实就是获得了这些数据
传感器的种类,红外,颜色,深度
最后一个放时间戳
uint64_t timestamp;
你看这个getData的函数
通过一个结构体指针引回来了
里面常见的宏也有了
你看这个打印的时间戳,用括号做了一下强制的数据转换
int middleIndex = (frame.getHeight() + 1) * frame.getWidth() / 2;
都和255做了与运算
RGB888Pixel *pColor;
这里还是这个RGB的格式
这里的第一个100,应该是以1mm的分辨率获取
忘了写啥了。。。
出流的定义
宏定义