【图文详解】SiamFC++与图注意力的强强联合:单目标追踪系统

news2024/9/23 17:24:47

1.研究背景与意义

随着计算机视觉技术的不断发展,单目标追踪(Single Object Tracking, SOT)作为计算机视觉领域的一个重要研究方向,已经在许多实际应用中得到了广泛的应用。单目标追踪系统可以通过分析视频序列中的目标运动,实时地跟踪目标的位置和形状变化,从而在许多领域中发挥重要作用,如智能监控、交通管理、无人驾驶等。

然而,由于目标在视频序列中的外观变化、遮挡、光照变化等因素的影响,单目标追踪任务仍然面临许多挑战。为了解决这些问题,研究者们提出了许多不同的方法和算法。其中,基于深度学习的方法在单目标追踪任务中取得了显著的进展。

SiamFC(Siamese Fully Convolutional Networks)是一种基于孪生网络的单目标追踪方法,它通过将目标和背景分别编码为两个特征图,并通过计算它们之间的相似度来实现目标的跟踪。然而,SiamFC在处理复杂场景和目标变化时仍然存在一些问题,如目标遮挡、光照变化等。

为了进一步提高SiamFC的性能,许多研究者提出了各种改进方法。其中,图注意力单元(Graph Attention Unit)是一种有效的注意力机制,可以在图结构数据上学习目标的相关性和重要性。将图注意力单元引入SiamFC模型中,可以提高模型对目标的关注度,从而提高单目标追踪的准确性和鲁棒性。

因此,本研究的主要目标是基于图注意力单元的改进SiamFC++的单目标追踪系统。通过引入图注意力单元,我们希望能够提高SiamFC模型在复杂场景和目标变化下的追踪性能。具体来说,我们将设计一种新的网络结构,将图注意力单元嵌入到SiamFC模型中,以提高模型对目标的关注度和区分度。同时,我们还将探索不同的注意力机制和损失函数,以进一步提高模型的性能。

本研究的意义主要体现在以下几个方面:

  1. 提高单目标追踪的准确性和鲁棒性:通过引入图注意力单元,我们希望能够提高SiamFC模型在复杂场景和目标变化下的追踪性能。这将有助于提高单目标追踪系统在实际应用中的准确性和鲁棒性。

  2. 探索图注意力单元在单目标追踪中的应用:图注意力单元是一种有效的注意力机制,可以在图结构数据上学习目标的相关性和重要性。通过将图注意力单元引入SiamFC模型中,我们可以探索其在单目标追踪任务中的应用,为后续的研究提供新的思路和方法。

  3. 推动深度学习在单目标追踪中的发展:深度学习在计算机视觉领域取得了巨大的成功,但在单目标追踪任务中仍然存在一些挑战。本研究将探索基于图注意力单元的改进SiamFC++的单目标追踪系统,有助于推动深度学习在单目标追踪中的发展,提高其在实际应用中的效果和性能。

总之,本研究的目标是基于图注意力单元的改进SiamFC++的单目标追踪系统。通过引入图注意力单元,我们希望能够提高SiamFC模型在复杂场景和目标变化下的追踪性能,推动深度学习在单目标追踪中的发展,为实际应用提供更准确、鲁棒的单目标追踪解决方案。

2.图片演示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.视频演示

基于图注意力单元的改进SiamFC++的单目标追踪系统_哔哩哔哩_bilibili

4.基于多特征融合的实时单目标追踪算法

近年来,随着计算机技术和光学成像技术的快速发展,计算机视觉引起学界的广泛关注。日益增长的社会需求也对计算机视觉的现实应用提出了更高的要求。单目标追踪作为计算机视觉的重要研究方向之一,在研究过程中除了追求准确性之外也要保证实时性,才能有效提高现实适用性。本章针对实时单目标追踪问题,利用双边加权最小二乘模糊支持向量机,提出了基于多特征融合的实时追踪算法FSCFI4]。在所提算法中,针对基于局部HOG特征的分类器,利用相关滤波框架克服计算复杂度高的矩阵求逆运算,并通过多基样本扩充训练数据和背景信息;针对基于全局颜色特征的分类器,利用独热编码的数值化优点实现快速计算。在公开数据集上的实验结果表明:与已有的高性能单目标追踪算法相比,所提FSCF算法在形变、快速运动、运动模糊等多个方面均表现出了更优的追踪性能。
本章的结构如下:在第3.1节中,首先简要介绍了基于双边加权最小二乘模糊支持向量机的FST算法;在第3.2节和第3.3节中,分别详细介绍了所提的基于局部HOG特征和全局颜色特征训练的双边加权最小二乘模糊支持向量机;在第3.4节中,介绍了所提两个分类器的融合方法;第3.5节是实验设计及结果分析;第3.6节是全章工作的小结。

