[关闭]
@snuffles 2018-11-16T09:41:32.000000Z 字数 10113 阅读 3158

马佳瑶-日报


11.15 Thu

  1. 理解adas_tools中protos,读取pkl文件,读取json文件Ok
  2. 学习Protobuf基础知识,整理proto参数含义
  3. 整理tutorial ch4

problem

none

plan

  1. 提取proto中需要的数据,完善工具链
  2. 测opencv矫正的结果,分析误差
  3. 继续配置新工具camo,测试camo的效果
  4. 完善tutorial

11.14 Wes

  1. 配置adas_tools的依赖,hdfs,google protobuf,读取PACK包ok
  2. 读PACK包中PKL文件,cpickle方法报错cPickle.UnpicklingError: invalid load key,
  3. 整理tutorial ch3

problem

none

plan

  1. 读PACK包中PKL文件
  2. 测opencv矫正的结果,分析误差
  3. 继续配置新工具camo,测试camo的效果
  4. 完善tutorial

11.13 Tue

  1. 整理tutorial
  2. 继续配置新工具camo,测试camo的效果
  3. 下载完鱼眼+底盘+rdf数据

problem

none

plan

  1. 解决ROS BROKEN PACKAGE问题,读取PACK包,完善工具链
  2. 测opencv矫正的结果,分析误差
  3. 继续配置新工具camo,测试camo的效果
  4. 完善tutorial

11.12 Mon

  1. 拿到 鱼眼+底盘+rdf数据链接,下载中,
  2. 调研鱼眼相机模型,找到新的工具camo,模型是Mei的但是实现比Mei更好,无需手动标点,但配置稍微复杂,配置suitesparse中

problem

none

plan

  1. 下载完数据,完善工具链
  2. 测opencv矫正的结果,分析误差
  3. 完善tutorial
  4. 继续配置新工具camo,测试camo的效果

11.9 Fri

  1. 整理tutorial统一符号

problem

手疼

plan

  1. 收集数据

2. 测opencv矫正的结果,工具链

11.7 Wes

  1. 调研berreto,读文章不适合鱼眼相机,是专门针对折反射的
  2. 读Double Sphere Camera Model
  3. 推导sacramuzza方法中的pi; 用费拉里求根公式求出pi的解析解,初步判定不易求导

problem

寻找又精确又稳定又好求导的标定方法

plan

  1. 继续整理tutorial到100%,整理到ppt,加入g&d部分
  2. 继续读Double Sphere Camera Model
  3. 确认对于pi有没有有可以求导的方式

11.6 Tue

  1. 理解G&D,MEI相机模型,理解了line image和nx,ny,nz推导了focal length initial过程,确认了fisheye的uncertainty来自metric模型本身
  2. 读Double Sphere Camera Model

problem

寻找又精确又稳定又好求导的标定方法
目前探索过的方法

     方法:  精确度  / 不确定性 / 求导难易/模型类型

sacra06(matlab): <0.5pixel/ 较稳定/难/taylor+xi
mei07(matlab): <0.2pixel/ 非常不稳定focal length/易/metric+xi+distortion
kanna06(opencv): <0.1pixel/ 稳定/难/taylor+theta

plan

  1. 继续整理tutorial到100%,整理到ppt,加入g&d部分
  2. 继续读Double Sphere Camera Model
  3. 尝试Barreto模型,实验其在fisheye中的误差

11.5 Mon

  1. 验证了opencv精度的求解是正确的,只是误差的表达方式不同(norm_L2 VS norm_L2SQR)读opencv3 fisheye.cpp calibrate() initialization;optimize;validation;其中esitimateUncertainties()返回值rms部分
  2. 推到G&D方法metric解法
  3. 做mei07实验uncertainty依旧不稳定

problem

mei方法 focal length uncentainty 太大的原因

plan

  1. 继续整理tutorial到100%,整理到ppt
  2. 为了解决mei方法不稳定的原因,继续推导推到G&D方法metric解法,找到nx,ny,nz

11.2 Fri

  1. mei方法的实验,分析focal length的计算过程estimate_gamma()。

problem

mei方法 focal length uncentainty +-18 pixel太大的原因

