基于自然语言的跨模态行人重识别技术研究

基于自然语言的跨模态行人重识别技术研究

万方数据知识服务平台

第二章 跨模态行人重识别理论基础

2.1 文本-图像检索技术

基于文本信息的跨模态行人重识别本质是基于文本-图像两个模态的行人重识别, 由于跨的两个模态分别是文本和图像, 所以其解决思路和图文检索问题十分相似,不过根据实际任务中涉及到的更多的是图文检索中的从文本向图像进行检索的, 所以基于文本信息的跨模态行人重识别问题在一定程度上可以理解为图文检索问题。

图像检索根据检索的对象的不同,可以分成基于文本的和基于内容的图像检索, 两者的主要区别是检索要素的形式不同, 从名称字面的意思就可以大概理解,

  • 基于文本的图像检索多是根据文本信息实现对图像的检索,常见的包括图像名称、作者和图像规格等信息。 该类图像检索更加接近于传统文本检索技术。

  • 而基于内容的图像检索更多的是对图像可视化元素进行分析, 允许通过输入一张已知的目标图像, 而后根据图像提取得到的特征在图像数据库中进行检索, 根据已知特征发现相似图像。

  • 基于文本信息的跨模态行人重识别任务可以归属于基于内容的图像检索。

基于内容的图像检索分类:一种是直接检索模型, 另一种是先生成后检索模型。

  • 直接检索模型一般是对图片和文本分别进行编码,然后利用函数将图片特征和文本特征信息所在的不同特征空间进行融合,投射在同一个特征空间之后, 就可以通过计算向量内积或者余弦相似度等相似度度量来进行分析。

  • 在生成预测标签的过程中,我们利用大文本数据的关系模型 P(S | I),如果想通过大文本来解释图像 I,给定一段描述大文本 S_q,通过对数似然比中的每一个词汇 I,分别计算 P(S_q | I),找出翻译关系小概率事件之后,根据实际情况选取 k 的大小,最后取前 k 个作为最终结果。而对于另外的图文翻译关系代表序,由于文本表述相对于其他表述来说更富有表达性,可能无须特别去除不良情绪影响,可直接比较原标签模型,因此在计算 P(S | I) 的时候,一般是直接以原始输入的形式进行运算。

2.2 卷积神经网络

卷积层中最主要的三个不同的特性分别是: 局部连接、参数共享、多卷积核, 这些特性降低了计算的复杂度,同时也降低了整体参数量,促进了卷积神经网络成为深度神经网络 。

image-20240224103943595

池化层

又称为下采样层(Down Sampling) , 池化操作用于减少特征图的维度,有利于特征图的参数体量的优化。根据池化计算操作不同,常见池化可分为最大值池化和平均值池化:

image-20240224104025148

归一化层

批量归一化有效的解决了网络内部的数据分布一直变化的问题。

神经网络的训练过程,其实就是在根据输入的数据集进行的一个渐变的拟合过程。 在实际拟合过程中, 数据虽然在层之间进行传递, 但是实际上针对每层来说, 它的数据的分布一直在变, 那么每个不同的卷积层在需要学习的分布也是一直在变的,不变因素会不断影响深度神经网络间的协同工作,从而影响整个网络的实际效果。 所以在批量归一化(Batch Normalization, BN) 层的概念没有被提出来之前,早期加深后的神经网络无法训练,研究人员将这种现象命名为 Internal Convariate Shift(ICS) ,后期随着参数初始化方法以及增加 BN 层等的加入, 网络可以正常反向传播完成训练。

BN 层的计算方法 :

image-20240224104502759

BN 层除了可以加快网络的训练和收敛的速度,使深层神经网络的训练收敛可以实现以外, 还可以使网络的输出不会很大,梯度就不会很小, 而且权值的更新跨度也不会很大。 所以说 BN 层的加入还可以有效缓解梯度爆炸以及梯度消失情况的发生。

另外, BN 层的加入使一个批量中所有训练样本同时被关联,避免出现神经网络仅仅是从某一单个训练样本进行学习拟合,因此网络的输入即使为同一个样本也不会过度拟合于单一训练样本,而是也取决于跟这个样本同属一个批次的其他样本。 同时训练过程中的样本批次的选取又是随机的,所以说 BN 层的加入一定程度上避免了神经网络过拟合情况的出现。

