Forum MicMac

This forum is dedicated the the community of MicMac users


All times are UTC + 1 hour



Post new topic Reply to topic  [ 18 posts ] 
Author Message
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 27 Jul 2016, 08:41 

Hello everyone,

I am working on incremental SfM using MicMac binaries. I have 20 images and i have created sparse cloud using 10 images. Now i want to add remaining 10 images to the existing sparse cloud using previous calibration, what would be the best approach?

I tried few things with Tapas-
1. I generated the tie points for new images(11-20) using Tapioca
2. In Tapas, I select Autocal, give all the images as input(1-20) and InCal = previous calib
3. I am getting Fatal error as cPackObsLiaison::ObsMulOfName

I thing i am doing something wrong in second step.

Please help me in this regard.

Thank You!


Top
  Profile 
 
Offline

Joined: Jul 2014
Posts: 120
Gender: Male
Age: 39
Posted: 27 Jul 2016, 09:29 

Hi!

vaibhav8810 wrote:
1. I generated the tie points for new images(11-20) using Tapioca


Maybe I'm wrong, but I think you have to compute tie points initially for all the images, and not not block by block, because in this case you can't compute correlation between your two blocks by this approach.
Look at this tuto, for example.


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 28 Jul 2016, 08:34 

Hi Xavier,

Thanks for the information. It worked for me. Is there any other method to get incremental sfm efficiently and much faster than this one?
My current approach- Tapioca on all images->Tapas on the subset of images->Tapas-Autocal on entire images (with InCal=previous step calibration and frozen poses for previous images)->Apericloud on entire set

Thanks!


Top
  Profile 
 
Offline

Joined: Mar 2013
Posts: 195
Location: UMR MAP (3495CNRS/MCC)
Gender: None specified
Posted: 28 Jul 2016, 10:49 

Hello,

Here is a pipeline I use more or less everyday for incremental processing with micmac :

<On the initial block>
Tapioca (use the appropriate mode and settings according to your data acquisition)
Tapas specifying an output like Out=Iter0
AperiCloud .*ext Iter0 (if necessary)

<New block>
Tapioca (use the appropriate mode and settings according to your data acquisition) PatternIter1 SameSizeAsInIter0
Tapioca All PatternIter0 SameSizeAsInIter0 (to gain time of computation) and option Pat2=PatternIter1
This will only create links in between the two blocks
Tapas AutoCal .*ext InCal=Iter0 InOri=Iter0 Out=Iter1
AperiCloud .*ext Iter1 (again, if necessary)

<New iter>
Just repeat the process
It could be way faster using Martini instead of Tapas but I think this command is not working on Windows exe (even the very last release 6702) with
Martini .*ext OriCalib=LastIter

Important point is to use the same Tapioca resize to not recompute every time new packs of homol.
Dont forget to use the InOri if you want to inject new pictures in the same orientation (I think it's relevant in an incremental approach) and if needed use to FrozenPoses option to constraint a bit more the degree of freedom in the new orientation computation.
The Pat2 option becomes more and more useful when the size of the dataset increase, but at the beginning the All approach on all pictures could be enough.
It could be also interesting to integrate some command like MergeHomol (to process separately some dataset and merge it afterward) or Schnaps (to filter bad tie-points so as to gain in robustness and velocity)

If you are working on a bash/python script to automated it with loops, feel free to share it ;)

Regards
Anthony


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 28 Jul 2016, 11:43 

Anthony wrote:
Hello,

Here is a pipeline I use more or less everyday for incremental processing with micmac :

<On the initial block>
Tapioca (use the appropriate mode and settings according to your data acquisition)
Tapas specifying an output like Out=Iter0
AperiCloud .*ext Iter0 (if necessary)

<New block>
Tapioca  (use the appropriate mode and settings according to your data acquisition) PatternIter1 SameSizeAsInIter0
Tapioca All PatternIter0 SameSizeAsInIter0 (to gain time of computation) and option Pat2=PatternIter1
This will only create links in between the two blocks
Tapas AutoCal .*ext InCal=Iter0 InOri=Iter0 Out=Iter1
AperiCloud .*ext Iter1 (again, if necessary)

