sunty
2019-08-01 f79f18bf3e65ad0eaf8fd1feb788bf792e362520
Merge remote-tracking branch 'origin/master'
2个文件已修改
65 ■■■■■ 已修改文件
controllers/fileController.go 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/FaceCompareService.go 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/fileController.go
@@ -17,6 +17,7 @@
    "mime/multipart"
    "net/http"
    "path"
    "sort"
    "strconv"
    "strings"
    "time"
@@ -181,9 +182,22 @@
    TableName string `json:"tableName"`
}
type CompareSortResult []CompareResult
func (s CompareSortResult) Len() int{
    return len(s)
}
func (s CompareSortResult) Swap(i,j int){
    s[i],s[j] = s[j],s[i]
}
func (s CompareSortResult) Less(i,j int) bool{
    return s[i].CompareScore > s[j].CompareScore
}
//填充向前端返回的数据
func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) []CompareResult {
    resultList :=make([]CompareResult,0)
func FillDataToCompareResult(compResult *protomsg.SdkCompareResult) CompareSortResult {
    //resultList :=make([]CompareResult,0)
    var resultList = CompareSortResult{}
    dbPersonM := make(map[string]*protomsg.SdkCompareEach, 0)
    captureM := make(map[string]*protomsg.SdkCompareEach, 0)
@@ -273,6 +287,7 @@
            resultList = append(resultList,vpE)
        }
    }
    sort.Sort(resultList)
    return  resultList
}
@@ -365,12 +380,23 @@
        compareService := service.NewFaceCompareService(arg)
        compareOnce := compareService.Compare()
        totalData := compareOnce.CompareData
        logger.Debug("comp 比对结束,用时:",time.Since(timeStart))
        m := make(map[string]interface{},3)
        if totalData!=nil && len(*totalData)>0{
        if totalData != nil && totalData.Len() > 0{
            //按分值排序
            service.SortByScore(totalData)
            total := len(*totalData)
            var scorePre []float32
            for _,f1 :=range *totalData {
                scorePre = append(scorePre, f1.CompareScore)
            }
            //logger.Debug("comp 排序前分值数组:",scorePre)
            sort.Sort(totalData)
            var scoreAf []float32
            for _,f2 :=range *totalData {
                scoreAf = append(scoreAf, f2.CompareScore)
            }
            //logger.Debug("comp 排序后分值数组:",scoreAf)
            total := totalData.Len()
            m["compareNum"] = compareOnce.CompareNum
            m["total"] = total
service/FaceCompareService.go
@@ -8,7 +8,6 @@
    "nanomsg.org/go-mangos/protocol/req"
    "nanomsg.org/go-mangos/transport/ipc"
    "nanomsg.org/go-mangos/transport/tcp"
    "sort"
    "sync"
    "webserver/extend/config"
    "webserver/extend/logger"
@@ -28,28 +27,19 @@
type CompareOnce struct {
    CompareNum string `json:"compareOnce"`
    CompareData *[]*protomsg.SdkCompareEach `json:"compareData"`
    CompareData *CompareList `json:"compareData"`
}
type CompareResultWrapper struct {
    CompareData *[]*protomsg.SdkCompareEach
    By func(p,q *protomsg.SdkCompareEach) bool
}
type CompareList []*protomsg.SdkCompareEach
func (crw CompareResultWrapper) Len()int {
    return len(*crw.CompareData)
func (s CompareList) Len()int {
    return len(s)
}
func (crw CompareResultWrapper) Swap(i,j int) {
    (*crw.CompareData)[i],(*crw.CompareData)[j] = (*crw.CompareData)[j],(*crw.CompareData)[i]
func (s CompareList) Swap(i,j int) {
    s[i],s[j] = s[j],s[i]
}
func (crw CompareResultWrapper) Less(i,j int) bool{
    return crw.By((*crw.CompareData)[i],(*crw.CompareData)[j])
}
func SortByScore(list *[]*protomsg.SdkCompareEach) {
    sort.Sort(CompareResultWrapper{list, func(p, q *protomsg.SdkCompareEach) bool {
        return q.CompareScore < p.CompareScore //递减排序
    }})
func (s CompareList) Less(i,j int) bool{//降序排序
    return s[i].CompareScore > s[j].CompareScore
}
var compResultHisM = make(map[string]*CompareOnce,0)
@@ -78,7 +68,8 @@
    compServerList := config.CompServerInfo.Url
    logger.Debug("compServerList:", compServerList)
    //1.向各个compare进程发起请求拿到比对结果
    resultList :=make([]*protomsg.SdkCompareEach,0)
    var resultList CompareList
    //resultList :=make([]*protomsg.SdkCompareEach,0)
    for _,str :=range compServerList{
        reqUrl := "tcp://"+str
        resultB := doCompareRequest(reqUrl,b)