image-20240224105057101

当 Batch 值过小,数据的分布变化加大使得反向传播过程中生成的梯度变化会相应地变大, 训练过程中迭代更新算法会上下震荡不利于网络收敛,批量过小也会导致一个批量的不同类别的样本产生不平衡分布的情况变多,迭代周期也会被加长, 这些种种因素最终都会不利于网络训练优化从而影响到训练效果。

激活函数

无论是卷积层还是 BN 层, 在整个网络中都属于线性变换操作,但是如果想要提升网络的拟合能力, 单纯的线性变换不能满足要求,所以需要在网络中加入非线性变换单元来增强网络的拟合能力,这些单元函数被称为激活函数(Activation Function) 。

为什么激活函数需要是单调连续的

  1. 引入非线性:神经网络之所以能够逼近任何函数,归功于其非线性激活函数的使用。非线性允许单个神经元或神经网络层创建复杂的决策边界,这对于处理现实世界中复杂的数据模式是必要的。如果激活函数是线性的,那么无论网络有多深,最终模型的输出都仅仅是输入的线性组合,这大大限制了模型的表达能力。单调连续的激活函数确保了非线性的引入同时保持了某种“顺序”或“连续性”,这对于模型的学习是有益的。

  2. 支持有效的梯度下降优化:神经网络的训练依赖于梯度下降或其变种算法,这要求损失函数相对于模型参数是可导的。单调连续的激活函数确保了在整个输入空间内,梯度(或导数)是存在的。这一点对于计算参数更新的梯度是必需的。如果激活函数在某处不连续,那么在那一点的梯度可能不存在,这会阻碍梯度下降法的应用,从而影响模型的训练和收敛。

  • Sigmoid 函数

    image-20240224105334297

  • Tanh 函数

image-20240224110528504

  • ReLU 函数

函数在正值部分斜率为1,负值部分取零,该函数实现了在同一时间只有部分神经元会不为零,也就是被激活,从而实现了稀疏网络的目的,有效减少了过拟合情况的发生。

image-20240224110632623

但是该函数作为激活函数也存在一定的缺点,由于反向传播过程中正值神经元的梯度为 1,负值神经元梯度为 0。 部分神经元不会被激活,权重也就不能更新。ReLU 函数的另一个缺点就是函数是正向输出没有上限的, 也就是说函数的输出区间为[0, +无穷],不是零均值的。所以在实际使用中, 通常会优化函数,在函数中加入一个上限数值来进行优化,避免出现数据漂移的问题。 具体函数定义如公式 所示, n 值为设置的上限

image-20240224110829170

  • Swish 函数

image-20240224111325294

与其他常见激活函数不同,该函数不是一个非单调函数,于 ReLU 函数对比, 如图所示, Swish 函数以及一阶导数相对于其他函数图形更加平滑连续, β 是个可通过学习得到的参数,也可根据经验设置为固定的数值。

激活函数 Mish

image-20240224111508694

image-20240224111619366

2.3 多模态理论知识

除了本文研究的基于文本和图像信息的多模态行人重识别之外, 常见的多模态行人重识别主要包括以下几方面交叉模态的相关任务:

image-20240224111746846

2.4 多模态学习分类

多模态学习包含模态映射、 模态对齐、 多模态信息融合等子问题

看图说话(Image Captioning) 任务就属于模态间的映射问题,视觉问答(Visual Question Answering) 就包含多模态信息融合的问题 ,本文的利用自然语言文本信息来检索大规模数据集中的行人图片的研究属于模态间对齐问题

在多模态学习过程中,需要分别学习两种模态的表示,同时由于需要建立模态之间的对应关系,所以还需要已知实体在其中一种模态的特征表示与另一种模态中的特征表示之间的对应关系,一般是联合分布的形式。 通过学习两种模态的表示和两个模态之间的联合分布形式对应关系三组参数之后, 一个表示中的概念被锚定在另一个表示中,反之亦然,从而可以有效地推广到新的对组。

零次学习

零次学习就像是让计算机学会“根据描述识别未见过的东西”。想象一下,如果有人描述给你一个你从未见过的动物,比如说它有长长的颈、黄褐色的皮肤和斑点,即使你从没见过长颈鹿,你也可能根据描述猜出来。零次学习的目标是让计算机做到类似的事情——根据已知的信息去理解和识别它从未直接学习过的东西。

零次学习的基础

  • 共享的属性:这种学习方式依赖于一些基本的、可以共享的特征或属性,就像上面的例子中的“长颈”、“黄褐色的皮肤”和“斑点”。计算机通过学习这些属性,可以把它们组合起来,理解一些它从没直接学过的类别。

  • 描述的力量:在零次学习中,每种事物(比如动物、物品)都可以通过一组属性来描述。计算机使用这些描述来建立对未知事物的认识,就好比使用拼图块来拼出整个图案。

零次学习的应用场景

  • 图像识别:让计算机识别它从未见过的图片中的物体。比如,计算机虽然从没被直接告知什么是“水獭”,但它可以通过学到的“有毛”、“四肢”、“在水中生活”的属性来识别出水獭的图片。

  • 语言处理:帮助计算机理解新的词汇或概念,即使它从未在训练数据中遇到过这些词汇。

  • 推荐系统:即便用户从未对某类产品表达过兴趣,系统也能根据用户的已知喜好和产品的描述,推荐那些具有相似属性的未知产品。

image-20240224112900755

image-20240224113034540

2.5 自然语言处理模块概念(略)

2.6 基于文本的跨模态行人重识别

2.6.1 相关数据集

image-20240224113846546

image-20240224113921377

image-20240224113955886

2.6.2 常见行人重识别评价指标

rank-N

CMC 曲线

正确率&召回率(Precision & Recall)

第三章 单模态行人重识别网络设计与实现

提到的单模态行人重识别网络, 都是基于图像来实现以图搜图的任务。

image-20240224114418885

在行人重识别系统模块中,系统主要分为行人检测模块和网络主体部分。

行人检测

行人重识别首先需要做的就是将图片中的行人检测出来,称为 Gallery 输入。

目前较多的是直接选择现成的表现较好的检测框架使用。

行人重识别网络

行人重识别网络部分是对上一步中提取“Query 和 Gallery”的特征来测量相似度,并根据相似度对图像进行排序。 模型实现原理分为三个步骤,

  1. 特征提取, 目的是学习可以应对不同相机拍摄的人员变化的功能

  2. 度量学习, 通过度量学习将学习到的特征信息映射到新的特征空间,在新的特征空间中使同一类别中的人离得更近,不同类别中的行人图像距离变得更远

  3. 图像检索,即根据图片特征之间的距离进行分类,然后返回检索结果。

在行人重识别任务中,一部分是侧重于寻找和改进特征提取方法(关注的是找到较好的描述行人特征信息的特征表述模型),另一部分是找到用于特征比较的相似性度量(关注的是发现效果更好的关于行人特征计算相关度的度量方式)

基于特征描述的方法包含表征学习和局部特征相关两类。

image-20240224120032429

3.1 基于表征学习的方法

image-20240224124838576

若干对行人图片作为网络的输入, 模型主体由两部分组成,一部分是分类子网络,而另一部分则是验证子网络。 前者分类网络部分负责预测行人图像的身份标签, 模型预测输出的结果和实际标签值进行计算分类损失。 后者验证网络部分主要是判断分类功能,只需要负责判断两者是否属于同一行人身份。

image-20240224125115435

在实际操作中,网络模型不只是预测输出行人身份标签,还需要输出预测的行人属性,有了属性这一附加信息的加持,网络模型的泛化能力得到了提升。

缺点

也很明显,那就是表征学习容易在训练提供的训练集上出现过拟合的情况, 另外一点,当训练数据集中提供的行人身份标签信息过多的时候, 表征学习方法的训练的计算复杂度会明显增加,网络的实际训练过程会变得比较艰难

3.2 基于局部特征的方法

表征学习所提取出来的全局特征代表并不能满足对行人重识别研究优化的需求

图像分块方法中,通过分割方向的不同进行分类,可以分为垂直分割和水平分割,由于对行人图像中的人体来说,水平分割不符实际的直观识别感受,所以行人重识别领域一般提取局部特征切块的时候会选择垂直分割方式。

image-20240224125613233

在上图中, 行人图像在垂直分割之后于网络设置分割的是六块,分割之后, 六部分图像块送入到 LSTM 循环神经网络进行处理, 同时, 在送入过程中要注意顺序问题,经过 LSTM 网络处理后得到的行人特征结果是融合之后的特征结果。 如上图所示,两张待检测的行人图像分别进入网络,经过分块和融合,得到了可以代表整张行人图像的行人特征信息。 但是图像分块的方式也存在缺点, 那就是图像分块的效果会直接影响到识别效果,如果图像在分块的时候出现上下对齐失败的情况,那么在实际模型对比过程中,很有可能导致出现识别结果错误的情况,所以在图像分块局部特征提取方法中,图像是否对齐对模型识别效果影响很大, 对齐的要求比较严格。

首先使用先验知识先将行人图像进行对齐,来避免对后面识别处理步骤造成影响, 一般来说可以采用的先验知识主要是经过处理的人体姿态或者骨架点信息。

3.3 基于度量学习的方法

度量学习也可以被称为距离度量学习或者相似度学习,该方式本身属于一种空间映射的方法。 在空间中,所有的数据都被转换成一个特征向量,并且相似样本的特征向量之间距离会更小, 从而通过该特性对数据进行分类识别

常见的损失函数,有对比损失[38]、三元组损失[39-41]、四元组损失[42]和难样本采样三元组损失[43]

image-20240224154801635

三元组损失:

image-20240224155054893

四元组损失(Quadruplet loss) :

image-20240224155446329

难样本采样三元组损失:

image-20240224160210242

image-20240224160054420

3.5 本章小结

本章主要介绍了单模态行人重识别技术的主要实现原理,并重点对比分析了特征描述的学习方法以及距离度量学习的方法

  • 前者优点是训练学习的复杂度比较低,但是缺点就是模型对于行人身份标签的数量过于敏感,会影响网络的实际效果。

  • 后者度量学习是直接计算特征之间的距离,其最大的优点在于可以很方便地扩展到新的数据集, 但是度量学习的收敛是比较困难的。

  • 另外的对于特征描述方法下的局部特征方法,它解决了在之前行人重识别任务中只有全局特征表示中的瓶颈问题。

度量学习和表征学习相比较来说,

  • 前者的方便之处在于神经网络模型的最后一般不需要连接一个全连接层,因此度量学习过程中,模型对于训练集的行人身份标签数量并不敏感,比表征学习的方法更加适用于数据集规模较大的情况。

  • 在图像处理中的识别或者分类任务,度量学习比表征学习更加常用,在实验中的效果一般也好于表征学习方法。

  • 现在很多的网络模型是同时包含这两方面[46]。 两者联合的方式也比较简单, 实际的联合过程一般是在普通度量学习方法的前提下, 在特征层后面添加一个全连接层进行身份分类训练, 该方式可以超越表征学习和度量学习表现效果。

第四章 跨模态行人重识别设计与实现

image-20240224162413820

image-20240224171046924

4.1 文本特征提取结构

文本特征提取和表示主要分为两种, 一种是整个句子构建成单个特征向量, 句子结构的变化对该种整句提取的方式的影响比较大, 另外一种则是以单词为单位提取文本特征。

4.1.1 Fisher Vector

image-20240224185101569

4.1.2 文本分类卷积网络

image-20240224205928546

4.1.3 卷积循环网络

上文提到的纯卷积文本模型有一个缺点,就是模型缺少时间依赖性。

在卷积神经网络隐藏层之上增添一个 RNN 网络。

image-20240224210045842

4.2 图像特征提取网络

VGG16 和 Resnet50 网络

4.3 特征对齐模块

利用自然语言文本信息来检索大规模数据集中的行人图片是跨模态检索的一个更加细粒度的应用领域, 属于模态间对齐的问题,所以特征对齐模块就显得十分重要。

4.3.1 图像-文本联合特征表示

对于已有的视觉特征提取结构和文本编码器结构, 需要在每个输入单词上生成一个联合的文本-视觉特征表示。 生成联合表示的一个比较简单的解决方案就是将视觉特征向量与每个单词的单词特征向量连接起来。

image-20240224210911498

image-20240224211034855

4.3.2 注意力机制模块

关注模块可以主要分为三种不同的使用情况:空间关注注意力机制、 潜在语义关注以及单词注意力加权机制

4.3.3 特征空间映射

image-20240224212544953

网络将文本和图像特征映射到了同一个语义特征空间。

上图的跨模态识别网络没有采用注意力等机制, 网络直接分成两路 CNN 分别提取两个模态的特征信息,最后接入两个全连接层分别得到固定维数大小的视觉特征和文本特征。 最后一个全连接层是权重共享的以使网络在权重更新中让文本和图像特征映射到同一个语义特征空间, 上图中的文本卷积神经网络中的第一个卷积层的权重可以使用 word2vec 来初始化。

4.3.4 损失函数部分

在设计损失函数的时候,首先应该明确的就是在当前任务下,判断是否匹配成功的标准是什么

对于跨模态行人重识别任务, 一般可以分成 Id-身份级别损失和实例级别损失两种概念思路来理解。

  • Id-身份级别的含义是把每个行人身份标签和相关的文本描述信息看作一类,

  • 实例级别的含义就是只将对应标注的图像-文本标注对看成正确匹配,相当于是不考虑行人身份信息

image-20240224213238615

  1. 交叉熵损失函数

  1. 排序损失

  2. 跨模态投影匹配&跨模态投影分类损失

4.5 本章小结

image-20240224213534412

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WordPress前端如何使用跟后台一样的Dashicons图标字体?

很多站长都喜欢在站点菜单或其他地方添加一些图标字体,常用的就是添加Font Awesome 图标和阿里巴巴矢量库图标iconfont。其实我们使用的 WordPress 本身就有一套管理员使用的官方图标字体 Dashicons,登录我们站点后台就能看到这些图标字体。那么有没有可…

Linux项目部署

目录 一.安装JDK二.安装Tomcat三.安装MySQL四.部署项目 一.安装JDK 上传jdk安装包 jdk-8u151-linux-x64.tar.gz 进入opt目录,将安装包拖进去 2. 解压安装包 [rootlocalhost opt]# cd /usr/local/ [rootlocalhost local]# mkdir java 再次进入到opt目录解压 [root…

