城市直播房产教育博客汽车
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

使用MindStudio进行UAV场景下人群密度估计开发

5月9日 火云谷投稿
  本文的视频教程可点击下面链接:
  https:www。bilibili。comvideoBV1be4y127Fa1、项目介绍
  任务场景:无人机场景下人群密度估计算法
  任务描述:基于MindXSDK将其部署于昇腾平台上,实现无人机在线人群密度估计。
  任务目标:在VisDrone2021数据集上实现,均方误差(MSE)不大于35,绝对误差(MAE)不大于20,且FPS不低于20最低实时检测帧数。
  环境信息:昇腾设备:Ascend310;MindSDK版本:2。0。4;CANN版本:5。0。42、模型介绍
  本项目使用的模型为DMCount,论文地址链接,其模型是基于VGG19()使用Pytorch框架开发,其论文表明高斯规则强加于注释标注会损害泛化性能。DMCount则不需要任何高斯方法对真值标注进行处理,进而提升算法性能。
  由于本项目是基于MindXSDK部署于昇腾边缘硬件,因此本文着重于在MindXSDK部署过程中所遇到的问题以及解决方法,为基于MindSDK的开发人员排坑。对模型的训练本文只提及训练VisDrone2021数据集时需修改的代码。具体训练过程也可直接参考地址。
  下载DMCount项目,并使用MindStudio打开项目目录,其目录结构如图所示,
  由于服务器需用内网连接的,因此本文对DMCount布置本地实验环境,首先配置python环境以及SDK等,步骤如下图所示
  3、模型训练
  本项目是基于无人机场景,首先我们需要修改VisDrone2021数据集的标注文件以适用于DMCount模型的训练。下载VisDrone2021数据集并将其移至DMCount根目录,其数据集目录结构如下图所示,GT文件夹为xml标注文件,RGB为无人机场景下RGB颜色模型JPG格式图像文件,TIR为红外拍摄的灰度JPG格式图像文件,两个文件夹图像一一对应。由于VisDrone2021测试数据集没有真实值标注,需要在官网提交检测结果才能获取测试精度,因此本项目将RGB文件夹下的数据以4:1随机分为训练集和测试集,即训练集1445张图像,测试集为362张图像。
  然后在DroneRGBTTrain目录中新建xml2mat。py文件,添加如下图代码,并运行,其目的是将xml文件改为预处理所需用到的mat文件。运行结果在DroneRGBTTrain目录中生成mats文件夹,文件夹内。mat文件为对应图像标注文件。
  然后,在此目录中新建spilttaintest。py文件夹生成train。txt和val。txt文件,即训练图像和测试图像,代码以及结果如下图所示,其train。txt和val。txt文件内容为训练和测试图像的文件名字。
  3。1、标注文件修改
  训练DMCount需要对数据集进行预处理生成密度图和训练真实值,其源码如下图所示,原始代码中只对QNRF和NWPU数据集做了预处理,我们添加2225行代码,即图中红色框部分,VisDrone2021数据集图像为640512的固定大小,因此我们在main()函数中传入参数为:输入数据集路径,输出数据及路径,图像高度,图像宽度。
  在DMCountpreprocess文件夹下复制preprocessdatasetnwpu。py并重命名为preprocessdatasetvis。py并修改main()函数,具体代码如下图所示
  然后运行preprocessdataset。py预处理文件,可生成train和val文件夹,其中每个文件夹下为训练图像,该训练图像的密度图以及真实值,即。jpg文件为训练或测试图像,。npy文件为该图像真实值,以densitymap。npy后缀的文件为该图像密度图。
  至此,原DMCount代码修改完毕,更改train。py文件如图所示,然后点击运行按钮等待运行完毕即可生成Pytorch框架的权重文件。
  模型训练过程中需注意:
  可能对于pytorch的版本会出现如下问题,
  解决办法:
  在datasetscrowd。py文件中修改如下代码
  3。2、模型转换
  完成训练之后,得到的Pytorch权重文件,因此我们在主目录新建pth2onnx。py将权重转换成MindSDK所支持的onnx文件,其代码如下,3。1节所生成的权重文件在ckpts文件夹中,最后生成VisdroneCrowdCounting。onnx
  4、基于MindXSDK开发
  完成开发后的UAVCrowdCounting无人机场景下人群密度估计目录结构
  4。1、创建MindXSDK(Python)工程
  在MindStudioIDE中新建AscendApp项目,如图所示,首先,选择AscendApp,然后后可以命名项目名称,如图本项目名称为UAVCrowdCounting,项目位置可以直接选择默认位置,紧接着部署服务器CANN,点击图中Change按钮
  点击Change按钮之后,我们在远程连接中配置我们的服务器,如图所示,
  成功连接服务器后,找到服务器中CANN安装文件夹,并选择其中使用的版本,我所使用的服务器只安装了5。0。4版本,如图所示
  选择之后,点击Finish,等待MindStudio完成配置
  成功配置之后,可以在创建项目页面看到CANN版本,然后点击下一步
  本次项目使用python语言开发基于MindXSDK的UAV场景下的人群密度估计,选择模板如图所示,并在新的窗口打开
  窗口变化如图所示,则完成了UAVCrowdCounting项目的创建,并点击红框处,配置执行文件。
  选择mian。py作为执行程序,如下图所示,
  4。2、配置MindStudio的python环境
  在MindStudio中配置接众智实验室服务器的开发环境,首先连接服务器,并测试测试是否连接成功,以确保与服务器文件夹完成映射。如图所示
  将本地文件夹映射在服务器的文件夹中,路径可设置为自己方便寻找以及开发的目录下,如下图红色框所示,本项目映射在home目录下。
  勾选代码自动上传,即修改代码按ctrls可自动上传至服务器,如下图所示
  增加远程的pythonSDK,如下图所示,以方便在本地运行服务器上的python环境
  增加SSHInterpreter,即远程python解释器(服务器上使用的python),再将配置好的pythonSDK配置于本项目中,步骤如下图所示
  4。3、ATC模型转换
  至此,我们已将完成了该项目在MindStudio所需的环境,我们创建如图目录文件夹,转换模型时,首先我们需要设置aipp配置文件,并将其命名为aipp。cfg如图所示,
  图中,我们使用静态模型,即aippmode设置为static,然后输入的图片格式为RGB888U8,关闭色域转换,关闭R通道与B通道交换,即cscswitch和rbuvswapswitch,因为我们在训练过程中会对图像进行归一化,aipp配置文件归一化的运算方式可参考链接。meanchn0,meanchn1,meanchn2分别代表RGB颜色每个通道中的均值,minchn0,minchn1,minchn2分别代表RGB颜色每个通道的最小值,varrecichn0,varrecichn1,varrecichn2表示RGB颜色每个通道方差的倒数。例如,在本项目中,模型训练过程中使用使用了归一化和标准化,即相对应Pytorch框架中transforms。ToTensor()和transforms。Normalize()数据预处理方法。transforms。ToTensor()首先会将图像的像素值输入图像缩放为〔0。0,1。0〕之间,在将数据转化为张量,而transforms。Normalize()是逐通道的对图像进行标准化,本项目中mean〔0。485,0。456,0。406〕(各通道的均值),std〔0。229,0。224,0。225〕(各通道的标准差)。具体运算如下图所示,
  完成aipp文件的设置后,我们可以将上文所训练的onnx模型文件或下载提供的模型并放置models
  然后,我们可以点击模型转换按钮,进行模型转换,如图所示
  添加models文件夹下的onnx模型,操作如下
  完成之后如上操作后点击下一步,配置模型的图像预处理函数,
  最后,点击Finish按钮,完成模型转换,如图可看到模型转换成功
  4。4、配置插件
  在MindStudio中,可以直接可视化编排插件,如下图所示,新建MindSDKPipeline,然后直接搜索或者选取项目所需用的插件,并对其进行连线,然后保存在pipeline文件夹中,并命名为crowdcount。pipeline,
  在新建的pipeline中,首先选择输入插件(appsrc),获取图像输入数据,如下图所示,
  然后在其他插件中选取图像解码插件(mxpiimagedecoder),并将输入插件(appsrc)与解码插件连线,如下图所示,注意需以OpenCV方式解码图片并将图片转成RGB颜色模型,以符合模型推理数据格式避免检测精度下降。
  接着引入缩放插件(mxpiimageresize),同样以OpenCV方式将输入图片放缩到模型指定输入640512的尺寸大小,以满足模型推理时图像的大小。如图所示,
  紧接着调用推理插件(mxpitensorinfer)插件,并加载已转换好的om模型(写入相对路径,如在本项目中则为。modelsuavcrowdcountingnorm。om,若使用绝对路径则会报错或保存不了文件)对输入数据张量进行推理。如图所示,
  然后再使用输出插件appsink,从stream中获取数据。如下图所示
  最后,对每个插件点击鼠标右键进行命名,如图所示
  至此,插件配置完成,将文件保存在pipeline文件夹中,并命名为crowdcount。pipeline
  配置插件过程中需注意:
  1、图像解码插件mxpiimagedecoder,在本项目模型推理使用的是RGB数据,因此图像解码插件要使用OpenCV处理方式,且需将输出数据改为RGB数据格式。
  2、图像归一化或标准化处理插件mxpiimagenormalize的使用,与4。2模型转换有相关联系,在初步模型转换过程中,我们使用mxpiimagenormalize图像的归一化与标准化并未使用aipp配置文件,模型虽然能够完成转换,但是在模型推理的结果值为零,具体原因目前尚未知晓,解决方式是将图像的归一化或标准化配置在aipp文件中。4。5、图片测试
  首先我们需要在MindStudio中配置MindXSDK,如图所示,点击红色框按钮,然后选择MindXSDK配置,并点击安装InstallSDK按钮
  点击之后和配置CANN类似,完成远程CANN和SDK远程路径,然后等待配置完成。
  如图所示,SDK配置完之后的效果
  到此,我们准备好了模型,pipeline,以及MindXSDK,现在可以使用模型测试单张图片了,main。py编写单张测试代码,如图23所示,
  其中创建StreamManager,以及创建Pipeline部分是常规代码,可按照一般流程开发即可,主要区别于对推理结果的处理,即红色框中的代码(6978行)。模型最终输出为15120的一维张量,每个张量代表人群密度值,因此张量之和为该张图片的人群统计数。对于人群密度图,我们将15120的一维张量重塑成大小为6480的数组,并进行最大最小归一化形成人群密度图,然后保存即完成单张图片的人群密度估计。
  我们可以在3。1节中在生成的val文件夹下随意选取一张图片复制到data文件夹下并重命名为test。jpg,如图所示,然后点击运行按钮,测试该图像人群密度
  运行之后,结果如图所示,
  对于生成的密度图,我们可以新建一个名为visimg。jpg的文件,然后同步服务器文件夹,即可在本地查看生成的人群密度图。
  运行程序过程中需注意:
  可能出现找不到如下模块的问题,
  解决办法:在MindStudio中打开SSH远程连接,在用户目录下新建。profile文件,添加CANN和MindXSDK的环境变量。步骤如图所示
  4。6、精度测试
  在data文件夹下,将第3节中val。txt重命名为visdronetest。txt放置data文件夹下,并新建VisDrone2021文件夹,在官网链接下载数据集,且将将数据集中RGB和GT目录放置在新建的VisDrone2021目录中,步骤如下图所示,
  新建eval。py文件之后,我们将测试代码写入eval。py文件中,代码如下
  在精度测试中,主要代码则为获取VisDrone测试的数据集,即Dataset类,代码首先按照visdronetest。txt文件中的图片名加载到Dataset类中,然后在迭代图片的时候以MxDataInput()读取图像的数据,与训练不同测试时是直接使用xml文件中的人群统计数,最后我们计算平均FPS,均方误差(MSE)以及绝对误差(MSE)。
  由于我们设置了main。py程序作为MindStudio的运行文件,因此测试精度时,我们需要将运行文件更改为eval。py文件,步骤如下
  更改完成之后,我们直接开始进度测试,如下图所示,为运行结果
  在图中可以看到FPS未能满足最低20的要求,这可能是因为图片传输过程中有一些耗时,在服务器中均能满足任务要求,服务器中结果图下图所示
  精度测试过程中需注意:
  所遇问题如4。5中一致获取帮助
  如果有任何疑问,都可以前往MindStudio昇腾论坛获取更多信息。
