Hi, fcvNCCPatchesOnRectu8 sometimes crash for me. I have checked the input requirements and also print the input parameters, and it seems the crash happens randomly.
Here's the code I used to log parameter values.
LOG("%d, "
"%x, %d, %d, "
"%x, %d, %d, %d, "
"%d, %d, "
"%d, %d ",
gettid(),
patch.data, patch.cols, patch.rows,
searchMat.data, searchMat.cols, searchMat.rows, srcStride,
searchCenterX, searchCenterY,
searchWidth, searchHeight);
fcvStatus result = fcvNCCPatchesOnRectu8(patch.data, patch.cols, patch.rows, // patchWidth * patchHeight must be <= 256
searchMat.data, searchMat.cols, searchMat.rows, srcStride,
&searchCenterX, &searchCenterY,
searchWidth, searchHeight,
0, // filterLowVariance
&bestX, &bestY,
&bestNCC,
m_useSubPixelEstimation, // findSubPixel
&subX, &subY,
1 // numSearches
);
and the log looks like this:
2021-09-08 14:25:04.141 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9303cc00, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.141 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93033640, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.142 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 930455c0, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.143 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93038ac0, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.143 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9302d000, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.144 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93047780, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.145 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93048d80, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.145 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93030040, 8, 8, 23043d00, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.337 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, e2fb2140, 16, 16, 3305e200, 33, 33, 40, 16, 16, 17, 17
2021-09-08 14:25:04.383 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9303ae00, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.384 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93027940, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.384 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93028ec0, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.385 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93034100, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.386 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93020840, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.387 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9302c280, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.388 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93032b00, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.389 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9303e0c0, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.390 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9302f980, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.390 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93027b00, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.391 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 92fd8040, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.392 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9302f2c0, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.393 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93007740, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.394 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9302dfc0, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.394 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9301d340, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.395 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 93039300, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.396 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/ImageProcessing: 13589, 9304dc40, 8, 8, 2308a6c0, 27, 27, 32, 13, 13, 19, 19
2021-09-08 14:25:04.396 32264-13589/com.imagemetrics.livedriversdksandboxandroid E/fastcv_lib_log: vendor/qcom/proprietary/fastcv-noship/src/cpu/fastcvNCCPatchC.cpp@144: (yL <= yCtr && yCtr >= yR) || (yL >= yCtr && yCtr <= yR) Assertion failed
2021-09-08 14:25:04.407 32264-32264/com.imagemetrics.livedriversdksandboxandroid A/libc: FORTIFY: pthread_mutex_lock called on a destroyed mutex (0x750c234498)
2021-09-08 14:25:04.407 32264-32264/com.imagemetrics.livedriversdksandboxandroid A/libc: Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 32264 (ksandboxandroid), pid 32264 (ksandboxandroid)
The input parameters to the function is a 8x8 patch with a 27x27 src.
All parameter seems to be normal when it crashed.
This assertion fastcvNCCPatchC.cpp@144: (yL <= yCtr && yCtr >= yR) || (yL >= yCtr && yCtr <= yR) Assertion failed seems to be the cause.
Is there anything I did wrong or anything I can do to avoid this crash, thanks.
Hi,
You can try the other API: fcvNCCPatchOnSquare8x8u8_v2
Cheers,
-Jeff
Hi, thanks Jeff for fast reply.
For fcvNCCPatchOnSquare8x8u8_v2, the search window `search_w` must be 11 or less, and unfortunayely we have 19 in this case.
Is there any information we can extract from this `fcvNCCPatchesOnRectu8` assertion
fastcvNCCPatchC.cpp@144: (yL <= yCtr && yCtr >= yR) || (yL >= yCtr && yCtr <= yR)?
Like variabce too low or couldn't find a match or something?
Another observatiobn, tried passing the same parameters to both `fcvNCCPatchOnSquare8x8u8_v2` (prefixed w/ 0 in the log) and `fcvNCCPatchesOnRectu8` (prefixed w/ 1), and `fcvNCCPatchesOnRectu8` would fail while `fcvNCCPatchOnSquare8x8u8_v2` give result.
LOG("0 %x, %d, %d, "
"%x, %d, %d, %d, "
"%d, %d, "
"%d, %d "
"%d, %d",
patch.data, patch.cols, patch.rows,
searchMat.data, searchMat.cols, searchMat.rows, srcStride,
searchCenterX, searchCenterY,
searchWidth, searchHeight,
bestX, bestY);