【Deeplabv3+】Ubutu18.04中使用pytorch复现Deeplabv3+第三步)-----CityscapesScripts生成自己的标签

本文是在前面两篇文章的基础上,讲解如何更改训练数据集颜色,需要与前面两篇文章连起来看。

本文用于修改cityscapes数据集的标签颜色与Semankitti数据集的标签一致,对修改后的数据集进行训练。需要下载两个开发工具包和一个数据集,分别是cityscapesScripts-master、semantic-kitti-api-master和cityscapes数据集

  • cityscapesScripts是用于检查、准备和评估 Cityscapes 数据集的脚本。下载路径:

https://github.com/mcordts/cityscapesScripts

  •  cityscapes数据集需要注册登录才能下载,下载链接:

Login – Cityscapes Dataset

下载完成后,在cityscapesScripts-master中创建一个cityscapes文件夹,将下载好的两个文件分别放入其中,解压出来的说明文件直接删除即可,最终如下图:

  • semantic-kitti-api是用于打开、可视化、处理和评估 SemanticKITTI 数据集中的点云和标签结果的帮助程序脚本。下载路径:

https://github.com/PRBonn/semantic-kitti-api

一、制作标签步骤

1.1 更改标签颜色

进入目录cityscapesScripts-master\cityscapesscripts\helpers\labels.py中修改标签颜色与semantic-kitti-api-master\config\semanic-kitti.yaml中一致。注意:semantic-kitti-api-maste中的颜色是BGR颜色,cityscapesScripts中的颜色是RGB颜色,颠倒一下

cityscapesScripts-master\cityscapesscripts\helpers\labels.py标签:

semantic-kitti-api-master\config\semanic-kitti.yaml标签:

修改后的cityscapesScripts-master\cityscapesscripts\helpers\labels.py标签,可以直接拷贝使用:

labels = [#       name                     id    trainId   category            catId     hasInstances   ignoreInEval   colorLabel(  'unlabeled'            ,  0 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'ego vehicle'          ,  1 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'rectification border' ,  2 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'out of roi'           ,  3 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'static'               ,  4 ,      255 , 'void'            , 0       , False        , True         , (  0,  0,  0) ),Label(  'dynamic'              ,  5 ,      255 , 'void'            , 0       , False        , True         , (111, 74,  0) ),
# Label(  'ground'               ,  6 ,      255 , 'void'            , 0       , False        , True         , ( 81,  0, 81) ),Label(  'ground'               ,  6 ,      255 , 'void'            , 0       , False        , True         , ( 175,  0, 75) ),
# Label(  'road'                 ,  7 ,        0 , 'flat'            , 1       , False        , False        , (128, 64,128) ),Label(  'road'                 ,  7 ,        0 , 'flat'            , 1       , False        , False        , (255, 0,255) ),
# Label(  'sidewalk'             ,  8 ,        1 , 'flat'            , 1       , False        , False        , (244, 35,232) ),Label(  'sidewalk'             ,  8 ,        1 , 'flat'            , 1       , False        , False        , (75, 0,75) ),
# Label(  'parking'              ,  9 ,      255 , 'flat'            , 1       , False        , True         , (250,170,160) ),Label(  'parking'              ,  9 ,      255 , 'flat'            , 1       , False        , True         , (255,150,255) ),
# Label(  'rail track'           , 10 ,      255 , 'flat'            , 1       , False        , True         , (230,150,140) ),Label(  'rail track'           , 10 ,      255 , 'flat'            , 1       , False        , True         , (0,0,255) ),
# Label(  'building'             , 11 ,        2 , 'construction'    , 2       , False        , False        , ( 70, 70, 70) ),Label(  'building'             , 11 ,        2 , 'construction'    , 2       , False        , False        , ( 255, 200, 0) ),
# Label(  'wall'                 , 12 ,        3 , 'construction'    , 2       , False        , False        , (102,102,156) ),Label(  'wall'                 , 12 ,        3 , 'construction'    , 2       , False        , False        , (255,150,0) ),
# Label(  'fence'                , 13 ,        4 , 'construction'    , 2       , False        , False        , (190,153,153) ),Label(  'fence'                , 13 ,        4 , 'construction'    , 2       , False        , False        , (255,120,50) ),
# Label(  'guard rail'           , 14 ,      255 , 'construction'    , 2       , False        , True         , (180,165,180) ),Label(  'guard rail'           , 14 ,      255 , 'construction'    , 2       , False        , True         , (255,150,0) ),
# Label(  'bridge'               , 15 ,      255 , 'construction'    , 2       , False        , True         , (150,100,100) ),Label(  'bridge'               , 15 ,      255 , 'construction'    , 2       , False        , True         , (255,150,0) ),
# Label(  'tunnel'               , 16 ,      255 , 'construction'    , 2       , False        , True         , (150,120, 90) ),Label(  'tunnel'               , 16 ,      255 , 'construction'    , 2       , False        , True         , (255,150, 0) ),
# Label(  'pole'                 , 17 ,        5 , 'object'          , 3       , False        , False        , (153,153,153) ),Label(  'pole'                 , 17 ,        5 , 'object'          , 3       , False        , False        , (255,240,150) ),
# Label(  'polegroup'            , 18 ,      255 , 'object'          , 3       , False        , True         , (153,153,153) ),Label(  'polegroup'            , 18 ,      255 , 'object'          , 3       , False        , True         , (50,255,255) ),
# Label(  'traffic light'        , 19 ,        6 , 'object'          , 3       , False        , False        , (250,170, 30) ),Label(  'traffic light'        , 19 ,        6 , 'object'          , 3       , False        , False        , (50,255, 255) ),
# Label(  'traffic sign'         , 20 ,        7 , 'object'          , 3       , False        , False        , (220,220,  0) ),Label(  'traffic sign'         , 20 ,        7 , 'object'          , 3       , False        , False        , (255,0,  0) ),
# Label(  'vegetation'           , 21 ,        8 , 'nature'          , 4       , False        , False        , (107,142, 35) ),Label(  'vegetation'           , 21 ,        8 , 'nature'          , 4       , False        , False        , (0,175, 0) ),
# Label(  'terrain'              , 22 ,        9 , 'nature'          , 4       , False        , False        , (152,251,152) ),Label(  'terrain'              , 22 ,        9 , 'nature'          , 4       , False        , False        , (150,240,80) ),
# Label(  'sky'                  , 23 ,       10 , 'sky'             , 5       , False        , False        , ( 70,130,180) ),Label(  'sky'                  , 23 ,       10 , 'sky'             , 5       , False        , False        , ( 0,0,0) ),
# Label(  'person'               , 24 ,       11 , 'human'           , 6       , True         , False        , (220, 20, 60) ),Label(  'person'               , 24 ,       11 , 'human'           , 6       , True         , False        , (255, 30, 30) ),
# Label(  'rider'                , 25 ,       12 , 'human'           , 6       , True         , False        , (255,  0,  0) ),Label(  'rider'                , 25 ,       12 , 'human'           , 6       , True         , False        , (255,  40,  200) ),
# Label(  'car'                  , 26 ,       13 , 'vehicle'         , 7       , True         , False        , (  0,  0,142) ),Label(  'car'                  , 26 ,       13 , 'vehicle'         , 7       , True         , False        , (  100,  150,245) ),
# Label(  'truck'                , 27 ,       14 , 'vehicle'         , 7       , True         , False        , (  0,  0, 70) ),Label(  'truck'                , 27 ,       14 , 'vehicle'         , 7       , True         , False        , (  80,  30, 180) ),
# Label(  'bus'                  , 28 ,       15 , 'vehicle'         , 7       , True         , False        , (  0, 60,100) ),Label(  'bus'                  , 28 ,       15 , 'vehicle'         , 7       , True         , False        , (  100, 80,250) ),
# Label(  'caravan'              , 29 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0, 90) ),Label(  'caravan'              , 29 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0, 255) ),
# Label(  'trailer'              , 30 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0,110) ),Label(  'trailer'              , 30 ,      255 , 'vehicle'         , 7       , True         , True         , (  0,  0,255) ),
# Label(  'train'                , 31 ,       16 , 'vehicle'         , 7       , True         , False        , (  0, 80,100) ),Label(  'train'                , 31 ,       16 , 'vehicle'         , 7       , True         , False        , (  0, 0,255) ),
# Label(  'motorcycle'           , 32 ,       17 , 'vehicle'         , 7       , True         , False        , (  0,  0,230) ),Label(  'motorcycle'           , 32 ,       17 , 'vehicle'         , 7       , True         , False        , (  30,  60,150) ),
# Label(  'bicycle'              , 33 ,       18 , 'vehicle'         , 7       , True         , False        , (119, 11, 32) ),Label(  'bicycle'              , 33 ,       18 , 'vehicle'         , 7       , True         , False        , (100, 230, 245) ),
# Label(  'license plate'        , -1 ,       -1 , 'vehicle'         , 7       , False        , True         , (  0,  0,142) ),Label(  'license plate'        , -1 ,       -1 , 'vehicle'         , 7       , False        , True         , (  0,  0,255) ),
]