双通道网络

图像相似度计算是计算机视觉和图像分析中最基本的任务之一,在诸多视觉任务中发挥着尤为重要的作用[2-4]。在CVPR2015上,Zagoruyko等在一篇关于计算图像相似度的论文中提出双通道网络(2-channel network),其核心思想在于把孪生网络的双分支合并在一起[5]。孪生网络和双通道网络的网络架构图如图所示。孪生网络,又称为双分支网络(2-branches network),其网络结构是由两个共享参数的分支组成。与孪生网络不同,双通道网络的体系结构中没有直接的特征描述符概念。Zagoruyko 等是把孪生网络的双分支合并在一起,将输入的两张单通道的灰色图像合并为一张双通道图像,例如,原本输入的patch1、patch2的维度均为(127,127,1),合成后的双通道图像维度则为(127,127,2)。然后,将双通道图像经过特征提取器得到特征向量。特征提取器在底层网络中,由一系列卷积、ReLU和最大池化层组成。最后,将这部分的输出作为输入提供给线性决策层。该线性决策层仅由具有1个输出神经元的全连接层组成,输出值表示输入图像对的相似度。

在这里插入图片描述

5.核心代码讲解

5.1 Graph_Attention_Union.py


class Graph_Attention_Union(nn.Module):
    def __init__(self, in_channel, out_channel):
        super(Graph_Attention_Union, self).__init__()
        self.support = nn.Conv2d(in_channel, in_channel, 1, 1)
        self.query = nn.Conv2d(in_channel, in_channel, 1, 1)
        self.g = nn.Sequential(
            nn.Conv2d(in_channel, in_channel, 1, 1),
            nn.BatchNorm2d(in_channel),
            nn.ReLU(inplace=True),
        )
        self.fi = nn.Sequential(
            nn.Conv2d(in_channel * 2, out_channel, 1, 1),
            nn.BatchNorm2d(out_channel),
            nn.ReLU(inplace=True),
        )

    def forward(self, zf, xf):
        xf_trans = self.query(xf)
        zf_trans = self.support(zf)

        xf_g = self.g(xf)
        zf_g = self.g(zf)

        shape_x = xf_trans.shape
        shape_z = zf_trans.shape

        zf_trans_plain = zf_trans.view(-1, shape_z[1], shape_z[2] * shape_z[3])
        zf_g_plain = zf_g.view(-1, shape_z[1], shape_z[2] * shape_z[3]).permute(0, 2, 1)
        xf_trans_plain = xf_trans.view(-1, shape_x[1], shape_x[2] * shape_x[3]).permute(0, 2, 1)

        similar = torch.matmul(xf_trans_plain, zf_trans_plain)
        similar = F.softmax(similar, dim=2)

        embedding = torch.matmul(similar, zf_g_plain).permute(0, 2, 1)
        embedding = embedding.view(-1, shape_x[1], shape_x[2], shape_x[3])

        output = torch.cat([embedding, xf_g], 1)
        output = self.fi(output)
        return output

这个程序文件是一个名为Graph_Attention_Union的神经网络模型类。它继承自nn.Module和ABC类,并包含了一些卷积层和线性变换层。

这个模型类的初始化函数接受两个参数:in_channel和out_channel,分别表示输入通道数和输出通道数。在初始化函数中,定义了一些卷积层和线性变换层,用于对输入数据进行线性变换和特征提取。

模型的前向传播函数forward接受两个输入zf和xf,分别表示搜索区域节点和目标模板节点。在前向传播过程中,首先对输入数据进行线性变换,然后进行消息传递操作,计算相似度,并根据相似度计算嵌入特征。最后,将嵌入特征和xf的特征进行拼接,并通过一个卷积层得到最终的输出。

