关系经济人类预测化学自然
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产

基于人形检测的划区域客流统计

11月15日 观潮阁投稿
  本文分享自华为云社区《客流分析之基于人形检测的划区域客流统计》,作者:HiLensfeige。原文详情:https:bbs。huaweicloud。comblogs393387?utmsourcejinritoutiaoutmmediumbbsexutmcampaigneiutmcontentcontent
  在智慧园区、智慧门店等商业场景中,划区域的客流统计是一类常见的AI应用,本文介绍基于人形检测的划区域客流统计:采用人形框检测行人并进行跟踪,若人形框中心点位于事先划定的区域中,增加客流计数;区域内外的人形将使用不同颜色的框表示,画面中也会实时显示客流数量。准备工作
  本文将使用华为云ModelArts进行人形检测模型的训练,并使用ModelBox框架进行应用开发,使用前开发者需要完成如下准备工作:参考此教程(https:developer。huaweicloud。comdevelopaigalleryarticledetail?id4702c210092b4e60a3dbdf9b4ec4e5f5)完成设备的注册;参考此教程(https:developer。huaweicloud。comdevelopaigalleryarticledetail?ide314c856d1694f4ba19d94e4c70515cd)完成ModelBoxSDK的安装。技能开发
  这个应用对应的ModelBox版本已经做成模板放在华为云OBS中,可以用sdk中的solution。bat工具下载,接下来我们给出该应用在ModelBox中的完整开发过程:1)下载模板
  执行。solution。batl可看到当前公开的技能模板:PS。solution。batl。。。Solutionsname:maskdetyolo3。。。passengerflowpersondetyolo7
  结果中的passengerflowpersondetyolo7即为基于人形检测的划区域客流统计应用模板,可使用如下命令下载模板:PS。solution。batspassengerflowpersondetyolo7。。。
  solution。bat工具的参数中,l代表list,即列出当前已有的模板名称;s代表solutionname,即下载对应名称的模板。下载下来的模板资源,将存放在ModelBox核心库的solution目录下。2)创建工程
  在ModelBoxsdk目录下使用create。bat创建passengerflowcount工程PS。create。battservernpassengerflowcountspassengerflowpersondetyolo7sdkversionismodelboxxxxsuccess:createpassengerflowcountinmodelboxworkspace
  create。bat工具的参数中,t表示创建事务的类别,包括工程(server)、Python功能单元(Python)、推理功能单元(infer)等;n代表name,即创建事务的名称;s代表solutionname,表示将使用后面参数值代表的模板创建工程,而不是创建空的工程。
  workspace目录下将创建出passengerflowcount工程,工程内容如下所示:passengerflowcountbinmain。bat:应用执行入口mocktask。toml:应用在本地执行时的输入输出配置,此应用默认使用本地视频文件为输入源,最终结果输出到另一本地视频文件,可根据需要修改CMake:存放一些自定义CMake函数data:存放应用运行所需要的图片、视频、文本、配置等数据passengerflow。mp4:客流统计测试用视频文件simsun。ttc:中文字体库dependencemodelboxrequirements。txt:应用运行依赖的外部库在此文件定义,本应用依赖pillow、lap、scipy等工具包etcflowunit:应用所需的功能单元存放在此目录cpp:存放C功能单元编译后的动态链接库,此应用没有C功能单元drawpassengerbbox:客流画图功能单元objecttracker:目标跟踪功能单元yolov7post:人形检测使用的是YOLO7模型,此处即为后处理功能单元flowunitcpp:存放C功能单元的源代码,此应用没有C功能单元graph:存放流程图passengerflowcount。toml:默认流程图,使用本地视频文件作为输入源modelbox。conf:modelbox相关配置hilensdatadir:存放应用输出的结果文件、ahrefhttps:www。bs178。comrizhitargetblankclassinfotextkey日志a、性能统计信息model:推理功能单元目录persondet:人形检测推理功能单元persondet。toml:人形检测推理功能单元的配置文件persondet。onnx:人形检测onnx模型buildproject。sh:应用构建脚本CMakeLists。txtrpm:打包rpm时生成的目录,将存放rpm包所需数据rpmcopyothers。sh:rpm打包时的辅助脚本3)查看流程图
  passengerflowcount工程graph目录下存放流程图,默认的流程图passengerflowcount。toml与工程同名,其内容为(以Windows版ModelBox为例):〔driver〕功能单元的扫描路径,包含在〔〕中,多个路径使用,分隔{HILENSAPPROOT}表示当前应用的实际路径{HILENSMBSDKPATH}表示ModelBox核心库的实际路径dir〔{HILENSAPPROOT}etcflowunit,{HILENSAPPROOT}etcflowunitcpp,{HILENSAPPROOT}model,{HILENSMBSDKPATH}flowunit,〕skipdefaulttrue〔profile〕通过配置profile和trace开关启用应用的性能统计profilefalse是否记录profile信息,每隔60s记录一次统计信息tracefalse是否记录trace信息,在任务执行过程中和结束时,输出统计信息dir{HILENSDATADIR}mbprofileprofiletrace信息的保存位置〔flow〕descpassengerdetectionusingpersondetectionwithyolov7forlocalvideoorrtspvideostream应用的简单描述〔graph〕formatgraphviz流程图的格式,当前仅支持graphvizgraphconfdigraphpassengerflowcount{node〔shapeMrecord〕queuesize4batchsize1定义节点,即功能单元及其属性input1〔typeinput,flowunitinput,devicecpu,deviceid0〕datasourceparser〔typeflowunit,flowunitdatasourceparser,devicecpu,deviceid0〕videodemuxer〔typeflowunit,flowunitvideodemuxer,devicecpu,deviceid0〕videodecoder〔typeflowunit,flowunitvideodecoder,devicecpu,deviceid0,pixfmtrgb〕resize〔typeflowunitflowunitresizedevicecpudeviceid0imagewidth416,imageheight320〕colortranspose〔typeflowunitflowunitpackedplanartransposedevicecpudeviceid0〕normalize〔typeflowunitflowunitnormalizedevicecpudeviceid0standarddeviationinverse0。003921568,0。003921568,0。003921568〕persondet〔typeflowunitflowunitpersondetdevicecpudeviceid0〕yolov7post〔typeflowunitflowunityolov7postdevicecpudeviceid0〕objecttracker〔typeflowunit,flowunitobjecttracker,devicecpu,deviceid0〕drawpassengerbbox〔typeflowunit,flowunitdrawpassengerbbox,devicecpu,deviceid0〕videoout〔typeflowunitflowunitvideooutdevicecpudeviceid0〕定义边,即功能间的数据传递关系input1:inputdatasourceparser:indatadatasourceparser:outvideourlvideodemuxer:invideourlvideodemuxer:outvideopacketvideodecoder:invideopacketvideodecoder:outvideoframeresize:inimageresize:outimagecolortranspose:inimagecolortranspose:outimagenormalize:indatanormalize:outdatapersondet:inputpersondet:outputyolov7post:infeatyolov7post:outdataobjecttracker:inbboxobjecttracker:outtrackdrawpassengerbbox:intrackvideodecoder:outvideoframedrawpassengerbbox:inimagedrawpassengerbbox:outimagevideoout:invideoframe}
  整个应用逻辑比较简单,视频解码后做图像预处理,接着是人形检测,模型后处理得到人形框,送入跟踪算法进行实时跟踪与区域内外判断,最后将跟踪信息画到图像输出到视频中。4)核心逻辑
  本应用的核心逻辑是跟踪与区域判断,跟踪逻辑在objecttracker功能单元中,使用的是JDE(TowardsRealTimeMultiObjectTracking)算法,算法介绍可参考论文,本应用使用的是简化版本,未使用人形reid特征值做匹配。
  区域判断在drawpassengerbbox功能单元drawpassengerbbox。py的drawtrackingobject函数中:defdrawtrackingobject(self,imgdata,trackingobjects):在图中画出跟踪对象的检测框和过线的行人数据thickness2GRAY(117,117,117)GREEN(0,255,0)YELLO(255,255,0)画出区域边界线cv2。polylines(imgdata,〔self。area〕,True,YELLO,3)flowcount0fortrackintrackingobjects:人形框的中心点cxint((track〔bbox〕〔0〕track〔bbox〕〔2〕)2)cyint((track〔bbox〕〔1〕track〔bbox〕〔3〕)2)判断人形框的中心点是否在区域内flagcv2。pointPolygonTest(self。area,(cx,cy),False)ifflag0:区域内人形框用绿色,同时客流计数增加flowcount1cv2。rectangle(imgdata,(track〔bbox〕〔0〕,track〔bbox〕〔1〕),(track〔bbox〕〔2〕,track〔bbox〕〔3〕),GREEN,2)else:区域内人形框用灰色cv2。rectangle(imgdata,(track〔bbox〕〔0〕,track〔bbox〕〔1〕),(track〔bbox〕〔2〕,track〔bbox〕〔3〕),GRAY,thickness)左上角显示实时的客流数量imgdataself。putchitext(imgdata,客流计数:dflowcount,(50,20),YELLO,50)returnimgdata
  可以看到,我们使用了OpenCV的pointPolygonTest函数判断点与区域的位置关系。其中区域参数配置在drawpassengerbbox。toml文件中,配置的是划定区域的4个顶点坐标,围成一个封闭的四边形:。。。自定义的配置项〔config〕area〔0,325,1280,25,1280,360,0,720〕客流统计的划定区域。。。5)模型训练
  本应用中包含模型推理部分,ModelBox内置了主流的推理引擎,如TensorFlow,TensorRT,LibTorch,AscendACL,MindSpore,以及Windows版本中所用的ONNXRuntime。在开发推理功能单元时,只需要准备模型文件,并配置对应的toml文件,即可完成推理功能单元的开发,无需掌握推理引擎的开发接口。
  passengerflowpersondetyolo7模板中内置了人形检测模型,这个模型基于yolov7与yolov5lite,训练数据集用的是开源的CUHKSYSU,在ModelArts的Notebook环境中训练后,再转换成对应平台的模型格式:onnx格式可以用在Windows设备上,RK系列设备上需要转换为rknn格式。
  模型的训练与转换教程已经开放在AIGallery中,其中包含训练数据、训练代码、模型转换脚本,以及详细的指导文档。开发者如果希望尝试自己训练模型,或者对模板中提供的模型效果不满意,可以进入【ModelBox】行人检测模型训练页面,点击右上角的RuninModelArts按钮,跟随教程一步步操作,也可以修改其中的代码、更换新的数据集训练出自己的模型。
  6)三方依赖库
  本应用中的画图功能单元依赖pillow工具包以实现中文输出,ModelBox应用不需要手动安装三方依赖库,只需要配置在dependencemodelboxrequirements。txt,应用在编译时会自动安装。另外,中文输出还需要对应的字体库,存放在data目录下,画图功能单元初始化时将从此目录加载资源。7)查看输入输出配置
  查看任务配置文件binmocktask。toml,可以看到其中的任务输入和任务输出配置为如下内容::〔input〕typeurlurl{HILENSAPPROOT}datapassengerflow。mp4表示输入源为本地视频文件〔output〕typelocalurl{HILENSAPPROOT}hilensdatadirpassengerflowresult。mp4表示输出为本地视频文件
  即,使用本地视频文件datapassengerflow。mp4作为输入,统计过线客流后,画图输出到本地视频文件datapassengerflowresult。mp4中。8)用启动脚本执行应用
  启动应用前执行。buildproject。sh进行工程构建,该脚本将编译自定义的C功能单元(本应用不涉及)、将应用运行时会用到的配置文件转码为Unix格式(防止执行过程中的格式错误)、安装第三方依赖库:PS。buildproject。sh。。。PS
  然后执行。binmain。bat运行应用:PS。binmain。bat。。。
  运行结束后在hilensdatadir目录下生成了passengerflowresult。mp4文件,可以打开查看:
  可以看到,黄色线段包围的即客流统计的区域,区域外人使用灰色框标记,区域内的使用绿色框,画面左上角实时显示总的过线客流数量。3。小结
  通过本教程,我们学习了一类客流统计应用区域内客流统计,通常用于室外安防,或室内客流热力图,经过简单改造还可以实现区域入侵检测、人员在离岗检测等应用。
  关注华为云开发者联盟,第一时间了解华为云新鲜技术