plan

  1. 继续整理tutorial到100%,整理到ppt
  2. 继续做实验,找出opencv为什么err只有0.01pixel

11.2 Fri

  1. mei07方法标直接标偏移xi,err0.2pixels
  2. tutorial ch1 ch2 rewriting

problem

mei方法 focal length uncentainty +-18 pixel太大的原因

plan

  1. 继续整理tutorial到100%,整理到ppt
  2. 继续做实验,找出opencv为什么err只有0.01pixel

11.1 Thu

  1. 更新opencv fisheye calibration代码,从原来的工程中剥离出来,更改图片的输入方式
  2. 整理camera model资料80%;+CH3标定原理,+ch2相机模型叙述;排版,参考文献;

problem

none

plan

  1. 继续整理tutorial到100%,整理到ppt
  2. 继续做实验,增加图片数量,改变角度,距离,标定版大小,对比重投影误差
  3. 把实验结果分析加入到tutorial第4章

10.31 Wes

  1. 整理camera model资料3/4;
  2. 写opencv fisheye calibration okay,解决不画顺序的问题,解决SVD时矩阵病态的问题,解决标定版不清晰的问题; openCV341 avg err 0.016pixels v.s. sacraMatlab avg err 0.36pixels(7张图片)

problem

plan

  1. 继续整理tutorial到100%,开始整理ppt,改成wiki格式
  2. 继续做实验,增加图片数量,改变角度,距离,标定版大小,对比重投影误差

SVD svd(JJ_kk, SVD::NO_UV);
if(svd.w.at(0) / svd.w.at((int)svd.w.total() - 1) > thresh_cond )
CV_Error( cv::Error::StsInternal, format("CALIB_CHECK_COND - Ill-conditioned matrix for input array %d",image_idx));

to solve :
OpenCV(3.4.1) Error: Internal error (CALIB_CHECK_COND - Ill-conditioned matrix for input array 0) in CalibrateExtrinsics, file /home/jiayao/Downloads/opencv-3.4.1/modules/calib3d/src/fisheye.cpp, line 1414
terminate called after throwing an instance of 'cv::Exception'
what(): OpenCV(3.4.1) /home/jiayao/Downloads/opencv-3.4.1/modules/calib3d/src/fisheye.cpp:1414: error: (-3) CALIB_CHECK_COND - Ill-conditioned matrix for input array 0 in function CalibrateExtrinsics

10.30 Tue

  1. 整理camera model资料1/2;
  2. 写opencv fisheye calibration,

problem

  1. 找棋盘格角点,cv::FindChessboardCorners在一些图片中找不到(重拍一些图像再实验)
  2. 角点找到了但是cv::drawChessboardCorners()中,找棋盘出现错误,角点找到了,但是顺序不对(todo重拍一些图像再实验)正常的draw是有彩色连线的(The function draws individual chessboard corners detected either as red circles if the board was not found, or as colored corners connected with lines if the board was found)
    见图

plan

  1. 继续整理tutorial到3/4
  2. 继续写opencv fisheye calibration

10.29 Mon

  1. 整理camera model资料1/4;
  2. 写opencv fisheye calibration,配置opencv3的cmakelist,读多张图像,检测角点,

problem

  1. 找棋盘格角点,cv::FindChessboardCorners在一些简单图片中can't find corners,

plan

  1. 继续整理tutorial到1/2
  2. 继续写opencv fisheye calibration

10.26 Fri

  1. 解决了sacra matlab tool链接问题,测试instra360 10副图片average reprojection error 1.16 pixel
    ref:
    matlab/sys/os里面有libstdc++6的版本过低,opencv不适合,把matlab里面的改个名字就好了
    手动标定,x,y 5,7纵坐标是x,横坐标是y,和例子要细细的核对。
    sudo apt-get upgrade libstdc++6
    strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
    locate libstdc++

problem

none

plan

  1. 改写opencv fisheye tool

10.25 Thu

  1. 配置所有环境,备份系统
  2. 跑sacramuzza matlab tool

problem

none

plan

  1. --

