panlei
2019-11-16 9c8bcb851f82123660c7b05b00a526c4283ba4cf
接收车牌数据,修改目标结构
4个文件已修改
49 ■■■■■ 已修改文件
go.mod 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.sum 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.go 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
structure/rule.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
go.mod
@@ -6,7 +6,7 @@
    basic.com/dbapi.git v0.0.0-20191025084729-a04db890e7b5
    basic.com/fileserver/WeedFSClient.git v0.0.0-20191105073656-98059e699477
    basic.com/pubsub/cache.git v0.0.0-20190718093725-6a413e1d7d48
    basic.com/pubsub/protomsg.git v0.0.0-20191105082616-7a5fc5da9c09
    basic.com/pubsub/protomsg.git v0.0.0-20191115030536-80cf78e0ebea
    basic.com/valib/deliver.git v0.0.0-20190927081905-2d390df9ede3
    basic.com/valib/gopherdiscovery.git v0.0.0-20190605034340-15d89d8b4e28
    basic.com/valib/logger.git v0.0.0-20190928113028-4907b08c4159
go.sum
@@ -14,6 +14,8 @@
basic.com/pubsub/protomsg.git v0.0.0-20191105075705-11a3749018a7/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
basic.com/pubsub/protomsg.git v0.0.0-20191105082616-7a5fc5da9c09 h1:wktnrfZLxcSEnmu/ptMdn4GF5UiHcUdRSlWQ0EllJxY=
basic.com/pubsub/protomsg.git v0.0.0-20191105082616-7a5fc5da9c09/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
basic.com/pubsub/protomsg.git v0.0.0-20191115030536-80cf78e0ebea h1:HARRdW2p9asDLBMmJWpt1ECv3GDGCJN5ELb/RhCXUqQ=
basic.com/pubsub/protomsg.git v0.0.0-20191115030536-80cf78e0ebea/go.mod h1:un5NV5VWQoblVLZfx1Rt5vyLgwR0jI92d3VJhfrJhWU=
basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00 h1:sK+Tx7rvM9J2WnNIwrzMDjZSylWiKNfQO0prUBfKsDk=
basic.com/pubsub/sdkcompare.git v0.0.0-20190715013640-f536a4647d00/go.mod h1:8by33F9E1w17Pw/rDgJGJXAo122w0wDENG14hiMS+RE=
basic.com/valib/deliver.git v0.0.0-20190531095353-25d8c3b20051 h1:9flC2o3kasaM2Y6I+mY+mxmve/pyAY/UzGQZLT3lFHM=
main.go
@@ -159,17 +159,8 @@
            arg.TaskId = m.Tasklab.Taskid
            arg.IpcId = sdkinfo.Ipcid
            arg.IsYolo = true
            //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
            logger.Info("-----追踪之后sdkinfo.Sdkdata的长度为:----", len(sdkinfo.Sdkdata))
            if len(sdkinfo.Sdkdata) > 1 {
                // 大于1才有数据
@@ -200,17 +191,8 @@
            arg.TaskId = m.Tasklab.Taskid
            arg.IpcId = sdkinfo.Ipcid
            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 {
                faceParam := protomsg.ParamFacePos{}
                err = proto.Unmarshal(sdkinfo.Sdkdata, &faceParam)
@@ -229,6 +211,30 @@
                continue
            }
        }
        if sdkinfo.Sdktype == "Plate" { // 车牌识别
            arg := structure.SdkData{}
            arg.TaskId = m.Tasklab.Taskid
            arg.IpcId = sdkinfo.Ipcid
            arg.IsYolo = false
            arg.ImageWidth = int(i.Width)
            arg.ImageHeight = int(i.Height)
            if len(sdkinfo.Sdkdata) > 1 {
                plateIDResult  := protomsg.PlateIDResult {}
                err = proto.Unmarshal(sdkinfo.Sdkdata, &plateIDResult )
                if err != nil {
                    logger.Info("解析车牌数据时出现错误", err)
                    continue
                }
                for _, info := range plateIDResult.Result {
                    logger.Info("接收车牌数据:",)
                    photoMap := structure.PhotoMap{Rects: rectFormat(info.RcLocation), IsYolo: false, Car:info}
                    arg.Photo = append(arg.Photo, photoMap)
                }
                args.Sdkdata = append(args.Sdkdata, &arg)
            } else {
                continue
            }
        }
    }
    return m
}
structure/rule.go
@@ -48,6 +48,7 @@
    IsYolo  bool    // 是否是yolo数据
    ThftRes protomsg.ThftResult
    Feature []byte
    Car        *protomsg.PlateID
}
// 每个算法对于当前帧画面自己提取的数据
@@ -56,8 +57,6 @@
    IpcId       string
    IsYolo      bool
    Photo       []PhotoMap // yolo算法结构,也可以存人脸的数据,毕竟人脸中能用规则来测的还是那些参数
    KeepRight   bool       // 是否靠右行 算法判断的与上一帧图像的比较结果
    IsStatic    bool       // 是否静止
    ImageWidth  int        // 摄像机拍摄的图像宽 像素
    ImageHeight int        // 摄像机拍摄的图像高 像素
    AreaMapList []*AreaMap // 本sdk提取的数据按照区域划分后的数据集合