搜索 投诉 评论 转载

使用MindStudio进行UAV场景下人群密度估计开发本文的视频教程可点击下面链接:https:www。bilibili。comvideoBV1be4y127Fa1、项目介绍任务场景:无人机场景下人群密度估计算法……承担国补并维持万元补贴,特斯拉变相降价,3月或有新动作?众所周知,咱们国家针对30万以内新能源或换电车型的车价补贴,是已经在元旦当天取消了的,现阶段给到的,只有免购置税这一项补贴。各大车企,也陆续开始了延续补贴的一波内卷,国补……大外屏实用性只是一方面,绿厂小折叠综合体验也是有模有样不同于横向折叠屏手机的万众期待,纵向折叠的小折叠手机似乎从一开始就不受广大消费者的待见。原因也并不难理解,最主要的就是各大品牌推出的小折叠外屏都太小,实用性方面的欠缺让小折叠冠……韩乔生死亡之组关键战没想到变屠杀,西班牙门将竟然失业在此前结束的一场世界杯小组赛的比赛中,西班牙70战胜了哥斯达黎加。本场比赛结束之后,韩乔生也在微博上发文,点评了本场比赛双方的表现。韩乔生在微博上这样写道:斗牛士军团势不……常喝碳酸饮料的人,后来都怎样了?你知道碳酸饮料吗?像可乐、雪碧、啤酒等,简而言之就是加了二氧化碳的饮料。一般呈现酸性,因此叫做碳酸饮料。全世界有超过48的人每天都会喝,据调查每天消耗的碳酸饮料杯数,平均下来相……一条800米900年的老街,金陵第一古街高淳老街【原创】图文:酋长【引言】高淳老街位于南京市高淳区淳溪街道,又称淳溪老街,是高淳的商业中心,江苏省内保存最完好的古建筑群,也是华东地区保存最完整的明清古街,被誉为金陵第二……世界上有一种东西,它看不到,也摸不着,让人快乐,那就是心灵美一个人真正的美,是心灵的美,是灵魂的美,是为他人着想而呈现出来的内在美,是气质美,是优雅的美,是不动声色,平静如海,不波涛汹涌,说话不激动,心比海宽,胸比天阔,善良如菩提,心好……31!国乒奥运冠军大逆转,陈梦淘汰陈幸同,半决赛对手也很强10月28日晚上21点,WTT世界杯决赛进行女子14决赛最后一场较量。陈梦对阵陈幸同,国乒两大名将直接交手,比赛悬念较大。因为此前3场进行的14决赛,王曼昱、孙颖莎还有王艺迪豆……民国女性独具韵味,其淡雅之美从何体现?先看看名媛们都爱穿什么夜上海夜上海,你是个不夜城;华灯起车声响歌舞升平,只见她笑脸迎,谁知她内心苦闷。这首《夜上海》是电影《长相思》的插曲,相信每一个听到此曲的人,脑海中总会浮现出一个民……气候变化卫星现在可以全年监测北冰洋海冰科学家使用卫星现在已经可以全年测量覆盖北冰洋的海冰厚度变化。传统上,航天器在夏季很难确定浮冰的完整状态,因为表面融水的存在使它们的仪器分辨不清。卫星监测覆盖北极海冰……豪门刺激夜巴黎大胜梅西闪耀曼城拜仁爆冷丢榜首皇萨皆胜北京时间9月4日,从昨晚到今天凌晨,欧洲五大联赛多支豪门球队悉数登场,其中皇萨黎车赢球了;曼城、拜仁爆冷遭逼平丢掉榜首的位置;AC米兰笑傲德比,老妇人尤文1:1佛罗伦萨。……夏日炎炎,有你超甜我想跟你在这炎热的夏日里,一起去江边的烧烤摊上,吹着凉风,吃着西瓜,惬意的聊天。我想跟你在这炎热的夏日里,一起去热闹的游乐场,坐过山车,坐旋转木马,跟你一起快乐的尖叫!……
为何不要辽篮球员?郭艾伦有苦衷,杜锋回应,西热送被骂外援球鞋李少莉副局长年轻时绝对没有整容,美人胚子一个挺漂亮,美丽无罪国产游戏又封神了?刚上Steam就登顶差评榜首,手把手教玩家牙结石是怎么形成的?中国足球又一球队解散?韩媒曝老牌球队陷入绝境,陈戌源需注意首钢定海神针回归,就算老将相继离队,但他们依旧能够重返巅峰CCER有望2023年初重启,林业碳汇提升潜力巨大20221116pixiv每日插画分享食欲之秋三起三落的孙宏斌再近破产边缘冬奥安保记者的采访手记今生只爱大中国3胜2负!国羽冲击世锦赛三项冠军,陈雨菲势如破竹,混双遭遇劲
哺乳期宝宝咳嗽大人能吃鸡蛋吗激流勇进坐前面好还是后面好最容易被男人玩弄的种极品女人肺癌是癌症死亡的主要原因,无论是在中国还是美国。为什么这么难 如何确保经济运行在合理区间?服务业如何渡过难关?国家发展改革中午吃饭,老爸嫌菜味道淡了惜春画大观园最后画完了吗?曹公复原出红楼梦就是答案你在春季容易花粉过敏吗这些绘本孩子都爱,因为他是安野光雅!DIY小礼物唇印相册最新民事案由规定财产侵权纠纷怎么解决?【歌词】妖孽歌手:蒋蒋热评聚热点网

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