10.24 Wes

  1. 解决matlab激活的问题时,修改了libdc++.so.6导致重启后无法进入系统,尝试修复方法,在tty等修改回来。无效,备份win,找IT重新安装win,配置双系统,和所有运行环境

problem

none

plan

  1. 备份配好的系统
  2. 跑代码

10.23 Tue

  1. 读mei07ICRA文章,其在统一模型基础上增加了径向切向模型参数,有matlab代码可以尝试http://www-sop.inria.fr/icare/personnel/Christopher.Mei/ChristopherMeiPhDStudentToolbox.html#download
  2. 配置运行环境,解决下载matlab太慢要十几个小时的问题
  3. 配置opencv3.4.1,改opencv fisheye,找到kannala06方法对应的位置

problem

none

plan

  1. 跑sacramuzza06iros提供的工具,看效果
  2. 配置,跑mei07icra,看效果

10.22 Mon

  1. 配置翻墙,下载sacramuzza的标定工具
  2. 配置运行环境,下载matlab2013 for linux
  3. 解决下载matlab出现的一些列问题,百度网盘for linux,配置aria2,尝试aria2+uget+chrome;ari2+uget+flashgot+firefox都限制下载,换回到win上下载

problem

1. none

plan

  1. 配置好matlab
  2. run scaramuzza calib tool
  3. 验证实验效果是否像文章中说的reprojection error<0.5pixel

10.20 Sat

  1. 总结调研ppt,添加fisheye camera分类部分
  2. 调查insta360air资料,确定其类型为折射式,总结:360*180的super-fish-eye,光圈F2.4,照片分辨率3008*1504,视频分辨率2560*1280,内置陀螺仪,曝光补偿-2.5EV~+2.5ev,自动曝光,每个sensorFOV:220;
    ref1:https://www.insta360.com/product/insta360-air/中的宣传片;
    ref2:天猫旗舰店;
    ref3:https://thefulldomeblog.com/2015/11/17/collection-of-360-video-rigs/
  3. 读sacramuzza文章实验部分,总结:用三张标定板互相垂直的标定板,看重建的效果,见图1

problem

1. none

plan

  1. 读hane2017arvix(degang提供),对比sacramuzza,kannala模型,整理到调研ppt
  2. 继读Scaramuzza06ICVS,Scaramuzza06IROS实验部分,整理这篇实验方案和评测标准
  3. 读kannala06PAMI的实验部分,整理这篇实验方案和评测标准
  4. 改opencv成kannala模型,读opencv3源码理解改动之处,扩展成fov>90的kannala
  5. 用sacra\kannala\opencv3的模型标定insta360,计算误差,两者比较
  6. 继续看代码,读hvpcg代码: TraceOnePoint search

10.19 Fri

  1. 重新读所有文章,梳理共性和区别;kannala模型最佳拟合情况和sacramuzza模型抛物反射面情况一致;kannala泰勒分解统一入射角(奇函数,取第1,3,5,7,9项),sacramuzza泰勒分解成像点到视点的距离(可微,取第2,3,4项);
  2. 初步汇总所有资料,见图1,图2
  3. 总结周报,开周会,布置下一步任务
  4. 找到一个非常好的博客总结了市面上的各种相机,https://thefulldomeblog.com/2015/11/17/collection-of-360-video-rigs/

problem

1. to solve: opencv3.0和参考kannala不是完全一致,有很多变动和简化.需要读源码找到变动之处,修改,使其适用于fov>90

plan

  1. 读hane2017arvix(degang提供),对比sacramuzza,kannala模型,整理到调研ppt
  2. 调查insta360 air,有可能的话搜到datasheet, user manual
  3. 确定它的类型是折射(fisheye)\折反射\多折射
  4. 读Scaramuzza06ICVS,Scaramuzza06IROS实验部分,整理这篇实验方案和评测标准
  5. 读kannala06PAMI的实验部分,整理这篇实验方案和评测标准

...
3. 改opencv成kannala模型,读opencv3源码理解改动之处,扩展成fov>90的kannala
3. 用sacra\kannala\opencv3的模型标定insta360,计算误差,两者比较
7. 继续看代码,读hvpcg代码: TraceOnePoint search


highlight