整个模型的目的是实现图注意力机制,用于处理图结构数据的特征提取和聚合。

5.2 SiamFC_plus.py

class FeatureExtraction(nn.Module):
    def __init__(self):
        super(FeatureExtraction, self).__init__()
        self.conv1 = nn.Conv2d(3, 64, kernel_size=3, stride=1, padding=1)
        self.conv2 = nn.Conv2d(64, 128, kernel_size=3, stride=1, padding=1)
        self.conv3 = nn.Conv2d(128, 256, kernel_size=3, stride=1, padding=1)

    def forward(self, x):
        x = F.relu(self.conv1(x))
        x = F.relu(self.conv2(x))
        x = F.relu(self.conv3(x))
        return x

class SiamFCNet(nn.Module):
    def __init__(self):
        super(SiamFCNet, self).__init__()
        self.feature_extraction = FeatureExtraction()
        self.head_cls = nn.Conv2d(256, 1, kernel_size=1, stride=1)
        self.head_reg = nn.Conv2d(256, 4, kernel_size=1, stride=1)

    def forward(self, z, x):
        z_feat = self.feature_extraction(z)
        x_feat = self.feature_extraction(x)
        cls_score = F.conv2d(x_feat, z_feat)
        reg_score = F.conv2d(x_feat, z_feat)
        cls_score = self.head_cls(cls_score)
        reg_score = self.head_reg(reg_score)
        return cls_score, reg_score

class SiamFCLoss(nn.Module):
    def __init__(self):
        super(SiamFCLoss, self).__init__()

    def forward(self, cls_preds, reg_preds, cls_targets, reg_targets):
        cls_loss = F.binary_cross_entropy_with_logits(cls_preds, cls_targets)
        reg_loss = F.smooth_l1_loss(reg_preds, reg_targets)
        combined_loss = cls_loss + reg_loss
        return combined_loss

这个程序文件是一个用于目标跟踪的Siamese网络的实现。它包含了三个主要的模块:特征提取模块、Siamese网络架构和损失函数。

特征提取模块(FeatureExtraction)是一个简单的卷积神经网络,它包含了三个卷积层,用于从输入图像中提取特征。

Siamese网络架构(SiamFCNet)包含了一个特征提取模块和两个头部(Classification head和Regression head)。特征提取模块用于提取目标和搜索图像的特征,然后通过卷积运算计算出两者之间的相关性。头部部分分别用于分类和回归任务,其中分类头部输出目标是否存在的概率,回归头部输出目标的位置。

损失函数(SiamFCLoss)定义了Siamese网络的训练损失。它包含了两个部分:分类损失和回归损失。分类损失使用二元交叉熵损失函数,用于衡量分类结果的准确性。回归损失使用平滑L1损失函数,用于衡量目标位置的准确性。最后,将分类损失和回归损失相加得到综合损失。

这个程序文件提供了一个基本的Siamese网络实现,可以用于目标跟踪任务的训练和推理。

6.融合双通道网络和 SiamFC 的 SiamFC_plus 算法

