这些是我在命令行中传递的参数:
opencv_traincascade -data car_data -vec cars.vec -bg neg.txt -numPos 8792 -numNeg 8968 -numStages 15 -numHitRate 0.995 -w 64 -h 64 -precalcValBufSize 5120 -precalcIdxBufSize 5120 -numThreads 8
它列出了:
PARAMETERS:
cascadeDirName: car_data
vecFileName: cars.vec
bgFileName: neg.txt
numPos: 8792
numNeg: 8968
numStages: 15
precalcValBufSize[Mb] : 5120
precalcIdxBufSize[Mb] : 5120
acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 64
sampleHeight: 64
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: BASIC
Number of unique features given windowSize [64,64] : 8103936
看起来像它忽略了numThreads。一个小时后,我仍然在这个街区
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 8792 : 8792
NEG count : acceptanceRatio 8968 : 1
Precalculation time: 117.973
内存使用率为11.5 GB,CPU使用率约为14%。
这是什么
Precalculation time
?为什么忽略
numThreads
?完成这项工作需要多长时间?
最佳答案
也许它会忽略numThreads
,因为您尚未构建启用了TBB支持的OpenCV。
在OpenCV网站上的帖子中,我记得曾经读过opencv_traincascade应用程序可以使用TBB进行多线程处理,但是要在多核模式下使用它,则必须在启用TBB支持的情况下构建OpenCV。
关于opencv - opencv_traincascade需要多长时间才能完成培训?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48852241/