<New iter>
Just repeat the process
It could be way faster using Martini instead of Tapas but I think this command is not working on Windows exe (even the very last release 6702) with
Martini .*ext OriCalib=LastIter

Important point is to use the same Tapioca resize to not recompute every time new packs of homol.
Dont forget to use the InOri if you want to inject new pictures in the same orientation (I think it's relevant in an incremental approach) and if needed use to FrozenPoses option to constraint a bit more the degree of freedom in the new orientation computation.
The Pat2 option becomes more and more useful when the size of the dataset increase, but at the beginning the All approach on all pictures could be enough.
It could be also interesting to integrate some command like MergeHomol (to process separately some dataset and merge it afterward) or Schnaps (to filter bad tie-points so as to gain in robustness and velocity)

If you are working on a bash/python script to automated it with loops, feel free to share it ;)

Regards
Anthony



Hi Anthony,

Thanks for the useful information. But i am bit confused with Tapioca command. I am running micmac in windows binary.
I would like to know what is PatternIter1, PatternIter0 and SameSizeAsInIter0 in the new image block?

Procedure i am following as per your instructions is-
let say i have 15 images.
<for initial block of images(1-10)>
Tapioca(multiscale 300 900) - The result is stored in Homol Folder
Tapas(fraserBasic out=itr0)

<New Block>
could you please let me know the meaning of PatternIter1, PatternIter0 and SameSizeAsInIter0?
I am bit confused with this and also why you are using Tapioca twice in new block? Also, The result Tapioca will be saved in Homol folder which overwrites the previous block folder

Thanks!

Regards,
Vaibhav


Top
  Profile 
 
Offline

Joined: Mar 2013
Posts: 195
Location: UMR MAP (3495CNRS/MCC)
Gender: None specified
Posted: 28 Jul 2016, 13:35 

Sorry if it was not clear, i'm describing literally the command line,
just replace PatternIter1 with the correct expression to select your pattern, i dont know something like :
IMG_000[1-9].JPG

So as an example :
mm3d Tapioca All "IMG_000[1-9].JPG" 1500 Pat2=IMG_001[0-9].JPG

and for Tapas:
mm3d Tapas FraserBasic .*JPG InCal=Iter0 InOri=Iter0 Out=Iter1 FrozenPoses="IMG_000[1-9].JPG"

I'm running Tapioca twice, the first time to match only pictures within the new block, the second time to match this new block with a previous (already matched).
Tapioca will not overwrite, but add new images and matches.

Hope i made my explanation more clear :)


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 28 Jul 2016, 16:19 

Anthony wrote:
Sorry if it was not clear, i'm describing literally the command line,
just replace PatternIter1 with the correct expression to select your pattern, i dont know something like :
IMG_000[1-9].JPG

So as an example :
mm3d Tapioca All "IMG_000[1-9].JPG" 1500 Pat2=IMG_001[0-9].JPG

and for Tapas:
mm3d Tapas FraserBasic .*JPG InCal=Iter0 InOri=Iter0 Out=Iter1 FrozenPoses="IMG_000[1-9].JPG"

I'm running Tapioca twice, the first time to match only pictures within the new block, the second time to match this new block with a previous (already matched).
Tapioca will not overwrite, but add new images and matches.

Hope i made my explanation more clear :)



Hi,

Thanks a lot! That worked for me. Only thing i changed is i take at least one image common in the two groups(Otherwise it was giving me an fatal error of a BestCam=0 in Tapas ).

Regards,
Vaibhav


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 01 Aug 2016, 07:46 

Anthony wrote:
Sorry if it was not clear, i'm describing literally the command line,
just replace PatternIter1 with the correct expression to select your pattern, i dont know something like :
IMG_000[1-9].JPG

