panlei
2019-07-01 88e467b44140cfd4cac253b0672cda954f7ac922
main.go
@@ -2,6 +2,7 @@
import (
   "fmt"
   "log"
   "ruleprocess/insertdata"
   "ruleprocess/ruleserver"
   "ruleprocess/util"
@@ -9,15 +10,19 @@
   "basic.com/pubsub/protomsg.git"
   "basic.com/valib/deliver.git"
   "github.com/golang/protobuf/proto"
   "sync"
)
func main() {
   wg := sync.WaitGroup{}
   wg.Add(1)
   go ruleserver.TimeTicker()
   nReciever("ipc:///tmp/sdk-2-rules-process.ipc", deliver.PushPull, 1)
   wg.Wait()
   //wg := sync.WaitGroup{}
   //wg.Add(1)
   //go ruleserver.TimeTicker()
   //nReciever("ipc:///tmp/sdk-2-rules-process.ipc", deliver.PushPull, 1)
   //wg.Wait()
   resp,err := util.DrawPolygonOnImage()
   if err != nil {
      log.Println("画框或者上传有问题")
   }
   log.Println(resp["fileUrl"].(string))
}
func nReciever(url string, m deliver.Mode, count int) {
   c := deliver.NewServer(m, url)
@@ -42,7 +47,7 @@
            arg := ruleserver.SdkDatas{}
            m := paramFormat(msg, &arg)
            fmt.Println("解析出来的数据:", arg)
            ruleserver.Judge(arg)
            ruleserver.Judge(&arg)
            // 把arg里的打的标签拿出来给m再封装一层
            resultMag := ruleserver.ResultMsg{SdkMessage: m, RuleResult: arg.RuleResult}
            //fmt.Println("打完标签后的结果:",resultMag)
@@ -79,6 +84,14 @@
      panic("解析msg时出现错误")
   }
   args.CameraId = m.Cid
   // 把图片的二进制解压缩进行画框在压缩回去
   bdata, err := util.UnCompress(m.Data)
   if err != nil {
      panic("解压缩图片时出现错误")
   }
   i := protomsg.Image{}
   err = proto.Unmarshal(bdata, &i)
   for _, sdkinfo := range m.Tasklab.Sdkinfos { // yolo算法
      if sdkinfo.Sdktype == "Yolo" {
         arg := ruleserver.SdkData{}
@@ -152,9 +165,46 @@
            continue
         }
      }
      //if sdkinfo.Sdktype == "FaceExtract" { // 人脸提取
      //}
      if sdkinfo.Sdktype == "FaceExtract" { // 人脸提取
         arg := ruleserver.SdkData{}
         arg.TaskId = m.Tasklab.Taskid
         arg.SdkId = sdkinfo.Sdkid
         arg.SdkName = sdkinfo.SdkName
         arg.IsYolo = false
         bdata, err := util.UnCompress(m.Data)
         if err != nil {
            panic("解压缩图片时出现错误")
         }
         i := protomsg.Image{}
         err = proto.Unmarshal(bdata, &i)
         arg.ImageWidth = int(i.Width)
         arg.ImageHeight = int(i.Height)
         // 暂时写死,sdk还没有这俩算法
         arg.KeepRight = false
         arg.IsStatic = false
         if len(sdkinfo.Sdkdata) > 1 {
            fmt.Println("----------------------------------------------------",m.Caddr)
            faceParam := protomsg.ParamFaceFeature{}
            err = proto.Unmarshal(sdkinfo.Sdkdata, &faceParam)
            if err != nil {
               fmt.Println("解析FACE sdk数据时出现错误", err)
               continue
            }
            for _, extComp := range faceParam.ExtComp {
               baseinfos := protomsg.Binfos{}
               err1 := proto.Unmarshal(extComp.Comp, &baseinfos)
               if err1 != nil {
                  fmt.Println("解析FACE sdk数据时出现错误", err)
                  continue
               }
               photoMap := ruleserver.PhotoMap{Rects: rectFormat(extComp.Pos.Pos.RcFace), Score: float64(extComp.Pos.Pos.Quality)*100, IsYolo:false,ThftRes:*(extComp.Pos.Result),Liker:baseinfos.Infos}
               arg.Photo = append(arg.Photo, photoMap)
            }
            args.Sdkdata = append(args.Sdkdata,&arg)
         } else {
            continue
         }
      }
   }
   return m