是什么导致 opencv_traincascade.exe 在接收负样本时崩溃?
What is causing opencv_traincascade.exe to crash when taking in negative samples?
我的目标是训练级联来识别骰子的特定面。
我有 106 个非生成的样本被 opencv_createsamples 转换成一个 vec 文件(名为 dice1.vec
),参数为 -w 32 -h32
。此外,我有一个文本文件 negTxt1.txt
,其中大约 420 行引用其他骰子面(32x32 .png 文件)和大约 600 行引用其他任意的 640x480 大小的 bg 文件。
我试图 运行 opencv_traincacade.exe
在具有 16GB 内存的 Windows 计算机上使用以下参数:
tools\opencv_traincascade.exe -data positives/testclassifier -vec positives/1/dice.vec -bg positives/negTxt1.txt -numStages 20 -numPos 100 -numNeg 1000 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -acceptanceRatioBreakValue .0001 -w 32 -h 32 -mode ALL
但是,在消耗负样本时,程序会在尝试消耗负样本时崩溃,崩溃前的最后一行是NEG current samples: 427
。然后出现错误window、"opencv_traincascade has stopped working...",没有错误信息。
我查看了 SO 和此处的建议(即 here, here),但建议的修复似乎没有帮助。尝试将 -numPos 减少到 80 并不能防止崩溃,并且缓冲区大小参数足够大。尝试将 -numNeg 减少到 < 427 在第一阶段有效,但在下一阶段崩溃,在训练的同一点(当它说 NEG current samples: ...
时)另一个数字。
我可以采取哪些步骤来防止此崩溃并成功创建分类器?
更新和使用 OpenCV 3.1.0 的工具和库(来自他们的网站)似乎可以解决此问题。
我的目标是训练级联来识别骰子的特定面。
我有 106 个非生成的样本被 opencv_createsamples 转换成一个 vec 文件(名为 dice1.vec
),参数为 -w 32 -h32
。此外,我有一个文本文件 negTxt1.txt
,其中大约 420 行引用其他骰子面(32x32 .png 文件)和大约 600 行引用其他任意的 640x480 大小的 bg 文件。
我试图 运行 opencv_traincacade.exe
在具有 16GB 内存的 Windows 计算机上使用以下参数:
tools\opencv_traincascade.exe -data positives/testclassifier -vec positives/1/dice.vec -bg positives/negTxt1.txt -numStages 20 -numPos 100 -numNeg 1000 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -acceptanceRatioBreakValue .0001 -w 32 -h 32 -mode ALL
但是,在消耗负样本时,程序会在尝试消耗负样本时崩溃,崩溃前的最后一行是NEG current samples: 427
。然后出现错误window、"opencv_traincascade has stopped working...",没有错误信息。
我查看了 SO 和此处的建议(即 here, here),但建议的修复似乎没有帮助。尝试将 -numPos 减少到 80 并不能防止崩溃,并且缓冲区大小参数足够大。尝试将 -numNeg 减少到 < 427 在第一阶段有效,但在下一阶段崩溃,在训练的同一点(当它说 NEG current samples: ...
时)另一个数字。
我可以采取哪些步骤来防止此崩溃并成功创建分类器?
更新和使用 OpenCV 3.1.0 的工具和库(来自他们的网站)似乎可以解决此问题。