So as an example :
mm3d Tapioca All "IMG_000[1-9].JPG" 1500 Pat2=IMG_001[0-9].JPG

and for Tapas:
mm3d Tapas FraserBasic .*JPG InCal=Iter0 InOri=Iter0 Out=Iter1 FrozenPoses="IMG_000[1-9].JPG"

I'm running Tapioca twice, the first time to match only pictures within the new block, the second time to match this new block with a previous (already matched).
Tapioca will not overwrite, but add new images and matches.

Hope i made my explanation more clear :)



Hi Anthony,

I am trying to add two groups of images incrementally without any overlap between two groups(no image is common between the two).
Group1 - image009 - image122
Group2 - image123-image129

I am getting the error as below-

BEGIN Init Inconnues
NUM 0 FOR Image009.jpg
NUM 1 FOR Image010.jpg
NUM 2 FOR Image011.jpg
NUM 3 FOR Image012.jpg
NUM 4 FOR Image013.jpg
NUM 5 FOR Image014.jpg
NUM 6 FOR Image015.jpg
NUM 7 FOR Image016.jpg
NUM 8 FOR Image017.jpg
NUM 9 FOR Image122.jpg
MST 5
=== NON INIT : Image123.jpg
=== NON INIT : Image124.jpg
=== NON INIT : Image125.jpg
=== NON INIT : Image126.jpg
=== NON INIT : Image129.jpg
------------------------------------------------------------
| Sorry, the following FATAL ERROR happened
|
| aBestCam==0
|
------------------------------------------------------------
-------------------------------------------------------------

Could you please help me in this regards.
Thanks!


Top
  Profile 
 
Offline

Joined: Mar 2013
Posts: 195
Location: UMR MAP (3495CNRS/MCC)
Gender: None specified
Posted: 01 Aug 2016, 10:46 

Hmm, the answer is your question there is no solution if your two blocks are "without any overlap"...or at least not in a automated way, without control points.

If by this you mean small or really small overlap, increase the scale and /or activate SFS option (documentation Advanced Tie Points)


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 01 Aug 2016, 10:59 

Anthony wrote:
Hmm, the answer is your question there is no solution if your two blocks are "without any overlap"...or at least not in a automated way, without control points.

If by this you mean small or really small overlap, increase the scale and /or activate SFS option (documentation Advanced Tie Points)

Hi,

I think i put my question in wrong way.. There is no common image in 2 groups but they share certain overlap of the object between 2 groups.
My question is - is there any requirement that 2 groups should have any image in common between the two?
If no, then how should i resolve the error i have mentioned.

Hope my explanation is clear to you.


Top
  Profile 
 
Offline

Joined: Mar 2013
Posts: 195
Location: UMR MAP (3495CNRS/MCC)
Gender: None specified
Posted: 01 Aug 2016, 11:14 

There is no requirement if the two blocks share a sufficient overlap in between two pictures at least.
In your case, but it's hard to see without the dataset and what Tapas command is failing, maybe you are working on not enough tie points.
If you still are running Tapioca with the Pat2, have you tried without on all pictures ?


Top
  Profile 
 
Offline

Joined: Jan 2014
Posts: 149
Gender: Male
Posted: 02 Aug 2016, 10:19 

Hi,

Quote:
Hi,

I think i put my question in wrong way.. There is no common image in 2 groups but they share certain overlap of the object between 2 groups.
My question is - is there any requirement that 2 groups should have any image in common between the two?
If no, then how should i resolve the error i have mentioned.

Hope my explanation is clear to you.


If there is no imageS in between, there is no chance that both orientations computed be in the same system if your orientations processed are only based on tie points.
You need at least 2 images in common. In this case, you can orientate both blocs separately and then use "mm3d Morito" to merge both blocs.
This is used in general when your dataset is really huge. For reasonable datasets, you need just to compute an orientation on a sub-bloc in order to have "good" approximate internal parameters and then lanch "mm3d Tapas AutoCal ..." for the entire dataset.

Regards,

