TSINGSEE青犀视频行人检测后端代码出现保存json数据错误的处理

本文主要是介绍TSINGSEE青犀视频行人检测后端代码出现保存json数据错误的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家知道前段时间我们在某景区内进行了行人检测功能的测试,同时也将这一功能和景区的票务系统进行了对接。当我们将行人分析的结果和景区票务系统的数据进行对比时,后端代码出现保存的json数据错误。Json数据错误是:第一个“Persons”的字段为0(就是人数为0),不应该“ChangeValueArr”有值;而“ChangeValueArr”的数组中有很多要替换的视频源信息(需要替换的人数)。

image.png

首先使用搜索,找出“ChangeValueArr”添加的字段。以下代码是查找的数据库想匹配的代码,并添加到“ChangeValueArr”。

value := ChangeTimeValue{StartTime: sql.StartTimestamp - DifTime,EndTime: sql.EndTimestamp - DifTime,StartTimeStr: MsToTimeStr(sql.StartTimestamp),EndTimeStr: MsToTimeStr(sql.EndTimestamp),Persons: p,Filename: "",Duration: sql.EndTimestamp - sql.StartTimestamp,IsLive: false,
}
if p == 0 || v.Persons == 0 {MismatchTimeValueArr[index].IsSuccess = truelog.Println("票务系统为0人")
} else if p < v.Persons { //作为拼接SnapDataArr = append(SnapDataArr, value)
} else if p >= v.Persons && p <= (v.Persons + 100) {//成功找到符合条件log.Println("ChangeValueArr = append1")MismatchTimeValueArr[index].ChangeValueArr = append(MismatchTimeValueArr[index].ChangeValueArr, value)
}

以下代码是查找文件,并添加到“ChangeValueArr”字段:

if (hour - 2) >= h && (hour + 2) <= h{ // 符合小时的时间value := ChangeTimeValue{StartTime: -1,EndTime: -1,StartTimeStr: "-1",EndTimeStr: "-1",Persons: p,Filename: fmt.Sprintf("%s/%s", currDir, name),Duration: s * 1000,IsLive: false,}if p < v.Persons { //作为拼接SnapDataArr = append(SnapDataArr, value)} else if p <= v.Persons && p <= (v.Persons + 100) { //符合条件log.Println("ChangeValueArr = append2")MismatchTimeValueArr[index].ChangeValueArr = append(MismatchTimeValueArr[index].ChangeValueArr, value)} else {log.Println("检查的人数比实际大的多")}
}

以下代码的作用是把所有人数不匹配的视频源单独保存,达到用于拼接人数与票务系统所匹配的目的。

sort.SliceStable(SnapArr, func(i, j int) bool { //从小往大,排序return SnapArr[i].Persons < SnapArr[j].Persons
})
indexPerson:=len(SnapArr) - 1log.Println("ChangeValueArr = append3")
MismatchTimeValueArr[index].ChangeValueArr = append(MismatchTimeValueArr[index].ChangeValueArr, SnapArr[indexPerson])
SnapArr = append(SnapArr[:indexPerson], SnapArr[indexPerson+1:]...) //删除已经push进去的数据

检查的人数如果是不匹配的票务系统,那就把一个字段给”IsSuccess”改为false,true是代表不需要添加替换的视频源。

所以拼接完成的视频源是要把“IsSuccess”改为true,就说明视频源完成。这样“ChangeValueArr”里面就不会有值,代码逻辑才对。

image.png

这篇关于TSINGSEE青犀视频行人检测后端代码出现保存json数据错误的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/930625

相关文章

Python实现批量CSV转Excel的高性能处理方案

《Python实现批量CSV转Excel的高性能处理方案》在日常办公中,我们经常需要将CSV格式的数据转换为Excel文件,本文将介绍一个基于Python的高性能解决方案,感兴趣的小伙伴可以跟随小编一... 目录一、场景需求二、技术方案三、核心代码四、批量处理方案五、性能优化六、使用示例完整代码七、小结一、

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

MyBatis-plus处理存储json数据过程

《MyBatis-plus处理存储json数据过程》文章介绍MyBatis-Plus3.4.21处理对象与集合的差异:对象可用内置Handler配合autoResultMap,集合需自定义处理器继承F... 目录1、如果是对象2、如果需要转换的是List集合总结对象和集合分两种情况处理,目前我用的MP的版本

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的