From 300791a58cb2034fc779b74203d7e4ca5acba4d3 Mon Sep 17 00:00:00 2001
From: panlei <2799247126@qq.com>
Date: 星期一, 09 十二月 2019 15:45:15 +0800
Subject: [PATCH] ---
---
algorithm/personTrack/personTrack.go | 64 +++++++++++++++++--------------
1 files changed, 35 insertions(+), 29 deletions(-)
diff --git a/algorithm/personTrack/personTrack.go b/algorithm/personTrack/personTrack.go
index 3961c0e..25f9965 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"
@@ -94,18 +96,25 @@
// 缁欑洰鏍囧~鍏卨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
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,18 +122,20 @@
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:]...)
- }
+ //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(){
@@ -132,39 +143,34 @@
var msg []byte
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)
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())
+ logger.Error("璇锋眰socket鎷ㄥ彿澶辫触: %s", err.Error())
}
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