本周:

  1. 调研鱼眼相机:梳理全景相机模型(博客,sacramuza06,iccv03workshop相关资料,LSD OMNI SLAM);总结统一模型包含的假设:假设1:单视点相机,假设2:z方向和成像平面垂直,假设3:fish eye camera模型为r/1-r^2)时当作折反射相机处理
  2. 调研non-metric解法两种:SACRA06(unified model)假设3:可以用a0+a2q^2+a3q^3+...泰勒展开,前3or4项已经够用;BROWN71,OPENCV参考的模型(a rational function model)限制
  3. 理解hvpcg代码:intialzation-->select pixel部分

下周

  1. 读opencv3代码,找到与其参考paper的不同(e.g.假定fov<90,省略pr参数,...)
  2. 比较和评估sacra,opencv3,etc;整理材料, 输出成ppt
  3. 读hvpcg代码其他部分

周报 week 10.15-10.19

工作内容

  1. 入职手续和相关会议ok
  2. 安装系统,配置系统环境,配置程序运行环境,运行OK
  3. 理解hvpcg代码:代码细读,intialzation-->select pixel部分
  4. 调研鱼眼相机标定:
    √统一模型理解(博客,sacramuza06,iccv03workshop相关资料,LSD OMNI SLAM)
    √折反射相机统一模型:√了解TSP1,TSP2,TSP3折反射相机模型三种,结论:本质上相同;另外,找到他们中隐藏的假设.结论:假设1:是单视点相机,(其中fish eye camera的视点是一段小曲线)假设这段小曲线为一个点.假设2:z方向和成像平面垂直,假设3:fish eye camera的折射模型假设被估计为(q/1-q^2)这中间存在误差
    √metric解法:
    √non-metric解法:
    √√SACRA06,matlab工具箱:假设3:可以用a0+a2q^2+a3q^3+...泰勒展开,q可微分,且前3or4项已经够用
    √√BROWN71,OPENCV参考的模型:假设3:可以用a0+a3q^3+a5q^5+...泰勒展开,q可微分,且前3or4项已经够用

问题与解决

  1. √鱼眼相机模型材料不是很系统,通过sacramuzza文章,梳理出鱼眼相机模型的分类
  2. √解决单个折射相机(fish eye)能够用折反射相机的统一模型的原因:04yingICCV,在假设透镜折射拟合为1/1-q^2,by bouget69PAMI,时,统一模型可以化简成同样类型
  3. √解决opencv3 fisheye model模型的来源问题,找到参考bonget的matlab标定,找到参考文章
  4. to solve:opencv3在参考文章的基础上还一些修改,需要读opencv3代码找到这些修改(目前有1假定thea<902省略pr参数)
  5. √解决安装配置环境中的一系列问题

下周目标

  1. sacra, opencv3的比较和评估
  2. 整理鱼眼相机材料, 输出成ppt
  3. 阅读hvpcg代码的其他部分

本周重点
* 调研鱼眼相机,准备汇报
* 阅读理解项目代码


10.18 Thu

  1. 读hvpcg代码: TraceOnePoint:project min max
  2. 继续读Ying04ECCV《Can we consider central catadioptric cameras and fisheye cameras within a unified imaging model?》Fitzgibbon01CVPR《Simultaneous linear estimation of multiple view geometry and lens distortion》这两篇文章验证了折射相机和折射反射相机可以用统一模型计算,区别是参数的取值范围的不同(fish eye camera l>1)
  3. 读ICCV2013Workshop omnidirection camera tutorial,详细探讨了抛物线,双曲线,椭圆三种折射反射相机的camera model
  4. 读lsd-OMNI文章,改进1在曲线极线上搜索深度,
  5. 寻找opencv3.0用到的fish eye camera model->bonget->读BROWN71close range camera calibration non-metric method也是泰勒级数展开,目前找到的区别(一)brown只用到奇数项3,5,7,sacramuza泰勒级数用的2,3,4(二)opencv3.0中brown的用到atan(thea)视角<90度才能用,sacramuzza的目前没有发现限制。

problem