搜索 投诉 评论 转载

李宗伟近照骨瘦如柴41岁像60多岁的大爷,仍然生了第三个儿子退役后的李宗伟真幸福,年前又生下了一个儿子,这已经是他的第三个儿子了!只见李宗伟骨瘦如柴,面黄肌瘦特别显老,像60多岁的大爷,其实他是1982年的,也才41岁。这么……机动战队漂流者势力解析,能够消灭裂隙兽的关键因素浮出水面机动战队手游中设定的漂流者势力,似乎大家对其的讨论不太多。但是,这个设定为高科技树的种族,还有封印的神秘力量,这些都是文案策划给玩家埋下的伏笔。机动战队的玩家都知道,像这种次元……海水是哪里来的?每分钟就有20颗彗星给地球带来100吨水地球上的海水到底是从哪里来的?茫茫大海,碧波荡漾,神秘而迷人,这些海水到底是从哪里来的?广袤的海洋占据了地球表面的四分之三,而地球上96。53的水都是海水。可以看出……日本赛区DFM战队首个在S赛取得BO5胜利,接下来要战胜中国2022全球总决赛入围赛阶段第五日淘汰赛上,DFM战胜LLL晋级下一轮BO5。这也是DFM四次征战世界赛,获得的首个BO5胜利。DFM曾在2018年杀入世界赛入围赛……云梦春暖花开一步一景湖北日报客户端讯(通讯员吴丽君金文华)春天来了,百花齐放争奇斗艳,那姹紫嫣红的花儿总是笑得比太阳还灿烂。你瞧,在云梦县道路两旁、公园里,白色的、粉红色的花儿,一团团,一簇……一款吃了就会上瘾的饼干布列塔尼布列塔尼酥饼法语中称为LePaltBreton,又叫格雷特酥饼是一道非常地道和美味的法式饼干在法国是高人气的甜点伴手礼布列塔尼Brittany……基于人形检测的划区域客流统计本文分享自华为云社区《客流分析之基于人形检测的划区域客流统计》,作者:HiLensfeige。原文详情:https:bbs。huaweicloud。comblogs393387……老二为什么比老大更聪明?一位二胎妈妈告诉你为什么(太真实了)二胎家长圈一直流行着老大照书养,老二照猪养的说法可养来养去,却发现:照书养的老大养成了地主家的傻儿子而照猪养的老二却是人小鬼大,精明得……苹果iCamera曝光像极了iPhone13ProMax,还如果提到拍立得相机的话,大家应该不会陌生,因为拍立得相机的优势就是现场拍摄照片,现场可以打印照片。不过拍立得相机预计很快就要被苹果的一款设备取代了,外媒曝光了一款被称为是苹果i……新型食品凝胶是将成为产业发展新方向来源:【科学网】食品凝胶的形成机制及其典型结构。中国农科院蔬菜所供图食品凝胶在食品行业中的最新应用。中国农科院蔬菜所供图近日,中国农业科学院蔬菜花卉研究所采后……这个能1敌2000的蓝色罐子,全世界男人都很喜欢有这么一个东西,它的长相平平无奇,乍一看就是一个蓝色的罐子。它的名字毫无特点,没有夹杂任何卖点和感情色彩。它没有华丽的包装,也没有铺天盖地的的宣传,但是这并不妨碍它……新生儿出生多处畸形产前未检出,母亲跳楼身亡,医院赔偿12万案情介绍2017年3月,原告黄某母亲刘某某因怀孕在被告某学院附属第一医院建立孕产期保健信息卡,并在被告处进行孕期检查。刘某某分别于2017年3月8日、4月12日、6月16……
文明只差一步病愈之后的桃园收获迟来的30系列新皇,NVIDIARTX3090Ti首发评测史上最大的变异动物非一般的恐怖北横通道新建工程西段嘉闵线项目2022年上海重大交通工程年终龙文盐鸡漳州地区传统小吃苏武在匈奴的儿子是谁后来怎么样了油墨造句用油墨造句大全世说新语读后感赏花灯逛集市闹元宵,深圳光明系列元宵主题活动来袭孕期至个月的主打营养素
洗碗小学作文400字名师支招:2009年中考物理复习四大策略《奖金》主要剧情内容简介及赏析冷冻虾仁能不能带上飞机冷冻虾仁可以带上飞机寒冬送温暖的感谢信精选多篇过敏性休克吃什么好中单如何开局,法师也是节奏掌控者,前期没节奏跟中有很大关联热 阳光一直很灿烂初三观后感东京审判观后感三十六张恒发文向郑爽粉丝求饶,他认怂了,求大家放过他和孩子烟语人生冰箱冷藏室温度偏高怎么办

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找菏泽德阳山西湖州宝鸡上海茂名内江三亚信阳长春北海西安安徽黄石烟台沧州湛江肇庆鹤壁六安韶关成都钦州