MGN网络详解以及代码分析「建议收藏」

MGN网络详解以及代码分析「建议收藏」MGN网络详解以及代码分析最近阅读了云从科技最新的关于REID的论文以及相关的博客和代码,算法是基于MGN,关于网络的部分,这里记录一些自己的学习笔记。以下是我参考的博客和代码的网址博客:https://blog.csdn.net/Gavinmiaoc/article/details/80840193代码:https://github.com/Gavin666Github/reid-m…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

MGN网络详解以及代码分析

最近阅读了云从科技最新的关于REID的论文以及相关的博客和代码,算法是基于MGN,关于网络的部分,这里记录一些自己的学习笔记。
以下是我参考的博客和代码的网址

博客: https://blog.csdn.net/Gavinmiaoc/article/details/80840193
代码: https://github.com/Gavin666Github/reid-mgn

以下内容主要为对于论文、博客以及代码的学习心得

一、首先看一下网络结构
在这里插入图片描述
网络结构从左到右,先是两个人的图片输入,这边有 3 个模块。3 个模块的意思是表示 3 个分支共享网络,前三层这三个分支是共享的,到第四层时分成三个支路,第一个支路是 global 的分支,第二个是 part-2 的分支,第三个是 part-3 的分支。在 global 的地方有两块,右边这个方块比左边的方块大概缩小了一倍(12×4),因为做了个下采样,下面两个分支没有做下采样,所以第四层和第五层特征图是一样大小的(24×8)。
接下来我们看一下图中黄色部分的区域。网络对 part-2 跟 part-3 做一个从上到下的纵向分割,part-2 在第五层特征图谱分成两块,part-3 对特征图谱从上到下分成三块。在分割完成后,我们用Max-pooling,得到一个 2048 的向量。
然后我们来看一下具体是怎么操作的,part-2 跟 part-3 的操作跟 global不一样,part-2 有两个 pooling,第一个pooling对应Zg p2(蓝色的长条),通过24×8大小的卷积核,将第五层特征图直接最大池化生成1×1×2048的向量。第二个pooling的卷积核大小和第一个不一样,为12×8,因此生成的是2×1×2048的向量,我们将其拆成2个1×1×2048的向量,对应图中part-2 中的2个接在一起的长条形。淡蓝色这个地方变成了小方体 ,大小为1×1×256,这个地方是做的降维,从 2048 维做成 256 维,主要是为了方便特征计算,这样更快更有效。
我们在测试的时候会在淡蓝色的地方,小方块从上到下应该是 8 个,我们把这 8 个 256 维的特征串连一个 2048 的特征,用这个特征替代前面输入的图片。
接下来我们对应程序中的网络部分来看一下。

二、看一下主程序的部分(mgn.py
1.
在这里插入图片描述
该部分为引用的相关库
2.
在这里插入图片描述
第一句是将我们数据集market-1501的地址赋给root
第二句是关于线程方面的,此处不用管
3.
在这里插入图片描述
这个地方开始定义MGN网络,首先我们看到_init_函数,由于MGN网络的前3层和resnet-50的网络前三层基本上是一致的,所以我们MGN网络前三层就可以照搬resnet-50的前三层网络。
4.
在这里插入图片描述
此时我们的输入图片,会进行三组不同的处理方式,这3组不同处理方式的共同点就是都会经过resnet-50的前三层,第一种处理方式我们称为global,代码中的res_g_conv5就是该处理方式的第四层处理,不过该方式的第四层处理和resnet-50无异,因此直接调用。而后2组我们不做下采样,保持第五层特征图和第四层特征图的大小均为24×8,因此作上述处理。
不过该网络的结构并非重点,重点是如何调用该网络,使其进行行人的追踪和识别,因此我们重点研究网络的输出部分。
5.
在这里插入图片描述
这里对应上图中提到的最大池化和降维操作
6.
在这里插入图片描述
这里对应的部分将得到的8个256维向量经过全连接层,将维度改为识别的类别数,对应损失函数softmax loss。
7.
在这里插入图片描述
zg_p1(1×1×2048)、zg_p2(2×1×2048)、zg_p3(3×1×2048)分别对应淡黄色部分最大池化后的蓝色2048 的向量
z0_p2、z1_p2、z0_p3、z1_p3、z2_p3则分别是P2和P3被分开的部分,对应图中淡黄色部分的其他向量。
8.
在这里插入图片描述
该网络的输出由几部分组成,最主要的部分就是网络输出的图片对应的特征图谱predict,这个特征图谱由8个子图谱(淡蓝色部分,分别对应降维后生成的fg_p1, fg_p2, fg_p3, f0_p2, f1_p2, f0_p3, f1_p3, f2_p3)拼接而成,其余的部分(L)则为图中的softmax损失函数。

新人第一次发CSDN博客,如有错误的地方,欢迎指教!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185333.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • matlab画图线型、符号、颜色

    matlab画图线型、符号、颜色Matlab画图线形、颜色、数据点形状的选择1,线形-Solidline(default)–Dashedline:Dottedline-.Dash-dotline2,颜色rRedgGreenbBluecCyanmMagentayYellowkBlackwWhite3,数据点的形状+PlussignoCir…

  • screentogif怎么做动图_iphone录屏转gif

    screentogif怎么做动图_iphone录屏转gif下载ScreenToGif可以从本身电脑的电脑管家下载,也可以百度下载,该软件轻量,方便,可自行添加水印,免费启动软件打开录像机可以调整帧数和调整要录制的屏幕区域点击-录制点击-停止另存为有保存文件的地址和名称以及其他配置可以根据情况调整保存成功…

  • 基本农田卫星地图查询软件下载_谷歌高清卫星地图2019村庄

    基本农田卫星地图查询软件下载_谷歌高清卫星地图2019村庄谷歌地图整合Google的本地搜索以及驾车指南两项服务,能够鸟瞰世界,将取代目前桌面搜索软件。谷歌地图可在虚拟世界中如同一只雄鹰在大峡谷中自由飞翔,登陆峡谷顶峰,潜入峡谷深渊。谷歌地图使用界面相关软件版本说明下载地址谷歌卫星地图下载器X2.0查看高德地图官方最新版v7.7.4查看奥维互动地图v6.1.1查看谷歌浏览器稳定版v56.0.2924.3查看谷歌翻译v6.0查看软件简介谷歌地图采…

  • java工程师青春饭吗_Java工程师是青春饭吗?

    java工程师青春饭吗_Java工程师是青春饭吗?首先来说说,为什么会有些开发人员会被裁掉呢?因为Java行业是竞争力比较大的行业,由于现在社会上的各种对Java行业的宣传,现在越来也多的年轻人学习Java技能并想找Java相关的工作,这就使得一些人如果找到工作后不好好工作浑水摸鱼就很容易被别的年轻人挤掉工作岗位。其次Java开发并不是一门熟能生巧的工作,Java开发技术日新月异,更新换代很快,所以并不是你掌握好几项Java技术并找到工作后就能安…

  • Java程序概述

    Java程序概述Java程序概述一、Java开发环境1、Java程序编译执行的过程2、Java平台概述3、JDK部分常用工具二、Application三、Applet四、Servlet五、JSP和JavaBean六、脚本一、Java开发环境1、Java程序编译执行的过程Java程序在编译执行过程中,首先把源文件(.java文件)编译成字节码文件,即类文件(.class);然后由解释器负责解释执行类文件。2、Java平台概述Java平台包括Java应用程序接口(API)和Java虚拟机(JavaVirtual

  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号