//文章
1. lsd-OMNI文章,results-fig10和描述对应不上
3. 找到brown71和sacramuzza的对比文章
4. opencv3.0中省略的pr参数是哪一个,需要看opencv3.0 fish eye model的代码
//代码
1. maxPixSearch选择1280*720*0.027的原因

//昨天的
2. SelectPixel、SelectPixel gradientHist设置为90的原因
2. gradientHist中统计时,>48的数归到48,选择48的原因
3. computeQuanlity何时返回90
4. ThsSmooth+7的原因
6. selectMaps时,ago > thsSmoothed*2 阈值是两倍中位数的原因

plan

  1. 继续看代码,读hvpcg代码: TraceOnePoint search
  2. 读Scaramuzza06ICVS, A flexible technique for accurate omnidirectional camera calibration and structure from motion.
  3. 读Scaramuzza06IROS. A toolbox for easy calibrating omnidirectional cameras.
  4. 整理调研PPT

10.16 Tue

  1. 读完材料Davide Scaramuzza《Omnidirectional Camera》ch3-5, 统一模型原理推导,unified model vs talor model,总结到PPT
  2. 读参考文献9,总结鱼眼相机在统一模型中的限制
  3. 读hvpcg代码:SelectPixel

problem

none

plan

  1. 继续读,总结sacramuza论文Ying04ECCV,Can we consider central catadioptric cameras and fisheye cameras within a unified imaging model?
  2. 读Scaramuzza06ICVS, A flexible technique for accurate omnidirectional camera calibration and structure from motion.
  3. 读Scaramuzza06IROS. A toolbox for easy calibrating omnidirectional cameras.
  4. 继续读hvpcg代码:SelectPixel_fpga, TraceOnePoint, TraceFrontEnd

10.15 Mon

  1. 读代码,初始化部分,CreateNewFrame、gradientImageGenerator、Initialization sliding window、CreateNewFrame
  2. 总结鱼眼材料Davide Scaramuzza《Omnidirectional Camera》ch1-2,了解Dioptric camera、catadioptric camera、 polydioptric camera、Central omnidirectional camera model
  3. 配置环境:输入法,打印机

problem

none

plan

  1. 读sacramuza论文ch3-ch5,总结到鱼眼相机ppt
  2. 继续读hvpcg代码:SelectPixel_fpga,TraceOnePoint, TraceFrontEnd

week 2018.10.10-2018.10.12

本周重点
* 安装系统配置环境
* 入职培训


10.12 Fri

  1. 配置系统软件,配置项目环境,依赖,opencv、ros、pangolin等;编译运行dso ok,编译运行hvpgc ok;
    部分总结在
    win + unbuntu16.04双系统安装总结 https://www.zybuluo.com/snuffles/note/1307953
    ubuntu环境配置总结 https://www.zybuluo.com/snuffles/note/1308713

problem

none

plan

  1. 调研鱼眼:查找、阅读、整理david scaramuzza的论文(√)
  2. 阅读hvpcg代码:重点:光度误差、求导、更新etc

10.11 Tue

  1. 开会:入职培训2h
  2. 开会:周会0.5h
  3. 读lsd omnidirectional camera paper,整理到PPT
  4. 申领到物资权限
  5. 安装双系统

problems

none

plan

  1. 安系统,配环境(√)
  2. 调研鱼眼: (√)继续读read David Caruso《Large-Scale Direct SLAM for Omnidirectional Cameras》中的unified model;

10.10 Wes

  1. 开会4h入职培训、IT培训,填写各种材料
  2. talk with qinrui, 明确近期长期任务;
  3. 调研鱼眼相机统一模型:网上博客资料搜集,opencv omni camera model;
  4. talk with yangshuai, get David Caruso《Large-Scale Direct SLAM for Omnidirectional Cameras;
  5. 配置工作环境,安装办公软件;解决无法登陆wiki的问题,向yinan申请审批权限;

problems

(√)等待批准OA权限

plan

  1. 资料鱼眼搜集: SVO鱼眼相机模型;
  2. 等待批准权限,向IT申请U盘制作ubuntu启动盘(√)
  3. 读Large-Scale Direct SLAM for Omnidirectional Cameras中的统一模型(√);

(√)完成
(-)任务取消

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注