From f8cce714704b5ad6f25f5551ecafb97763258dc3 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期五, 13 十二月 2019 18:21:28 +0800
Subject: [PATCH] 放开人脸
---
algorithm/personTrack/personTrack.go | 76 +++++++++++++++++++++-----------------
1 files changed, 42 insertions(+), 34 deletions(-)
diff --git a/algorithm/personTrack/personTrack.go b/algorithm/personTrack/personTrack.go
index 3961c0e..9b7d58d 100644
--- a/algorithm/personTrack/personTrack.go
+++ b/algorithm/personTrack/personTrack.go
@@ -3,14 +3,16 @@
import (
"encoding/json"
"errors"
+ uuid "github.com/satori/go.uuid"
"net"
"strconv"
+ "time"
"nanomsg.org/go-mangos"
"nanomsg.org/go-mangos/protocol/req"
"nanomsg.org/go-mangos/transport/tcp"
"github.com/knetic/govaluate"
- logger "github.com/alecthomas/log4go"
+ "basic.com/valib/logger.git"
"basic.com/pubsub/protomsg.git"
"ruleprocess/structure"
@@ -33,7 +35,7 @@
//logger.Debug("---------璧颁簡浜哄憳寮傚父绠楁硶", rule.Id, rule.SdkArgAlias, rule.Operator, rule.SdkArgValue, am.AreaId)
if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" || rule.SdkArgAlias == "" { // 鍒ゆ柇鐨勬槸鐩镐技鍊硷紝鍗犳瘮锛屽昂瀵哥瓑杩囨护鏉′欢锛屽鏋滃啀鏈夛紝杩樺彲浠ュ啀鍔�
return filterRule(rule, am)
- } else if rule.SdkArgAlias == "threshold"{
+ } else if rule.SdkArgAlias == "cmpThreshold"{
return track(rule,am)
}
return structure.LittleRuleResult{}
@@ -94,18 +96,26 @@
// 缁欑洰鏍囧~鍏卨iker
func fillLiker(compareThreshold float32,arg *structure.Arg,am *structure.AreaMap) {
trackArg := make(map[string]interface{})
- trackArg["esId"] = ""
+ esId := uuid.NewV4().String()
+ trackArg["esId"] = esId
+ trackArg["threshold"] = compareThreshold
trackArg["cameraId"] = am.CameraId
trackArg["bodyFeature"] = arg.Feature
trackArg["faceFeature"] = arg.AttachArg.Feature
+ logger.Info("璇锋眰寮犲椋炴瘮瀵规暟鎹弬鏁帮細",trackArg)
b,err := json.Marshal(trackArg)
if err != nil {
- _ = logger.Error("json搴忓垪鍖栭敊璇�", err)
+ logger.Error("json搴忓垪鍖栭敊璇�", err)
}
- esId := getCompareMsg(b)
- logger.Info("姣斿鍑烘潵鐨別sid:",esId)
- base := structure.BaseInfo{TargetId:esId}
- arg.Liker = append(arg.Liker, &base)
+ dataId := getCompareMsg(b)
+ if esId == dataId { // 璇存槑娌℃瘮鍒扮浉浼肩殑浜�
+ logger.Info("娌℃瘮鍒颁汉")
+ arg.Uuid = dataId
+ } else {
+ logger.Info("姣斿鍑烘潵鐨刣ataId:",dataId)
+ base := structure.BaseInfo{TargetId:dataId}
+ arg.Liker = append(arg.Liker, &base)
+ }
}
func track (rule *protomsg.Rule,am *structure.AreaMap) structure.LittleRuleResult{
@@ -113,58 +123,56 @@
if th,err := strconv.ParseFloat(rule.SdkArgValue,32); err == nil {
threshold = float32(th)
}
- for i, arg := range am.FilterData {
+ for _, arg := range am.FilterData {
fillLiker(threshold,arg,am)
- if len(arg.Liker) == 0 {
- // 濡傛灉娌℃湁鐩镐技鑰呭垯鍒犻櫎鏈洰鏍囨暟鎹�
- am.FilterData = append(am.FilterData[:i],am.FilterData[i+1:]...)
- }
+ logger.Info("姣斿畬涔嬪悗鐨勬暟鎹拷韪暟鎹槸锛�",arg)
+ //if len(arg.Liker) == 0 {
+ // // 濡傛灉娌℃湁鐩镐技鑰呭垯鍒犻櫎鏈洰鏍囨暟鎹�
+ // am.FilterData = append(am.FilterData[:i],am.FilterData[i+1:]...)
+ //}
}
- if len(am.FilterData) > 0 {
- return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
- } else {
- return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
- }
+ //if len(am.FilterData) > 0 {
+ // return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
+ //} else {
+ // return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "false", rule.Sort}
+ //}
+ // 鏃犺鏈夋病鏈夌浉浼艰�呴兘瑕佽繑鍥瀟rue
+ return structure.LittleRuleResult{am.SdkName, rule.RuleWithPre + "" + "true", rule.Sort}
}
func Push(){
var err error
var msg []byte
-
+ logger.Info("杩借釜璇锋眰閫氶亾寤虹珛")
if sock, err = req.NewSocket(); err != nil {
- _ = logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error())
+ logger.Error("鍒涘缓璇锋眰socket澶辫触: %s", err.Error())
}
- errSize := sock.SetOption(mangos.OptionMaxRecvSize,5*1024*1024)
+ errSize := sock.SetOption(mangos.OptionMaxRecvSize,20*1024*1024)
if errSize != nil {
- _ = logger.Error("Failed set MaxRecvSize: %v", err)
+ logger.Error("Failed set MaxRecvSize: %v", err)
}
//sock.AddTransport(ipc.NewTransport())
sock.AddTransport(tcp.NewTransport())
serverIP, _ := GetLocalIP()
- if err = sock.Dial("tcp://"+serverIP+":4010"); err != nil {
- _ = logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error())
+ if err = sock.Dial("tcp://"+serverIP+":4012"); err != nil {
+ logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error())
}
- logger.Info("搴忓垪鍖栨暟鎹�")
+ //logger.Info("搴忓垪鍖栨暟鎹�")
initFlag = true
for {
select {
- // case <-ctx.Done():
- // return
case data := <- sender:
-
- logger.Info("鏁版嵁闀垮害涓猴細",len(data))
-
- logger.Debug("鎺ㄩ�佹暟鎹�")
+ logger.Debug("鎺ㄩ�佹暟鎹�:",len(data))
if err = sock.Send(data); err != nil {
- _ = logger.Error("鎺ㄩ�乻ocket鍙戦�佹暟鎹け璐�: %s", err.Error())
+ logger.Error("鎺ㄩ�乻ocket鍙戦�佹暟鎹け璐�: %s", err.Error())
}
if msg, err = sock.Recv(); err != nil {
- _ = logger.Error("鎺ユ敹鍝嶅簲澶辫触: %s", err.Error())
+ logger.Error("鎺ユ敹鍝嶅簲澶辫触: %s", err.Error())
}
logger.Debug("鏁版嵁鎺ㄩ�佹垚鍔燂紒鏀跺埌鍝嶅簲,鏁版嵁闀垮害涓猴細",len(msg))
receiver <- string(msg)
default:
-
+ time.Sleep(time.Millisecond * 10)
}
}
}
--
Gitblit v1.8.0