Meshroom
Meshroom copied to clipboard
[bug] CCtag3 extraction fails if using more than 6 images, regardless of format/size/resolution/content
Describe the bug CCTag3 detection fails when processing 7 images or more, regardless of size, resolution, content
To Reproduce Steps to reproduce the behaviour: PASS:
- Input any 6 images on default pipeline
- change feature extraction from sift to cctag3
- compute only up to FeatureExtraction
- success (regardless of actually detecting any tags) FAIL:
- same as above but just add one more image so that the total count is 7.
- node fills in red with the trace output: `Program called with the following parameters:
- contrastFiltering = Unknown Type "enum aliceVision::feature::EFeatureConstrastFiltering"
- describerPreset = Unknown Type "enum aliceVision::feature::EImageDescriberPreset"
- describerQuality = Unknown Type "enum aliceVision::feature::EFeatureQuality"
- describerTypes = "cctag3"
- forceCpuExtraction = 1
- gridFiltering = 1
- input = "C:/Users/hcawn/AppData/Local/Temp/MeshroomCache/CameraInit/70cd702d91384ef3289bc0901cd4fc91aeb00f58/cameraInit.sfm"
- maxNbFeatures = 0 (default)
- maxThreads = 0
- output = "C:/Users/hcawn/AppData/Local/Temp/MeshroomCache/FeatureExtraction/1fa0bdac2e1775358397520a89425343164e4e85"
- rangeSize = 40
- rangeStart = 0
- relativePeakThreshold = 0.02 (default)
- verboseLevel = Unknown Type "enum aliceVision::system::EVerboseLevel"
[10:54:46.855273][info] CUDA-Enabled GPU. Device information: - id: 0 - name: GeForce GTX 1060 6GB - compute capability: 6.1 - total device memory: 6144 MB - device memory available: 5222 MB - per-block shared memory: 49152 - warp size: 32 - max threads per block: 1024 - max threads per SM(X): 2048 - max block sizes: {1024,1024,64} - max grid sizes: {2147483647,65535,65535} - max 2D array texture: {131072,65536} - max 3D array texture: {16384,16384,16384} - max 2D linear texture: {131072,65000,2097120} - max 2D layered texture: {32768,32768,2048} - number of SM(x)s: 10 - registers per SM(x): 65536 - registers per block: 65536 - concurrent kernels: yes - mapping host memory: yes - unified addressing: yes - texture alignment: 512 byte - pitch alignment: 32 byte 0 [10:54:46.973496][info] Job max memory consumption for one image: 3 MB [10:54:46.973496][info] Memory information: - Total RAM: 63.6796 GB - Free RAM: 51.0119 GB - Available RAM: 51.0119 GB - Total swap: 131072 GB - Free swap: 130987 GB [10:54:46.974495][info] Max number of threads regarding memory usage: 13241 [10:54:46.974495][info] # threads for extraction: 7 [10:54:47.016848][info] Extracting cctag3 features from view 'C:/Users/hcawn/Downloads/2 - Copy.png' [cpu] [10:54:47.016848][info] Extracting cctag3 features from view 'C:/Users/hcawn/Downloads/2 - Copy (3).png' [cpu] [10:54:47.018846][info] Extracting cctag3 features from view 'C:/Users/hcawn/Downloads/2 - Copy (2).png' [cpu] [10:54:47.018846][info] Extracting cctag3 features from view 'C:/Users/hcawn/Downloads/2 - Copy (4).png' [cpu] [10:54:47.025535][info] Extracting cctag3 features from view 'C:/Users/hcawn/Downloads/1tag.png' [cpu] [10:54:47.030535][info] Extracting cctag3 features from view 'C:/Users/hcawn/Downloads/2 - Copy (5).png' [cpu] [10:54:47.030535][info] Extracting cctag3 features from view 'C:/Users/hcawn/Downloads/2.png' [cpu] ` There is no other log below this, no error/warning.
Expected behaviour on a colleague's computer this threshold happens between 5-6 images. this happens with any image. png/jpg, 20kb/10mb, 50x50/2000/2000, plain white image/detailed environment
Screenshots
I've even made some scribbles on paint and the issue happens

Log See above
Desktop (please complete the following and other pertinent information):
- OS: Win10
- Meshroom version: current release 21.1.0
Can you try with maxThreads = 1
It does look like changing to 1 works. Setting to anything other than 1 doesn't work however?
I cannot test it atm but probably it's due to the fact that cctag on CPU is already highly parallelized so you may run out of resources if multiple threads try to perform the extraction.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Can confirm that with about 20 images and maxThreads=0 or maxThreads=1 of the FeatureExtraction node, the tags are not extracted (correctly). In the example below the only visible difference in-between threads 0 or 1 is a slightly larger square (top one is a few pixels larger).
However, personally I have the impression that the tags are extracted, but the origins are not placed correctly on the image (wrong offset and/or mirrored or sth. similar). At least that is what I observed on the other images (see example 2; the amount of visible tags is the same as extracted cctag3 features). Example 3 shows the offset in between non cctag3 features and image.
Version 2021.1.0
Linux 5.15.0-47-generic
Python 3.6.3
Example 1:
maxThreads=0

maxThreads=1

Example 2:

Example 3:
