YWL0720 / YOLO_ORB_SLAM3

This is an improved version of ORB-SLAM3 that adds an object detection module implemented with YOLOv5 to achieve SLAM in dynamic environments.
201 stars 20 forks source link

修改为单目时的问题 #13

Open LiuSnake7788 opened 1 year ago

LiuSnake7788 commented 1 year ago

你好,谢谢你的工作。我想把您的工作修改为在单目Example上也能运行,进行了如下修改: 在Trackingcc的ophus::SE3f Tracking::GrabImageMonocular(const cv::Mat &im, const double &timestamp, string filename)函数中加入 cv::Mat InputImage; InputImage = im.clone(); mpDetector->GetImage(InputImage); mpDetector->Detect(); mpORBextractorLeft->mvDynamicArea = mpDetector->mvDynamicArea; { std::uniquelock lock(mpViewer->mMutexPAFinsh); mpViewer->mmDetectMap = mpDetector->mmDetectMap; } mpDetector->mvDynamicArea.clear(); mpDetector->mmDetectMap.clear(); 在Systemcc的TrackMonocular(const cv::Mat &im, const double &timestamp, const vector& vImuMeas, string filename)函数中加入
cv::Mat imToFeed = im.clone(); if(settings
&& settings->needToResize()){ cv::Mat resizedIm; cv::resize(im,resizedIm,settings->newImSize()); imToFeed = resizedIm; } 但结果是,使用TUM1数据集时,会先出现黑屏(只有识别框没有图像)的问题,且位姿估计明显有问题。在自制的数据集中黑屏时间会大大延长,请问是有什么工作被遗漏了吗?

Alwen-V commented 10 months ago

我也有相同的更改需求,请问你解决了这个问题了吗?

evertale888 commented 8 months ago

Hello, thank you for your work. I want to modify your work to run on the monocular Example, and made the following modifications: In the ophus::SE3f Tracking::GrabImageMonocular(const cv::Mat &im, const double ×tamp, string filename) function of Trackingcc Add cv::Mat InputImage; InputImage = im.clone(); mpDetector->GetImage(InputImage); mpDetector->Detect(); mpORBextractorLeft->mvDynamicArea = mpDetector->mvDynamicArea; { std::uniquelockstd::mutex lock( mpViewer->mMutexPAFinsh); mpViewer->mmDetectMap = mpDetector->mmDetectMap; } mpDetector->mvDynamicArea.clear(); mpDetector->mmDetectMap.clear(); in Systemcc's TrackMonocular(const cv::Mat &im, const double ×tamp , const vectorIMU::Point& vImuMeas, string filename) function, add cv::Mat imToFeed = im.clone(); if(settings && settings->needToResize()){ cv::Mat resizedIm; cv::resize(im ,resizedIm,settings->newImSize()); imToFeed = resizedIm; } But the result is that when using the TUM1 data set, there will be a black screen problem (only the recognition frame and no image), and there are obvious problems with pose estimation. In the self-made data set, the black screen time will be greatly extended. Is there any work that has been missed?

Have u managed to solve this? Please share if you do.

Rosa712 commented 7 months ago

同在自制数据集中运行rgbd_tum会出现检测框并黑屏卡住,在current frame中显示waiting for image

Rosa712 commented 7 months ago

你好,谢谢你的工作。我想把您的工作修改为在单目Example上也能运行,进行了如下修改: 在Trackingcc的ophus::SE3f Tracking::GrabImageMonocular(const cv::Mat &im, const double &timestamp, string filename)函数中加入 cv::Mat InputImage; InputImage = im.clone(); mpDetector->GetImage(InputImage); mpDetector->Detect(); mpORBextractorLeft->mvDynamicArea = mpDetector->mvDynamicArea; { std::uniquelockstd::mutex lock(mpViewer->mMutexPAFinsh); mpViewer->mmDetectMap = mpDetector->mmDetectMap; } mpDetector->mvDynamicArea.clear(); mpDetector->mmDetectMap.clear(); 在Systemcc的TrackMonocular(const cv::Mat &im, const double &timestamp, const vectorIMU::Point& vImuMeas, string filename)函数中加入 cv::Mat imToFeed = im.clone(); if(settings && settings->needToResize()){ cv::Mat resizedIm; cv::resize(im,resizedIm,settings->newImSize()); imToFeed = resizedIm; } 但结果是,使用TUM1数据集时,会先出现黑屏(只有识别框没有图像)的问题,且位姿估计明显有问题。在自制的数据集中黑屏时间会大大延长,请问是有什么工作被遗漏了吗?

请问您黑屏之后有正常运行吗?如果有,大概要等多久

Skyler941 commented 5 months ago

你好,谢谢你的工作。我想把您的工作修改为在单目Example上也能运行,进行了如下修改: 在Trackingcc的ophus::SE3f Tracking::GrabImageMonocular(const cv::Mat &im, const double &timestamp, string filename)函数中加入 cv::Mat InputImage; InputImage = im.clone(); mpDetector->GetImage(InputImage); mpDetector->Detect(); mpORBextractorLeft->mvDynamicArea = mpDetector->mvDynamicArea; { std::uniquelockstd::mutex lock(mpViewer->mMutexPAFinsh); mpViewer->mmDetectMap = mpDetector->mmDetectMap; } mpDetector->mvDynamicArea.clear(); mpDetector->mmDetectMap.clear(); 在Systemcc的TrackMonocular(const cv::Mat &im, const double &timestamp, const vectorIMU::Point& vImuMeas, string filename)函数中加入 cv::Mat imToFeed = im.clone(); if(settings && settings->needToResize()){ cv::Mat resizedIm; cv::resize(im,resizedIm,settings->newImSize()); imToFeed = resizedIm; } 但结果是,使用TUM1数据集时,会先出现黑屏(只有识别框没有图像)的问题,且位姿估计明显有问题。在自制的数据集中黑屏时间会大大延长,请问是有什么工作被遗漏了吗?

请问您改出来了吗

Skyler941 commented 5 months ago

你好,谢谢你的工作。我想把您的工作修改为在单目Example上也能运行,进行了如下修改: 在Trackingcc的ophus::SE3f Tracking::GrabImageMonocular(const cv::Mat &im, const double &timestamp, string filename)函数中加入 cv::Mat InputImage; InputImage = im.clone(); mpDetector->GetImage(InputImage); mpDetector->Detect(); mpORBextractorLeft->mvDynamicArea = mpDetector->mvDynamicArea; { std::uniquelockstd::mutex lock(mpViewer->mMutexPAFinsh); mpViewer->mmDetectMap = mpDetector->mmDetectMap; } mpDetector->mvDynamicArea.clear(); mpDetector->mmDetectMap.clear(); 在Systemcc的TrackMonocular(const cv::Mat &im, const double &timestamp, const vectorIMU::Point& vImuMeas, string filename)函数中加入 cv::Mat imToFeed = im.clone(); if(settings && settings->needToResize()){ cv::Mat resizedIm; cv::resize(im,resizedIm,settings->newImSize()); imToFeed = resizedIm; } 但结果是,使用TUM1数据集时,会先出现黑屏(只有识别框没有图像)的问题,且位姿估计明显有问题。在自制的数据集中黑屏时间会大大延长,请问是有什么工作被遗漏了吗?

请问您黑屏之后有正常运行吗?如果有,大概要等多久

请问您改出来了吗