双通道网络和孪生网络最大的区别在于,孪生网络是在最后的全连接层中才将两张图片的相关神经元关联在一起,而双通道网络则是从最初就将输入的两张图片联系在一起。与孪生网络相比,双通道网络共同处理了两个patch,提供了更大的灵活性。通过实验,Zagoruyko等证明了双通道网络不仅训练速度更快,而且模型精度更高[5]。
在单目标追踪的深度学习算法研究中,针对以SiamFC为代表的孪生网络类算法离线训练阶段中在相似度度量学习问题上的瓶颈,考虑到双通道网络在度量学习上具有高效性和鲁棒性,本节将双通道网络引入到单目标追踪领域中,提出了一个融合双通道网络和 SiamFC的实时单目标追踪算法SiamFC_plus。所提SiamFC_plus 算法的网络框架如图所示。
在这里插入图片描述
模型的输入是一个目标原型图像(Exemplar Image)和一个更大尺寸的搜索区域图像(Search Image)。在搜索区域图像上,与目标原型图像大小一致的滑动窗口被视为实例,即为候选区域。目标和实例的坐标距离小于阈值时对应类标为正,否则为负。记目标原型图像为z,搜索区域图像为x。SiamFC_plus将目标追踪看作是嵌入空间上的相似性学习问题,旨在学习一个相似性度量函数f(x, z),函数f通过比较目标原型图像z和搜索区域图像x,返回目标响应图(Response Map) o:u cZ2。具体过程如下:首先,以z为滤波器,对x的各个颜色通道进行互相关操作,从而将这两张尺寸不同的图像融合在一起;再将这部分输出直接作为输入,传送到CNN特征提取器中提取深度特征;然后,经由决策层输出每个候选区域的得分构成目标响应图o。该决策层是线性决策层,由一个不含有激活函数的全连接层组成。最后,将响应图中分数最高的位置通过双三次插值算法(Bicubic Interpolation)映射到搜索区域中,从而可确定目标的所在位置。
网络训练过程使用的是由目标原型图像和搜索区域图像组成的图像对。SiamFC_plus 的损失函数为hinge损失函数加上L2正则化项,公式如式(4-1)所示。对比交叉嫡损失函数关注全局的所有样本,hinge损失函数更关注类别难以区分的部分样本,对学习有着更严格的要求。在同等的理想条件下,hinge损失函数能使模型具有更优的泛化性能。网络参数包括每层网络的权重和偏置,考虑到精确拟合偏置所需的数据量通常要比权重少许多,正则化偏置参数可能会导致明显的欠拟合,故只对权重做正则惩罚,而不对偏置做正则惩罚。

在这里插入图片描述

其中,a为正则化参数,0为网络参数,y[u]∈{—1,+1}为单个原型-实例对在目标响应图的每个位置u ∈ u上所对应的真实类标,o[u]为其对应的网络输出。网络中所使用的特征提取器是全卷积神经网络,该网络应用于目标追踪中只需要输入搜索区域的图像即可转换为各个子窗口的相似度得分,避免在检测时输入多个候选区域并逐个计算。与SiamFC算法一致,网络中的CNN特征提取器是基于Krizhevsky等提出的AlexNet 网络所构建的特征提取器[8]。在预处理阶段,将目标模板图像的尺寸缩放为1271273,搜索区域图像则缩放为2552553,以目标模板图片为滤波器,对搜索区域图片逐层进行互相关操作后所得的融合图片尺寸为1291293。特征提取阶段的具体网络结构如表6-1所示。
表6-1 SiamFC plus算法特征提取阶段的网络结构
在这里插入图片描述

网络参数0则通过随机梯度下降法计算得出。
在这里插入图片描述

网络的训练过程由前向传播过程和后向传播过程组成。前向传播过程是依照从前往后的顺序,从输入层开始经由隐藏层到达输出层,逐层计算出每个网络层的激活值。得到网络输出值后,将其代入损失函数中即可计算损失值。反向传播过程则是依照从后往前的顺序,从输出层开始经由隐藏层到达输入层,逐层计算出每个网络层的误差项,进而计算各层网络参数的梯度,最后根据梯度值更新各层网络参数。

7.SiamFC_plus 的前向传播

网络的前向传播过程是按照从前往后的顺序,从输入层开始经由隐藏层到达输出层,逐层计算出各个网络层的激活值,最后得到网络输出值。网络一共有L=9层,结合表6-1可知其中包括了1个输入层,5个卷积层,2个池化层,1个全连接层。记上标表示样本序号,下标表示网络层号,星号*表示卷积运算,*a表示每个颜色通道上的互相关操作,W表示权重,b表示偏量,o表示ReLU激活函数,Pool表示重叠最大池化法。第1层是输入层,输入目标模板图像z和搜索区域图像x,以z为滤波器,在每个颜色通道上对x做互相关操作,其输出为:
在这里插入图片描述

8.SiamFC_plus 的反向传播

完成前向传播过程后,开始进行网络的反向传播。反向传播过程是按照从后往前的顺序,从输出层开始经由隐藏层到达输入层,逐层计算出每个网络层的误差项,进而计算各层网络参数的梯度,最后根据梯度值更新各层网络参数。记下标表示层数,星号*表示卷积运算,〇表示Hadamard积(矩阵点乘),rot180表示翻转180度,即将矩阵上下翻转一次以及左右翻转一次。通过公式的损失函数计算输出层的误差项为:
在这里插入图片描述

9.网络结构

以往的跟踪器都通过模板分支和搜索分支之间的互相关实现相似性学习。原算法的作者认为这种方式存在以下缺点:
在这里插入图片描述

以往跟踪器一般是以目标中点为中心取m*m大小的区域作为模板,这会导致提取到部分背景信息或者丢失部分目标信息。本文只提取目标所在bbox区域作为模板帧。
以往跟踪器互相关是将提取到的模板特征在搜索区域上做全局搜索,无法适应旋转、姿态变化、遮挡等情况。
在这里插入图片描述

GAM:提出图注意力模块(Graph Attention Module),有效将目标信息从模板特征传递至搜索特征。
SiamGAT:在SiamCAR基础上做了改进,设计 target-aware 的选择机制以适应不同目标的大小和长宽比变化。

整体网络结构如图,特征提取使用GoogleNet,头部和SiamFC++一样。
在这里插入图片描述

10.系统整合

下图完整源码&数据集&环境部署视频教程&自定义UI界面

在这里插入图片描述

参考博客《基于图注意力单元的改进SiamFC++的单目标追踪系统》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1244378.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Typroa使用】Typroa+PicGo-Core(command line)+gitee免费图片上传配置

TyproaPicGo-Core(command line)gitee免费图片上传配置 本文是在win10系统下配置typroapicGo-Core(command line)gitee图片上传的教程。需要的环境和工具有: gitee账号,新建仓库及token令牌;已经安装了的typroa,需要0.9.98版本以上…

Python 字典(dict)基础学习

一、字典的基础定义(key:value)键值对 my_dict {"王力宏": 99, "周杰伦": 88, "林俊杰": 77} my_dict2 {} my_dict3 dict() print(my_dict) print(my_dict2) print(my_dict3) 字典基础定义 字典名 {key1:value1,key2:value2,key3:value3}…

shell 脚本的函数和数组

函数 —— 封装的一个公式:sin、cos、tan —— 函数为脚本的别名 —— 函数就是一个功能模块,在函数中写执行的命令即可;使用函数可以避免代码重复,增加可读性,简化脚本,使用函数可以将大的工程分割为若…

【C++初阶】STL详解(六)Stack与Queue的介绍与使用

本专栏内容为:C学习专栏,分为初阶和进阶两部分。 通过本专栏的深入学习,你可以了解并掌握C。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:C 🚚代码仓库:小小unicorn的代码仓库&…

UE5 中的computer shader使用

转载:UE5 中的computer shader使用 - 知乎 (zhihu.com) 目标 通过蓝图输入参数,经过Compture Shader做矩阵运算 流程 1. 新建插件 2. 插件设置 3. 声明和GPU内存对齐的参数结构 4. 声明Compture Shader结构 5. 参数绑定 6. 着色器实现 7. 分配 work gr…

【Spring】 IoCDI

回顾 企业命名规范 大驼峰:BookDao(首字母都大写) 类名 小驼峰:bookDao(第一个字母小写) 方法名 蛇形:book_dao(小写下划线_) 数据库 串形:book-dao(小写连字符-) 项目文件夹 各种注解 学习Spring MVC, 其实就是学习各种Web开发需要⽤的到注解 a. RequestMapping: 路由…

计算机中文编程工具构件之透明按钮,编程工具下载,零基础自学编程

计算机中文编程工具构件之透明按钮,编程工具下载,零基础自学编程 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件,而且可以开发大型的软件&am…

HashML——让更多企业读懂数据,用好AI

随着大模型技术的兴起,数据智能和AI正成为企业数字化转型的新驱动力。 酷克数据研发推出的新一代高级分析和数据科学工具箱HashML自推出以来,受到了众多企业和技术爱好者的广泛关注。在最近的直播中,我们邀请了HashData的数据科学工程师&…

目标检测算法 - YOLOv3