--Mehdi


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 03 Aug 2016, 08:01 

Anthony wrote:
There is no requirement if the two blocks share a sufficient overlap in between two pictures at least.
In your case, but it's hard to see without the dataset and what Tapas command is failing, maybe you are working on not enough tie points.
If you still are running Tapioca with the Pat2, have you tried without on all pictures ?


Hi,
The problem is with the merging the two groups using Tapioca All. It doesn't create any connection between two groups though there is overlap between two groups.
If i run Tapioca without pat2 with same settings, there is linkage between all the images.

Am i missing some parameter?

Thanks!


Top
  Profile 
 
Offline

Joined: Jan 2014
Posts: 149
Gender: Male
Posted: 03 Aug 2016, 10:14 

Hi,

If you use "mm3d Tapioca All" with the entire dataset and still cannot connect some images, try to improve size of images or check overlap, or simply it is not possible to connect it (no texture in the overlap aerea ...etc).

When you will launch "mm3d Tapas" it will tell you which group of images are not connected, remove them or try to investigate why it is not possible to connect them (the above reasons reasons).

Best regards,

--Mehdi


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 05 Aug 2016, 09:02 

daakir.mehdi wrote:
Hi,

If you use "mm3d Tapioca All" with the entire dataset and still cannot connect some images, try to improve size of images or check overlap, or simply it is not possible to connect it (no texture in the overlap aerea ...etc).

When you will launch "mm3d Tapas" it will tell you which group of images are not connected, remove them or try to investigate why it is not possible to connect them (the above reasons reasons).

Best regards,

--Mehdi


Hi,

Thanks for the help! Let me explain my problem with the dataset. I tried it on zhenjue dataset located at "http://micmac.ensg.eu/data/zhenjue_dataset.zip"

In the dataset i split the images in 2 sets-

Group1- DSC_3115.JPG to DSC_3125.JPG
Group2- DSC_3126.JPG to DSC_3139.JPG

Now i want to join two groups together and form combined sparse cloud incrementally.

I perform following operations on GROUP1-

mm3d "Tapioca" "MulScale" "(DSC_3115.JPG|DSC_3116.JPG|DSC_3117.JPG|DSC_3118.JPG|DSC_3119.JPG|DSC_3120.JPG|DSC_3121.JPG|DSC_3122.JPG|DSC_3125.JPG)" "300" "900"
mm3d "Tapas" "FraserBasic" "(DSC_3115.JPG|DSC_3116.JPG|DSC_3117.JPG|DSC_3118.JPG|DSC_3119.JPG|DSC_3120.JPG|DSC_3121.JPG|DSC_3122.JPG|DSC_3125.JPG)" "Focs=[0,100000]"

Operations on GROUP 2-

mm3d "Tapioca" "MulScale" "(DSC_3126.JPG|DSC_3127.JPG|DSC_3128.JPG|DSC_3129.JPG|DSC_3130.JPG|DSC_3131.JPG|DSC_3132.JPG|DSC_3133.JPG|DSC_3134.JPG|DSC_3135.JPG|DSC_3136.JPG|DSC_3137.JPG|DSC_3138.JPG|DSC_3139.JPG)" "300" "900"

To find matches between group1 and group2-

mm3d" "tapioca" "All" "(DSC_3115.JPG|DSC_3116.JPG|DSC_3117.JPG|DSC_3118.JPG|DSC_3119.JPG|DSC_3120.JPG|DSC_3121.JPG|DSC_3122.JPG|DSC_3125.JPG)" "900" "Pat2=(DSC_3126.JPG|DSC_3127.JPG|DSC_3128.JPG|DSC_3129.JPG|DSC_3130.JPG|DSC_3131.JPG|DSC_3132.JPG|DSC_3133.JPG|DSC_3134.JPG|DSC_3135.JPG|DSC_3136.JPG|DSC_3137.JPG|DSC_3138.JPG|DSC_3139.JPG)"

