Comments (5)
If you do not care about real-time you can even extract more features. The default is 1000 for 640x480 at 8 scales. I would say you could extract 6000 for 1920x1080. I would also suggest to compute more scales, let say 13 or 14 scales to get a similar lowest resolution as 640x480 with 8 scales. If you compute more scales you will need to extract more features (as they are distributed along scales).
About Global BA, you can launch it whenever you want. Just look at how you can check if Global BA is running here: https://github.com/raulmur/ORB_SLAM2/blob/master/src/LoopClosing.cc#L412-L421
and how you can launch a new Global BA here: https://github.com/raulmur/ORB_SLAM2/blob/master/src/LoopClosing.cc#L572-L575
You could also expand the number of keyframes and points in the Local BA (you will need to ensure that the tracking processes frames, an therefore the keyframe insertion rate, is low enough so that the Local BA can do some iterations). To increase the number of keyframes in the Local BA, you can just retrieve all neighbor keyframes at a distance N in the covisibility graph (the current implementiation N=1) and put them in lLocalKeyFrames: https://github.com/raulmur/ORB_SLAM2/blob/master/src/Optimizer.cc#L461-L468
from orb_slam2.
Thanks so much for the pointers! And very much thanks for an excellent and robust open-source library
from orb_slam2.
Could you explain what the variable nLoopKF does in the LoopClosure::RunGlobalBundleAdjustment? I am having a hard time understanding it from the code alone
from orb_slam2.
The global BA saves the results of the optimization on the keyframe and mappoints structures (KeyFrame::mTcwGBA, KeyFrame::mTcwBefGBA, MapPoint::mPosGBA) and associated to nLoopKF (KeyFrame::mnBAGlobalForKF, MapPoint::mnBAGlobalForKF), which is the id of the keyframe when the loop was detected. After the optimization, local mapping is stopped and the current state of the map and the output of the global BA are merged: https://github.com/raulmur/ORB_SLAM2/blob/master/src/LoopClosing.cc#L672-L733 . There you need to check if a keyframe or a mappoint has been optimized by global BA by using nLoopKF.
from orb_slam2.
I am attempting to use a higher resolution input myself (1280-720).
However, whenever I use ORBSLAM2 with higher resolution video or live input, it always fails to initialize.
I have adjusted the camera settings file TUM1 with our camera parameters for f, c, k, and p, but cannot find where to change the resolution of the input image.
How can I adjust ORBSLAM2 to use higher resolution video?
Failing that, it it possible to scale live video with ROS?
Thank you.
from orb_slam2.
Related Issues (20)
- running command build_ros.sh error HOT 1
- Why use float Type to store Descriptor Distances
- Failed to open settings file...
- ROS noetic ./build_ros.sh problems HOT 7
- I got an error when I tried to compile orb_slam2 with ubuntu22.
- I am getting this error while building the ORB_SLAM2 file please help.. I m running this on NVIDIA JETSON ORIN NANO
- Build failed on Ubuntu 22.04 and ros2 humble
- Stereo baseline of Da Vinci Xi surgical robot
- camera postion please ?
- Why not do `mpCurrentKeyFrame->AddMapPoint(pMP, i)` after `pMP->AddObservation(mpCurrentKeyFrame, i)` during LocalMapping::ProcessNewKeyframe ?
- KeyFrameTrajectory.txt?
- Fix cmake to work with new version of opencv please? I have 4.5.4 HOT 1
- Program does not go forward after initialization while doing rgb-d example.
- compilation issue -- ORB_SLAM2/Thirdparty/g2o/g2o/types/../core/openmp_mutex.h:30:10: fatal error: ../../config.h: No such file or HOT 2
- Running Stereo Node Error
- /usr/bin/ld: Cannot find -lEigen3::Eigen
- When using a undistored image as input image
- C++ Version and OpenCV version
- Gazebo and ORBSLAM
- Run Tracking, Local Mapping, and Loop Closure on a single thread
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orb_slam2.