当前位置: 首页 > news >正文

【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中训练,即可得到训练后的新结果:

相关文章:

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

本文是在前面两篇文章的基础上,讲解如何更改训练数据集颜色,需要与前面两篇文章连起来看。 本文用于修改cityscapes数据集的标签颜色与Semankitti数据集的标签一致,对修改后的数据集进行训练。需要下载两个开发工具包和一个数据集&#xff0…...

《动手学深度学习(PyTorch版)》笔记3.3

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过。…...

OpenGL ES 渲染 NV21、NV12 格式图像有哪些“姿势”?

使用2个纹理实现 NV21 格式图像渲染 前文提到渲染 NV21 格式图像需要使用 2 个纹理,分别用于保存 Y plane 和 UV plane 的数据,然后在片段着色器中分别对 2 个纹理进行采样,转换成 RGB 数据。 OpenGLES 渲染 NV21或 NV12 格式图像需要用到 GL_LUMINANCE 和 GL_LUMINANCE_A…...

P8813 [CSP-J 2022] 乘方 题解

目录 题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示题目简化题目思路AC 代码 观前提示,此题解解法非正解,仅仅是卡过数据才 A C AC AC 的。正解请参考他人博客。 题目描述 小文同学刚刚接触了信息学竞赛…...

Ubuntu 常用命令、docker 常用命令、unzip常用命令、tar常用命令

ubuntu 常用命令&#xff1a; 进入管理员模式&#xff1a; sudo su退出管理员模式&#xff1a; su <用户名>重启系统&#xff1a; rebootubuntu 复制文件夹下文件到其他文件夹下 cp -r source_folder/* destination_folder/删除文件夹下内容而不删除自身(进入到目录…...

保护医疗数据不受威胁:MPLS专线在医疗网络安全中的角色

随着数字技术的快速发展&#xff0c;医疗行业正在经历一场革命。从电子健康记录到远程医疗服务&#xff0c;数字化不仅提高了效率&#xff0c;也带来了前所未有的挑战--尤其是关于数据安全和隐私保护的挑战。在这样的背景下&#xff0c;如何确保敏感的医疗数据安全传输&#xf…...

Java面试题夺命连环问

如何实现一个ioc容器 配置文件配置包扫码路径递归包扫描获取.class文件反射确定需要 交给IOC管理的类对需要注入的类进行依赖注入 配置文件中指定需要扫描的包路径 定义一些注解&#xff0c;分别表示访问控制层&#xff0c;业务服务层&#xff0c;数据持久层&#xff0c;依赖…...

华为策略路由+NQA配置

---NQA--- [RouterA] nqa test-instance admin NQA [RouterA-nqa-admin-vlan10] test-type icmp [RouterA-nqa-admin-vlan10] destination-address ipv4 对方地址 [RouterA-nqa-admin-vlan10] frequency 10 [RouterA-nqa-admin-vlan10] probe-count 2 [RouterA-nqa-admin-vlan…...

逆置字符串

将字符串逆序,比如输入abcd,返回dcba void reverse(char*left,char *right) { while (right>left) { char temp *left; *left *right; *right temp; right--; left; } } int main() { char arr[100] { 0 };//定义…...

第九节HarmonyOS 常用基础组件14-DataPanel

1、描述 数据面板组件&#xff0c;用于将多个数据占比情况使用占比图进行展示。 2、接口 DataPanel(options:{values: number[], max?: numner, type?: DataPanelType}) 3、参数 参数名 参数类型 必填 描述 values number[] 是 数据值列表&#xff0c;最多含9条数…...

Vue开发之proxy代理的配置(附带uniapp代理配置)

vue 1.在vue.config.js中添加 devServer 属性中配置 proxy 属性 module.exports {productionSourceMap: false,publicPath: /,devServer: {port: 8085,proxy: {/api/admin: {target: http://10.58.104.70:6111,changeOrigin: true,pathRewrite: {/api/: /}},/api: {target: …...

【数据分享】2023年我国省市县三级的公司企业数量(21类公司企业/Excel/Shp格式)

医药公司、建筑公司、电信公司等公司企业的数量是一个城市生命力的重要体现&#xff0c;一个城市的公司企业种类越丰富&#xff0c;数量越多&#xff0c;通常能表示这个城市的生命力越旺盛&#xff01; 本次我们为大家带来的是我国各省份、各地级市、各区县三个层级的公司企业…...

6JS对象

6.1对象简介 对象是JavaScript的基本数据类型。对象是一种复合值&#xff1a;它将很多值&#xff08;原始值或者其他对象&#xff09;聚合在一起&#xff0c;可通过名字访问这些值。对象也可看做是属性的无序集合&#xff0c;每个属性都是一个名/值对。属性名是字符串&#xf…...

粒子群算法求解港口泊位调度问题(MATLAB代码)

粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种基于群体智能的优化算法&#xff0c;它通过模拟鸟群或鱼群的行为来寻找最优解。在泊位调度问题中&#xff0c;目标是最小化所有船只在港时间的总和&#xff0c;而PSO算法可以帮助我们找到一…...

idea控制台出现乱码的解决方案

概述&#xff1a;有时候控制台的关键说明出现乱码&#xff0c;就很令人烦恼 在 IntelliJ IDEA 中出现控制台乱码通常是由于编码设置不正确或者字体显示问题导致的。以下是一些可能的解决方案&#xff1a; 1. 设置项目编码 确保你的项目编码设置正确&#xff1a; 在 Intelli…...

R语言【taxlist】——summary(),show(),print():打印taxlist对象及其内容的概述

Package taxlist version 0.2.4 Description 一种方法&#xff0c;用于显示 taxlist 对象内容的概述或所选分类组的概述。 Usage ## S4 method for signature taxlist summary(object,ConceptID,units "Kb",check_validity TRUE,display "both",maxs…...

【深度学习】sdxl中的 text_encoder text_encoder_2 区别

镜像问题是&#xff1a;https://editor.csdn.net/md/?articleId135867689 代码仓库&#xff1a; https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/tree/main 截图&#xff1a; 为什么有两个CLIP编码器 text_encoder 和 text_encoder_2 &#xff1f; 在…...

上位机图像处理和嵌入式模块部署(python opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们谈到了qt&#xff0c;谈到了opencv&#xff0c;也谈到了嵌入式&#xff0c;但是没有说明python在这个过程当中应该扮演什么样的角色。open…...

父元素flex:1 高度却被子元素撑开的问题

问题 当父元素设置了flex: 1; 的情况下&#xff0c;想在其中子元素超出父元素高度的情况下&#xff0c;产生滚动条&#xff0c;在父元素区域滚动。由于子元素高度不固定&#xff0c;故父元素设置为display: flex; flex-direction: column; 子元素设置flex: 1; overflow: auto;…...

【LUA】mac状态栏添加天气

基于网络上的版本修改的&#xff0c;找不到出处了。第一个摸索的lua脚本&#xff0c;调了很久。 主要修改&#xff1a;如果风速不大&#xff0c;就默认不显示&#xff0c;以及调整为了一些格式 local urlApi http://.. --这个urlApi去申请个免费的就可以了 然后打开对应的json…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...