| | |
| | | } |
| | | if completeFormula != "" { |
| | | logger.Info("结果公式-----------:", completeFormula) |
| | | expression, err := govaluate.NewEvaluableExpression(completeFormula) |
| | | if strings.HasPrefix(completeFormula, "&&") || strings.HasPrefix(completeFormula, "||") || err != nil { |
| | | expression, err2 := govaluate.NewEvaluableExpression(completeFormula) |
| | | if strings.HasPrefix(completeFormula, "&&") || strings.HasPrefix(completeFormula, "||") || err2 != nil { |
| | | panic("规则有误,得到的数学公式不可解析") |
| | | } |
| | | result, _ := expression.Evaluate(nil) // 得到数学公式的结果 |
| | |
| | | } |
| | | am.targetNum = len(am.filterData) // 把符合条件的目标数量更新到targetNum字段 |
| | | logger.Info("过完条件后的目标数量为:",am.targetNum) |
| | | } |
| | | if am.targetNum > 0 { |
| | | logger.Info("!!!!!!!!!人脸检测成功") |
| | | return LittleRuleResult{am.sdkName, rule.RuleWithPre + "" + "true", rule.Sort} |
| | |
| | | return LittleRuleResult{} |
| | | } |
| | | } else { |
| | | return LittleRuleResult{} |
| | | } |
| | | } else { |
| | | // 处理的都是yolo数据 |
| | | if rule.PolygonId == am.areaId { // 首先这条规则得是这个算法的规则,其次规则所对应的区域id要跟区域数据的id对的上 |
| | | if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加 |