zoukankan      html  css  js  c++  java
  • traincascade.exe 出错:死循环在某个阶段

    参考:(参数 -numPos设置错误)

    The problem is that your vec-file has exactly the same samples count that you passed in command line -numPos 979. Training application used all samples from the vec-file to train 0-stage and it can not get new positive samples for the next stage training because vec-file is over. The bug of traincascade is that it had assert() in such cases, but it has to throw an exception with error message for a user. It was fixed in r8913. -numPose is a samples count that is used to train each stage. Some already used samples can be filtered by each previous stage (ie recognized as background), but no more than (1 - minHitRate) * numPose on each stage. So vec-file has to contain >= (numPose + (numStages-1) * (1 - minHitRate) * numPose) + S, where S is a count of samples from vec-file that can be recognized as background right away. I hope it can help you to create vec-file of correct size and chose right numPos value.

    It worked for me. I also had same problem, I was following the famous tutorial on HAAR training but wanted to try the newer training utility with -npos 7000 -nneg 2973

    so i did following calcs:

    vec-file has to contain >= (numPos + (numStages-1) * (1 - minHitRate) * numPos) + S     说明:(S 即为 numNeg)

    7000 >= (numPos + (20-1) * (1 - 0.999) * numPos) + 2973

    (7000 - 2973)/(1 + 19*0.001) >= numPos

    numPos <= 4027/1.019

    numPos <= 3951 ~~ 3950

    and used:

    -npos 3950 -nneg 2973

    It works.

    即:num <= (numVec - numNeg)/[(numStages - 1) * (1 - minHitRate)+1]

  • 相关阅读:
    EBS中的采购单据状态及其控制
    详解EBS接口开发之采购接收&退货处理之关键API--(补充)
    数据挖掘系列
    如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧
    机器学习中的数学
    一个机器学习博客 ,包括 Standford公开课machine learning
    机器学习流行算法一览
    java se 另一博客
    java 正则
    java map
  • 原文地址:https://www.cnblogs.com/bbsno1/p/3268480.html
Copyright © 2011-2022 走看看