Android14之input高级调试技巧(一百八十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

高通XBL阶段读取分区

【需求】: 在某些场景下,需要在XBL阶段读取分区数据,需要验证xbl阶段方案 这里主要以裸分区为例,比如oem分区。 1、创建一个1MB大小的oem.img,写入内容“test oem partition” 创建方式: dd if/dev/null …

FPGA之16:1复选器

每个slice 都有一个F8MUX。F8MUX原语: MUXF8 MUXF8_inst( .0(0),Il Output of MUX to general routing .I0(10),//Input(tie to MUXF7L/LO out) .I1&#xf…

nginx重新编译添加模块或去除不需要的模块

在使用nginx中,我们可能需要对已经安装的nginx进行添加或者删除模块 1、先查看nginx安装了哪一些模块 nginx -V2、来到nginx源码目录,根据如下规则,自行根据需求更改命令 如果要去掉nginx自带的模块,就是用–without做为前缀进…

python3 Flask jwt 简易token认证实例

直接上代码 from flask import Flask, jsonify, request, make_response import jwt import datetime from functools import wrapsapp Flask(__name__)# 这是一个示例密钥,实际应用中应该使用一个复杂且随机的密钥 app.config[SECRET_KEY] your_secret_keydef t…

手写redux和applyMiddleware中间件react示例

目录 一 核心代码 1.reducer 2.store.js 二 关于context API的使用 1. MyContext 2. createContext 3. ContextProvider 4. connect 三 组件验证效果 1. Todo 2. TodoList 3.TodoItem 4.TodoInput 5. App组件引入Todo组件 一 核心代码 1.reducer // 新增列表数…

LDR6020芯片驱动未来:TYPE-C桌面显示器的新篇章

TYPE-C接口桌面显示器,与传统显示器截然不同。它不仅在视频传输方面表现出色,还融入了创新的充电功能。利用显示器的DC电源,可以轻松转换成PD协议,为笔记本、任天堂等HOST设备提供稳定的充电服务。 兼容性:连接无忧 …

解决SpringAMQP工作队列模型程序报错:WARN 48068:Failed to declare queue: simple.queue

这里写目录标题 1.运行环境2.报错信息3.解决方案4.查看解决之后的效果 1.运行环境 使用docker运行了RabbitMQ的服务器: 在idea中导入springAMQP的jar包,分别编写了子模块生产者publisher,消费者consumer: 1.在publisher中运行测试…

element ui 虚拟滚动 滚动到底部加载下一页

引入element ui的InfiniteScroll 无限滚动插件 <div class"news-left"><div class"infinite-list-wrapper" style"overflow:auto;height: 70vh"><ul class"list" v-infinite-scroll"load"><li :class&…

【mysql】1000w数据量的分页查询SQL,如何优化提升性能?

文章目录 优化场景特别注意&#xff01;&#xff01;&#xff01;有前提&#xff0c;谨慎使用 优化场景 当表数据量非常大时&#xff0c;需要进行分页查询如果慢的时候&#xff0c;可以考虑优化下。 假设一页展示10条&#xff0c;查询第10w条后面的数据时候变慢了… 优化思路&…

Java智慧工地云综合管理平台SaaS源码 助力工地实现精细化管理

目录 智慧工地系统介绍 1、可视化大屏 2、视频监控 3、Wi-Fi安全教育 4、环境监测 5、高支模监测 6、深基坑监测 7、智能水电监测 8、塔机升降安全监测 智慧工地系统功能模块 1、基础数据管理 2、考勤管理 3、安全隐患管理 4、视频监控 5、塔吊监控 6、升降机监…

内容安全补充

第十一天 密码学 近现代加密算法 古典加密技术 --- 算法保密原则 近现代加密技术 --- 算法公开&#xff0c;密钥保密 对称加密算法&#xff0c;非对称加密算法 对称加密 --- 加密和解密的过程中使用的是同一把密钥。 所以&#xff0c;对称加密所使用的算法一定是一种双向…

【Qt】鼠标拖拽修改控件尺寸---八个方位修改

前提 在开发一个类似qdesiger的项目中 使用QGraphicsProxyWidget将Qt基础控件作为item放在场景视图中显示和编辑 创建自定义类继承QGraphicsProxyWidget&#xff0c;管理控件 成员变量 有控件的xywh等&#xff0c;其中x、y坐标存储是基于最底层widgetitem的 坐标系 x轴以右为正…

15-36V降压充电光伏MPPT充电方案

1.MPPT原理--简介 MPPT&#xff0c;全称为Maximum Power Point Tracking&#xff0c;即最大功点跟踪&#xff0c;它是一种通过调节电气模块的工作状态&#xff0c;使光伏板能够输出更多电能的电气系统能够将太阳能电池板发出的直流电有效地贮存在蓄电池中&#xff0c;可有效地…

Mac怎么运行赛博朋克2077,使用Game Porting Toolkit

Game Porting Toolkit通过转译的方式&#xff0c;将Direct3D指令翻译成Metal指令&#xff0c;让不少Windows游戏都能够在Apple Silicon Mac上成功运行。作为一款开发者工具&#xff0c;运行起来自然有不少的坑&#xff0c;本文手把手带你在M芯片Mac上运行赛博朋克2077。 CrossO…

数据库期末简答题速成-救命专用

简答题&#xff1a; 第 1 章 绪论 DBMS 的主要功能有哪些&#xff1f; 答&#xff1a;数据库管理系统&#xff08;DBMS&#xff09;是位于操作系统与用户之间的一个数据管理软件&#xff0c;它主要功能包括以下几个方面&#xff1a; 数据定义功能 DBMS提供数据描述语言&…

(响应数据)学习SpringMVC的第三天

响应数据 一 . 传统同步业务数据响应 1.1 请求资源转发与请求资源重定向的区别 请求资源转发时,froward:可不写 二 . 前后端分离异步方式 回写json格式的字符串 1 用RestController代替Controller与 ResponseBody 2 . 直接返回user对象实体 , 即可向 前端ajax 返回json字…

day02_java基础_变量_数据类型等

零、今日内容 1 HelloWorld程序 2 idea使用 3 变量 4 数据类型 5 String 一、复习 班规班纪。。。。。 安装jdk JDK 是开发工具 JRE 是运行代码 JDK包含JRE 配置环境变量 二、HelloWorld程序 前提&#xff1a;JDK已经安装配置完毕&#xff0c;有了这些环境就敲代码 代码…