Meshroom icon indicating copy to clipboard operation
Meshroom copied to clipboard

[bug] CCtag3 extraction fails if using more than 6 images, regardless of format/size/resolution/content

Open HCAWN opened this issue 3 years ago • 5 comments

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:

  1. Input any 6 images on default pipeline
  2. change feature extraction from sift to cctag3
  3. compute only up to FeatureExtraction
  4. success (regardless of actually detecting any tags) FAIL:
  5. same as above but just add one more image so that the total count is 7.
  6. 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 image

Log See above

Desktop (please complete the following and other pertinent information):

  • OS: Win10
  • Meshroom version: current release 21.1.0

HCAWN avatar Jan 07 '22 11:01 HCAWN

Can you try with maxThreads = 1

simogasp avatar Jan 07 '22 11:01 simogasp

It does look like changing to 1 works. Setting to anything other than 1 doesn't work however?

HCAWN avatar Jan 07 '22 11:01 HCAWN

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.

simogasp avatar Jan 07 '22 12:01 simogasp

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.

stale[bot] avatar Jun 12 '22 18:06 stale[bot]

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 cctag3-maxThreads0

maxThreads=1 cctag3-maxThreads1

Example 2:

cctag3-maxThreads1-another-image

Example 3:

cctag3-maxThreads1-another-image2

rubienr avatar Sep 12 '22 22:09 rubienr