文章目录 1. Backbone Darknet-532. 整体架构3. 损失函数4. 训练过程5. 预测过程 YOLOv1、YOLOv2都是在CVPR这种正规的计算机视觉学术会议上发表的正式学术论文。 YOLOv3不算一篇严谨的学术论文,是作者随笔写的技术报告。 YOLOv3性能: 1. Backbone Dark…

七要素微气象仪气象数据监测助手

WX-WQX7 随着科技的发展,气象预测的准确性已成为人们日常生活的重要参考。而七要素微气象仪,作为新型的气象探测设备,以其精细化的数据测量和解析能力,正在改变我们的天气预测方式。 一、产品介绍 七要素微气象仪是一款集成了温…

STM32:基本定时器原理和定时程序

一、初识定时器TIM 定时器就是计数器,定时器的作用就是设置一个时间,然后时间到后就会通过中断等方式通知STM32执行某些程序。定时器除了可以实现普通的定时功能,还可以实现捕获脉冲宽度,计算PWM占空比,输出PWM波形&am…

TEMU平台商品欧盟站要求电子和电气产品提供CE-EMC(Electric)资质

CE-EMC认证是欧盟对于市场上销售的电子和电气产品所要求的一个重要认证标准。该认证指令规定了产品在电磁环境下的辐射和抗干扰性能要求,以确保产品在使用时不会对其他设备和系统产生干扰,并且能够正常工作,不受其他设备的干扰。 CE EMC认证…

【机器学习 | 白噪声检验】检验模型学习成果 检验平稳性最佳实践,确定不来看看?

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

flink和机器学习模型的常用组合方式

背景 flink是一个低延迟高吞吐的系统,每秒处理的数据量高达数百万,而机器模型一般比较笨重,虽然功能强大,但是qps一般都比较低,日常工作中,我们一般是如何把flink和机器学习模型组合起来一起使用呢? fli…

【Mysql学习笔记】3 - 本章作业

1.判断 1. 这句话表示ename as name 可以不要这个as&#xff0c;同理后面的sal salary也是别名&#xff0c;而选项D的Annual Salary中间也有空格&#xff0c;程序会判断为as 但as不能连用&#xff0c;所以错误&#xff0c;选D 2.选B&#xff0c;因为null不能加上判断符号<&…

shell(函数和数组)

目录 一、函数 1.函数的由来 2.函数的作用 3.函数的使用方法 4.函数的定义 5.查看函数 6.删除函数 7.函数返回值 8.函数的传参数 9.函数递归 二、数组 1.数组的相关介绍 2.声明数组 3.定义数组的格式 4.冒泡排序 总结&#xff1a;本章主要介绍了函数和数组相关知…

Redis集群主备切换原因排查

背景 线上redis部署的是三主三集群&#xff0c;昨天中午&#xff0c;线上各服务接连告警&#xff0c;提示服务已下线&#xff0c;过一段时间又上线了&#xff08;springboot-admin企业微信服务下线、上线告警&#xff09;&#xff0c;赶紧放下手中外卖排查。 排查 1. 查看各…

unreal 指定windows SDK

路径 &#xff1a; “C:\Users\Administrator\AppData\Roaming\Unreal Engine\UnrealBuildTool\BuildConfiguration.xml” 在Configuration中添加 <WindowsPlatform><WindowsSdkVersion>10.0.20348.0</WindowsSdkVersion></WindowsPlatform>示例&…

什么是高防IP?如何进行防护?怎样隐藏源站?

高防IP是针对互联网服务器遭受大流量的DDoS攻击后导致服务不可用的情况下&#xff0c;推出的付费增值服务&#xff0c;是目前最常用的一种防御DDoS攻击的手段。用户在数据不转移的情况下&#xff0c;就可以通过配置高防IP&#xff0c;将攻击流量引流到高防IP&#xff0c;防护系…

objdump反汇编文件解析

命令使用 objdump可以对可执行文件进行反汇编 其常用参数为: objdump -d <file(s)>: 将代码段反汇编&#xff1b;objdump -S <file(s)>: 将代码段反汇编的同时&#xff0c;将反汇编代码与源代码交替显示&#xff0c;编译时需要使用-g参数&#xff0c;即需要调试信…