After this step if i check Homol folder, there is no linkage creation between the two groups. and Thats why i am getting the error in Tapas AutoCal.

Could you please let me know the mistake i have made.

Thanks!

Regards,
vaibhav


Top
  Profile 
 
Offline

Joined: Jan 2014
Posts: 149
Gender: Male
Posted: 05 Aug 2016, 13:52 

Hi,

Here is what I made with the same dataset as you. And Ori-AutoCal/ contains the entire images available from the dataset.

Code:
PAT_1="(DSC_3115.JPG|DSC_3116.JPG|DSC_3117.JPG|DSC_3118.JPG|DSC_3119.JPG|DSC_3120.JPG|DSC_3121.JPG|DSC_3122.JPG|DSC_3125.JPG)"
PAT_2="(DSC_3126.JPG|DSC_3127.JPG|DSC_3128.JPG|DSC_3129.JPG|DSC_3130.JPG|DSC_3131.JPG|DSC_3132.JPG|DSC_3133.JPG|DSC_3134.JPG|DSC_3135.JPG|DSC_3136.JPG|DSC_3137.JPG|DSC_3138.JPG|DSC_3139.JPG)"

mm3d Tapioca MulScale "$PAT_1" 300 900
mm3d Tapas FraserBasic "$PAT_1" Focs=[0,100000]

mm3d Tapioca MulScale "$PAT_2" 300 900
mm3d Tapioca All "$PAT_1" 900 Pat2="$PAT_2"

mm3d Tapas AutoCal "$PAT_1|$PAT_2" InOri=Ori-FraserBasic/


What is the last "mm3d Tapas" command that you launched ?

Regards,

--Mehdi


Top
  Profile 
 
Offline

Joined: Jul 2016
Posts: 9
Gender: None specified
Posted: 06 Aug 2016, 16:57 

daakir.mehdi wrote:
Hi,

Here is what I made with the same dataset as you. And Ori-AutoCal/ contains the entire images available from the dataset.

Code:
PAT_1="(DSC_3115.JPG|DSC_3116.JPG|DSC_3117.JPG|DSC_3118.JPG|DSC_3119.JPG|DSC_3120.JPG|DSC_3121.JPG|DSC_3122.JPG|DSC_3125.JPG)"
PAT_2="(DSC_3126.JPG|DSC_3127.JPG|DSC_3128.JPG|DSC_3129.JPG|DSC_3130.JPG|DSC_3131.JPG|DSC_3132.JPG|DSC_3133.JPG|DSC_3134.JPG|DSC_3135.JPG|DSC_3136.JPG|DSC_3137.JPG|DSC_3138.JPG|DSC_3139.JPG)"

mm3d Tapioca MulScale "$PAT_1" 300 900
mm3d Tapas FraserBasic "$PAT_1" Focs=[0,100000]

mm3d Tapioca MulScale "$PAT_2" 300 900
mm3d Tapioca All "$PAT_1" 900 Pat2="$PAT_2"

mm3d Tapas AutoCal "$PAT_1|$PAT_2" InOri=Ori-FraserBasic/


What is the last "mm3d Tapas" command that you launched ?

Regards,

--Mehdi


Hi,

I am following the exact pipeline on windows GUI(example- vTapioca). But still i am not getting the linkage between 2 groups after Tapioca All.
Which version are you using on your windows?

Last mm3d Tapas i am using for autocalibration of the images depending on previous calibration.

Thanks,
Vaibhav


Top
  Profile 
 
Offline

Joined: Jan 2014
Posts: 149
Gender: Male
Posted: 07 Aug 2016, 17:28 

Hi,

I made the test with 6803 MicMac version under Linux.
Can you please put what is in the log file "mm3d-LogFile.txt" ?

Regards,

--Mehdi


Top
  Profile 
 

Who is online

Users browsing this forum: No registered users and 0 guests

Permissions of this forum:

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
Post new topic Reply to topic  [ 18 posts ] 


Créer un forum | © phpBB | Entraide & support | Forum gratuit