Git Product home page Git Product logo

bundler_sfm's Issues

Core Dump of Bundler

I successfully compiled bundler(master branch) on Ubuntu12.04. I disabled ceres.

However, when I run the script I got the following error:

./RunBundler.sh: line 145: 4600 Segmentation fault (core dumped) $BUNDLER $IMAGE_LIST --options_file options.txt > bundle/bundle.log

The last few lines of the log is:

tri.error[755] = 0.134
Adding match 21965 ==> 16102 [756]
tri.error[756] = 0.065
Adding match 21977 ==> 16109 [7

BIN_PATH for sift and KeyMatchFull

bundler.py is looking for sift and KeyMatchFull under bundler_sfm/utils/bin, and not bundler_sfm/bin as it probably should...

BTW, if KeyMatchFull is part of bundler, is there an interest in turning it into a python C extension?...

Why there're just 2 images left when pmvs?

Hi!
Recently I try to use Bundler to build point cloud, but after enter the command 'sh.pmvs/prep_pmvs.sh',it only writes 2 imgaes, and failed to build point cloud. I thought there might be not enough overlap between the images, but it still happened after I try other several datasets. I hope that you can help me with this ?Thanks!

[ReadBundleFile] Bundle version: 0.300
[ReadBundleFile] Reading 102 images and 3752 points...
Undistorting image ./IMG_5882.jpg
Undistorting image ./IMG_5890.jpg
[WriteBundleFile] Writing 2 images and 3752 points...
Running Bundle2Vis to generate vis.dat

[ReadBundleFile] Bundle version: 0.300
[ReadBundleFile] Reading 2 images and 3752 points...
Num visible: 7504
Num cameras: 2

Reading bundle...2 cameras -- 3752 points in bundle file
***********
2 cameras -- 3752 points
Reading images: **
Set widths/heights...done	0 secs
done	0 secs
slimNeighborsSetLinks...done	0 secs
mergeSFM...***********resetPoints...done
Rep counts: 3752 -> 147  	0 secs
setScoreThresholds...done	0 secs
sRemoveImages... **
Kept: 0 1 

Removed: 
sRemoveImages: 2 -> 2	0 secs
slimNeighborsSetLinks...done	0 secs

Cluster sizes: 
2 
Adding images: 
0 
Image nums: 2 -> 2 -> 2
Divide: 
done	0 secs
1 images in vis on the average

Build issues on Mac

While building on Mac, I faced following issues:

  • Unable to find "malloc.h". This gets resolved by including "stdlib.h" instead of "malloc.h" in troubling files
  • Linking Issue. My Output of make below

I have used ceres by setting USE_CERES=true

$ make
uname: illegal option -- o
usage: uname [-amnprsv]
cd lib/5point; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for `all'.
cd lib/ann_1.1_char; /Applications/Xcode.app/Contents/Developer/usr/bin/make linux-g++-shared
cd src ; /Applications/Xcode.app/Contents/Developer/usr/bin/make linux-g++-shared
/Applications/Xcode.app/Contents/Developer/usr/bin/make targets \
    "ANNLIB = libANN_char.so" \
    "C++ = g++" \
    "CFLAGS = -g2 -fPIC" \
    "MAKELIB = g++ -shared -o " \
    "RANLIB = true"
make[3]: Nothing to be done for `targets'.
cd lib/imagelib; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for `all'.
cd lib/matrix; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for `all'.
cd lib/sba-1.5; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for `all'.
cd lib/sfm-driver; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for `all'.
cd lib/minpack; /Applications/Xcode.app/Contents/Developer/usr/bin/make
gcc -O2 -ffast-math  -c -o dpmpar.o dpmpar.f
error: invalid value 'f95' in '-x f95'
make[1]: *** [dpmpar.o] Error 1
make: *** [default] Error 2

How do I resolve this issue?

image processing error

Hi,Noah,
I met a problem when processing images:
[- Extracting keypoints -]
sift.txt: 行 1: 6760 Segmentation fault D:/bundler/bin/siftWin32.exe < ../ examples/dixing/IMG_0025.pgm > ../examples/dixing/IMG_0025.key
...
[- Matching keypoints (this can take a while) -]
D:/bundler/bin/KeyMatchFull.exe list_keys.txt matches.init.txt -1
Invalid keypoint file.
...
assertion "p.first != p.second" failed: file "BaseApp.h", line 271,
function: std::vector& MatchTable::GetMatchList(MatchIndex)

There is no error occur when I run the examples like kermit or ET,so I use my own picture set:
37 pictures, 5616x3744 (10MB each )
Then the error occurs, are the pictures too large? Is the limit of sift is 4000x4000?
It looks like that the sift didn't found any keypoints, and the key file is 1K. The output contains
Bundler.exe.stackdump:
Stack trace:
Frame Function Args
0000023AF00 0018007256A (0000023E3F4, 00000000007, 00100000104, 0000023DE50)
0000023AFA0 00180073D33 (00000000064, 00000000000, 000000000E4, 00000000000)
0000023B1F0 0018012DFEF (00000000002, 00000000000, 00000000002, 00000000001)
0000023B4E0 0018012AD90 (00300000000, 00000000000, 00000000000, 00000000002)
0000023B650 0018012B259 (7FF9A43106D0, 0000023C058, 001004C5314, 00000000006)
0000023B650 0018012B42C (7FF9A16714FB, 00000004048, 001802100D8, 0018012FE9C)
0000023B650 0018012B6EF (001004C5300, 001004C5314, 0000000010F, 0018021002F)
0000023B650 00180041B65 (0060005F200, 00000000608, 0060003B7E0, 00600052590)
0060003B7E0 00100456C19 (00180103FD0, 00000000000, 001004B0000, 0060004DEA8)
00000000000 00100419137 (00000000000, 00000000001, 00000000000, 0000023C060)
0000023CB50 0010041F4C9 (0018032B388, 0000023C59C, 0018014CD20, 00000000000)
0000023CB50 00100403692 (0060003BD10, 00180211196, 0000023CB50, 00180328FD0)
0000023CB50 001004BA609 (00000000000, 00000000000, 00000000030, 30001010000FF00)
0000023CBC0 00180048410 (00000000000, 00000000000, 00000000000, 00000000000)
00000000000 001800460DC (00000000000, 00000000000, 00000000000, 00000000000)
00000000000 00180046174 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace (more stack frames may be present)

But in visualSFM (within bundler) everything looks good.Can you help me?
Thx

Bundler2PMVS error

Hello Noah,

I'm testing Bundler with the kermit sample images. Here's what I have after running RunBundler on the examples/kermit directory (I am unsure if this what I'm supposed to be seeing):

selection_004

Next, I ran the Bundler2PMVS utility using:

list.txt in examples/kermit : list.txt
bundle.out in examples/kermit/bundle.out : bundle.out.txt

Here's the terminal output:

selection_003

Am I missing something? I'd appreciate any assistance in resolving this issue.. thanks!

EstimateFMatrix failure

Hi, there. I am trying to run bundler in a set of 171 images, and I am getting this error:

bundler: Epipolar.cpp:142: std::vector<int> EstimateFMatrix(const std::vector<Keypoint>&, const std::vector<Keypoint>&, std::vector<KeypointMatch>, int, double, double*, bool): Assertion `idx1 < (int) k1.size()' failed.

Any ideas?... Should I try a smaller set with more similar images first, maybe? What could cause this kind of error?

Add typical workflow to readme

Hello,
can you please add command list for typical JPG -> bundler -> PMVS2 -> meshlab workflow to README.md?

For example MVE package has this simple HOWTO:

#Put JPG images into ./img directory
makescene -i ./img ./scn
sfmrecon ./scn
dmrecon -s2 ./scn
scene2pset -F2 ./scn ./scn/pset-L2.ply
meshlab ./scn/pset-L2.ply
#fssrecon ./scn/pset-L2.ply ./scn/surface-L2.ply
#meshclean -t10 ./scn/surface-L2.ply ./scn/surface-L2-clean.ply

I would like to see similar HOWTO for bundler+pmvs2 workflow.

Thank you.

Provide Example of matches.init.txt

It would be great if the documentation included an example of, and format, for the matches.init.txt. I am interested in providing matches through other means, but its not clear in what format they should be provided.

OSError: [Errno 8] Exec format error on Mac OSX

I get this error when running bundler.py on Mac OSX:

Isaacs-MacBook-Pro:mvsjpeg iytian$ python ~/bundler_sfm-master/utils/bundler.py --no-parallel
Traceback (most recent call last):
File "/Users/iytian/bundler_sfm-master/utils/bundler.py", line 646, in
run_bundler(verbose=args.verbose, parallel=not args.no_parallel)
File "/Users/iytian/bundler_sfm-master/utils/bundler.py", line 603, in run_bundler
key_files = sift_images(images, parallel=parallel, verbose=verbose)
File "/Users/iytian/bundler_sfm-master/utils/bundler.py", line 475, in sift_images
key_filenames.append(sift_image(image, verbose=verbose))
File "/Users/iytian/bundler_sfm-master/utils/bundler.py", line 438, in sift_image
stderr=fp_err)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in init
errread, errwrite)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 8] Exec format error

Is the SIFT binary incompatible on Mac OSX?

no output files

bundler_sfm built successfully on Linux Mint 15.

When I run bundler.py on examples/kermit everything looks good and it ends with:

[- Running Bundler -]
[- Done -]

However, the bundle dir does not contain the expected output. Based on available info I expect .out and .ply files in this location.

Here's my full output, including source and log files: https://www.dropbox.com/s/f8znbru0c88ps1e/kermit.zip

Do you see anything in these files that indicates the build went wrong or a processing step fails?

Where is RunSFM_Ceres?

Hi
I wonder where RunSFM_Ceres is implemented.
According to header file(BundleApp.h), the function is not defined.
If I want to use Ceres solver, do I have to implement it?

How to solve "error trying to exec 'f951': execvp: No such file or directory"

Hello, thanks for bundler, just trying it out.

Just a little note for anyone who might run into this. I'm compiling on

$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

When running make according to your instructions, I ran into error trying to exec 'f951': execvp: No such file or directory. To overcome this, I had to sudo apt install gfortran. Afterwards, make would execute without errors.

Core dump: Assertion `p.first != p.second' failed.

I'm running bundler on a set of photos with no focal length information. I first ran into a problem because the image resolution was too high (5312x3984 pixels) for sift to handle, so I downscaled them all to half their size. Incidentally, if someone has a link to the sift source code, please share it: I want to rebuild it with this limitation lifted, and also make a 64bit version of it.

Anyway, according to FAQ item 1, I first ran the bundler.py script with the --extract-focal parameter to obtain the list.txt file, and there I extended each line with " 0 3187". This is probably not the real focal length, just a quick estimate (I've read that a reasonable estimation for the focal length is max(width, height) * 1.2). Then I ran the bundler.py script again (with no options), so that it could compute the matches, and then I ran bundler list.txt --options_file options.txt and got this:

[OnInit] Running program bundler
Loading images from file 'list.txt'
[BundlerApp::OnInit] Processing options...
[BundlerApp::OnInit] Loading frame...
[BundlerApp::OnInit] Loading images...
[ReadGeometricConstraints] Reading 0 tracks
[ReadGeometricConstraints] Reading tracks took 0.000s
[ReadTrackPairs] Read 0 track pairs
  Avg. proj error [0 projections] = -nan
[BundleAdjust] Error: no good camera pairs found!
[BundleAdjust] Trying a backup approach...
[BundleAdjust] Error: no good camera pairs found!
[BundleAdjust] Picking first two cameras...
[BundleAdjust] Adjusting cameras 0 and 1 (score = 0.000)
[GetJPEGDimensions] File ./image20170205_134820745.jpg: ( 2656 , 1992 )
[GetJPEGDimensions] File ./image20170205_134551277.jpg: ( 2656 , 1992 )
[BaseApp::SetTracks] Setting tracks for image 0...
[BaseApp::SetTracks] Finished in 0.000s
[BaseApp::SetTracks] Setting tracks for image 1...
[BaseApp::SetTracks] Finished in 0.000s
bundler: BaseApp.h:271: std::vector<KeypointMatch>& MatchTable::GetMatchList(MatchIndex): Assertion `p.first != p.second' failed.
Aborted (core dumped)

Could it be because my focal length estimation was way off, or is there some other problem here?
Also, when downscaling the photos, should the focal length be downscaled proportionally, or should itbe left untouched?

Can't compile without Ceres

Hi. I am trying to compile bundler from the current project master, but compilation seems to be failing because it's trying to use Ceres, even though I commented "USE_CERES-true" line in src/Makefile... Should I be doing anything else?

Focal length specified using --init_focal_length does not change during bundle adjustment

For images without exif data, I've given the focal length estimate using the --init_focal_length option. But it remains constant throughout the bundle adjustment process.

Contents of options.txt:
--match_table matches.init.txt
--output bundle.out
--output_dir bundle
--init_focal_length 1078.836
--constrain_focal
--constrain_focal_weight 0.0001
--run_bundle

New to bundler

Hi,

I am new to bundler.
I have downloaded the zip code.
May I know isit possible and how is it for me to install the bundler_sfm using cygwin in windows?
Many thanks

JayH

Make error

Hello i currently try to set up myself a SFM Pipeline with the Bundler included.
I installed all Dependencys but got a error i could not solve when i went to "make" the Bundler.
Im Using Ubuntu 13.04 LTS.
This is what i get from the Terminal:

vkannen1@vismaggie:~/Desktop/BundlerSFM/bundler-v0.4-source$ make
cd lib/5point; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/5point'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/5point'
cd lib/ann_1.1_char; make linux-g++-shared
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/ann_1.1_char'
cd src ; make linux-g++-shared
make[2]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/ann_1.1_char/src'
make targets
"ANNLIB = libANN_char.so"
"C++ = g++"
"CFLAGS = -g2 -fPIC"
"MAKELIB = g++ -shared -o "
"RANLIB = true"
make[3]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/ann_1.1_char/src'
make[3]: Nothing to be done for 'targets'.
make[3]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/ann_1.1_char/src'
make[2]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/ann_1.1_char/src'
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/ann_1.1_char'
cd lib/imagelib; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/imagelib'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/imagelib'
cd lib/matrix; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/matrix'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/matrix'
cd lib/sba-1.5; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/sba-1.5'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/sba-1.5'
cd lib/sfm-driver; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/sfm-driver'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/sfm-driver'
cd lib/minpack; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/minpack'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/minpack'
cd lib/cblas; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/cblas'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/cblas'
cd lib/f2c; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/f2c'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/lib/f2c'
cd src; make
make[1]: Entering directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/src'
g++ -c -o BundlerApp.o -O3 -Wall -I../lib/imagelib -I../lib/sfm-driver -I../lib/matrix -I../lib/5point -I../lib/sba-1.5 -I../lib/ann_1.1_char/include -D__NO_UI__ -D__BUNDLER__ -D__BUNDLER_DISTR__ BundlerApp.cpp
In file included from /usr/include/c++/5/ext/hash_map:60:0,
from BaseApp.h:45,
from BundlerApp.h:23,
from BundlerApp.cpp:35:
/usr/include/c++/5/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]
#warning
^
In file included from BundlerApp.cpp:35:0:
BundlerApp.h: In constructor ‘BundlerApp::BundlerApp()’:
BundlerApp.h:91:27: warning: deprecated conversion from string constant to ‘char_’ [-Wwrite-strings]
m_match_directory = ".";
^
BundlerApp.h:94:25: warning: deprecated conversion from string constant to ‘char_’ [-Wwrite-strings]
m_key_directory = ".";
^
BundlerApp.h:95:27: warning: deprecated conversion from string constant to ‘char_’ [-Wwrite-strings]
m_image_directory = ".";
^
BundlerApp.h:96:28: warning: deprecated conversion from string constant to ‘char_’ [-Wwrite-strings]
m_output_directory = ".";
^
BundlerApp.h: In constructor ‘SkeletalApp::SkeletalApp()’:
BundlerApp.h:620:32: error: cannot call constructor ‘SkeletalApp::BundlerApp’ directly [-fpermissive]
BundlerApp::BundlerApp();
^
BundlerApp.h:620:32: note: for a function-style cast, remove the redundant ‘::BundlerApp’
BundlerApp.cpp: In member function ‘virtual void BundlerApp::ProcessOptions(int, char*)’:
BundlerApp.cpp:739:29: warning: ignoring return value of ‘size_t fread(void
, size_t, size_t, FILE_)’, declared with attribute warn_unused_result [-Wunused-result]
fread(opt_str, 1, 4096, f);
^
Makefile:45: recipe for target 'BundlerApp.o' failed
make[1]: *_* [BundlerApp.o] Error 1
make[1]: Leaving directory '/home/vkannen1/Desktop/BundlerSFM/bundler-v0.4-source/src'
Makefile:21: recipe for target 'default' failed
make: *** [default] Error 2

Could you maybe give me a hand and tell me what i did wrong?
Thank you in advance for any help.

How to save the descriptors of the points which are in the 3D point clouds?

Hi, friends.
I want to save the descriptors of the points which are in the 3D point clouds to a TXT file. I find that the process of saving the coordinates of the 3D points is written in the "BASE PATH/src/BundleIO.cpp" from line 822(yours may be diffirent). So the process of saving the SIFT feature descriptors can also be written in this cpp file, I think. However, I can't find which parameters I should use to do this. Is there anyone who has done the same job or has any idea? Please give me some advice. Thanks.

SIFT alternative

SIFT is patented and makes using Bundler difficult for real world purposes. Would it be straightforward to replace SIFT with, for example, AKAZE from OpenCV?

No such file or directory: 'list.rd.txt'

Hi ,

i encounter another error as below

Performing Bundler2PMVS conversion...
Error opening file list.txt for reading
Error opening file pmvs/bundle.rd.out for reading
Num cameras: 0
Running Bundle2PMVS to generate geometry and converted camera file
Running RadialUndistort to undistort input images
Running Bundle2Vis to generate vis.dat
Traceback (most recent call last):
File "RunPMVS.py", line 10, in
manager.doBundle2PMVS()
File "c:\Users\villa\Desktop\osm-bundler\osm-bundlerWin64\osmpmvs_init_.py", line 86, in doBundle2PMVS
undistortTextFile = open("list.rd.txt", "r")
IOError: [Errno 2] No such file or directory: 'list.rd.txt'

Any idea how to solve it?

Many thanks in advance

Any suggestions on reading the source code?

Hi Noah,

I'm a college student who's new to 3D-reconstruction. I ran your bundler and it works nicely.

Now I'm trying to read the source code but it seems difficult for me. I have learned a few of the basic about the main process of bundler, matrix E, F, K, some formulas and so on. But I get overwhelmed by such a big project. I'm wondering if you have any suggestions? Thanks.

Alex

Can't call bundler.py from command line

I followed the instructions and try to call 'bundler.py --extract-focal' from the command line on ubuntu 14.04, but get a 'bundler.py command not found'. Do I need to fix a path or something?

Bundler on Ubuntu 14.04 LTS (core dumped)

Hi, when I try to run bundler, it gets right to [- Matching keypoints (this can take a while)-] and then it crashes with the following error message.

[- Running Bundler -]
bundler: BaseApp.h:271: std::vector& MatchTable::GetMatchList(MatchIndex): Assertion `p.first != p.second' failed.
/home/richard/github/bundler_sfm/RunBundler.sh: line 148: 7552 Aborted (core dumped) $BUNDLER $IMAGE_LIST --options_file options.txt > bundle/bundle.log
[- Done -]

Any idea what might cause this error?

Hi snavely. recently i add new datasets to test,and it has Focal length,but it does not Extracting keypoints .why?

I am a new bird,please help me. Thanks a lot.
I used other datesets to run,there has Focal length,before running <bundler list.txt --options_file options.txt> it shows the errors like thoes below.

[Extracting exif tags from image ../examples/qinghuashengkelou/IMG_5974.jpg]
[Focal length = 28.000mm]
[CCD width = 35.800mm]
[Resolution = 4368 x 2912]
[Focal length (pixels) = 3416.313
[Found 102 good images]
[- Extracting keypoints -]
sift.txt: 行 1: 23392 Segmentation fault /cygdrive/d/bundler/bin/siftWin32.exe < ../examples/qinghuashengkelou/IMG_5871.pgm > ../examples/qinghuashengkelou/IMG_5871.key
sift.txt: 行 2: 23524 Segmentation fault /cygdrive/d/bundler/bin/siftWin32.exe < ../examples/qinghuashengkelou/IMG_5872.pgm > ../examples/qinghuashengkelou/IMG_5872.key
sift.txt: 行 3: 22696 Segmentation fault /cygdrive/d/bundler/bin/siftWin32.exe < ../examples/qinghuashengkelou/IMG_5873.pgm > ../examples/qinghuashengkelou/IMG_5873.key

[- Matching keypoints (this can take a while) -]
/cygdrive/d/bundler/bin/KeyMatchFull.exe list_keys.txt matches.init.txt
Invalid keypoint file.
Invalid keypoint file.
Invalid keypoint file.

Invalid keypoint file.
Invalid keypoint file.
[KeyMatchFull] Reading keys took 0.061s
[- Running Bundler -]
assertion "p.first != p.second" failed: file "BaseApp.h", line 273, function: std::vector& MatchTable::GetMatchList(MatchIndex)
../RunBundler.sh: 行 93: 27316 Aborted (核心已转储)$BUNDLER list.txt --options_file options.txt > bundle/out
[- Done -]

I use the cygwin run it .After I edit the list.txt(there have two list.txt(one is in result file,the other is in prepare file) and I edit both of them).
How does this code (bundler list.txt --options_file options.txt) run???-- --

Problem in the function BundlerApp::BundleInitializeImageFullBundle

Hi
I found out a crash happens at this function, when the Matchindex idx does not exist in the m_matches. I added just one line as shown to fix this issue.

int first = MIN(image_idx, other);
int second = MAX(image_idx, other);
MatchIndex idx = GetMatchIndex(first, second);
if(!m_matches.Contains(idx)) continue; //My line... if it doesn't contain,just continue
std::vector &list = m_matches.GetMatchList(idx);//assert happens here

Mehdi

How to install build in Mac

I have tried to install bundler_sfm on my Mac but failed to insatll the build.
i am getting this error :( how to get rid of this error?

/Applications/Xcode.app/Contents/Developer/usr/bin/make
uname: illegal option -- o
usage: uname [-amnprsv]
cd lib/5point; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for all'. cd lib/ann_1.1_char; /Applications/Xcode.app/Contents/Developer/usr/bin/make linux-g++-shared cd src ; /Applications/Xcode.app/Contents/Developer/usr/bin/make linux-g++-shared /Applications/Xcode.app/Contents/Developer/usr/bin/make targets \ "ANNLIB = libANN_char.so" \ "C++ = g++" \ "CFLAGS = -g2 -fPIC" \ "MAKELIB = g++ -shared -o " \ "RANLIB = true" g++ -shared -o libANN_char.so ANN.o brute.o kd_tree.o kd_util.o kd_split.o kd_dump.o kd_search.o kd_pr_search.o kd_fix_rad_search.o bd_tree.o bd_search.o bd_pr_search.o bd_fix_rad_search.o perf.o true libANN_char.so cp libANN_char.so ../.. cp libANN_char.so ../../../bin mv libANN_char.so ../lib cd lib/imagelib; /Applications/Xcode.app/Contents/Developer/usr/bin/make make[1]: Nothing to be done forall'.
cd lib/matrix; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for all'. cd lib/sba-1.5; /Applications/Xcode.app/Contents/Developer/usr/bin/make make[1]: Nothing to be done forall'.
cd lib/sfm-driver; /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for `all'.
cd lib/minpack; /Applications/Xcode.app/Contents/Developer/usr/bin/make
gcc -O2 -ffast-math -c -o dpmpar.o dpmpar.f
error: invalid value 'f95' in '-x f95'
make[1]: *** [dpmpar.o] Error 1
make: *** [default] Error 2

request: include screenshot of what examples should look like

I just tried opening /bundler_sfm/examples/kermit/results.example/bundle.out in MeshLab 1.3.3 (since scanalyze is quite old and difficult to compile) with matches.init.txt as the image list file. The result looks like this, and I can't tell if this is what it should look like:

meshlab

Furthermore, I tried running bundler in the kermit example folder via ../../RunBundler.sh and opening the resulting .ply file(s), and those are similarly sparse:

ply

An example image of the output we should be seeing would be very helpful, as these results I am seeing don't seem right.

How to get the saved feature point

Hi,
I try to get the feature point with the cv::keypoint format:
_pt x & y coordinates of the keypoint
_size keypoint diameter
_angle keypoint orientation
_response keypoint detector response on the keypoint (that is, strength of the keypoint)
_octave pyramid octave in which the keypoint has been detected
_class_id object id

I'm not clear with the bundler_sfm output file.
How should I get them?

Compilation fails due to undefined reference

Working from the latest commit c34aaa0, I'm able to compile. While running make, compilation works fine until compiling the source. Here's the truncated output containing the error:

g++ -o bundler -O3 -Wall -Wno-unused-result -std=gnu++0x -I../lib/imagelib -I../lib/sfm-driver -I../lib/matrix -I../lib/5point -I../lib/sba-1.5 -I../lib/ann_1.1_char/include -I../include -I/usr/include/eigen3 -L../lib -L../lib/ann_1.1_char/lib \
        -D__NO_UI__ -D__BUNDLER__ -D__BUNDLER_DISTR__ -D__USE_CERES__ BaseApp.o BundlerApp.o keys.o Register.o Epipolar.o Bundle.o BundleFast.o MatchTracks.o Camera.o Geometry.o ImageData.o SifterUtil.o BaseGeometry.o BundlerGeometry.o BoundingBox.o BundleAdd.o ComputeTracks.o BruteForceSearch.o BundleIO.o ProcessBundle.o BundleTwo.o Decompose.o RelativePose.o Distortion.o TwoFrameModel.o LoadJPEG.o BundleCeres.o -limage -lsfmdrv -lsba.v1.5 -lmatrix -lz -lblas -llapack -lcblas -lminpack -lm -l5point -ljpeg -lANN_char -lgfortran -lceres -lcholmod -lcolamd -lamd -lcamd -lcxsparse -lsuitesparseconfig -lgomp -lglog -lpthread
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `ccolamd_l_recommended'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `ccolamd_set_defaults'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `ccolamd_recommended'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `ccolamd'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `csymamd_l'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `csymamd'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `ccolamd_l'
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libcholmod.so: undefined reference to `ccolamd_l_set_defaults'
collect2: error: ld returned 1 exit status
make[1]: *** [bundler] Error 1
make[1]: Leaving directory `/home/me/bundler_sfm/src'
make: *** [default] Error 2

I have libcholmod 2.1.2-39.1 installed. Is this perhaps a SuiteSparse issue? I was able to compile and install SuiteSparse just fine, but it looks like that's where the problem is coming up.

Exif data + Sparse reconstruction

Hi,
I'm trying to use Bundler to create a sparse map of the following structure:

dji_0104

I have about 40 images (resized to 3600 x 2400) representing different views of the structure.
The exif data for the image does not contain the pitch, roll and yaw (RPY) by default. I was curious to see how Bundler handled it- here's the output:

full_images

Next, I ran Bundler on images with RPY as part of the exif data and here's the output:

rpy_images

I'd appreciate any insight to help me understand the following:

  • I'm unsure if this is a correct sparse point cloud.
  • How critical is it for Bundler to be provided with the RPY data.
  • Are the camera poses in the bundler.out file represented in the world coordinate frame?

Thanks!

libjpeg dependency error

Whenever I compile, I get an error with the libjpeg dependency. My system has libjpeg 9 installed by default, so when I try to compile I get lots of errors like this:

In file included from /usr/local/include/jpeglib.h:27:0,
                 from LoadJPEG.cpp:23:
/usr/local/include/jpeglib.h:704:3: error: expected identifier before ‘*’ token
   JMETHOD(noreturn_t, error_exit, (j_common_ptr cinfo));
   ^
/usr/local/include/jpeglib.h:704:3: error: ‘noreturn_t’ declared as function returning a function
   JMETHOD(noreturn_t, error_exit, (j_common_ptr cinfo));
   ^
LoadJPEG.cpp: In function ‘void GetJPEGDimensions(const char*, int&, int&)’:
LoadJPEG.cpp:32:37: error: too many arguments to function ‘jpeg_error_mgr* jpeg_std_error()’
     cinfo.err = jpeg_std_error(&jerr);
                                     ^
In file included from LoadJPEG.cpp:23:0:
/usr/local/include/jpeglib.h:948:33: note: declared here
 EXTERN(struct jpeg_error_mgr *) jpeg_std_error
                                 ^~~~~~~~~~~~~~
LoadJPEG.cpp:33:5: error: too many arguments to function ‘void jpeg_CreateDecompress()’
     jpeg_create_decompress(&cinfo);
     ^
/usr/local/include/jpeglib.h:966:14: note: declared here
 EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo,

...

Next I commented out the libjpeg.h dependency in LoadJPEG.cpp and replaced it with the libjpeg.h included in bundler_sfm:

// #include <jpeglib.h>
#include "../lib/jpeg/src/jpeglib.h"

Then this gives me this error:

Wrong JPEG library version: library is 90, caller expects 62

Finally, I tried replacing all of the -ljpegs in the makefile with a direct path to /usr/lib64/libjpeg.so.62.2.0, and I get this error:

JPEG parameter struct mismatch: library thinks size is 632, caller expects 600

I'm totally at a loss here. Any help would be really appreciated.

gfortran

I also needed the package gfortran (ubuntu 12.04) to make these files, which is not mentioned in the install file and required a little googling for me.

Sorry, this is really nit picky

Bundle2pmvs Segmentation Fault

Hi Noah,

The installation and compilation seems to be working fine, I successfully got the bundler output (bundle files), I have tested by importing and viewing the .ply file in Blender and see a sparse point cloud .

In the next step bundle2pmvs I get a segmentation fault (core dumped)

./bin/Bundle2PMVS /home/irtza/sfm_home/bundler_sfm /home/irtza/sfm_home/bundler_sfm/bundle/bundle.out
[ReadBundleFile] Bundle version: 0.300
[ReadBundleFile] Reading 6 images and 20 points...
Segmentation fault (core dumped)

Can you please direct me to solution?

Normal to have unused images in Bundler2PMVS conversion step?

Hi,

I'm currently working on a project which uses Bundler, and I noticed that during the Bundler2PMVS conversion step and thereafter not every image gets converted and used. Is this behaviour normal? The resulting model is also heavily skewed to one side, i.e. all the points in the point cloud are from images taken from one direction. I've listed the relevant lines below, where it reads 31 images but only writes 11. Hope you can help with this, thanks!

Performing Bundler2PMVS conversion...
[ReadBundleFile] Bundle version: 0.300
[ReadBundleFile] Reading 31 images and 1534 points...
[GetJPEGDimensions] File 1468938040522.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938039313.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938038490.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938044102.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938042958.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938045515.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938048919.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938041837.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938047940.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938046721.jpg: ( 1200 , 900 )
[GetJPEGDimensions] File 1468938050178.jpg: ( 1200 , 900 )

@@ Conversion complete, execute "sh pmvs/prep_pmvs.sh" to finalize
@@ (you will first need to edit prep_pmvs.sh to specify your bundler path,
@@ so that the script knows where to find your
@@ RadialUndistort and Bundle2Vis binaries)
[ReadBundleFile] Bundle version: 0.300
[ReadBundleFile] Reading 31 images and 1534 points...
Undistorting image 1468938040522.jpg
Undistorting image 1468938039313.jpg
Undistorting image 1468938038490.jpg
Undistorting image 1468938044102.jpg
Undistorting image 1468938042958.jpg
Undistorting image 1468938045515.jpg
Undistorting image 1468938048919.jpg
Undistorting image 1468938041837.jpg
Undistorting image 1468938047940.jpg
Undistorting image 1468938046721.jpg
Undistorting image 1468938050178.jpg
[WriteBundleFile] Writing 11 images and 1534 points...
[ReadBundleFile] Bundle version: 0.300
[ReadBundleFile] Reading 11 images and 1534 points...
Num visible: 3824
Num cameras: 11
Finished!

it is hurry,thanks

when i run bundler on other downloaded public pictures.there comes the questions you tell in Frequently asked Questions (FAQ) about Bundler .
then i followed the steps you told. before the last step: Then rerun bundler (just bundler, and not the matching or other steps) ---my matches.init.txt file is empty.is it all right?? and when i copyed the code:bundler list.txt --options_file options.txt .it does not run . what should i write?
can you help me ??

Error when running bundler.py

I get the following error when running bundler.py within 'examples/kermit', it looks like a permission error with SIFT, has anyone seen this before?

Traceback (most recent call last):
File "/home/mike/bundler_sfm/utils/bundler.py", line 646, in
run_bundler(verbose=args.verbose, parallel=not args.no_parallel)
File "/home/mike/bundler_sfm/utils/bundler.py", line 603, in run_bundler
key_files = sift_images(images, parallel=parallel, verbose=verbose)
File "/home/mike/bundler_sfm/utils/bundler.py", line 475, in sift_images
key_filenames.append(sift_image(image, verbose=verbose))
File "/home/mike/bundler_sfm/utils/bundler.py", line 438, in sift_image
stderr=fp_err)
File "/usr/lib/python2.7/subprocess.py", line 522, in call
return Popen(_popenargs, *_kwargs).wait()
File "/usr/lib/python2.7/subprocess.py", line 710, in init
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied

Building ODM with Docker: Bundler issue

I'm on Ubuntu 14.04 LTS, and have an issue with Bundler.

The Docker build gets just past configuring and building Ceres, and then:

...

ceres
- configuring ceres
- building ceres
< done - Sun Mar 20 21:44:16 UTC 2016

bundler
./install.sh: line 407: cd: /code/src/bundler: No such file or directory
The command '/bin/sh -c ./install.sh && chown -R odm:odm /code' returned a non-zero code: 1

What I had to do to make it work was add the following to line 193 of install.sh:

git clone https://github.com/snavely/bundler_sfm.git $BUNDLER_PATH

The script defines $BUNDLER_PATH and related variables, but never fetches the archive, which starts at line 167.

The script finished, and it is behaving thus far on some sample datasets.

Assert in MatchTracks.cpp

I fall in the following assert:
assert(key < (int) img_data.m_keys.size());
at line 135

when running on /examples/kermit like so:

cd examples/kermit
../../utils/bundler.py --verbose --no-parallel

The compilation went smooth and I added bin to the LD_LIBRARY_PATH
Did I miss something?

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.