派生自 libgowrapper/face

zhangmeng
2020-01-15 ee1ea6dc3930a07d78c6fd7b6238fa44cde06d79
run.go
@@ -30,6 +30,8 @@
   ipc2Rule            string
   ruleMsgMaxCacheSize int
   reserved            map[string]interface{}
   stopper *common.Disturber
}
// Create create sdk
@@ -115,6 +117,8 @@
      ipc2Rule:            ipc2Rule,
      ruleMsgMaxCacheSize: ruleMaxSize,
      reserved:            reserved,
      stopper: common.NewDisturber(10),
   }
}
@@ -148,6 +152,8 @@
   go torule.Run(ctx)
   go s.run(ctx, chRcv, chSnd)
   go s.stopper.MaybeReboot(ctx, s.fnLogger)
}
//////////////////////////////////////////////////////////////////
@@ -257,9 +263,9 @@
         // conv to bgr24 and resize
         imgW, imgH := int(i.Width), int(i.Height)
         f.fnLogger("Face~~~Track")
         // f.fnLogger("Face~~~Track", dtchn)
         detect := f.handle.Track(i.Data, imgW, imgH, 3, dtchn)
         f.fnLogger("Face~~~Track Over")
         // f.fnLogger("Face~~~Track Over", dtchn)
         var faces []*protomsg.ResultFaceDetect
@@ -267,25 +273,25 @@
         for _, d := range detect {
            //运行sd
            f.fnLogger("Face~~~FaceInfo2FacePos")
            // f.fnLogger("Face~~~FaceInfo2FacePos", dtchn)
            dec := FaceInfo2FacePos(d)
            f.fnLogger("Face~~~FaceInfo2FacePos over")
            // f.fnLogger("Face~~~FaceInfo2FacePos over", dtchn)
            f.fnLogger("Face~~~Propertize")
            // f.fnLogger("Face~~~Propertize", dtchn)
            prop := f.handle.Propertize(dec, i.Data, imgW, imgH, 3, dtchn)
            f.fnLogger("Face~~~Propertize Over")
            // f.fnLogger("Face~~~Propertize Over", dtchn)
            f.fnLogger("Face~~~Extract")
            f.fnLogger("Face~~~Extract", dtchn)
            feat := f.handle.Extract(dec, i.Data, imgW, imgH, 3, dtchn)
            f.fnLogger("Face~~~Extract Over")
            f.fnLogger("Face~~~Extract Over", dtchn)
            f.fnLogger("Face~~~protomsg.ThftResult")
            // f.fnLogger("Face~~~protomsg.ThftResult", dtchn)
            resP := (*protomsg.ThftResult)(unsafe.Pointer(&prop))
            f.fnLogger("Face~~~protomsg.ThftResult Over")
            // f.fnLogger("Face~~~protomsg.ThftResult Over", dtchn)
            f.fnLogger("Face~~~tconvert2ProtoFacePos")
            // f.fnLogger("Face~~~tconvert2ProtoFacePos", dtchn)
            result := tconvert2ProtoFacePos(d)
            f.fnLogger("Face~~~tconvert2ProtoFacePos Over")
            // f.fnLogger("Face~~~tconvert2ProtoFacePos Over", dtchn)
            //组成结果并序列化
            res := &protomsg.ResultFaceDetect{Pos: result, Result: resP, Feats: feat}
@@ -307,9 +313,10 @@
            }
         }
         f.fnLogger("Face~~~EjectResult")
         // f.fnLogger("Face~~~EjectResult", dtchn)
         common.EjectResult(data, rMsg, out)
         f.fnLogger("Face~~~EjectResult Over")
         // f.fnLogger("Face~~~EjectResult Over", dtchn)
         f.stopper.Prevent()
         var id, name string
         if rMsg.Msg.Tasklab != nil {