1.2 生成训练标签

1.2.1 生成labelIds标签

进入目录:cityscapesScripts-master\cityscapesscripts\preparation中

运行下面代码:

 # 运行成功后会在cityscapes数据集中生成_labelTrainIds结尾的训练文件python  .\createTrainIdLabelImgs.py 

此时进入cityscapesScripts-master\cityscapes\gtFine\train中任何一个城市,会发现多了一个修改好的训练标签(gtFine中test、train和val中均多了一个训练标签,不一一展示):

2.2 生成instanceIds标签

进入目录:cityscapesScripts-master\cityscapesscripts\preparation中

运行下面代码

#  # 运行成功后会在cityscapes数据集中生成_instanceTrainIds结尾的训练文件
python .\createTrainIdInstanceImgs.py

此时进入cityscapesScripts-master\cityscapes\gtFine\train中任何一个城市,会发现多了一个另一个实例训练标签,(gtFine中test、train和val中均多了一个训练标签,不一一展示):

2.3 修改DeepLabV3Plus-Pytorch中datasets\cityscapes.py中RGB值

训练之前,修改datasets\cityscapes.py文件中标签RGB值与cityscapesScripts-master中一致,可直接使用:

修改好的标签代码如下:

CityscapesClass = namedtuple('CityscapesClass', ['name', 'id', 'train_id', 'category', 'category_id','has_instances', 'ignore_in_eval', 'color'])classes = [CityscapesClass('unlabeled',            0, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('ego vehicle',          1, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('rectification border', 2, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('out of roi',           3, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('static',               4, 255, 'void', 0, False, True, (0, 0, 0)),CityscapesClass('dynamic',              5, 255, 'void', 0, False, True, (111, 74, 0)),# CityscapesClass('ground',               6, 255, 'void', 0, False, True, (81, 0, 81)),CityscapesClass('ground',               6, 255, 'void', 0, False, True, (175, 0, 75)),# CityscapesClass('road',                 7, 0, 'flat', 1, False, False, (128, 64, 128)),CityscapesClass('road',                 7, 0, 'flat', 1, False, False, (255, 0, 255)),# CityscapesClass('sidewalk',             8, 1, 'flat', 1, False, False, (244, 35, 232)),CityscapesClass('sidewalk',             8, 1, 'flat', 1, False, False, (75, 0, 75)),# CityscapesClass('parking',              9, 255, 'flat', 1, False, True, (250, 170, 160)),CityscapesClass('parking',              9, 255, 'flat', 1, False, True, (255, 150, 255)),# CityscapesClass('rail track',           10, 255, 'flat', 1, False, True, (230, 150, 140)),CityscapesClass('rail track',           10, 255, 'flat', 1, False, True, (0, 0, 255)),# CityscapesClass('building',             11, 2, 'construction', 2, False, False, (70, 70, 70)),CityscapesClass('building',             11, 2, 'construction', 2, False, False, (255, 200, 0)),# CityscapesClass('wall',                 12, 3, 'construction', 2, False, False, (102, 102, 156)),CityscapesClass('wall',                 12, 3, 'construction', 2, False, False, (255, 150, 0)),# CityscapesClass('fence',                13, 4, 'construction', 2, False, False, (190, 153, 153)),CityscapesClass('fence',                13, 4, 'construction', 2, False, False, (255, 120, 50)),# CityscapesClass('guard rail',           14, 255, 'construction', 2, False, True, (180, 165, 180)),CityscapesClass('guard rail',           14, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('bridge',               15, 255, 'construction', 2, False, True, (150, 100, 100)),CityscapesClass('bridge',               15, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('tunnel',               16, 255, 'construction', 2, False, True, (150, 120, 90)),CityscapesClass('tunnel',               16, 255, 'construction', 2, False, True, (255, 150, 0)),# CityscapesClass('pole',                 17, 5, 'object', 3, False, False, (153, 153, 153)),CityscapesClass('pole',                 17, 5, 'object', 3, False, False, (255, 240, 150)),# CityscapesClass('polegroup',            18, 255, 'object', 3, False, True, (153, 153, 153)),CityscapesClass('polegroup',            18, 255, 'object', 3, False, True, (50, 255, 255)),# CityscapesClass('traffic light',        19, 6, 'object', 3, False, False, (250, 170, 30)),CityscapesClass('traffic light',        19, 6, 'object', 3, False, False, (50, 255, 255)),# CityscapesClass('traffic sign',         20, 7, 'object', 3, False, False, (220, 220, 0)),CityscapesClass('traffic sign',         20, 7, 'object', 3, False, False, (255, 0, 0)),# CityscapesClass('vegetation',           21, 8, 'nature', 4, False, False, (107, 142, 35)),CityscapesClass('vegetation',           21, 8, 'nature', 4, False, False, (0, 175, 0)),# CityscapesClass('terrain',              22, 9, 'nature', 4, False, False, (152, 251, 152)),CityscapesClass('terrain',              22, 9, 'nature', 4, False, False, (150, 240, 80)),# CityscapesClass('sky',                  23, 10, 'sky', 5, False, False, (70, 130, 180)),CityscapesClass('sky',                  23, 10, 'sky', 5, False, False, (0, 0, 0)),# CityscapesClass('person',               24, 11, 'human', 6, True, False, (220, 20, 60)),CityscapesClass('person',               24, 11, 'human', 6, True, False, (255, 30, 30)),# CityscapesClass('rider',                25, 12, 'human', 6, True, False, (255, 0, 0)),CityscapesClass('rider',                25, 12, 'human', 6, True, False, (255, 40, 200)),# CityscapesClass('car',                  26, 13, 'vehicle', 7, True, False, (0, 0, 142)),CityscapesClass('car',                  26, 13, 'vehicle', 7, True, False, (100, 150, 245)),# CityscapesClass('truck',                27, 14, 'vehicle', 7, True, False, (0, 0, 70)),CityscapesClass('truck',                27, 14, 'vehicle', 7, True, False, (80, 30, 180)),# CityscapesClass('bus',                  28, 15, 'vehicle', 7, True, False, (0, 60, 100)),CityscapesClass('bus',                  28, 15, 'vehicle', 7, True, False, (100, 80, 250)),# CityscapesClass('caravan',              29, 255, 'vehicle', 7, True, True, (0, 0, 90)),CityscapesClass('caravan',              29, 255, 'vehicle', 7, True, True, (0, 0, 255)),# CityscapesClass('trailer',              30, 255, 'vehicle', 7, True, True, (0, 0, 110)),CityscapesClass('trailer',              30, 255, 'vehicle', 7, True, True, (0, 0, 255)),# CityscapesClass('train',                31, 16, 'vehicle', 7, True, False, (0, 80, 100)),CityscapesClass('train',                31, 16, 'vehicle', 7, True, False, (0, 0, 255)),# CityscapesClass('motorcycle',           32, 17, 'vehicle', 7, True, False, (0, 0, 230)),CityscapesClass('motorcycle',           32, 17, 'vehicle', 7, True, False, (30, 60, 150)),# CityscapesClass('bicycle',              33, 18, 'vehicle', 7, True, False, (119, 11, 32)),CityscapesClass('bicycle',              33, 18, 'vehicle', 7, True, False, (100, 230, 245)),CityscapesClass('license plate',        -1, 255, 'vehicle', 7, False, True, (0, 0, 255)),]

更改完成后,在DeepLabV3Plus-Pytorch-master中训练,即可得到训练后的新结果:

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

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

相关文章

Git标签推送

标签默认属于本地分支&#xff0c;推送分支的时候并不会上传。需要自己手动推送 通过命令 git push origin <tagname>推送指定的标签 通过命令git push origin --tags批量推送所有的标签 在VS里打开git命令行窗口的方法&#xff1a;Git更改-操作-打开命令行提示符 对于…

1.19信息学,信息熵(wordle)

所谓均方误差实际上就是方差 分析&#xff1a;对单词进行编码后&#xff0c;采用聚类方法&#xff0c;可以将单词难度分为三类或者更多&#xff0c;如困难、一般、简单。然后对每一类的单词可视化分析&#xff0c;并描述数据得出结论。 聚类算法较多&#xff0c;在论文中可以…

Docker镜像

创建镜像有三种方法&#xff0c;分别为基于已有镜像创建、基于本地模板创建以及基于Dockerfile创建。 基于现有镜像创建 首先启动一个镜像&#xff0c;在容器里做修改 然后将修改后的容器提交为新的镜像&#xff0c;需要使用该容器的 ID 号创建新镜像 常用选项&#xff1a; -…

【Unity】【游戏开发】Pico打包后项目出现运行时错误如何Debug

【背景】 开发过程中的报错可以通过控制台查看&#xff0c;但是PICO项目这类依赖特定设备环境的应用往往存在打包后在设备端发生运行时错误。这时如何能查看到Debug信息呢&#xff1f; 【分析】 Pico也是安卓系统&#xff0c;所以这个问题就可以泛化为Unity有哪些在安卓端运…

Linux系统中编写bash脚本进行mysql的数据同步

一、为何要用脚本做数据同步 &#xff08;一&#xff09;、问题 我们的视频监控平台云服务器&#xff0c;需要向上级的服务器定期同步一些数据表的数据&#xff0c;前期做了个程序&#xff0c;可以实现同步。但是&#xff0c;现在数据库的结构改了&#xff0c;结果又需要该程序…

C++实现推箱子游戏

推箱子游戏 运行之后的效果如视频所示&#xff0c;在完成游戏后播放音乐 准备工作&#xff1a;建立一个新的文件夹&#xff0c;并在文件夹中任意增加一张背景图片&#xff0c;以及各个部件的照片文件 因为这里用到了贴图技术&#xff0c;要使用graphic.h这个函数&#xff0c…

用于 C/C++ Debug 的宏函数

Debug.h 用于打印 Debug 信息的小工具&#xff1a; #pragma once#include <stdio.h>#define DEBUG 1#define pn puts("") #define where printf("%s(%d)-<%s>.\n\n", __FILE__, __LINE__, __FUNCTION__)#if (DEBUG 1) #define print_error(…

海外云手机三大优势

在全球化潮流下&#xff0c;企业因业务需求对海外手机卡等设备的需求不断攀升&#xff0c;推动了海外云手机业务的蓬勃发展。相较于自行置备手机设备&#xff0c;海外云手机不仅能够降低成本&#xff0c;还具备诸多优势&#xff0c;让我们深入探讨其中的三大黄金优势。 经济实惠…

【Linux】进程概述

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

统计学-R语言-8.1

文章目录 前言方差分析方差分析的原理什么是方差分析误差分解 单因子方差分析数学模型效应检验 练习 前言 本片开始介绍有关方差分析的知识。 方差分析 方差分析的基本原理是在20世纪20年代由英国统计学家Ronald A.Fisher在进行实验设计时为解释实验数据而首先引入的。方差分…

最新多功能PHP图床源码 /兰空图床Lsky Pro开源版v2.1/ 单纯的图床程序源码

源码介绍&#xff1a; Lsky Pro 是一个用于在线上传、管理图片的图床程序&#xff0c;中文名&#xff1a;兰空图床&#xff0c;你可以将它作为自己的云上相册&#xff0c;亦可以当作你的写作贴图库。 该程序的最初版本诞生于2017年10月&#xff0c;由ThinkPHP 5框架精心打造而…

【Linux 基础】常用基础指令(上)

文章目录 一、 创建新用户并设置密码二、ls指令ls指令基本概念ls指令的简写操作 三、pwd指令四、cd指令五、touch指令六、rm指令七、mkdir指令八、rmdir 指令 一、 创建新用户并设置密码 ls /home —— 查看存在多少用户 whoami —— 查看当前用户名 adduser 用户名 —— 创建新…

Python高超音速导弹

Python高超音速导弹的全自动化开发研发具有重要性的原因如下&#xff1a; 提高研发效率&#xff1a;全自动化开发可以通过自动化工具和流程&#xff0c;快速完成各种任务&#xff0c;包括代码编写、测试、集成和部署等。这样可以大大提高研发效率&#xff0c;缩短开发周期。 减…

08 BGP 华为官方文档 十一条选路原则

BGP 华为官方文档 十一条选路原则 丢弃下一跳不可达的路由 1&#xff09;比较“协议首选值-pref-val”属性&#xff0c;数值越大越好&#xff0c;默认值是0&#xff0c;只在本设备生效&#xff0c;不在网络中传递 2&#xff09;比较“本地优先级-local_pref”属性&#xff0c;…

Ceph分布式存储自动化运维平台开发实践

文章目录 1. 背景介绍1.1 什么是Ceph&#xff1f;1.1.1 Ceph的核心组件1.1.2 Ceph的优势 1.2 自动化运维的需求目标 2. 平台架构设计和组件版本2.1 平台架构设计2.2 组件版本2.3 模块划分&#xff08;已经脱敏处理&#xff09;2.3.1 当前版本V1.0支持功能2.3.2 前后端代码结构t…

JS-单例设计模式

设计模式&#xff1a;针对特定问题提出的简洁优化的解决方案 构造函数或类仅仅只能实例化一次&#xff0c;得到一个实例对象比如&#xff1a;工具类 在项目中使用工具类实例对象时&#xff0c;每一个实例对象的属性方法与功能作用都是一样的那么在项目中如果每次使用都需要重新…

如何保障主机安全

做好主机安全是非常重要&#xff0c;因为主机安全涉及保护主机的数据存储和处理的保密性、完整性和可用性。主机安全的具体措施包括硬件、固件、系统软件的自身安全以及一系列附加的安全技术和安全管理措施&#xff0c;从而建立一个完整的主机安全保护环境。 主机一旦被黑客入…

利用 “diart“ 和 OpenAI 的 Whisper 简化实时转录

利用 "diart" 和 OpenAI 的 Whisper 简化实时转录 工作原理 Diart 是一个基于人工智能的 Python 库&#xff0c;用于实时记录说话者语言&#xff08;即 "谁在什么时候说话"&#xff09;&#xff0c;它建立在 pyannote.audio 模型之上&#xff0c;专为实时…

Linux CentOS 7 安装mysql的步骤

#wget命令用来从指定的URL下载文件 wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server 重启mysql服务 service mysqld restart || systemctl restart mysqld…

RabbitMQ之Window中安装配置与使用

RabbitMQ之Window中安装配置与使用 文章目录 RabbitMQ之Window中安装配置与使用1 安装准备1.1 安装Erlang1.2 ErLnag环境变量配置 2. 安装RabbitMQ2.1 安装2.2 环境变量设置 官网&#xff1a;https://www.rabbitmq.com 下载地址&#xff1a;https://www.rabbitmq.com/download.…