Egomotion_with_Local_Loop_Closures

所属分类:论文
开发工具:C++
文件大小:131KB
下载次数:0
上传日期:2019-06-02 22:29:51
上 传 者sh-1993
说明:  此代码基于论文[用自我中心视频的本地循环闭包计算自我运动]([https://arxiv.or...](https://arxiv.org pdf 1701.04743.pdf)
(This code is based on the paper [Computing Egomotion with Local Loop Closures for Egocentric Videos](<https://arxiv.org/pdf/1701.04743.pdf>) by Suvam Patra, Himanshu Aggarwal, Himani Arora, Subhashis Banerjee, Chetan Arora. It implements a robust method for camera pose estimation using short local loop closures and rotation averaging.)

文件列表:
CMakeLists.txt (1572, 2019-06-03)
LICENSE (35141, 2019-06-03)
Test_images (0, 2019-06-03)
Test_images\.keep (0, 2019-06-03)
bin (0, 2019-06-03)
bin\ELLC_LC.sh (626, 2019-06-03)
bin\Saved_mats (0, 2019-06-03)
bin\Saved_mats\.keep (0, 2019-06-03)
build.sh (162, 2019-06-03)
data (0, 2019-06-03)
data\.keep (0, 2019-06-03)
matches (0, 2019-06-03)
matches\.keep (0, 2019-06-03)
matlab_scripts (0, 2019-06-03)
matlab_scripts\SE3_2_se3.m (180, 2019-06-03)
matlab_scripts\SO3GraphAveraging (0, 2019-06-03)
matlab_scripts\SO3GraphAveraging\AverageSO3Graph.m (4689, 2019-06-03)
matlab_scripts\SO3GraphAveraging\BoxMedianSO3Graph.m (12048, 2019-06-03)
matlab_scripts\SO3GraphAveraging\CompareRotationGraph.p (823, 2019-06-03)
matlab_scripts\SO3GraphAveraging\CompareRotations.m (668, 2019-06-03)
matlab_scripts\SO3GraphAveraging\Example1.m (307, 2019-06-03)
matlab_scripts\SO3GraphAveraging\Example2.m (433, 2019-06-03)
matlab_scripts\SO3GraphAveraging\Example3.m (440, 2019-06-03)
matlab_scripts\SO3GraphAveraging\R2q.m (141, 2019-06-03)
matlab_scripts\SO3GraphAveraging\R2w.m (298, 2019-06-03)
matlab_scripts\SO3GraphAveraging\RandomSO3Graph.m (1892, 2019-06-03)
matlab_scripts\SO3GraphAveraging\RobustMeanSO3Graph.m (8138, 2019-06-03)
matlab_scripts\SO3GraphAveraging\ValidateSO3Graph.m (163, 2019-06-03)
matlab_scripts\SO3GraphAveraging\crossmat.m (201, 2019-06-03)
matlab_scripts\SO3GraphAveraging\q2R.m (568, 2019-06-03)
matlab_scripts\SO3GraphAveraging\w2R.m (722, 2019-06-03)
matlab_scripts\VisualizeTrajectory.m (2177, 2019-06-03)
matlab_scripts\adaptive_rotation_averaging.m (2141, 2019-06-03)
matlab_scripts\compare_rot_matrix_mkr.m (1004, 2019-06-03)
matlab_scripts\concatenateOriginPose.m (439, 2019-06-03)
matlab_scripts\concatenatePose.m (357, 2019-06-03)
matlab_scripts\concatenateRelativePose.m (341, 2019-06-03)
... ...

# Egomotion with Local Loop Closures (ELLC) This code is based on the paper [Computing Egomotion with Local Loop Closures for Egocentric Videos](https://arxiv.org/pdf/1701.04743.pdf) by Suvam Patra, Himanshu Aggarwal, Himani Arora, Chetan Arora, Subhashis Banerjee. It implements a robust method for camera pose estimation using short local loop closures and rotation averaging, designed specifically for egocentric videos. ### Acknowledgements 1. **LSD-SLAM**: J. Engel, T. Schops, and D. Cremers, “LSD-SLAM: Large-Scale Direct Monocular SLAM,” in Proceedings of the European Conference on Computer Vision (ECCV), 2014, pp. 834–849. 2. **Efficient and Robust Large-Scale Rotation Averaging**: A. Chatterjee and V. M. Govindu, “Efficient and robust large-scale rotation averaging.” in Proceedings of the IEEE International Conference on Computer Vision (ICCV), 2013, pp. 521–528. ### Dependencies * OpenCV (3.0.0) * Eigen (3.2.5) * Boost (1.59.0) * PCL (1.8.0) (if need to visualize point clouds) * VTK (5.10.1) - for PCL Tested on Xcode (Version ***) ### Data Dataset can be downloaded from [here](https://www.dropbox.com/sh/5iq8caqzjf1qlyx/AADy71Wg3H_0tfE4XvNYr9fSa?dl=0) or the first two videos from the [HUJI EgoSeg Dataset](http://www.vision.huji.ac.il/egoseg/videos/dataset.html). In addition you can also use your own egocentric videos but remember to provide the intrinsic parameters. ### Installation 1. Install all the dependencies. 2. Compile the source code placed in **src** folder, name the generated executable **ELLC** and place it in the **bin** folder. 3. A part of the code is executed on MATLAB. Alter the **bin\ELLC_LC.sh** script as follows: Change all occurences of ``` /Applications/MATLAB_R2015b.app/bin/matlab -nosplash -nodisplay -r ``` To ``` -nosplash -nodisplay -r ``` ### Usage 1. Place the image sequence in **data** folder. 2. Update the Instrinsic parameters and other flags as described in the next section. 3. Execute. The program has two modes: 1. Local loop closure off : Run **ELLC** executable from inside the bin folder 2. Local loop closure on : Run **ELLC_LC.sh** script from inside the bin folder ### Configurable Parameters and Flags Parameters/ Flags can be changed in ExternVariable.h. Some of the the important ones are summarized below: * Intrinsic Parameters: * **ORIG\_COLS**: Number of columns in the original image. * **ORIG\_ROWS**: Number of rows in the original image. * **ORIG\_FX**: Focal length in X direction. * **ORIG\_FY**: Focal length in Y direction. * **ORIG\_CX**: Principal point offset in X direction. [default: ORIG_COLS/2.0] * **ORIG\_CY**: Principal point offset in Y direction. [default: ORIG_ROWS/2.0] * **distortion_parameters**: Distortion parameters. * Display/save images: * **FLAG\_DISPLAY\_IMAGES**: Displays read images, and the residual images for each Gauss Newton iteration. [default: False] * **FLAG\_DISPLAY\_DEPTH_MAP**: Displays the updated depth map for every keyframe [default: true] * **FLAG\_SAVE\_DEPTH\_MAP**: Saves the depth map of keyframes in /Test_images. Blue is near and red is far. [default: false] * **FLAG\_SAVE\_MATCH\_IMAGES**: Saves the frames matched during local loop closures in /matches (LC only) [default: False] * Write poses: * **FLAG\_WRITE\_ORIG\_POSES**: Writes original pose of each frame w.r.t world origin i.e first frame in \outputs\poses_orig.txt [default: True] * **FLAG\_WRITE\_MATCH\_POSES**: Writes relative pose of extra matches during loop closure in \outputs\matchframes.txt (LC only). [default: False] * Multi-threading: * **FLAG\_DO\_PARALLEL\_DEPTH_ESTIMATION** [default: True] * **FLAG\_DO\_PARALLEL\_POSE\_ESTIMATION** [default: True] ### Outputs Final world poses in **outputs\poses_orig.txt** are saved as **Lie Algebra** elements in the following format: ``` CurrentFrameId KeyframeId wx wy wz vx vy vz rescalingFactor depthMapOccupancy ```

近期下载者

相关文件


收藏者