BiSeNetv2(pytorch)测试、训练cityscapes

news2024/11/14 2:06:13

1. 源码:

github: https://github.com/CoinCheung/BiSeNet

git clone https://github.com/CoinCheung/BiSeNet.git

2. 预训练模型:

工程下载后解压,并在其中创建文件夹【model】用于存放预训练模型;
在这里插入图片描述

3. 运行demo

conda create -n bisenet python=3.8
conda activate bisenet

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip3 install opencv-python
pip3 install tabulate tqdm

3.1 使用 【bisenetv2_city】测试图片:

python tools/demo.py --config configs/bisenetv2_city.py --weight-path ./model/model_final_v2_city.pth --img-path ./example.png

会保存结果为【res.jpg】
请添加图片描述

3.2 使用【bisenetv2_coco】测试视频:

python tools/demo_video.py --config configs/bisenetv2_coco.py --weight-path ./model/model_final_v2_coco.pth --input ./video.mp4 --output res.mp4
会保存结果为【res.mp4】,展示的结果是从视频中截取的效果,所以彩色图和预测图片效果不对应,间隔了少量的帧数

4 训练cityscapes数据集

4.1 下载数据集并解压

官网链接:https://www.cityscapes-dataset.com/,下载数据需要注册,且账号有一定的要求。登录后进行数据下载:
在这里插入图片描述
遵守该工程调用数据路径,我们需要在工程路径下的【./datasets/cityscapes】下创建个软连接。进入该路径运行:

cd ./datasets/cityscapes
rm-rf gtFine leftImg8bit 
ln -s /mnt/e/project/data/BiSeNetV2/gtFine gtFine
ln -s /mnt/e/project/data/BiSeNetV2/leftImg8bit leftImg8bit 

4.2 训练BiSeNetv2-cityscapes

源码提供的pytorch的分布式训练,而我们常有的是单机单卡、或单机多卡。

  • 单机多卡
export CUDA_VISIBLE_DEVICES=0,1
python -m torch.distributed.launch --nproc_per_node=2 tools/train_amp.py --config configs/bisenetv2_city.py
  • 单机单卡
export CUDA_VISIBLE_DEVICES=0
python -m torch.distributed.launch --nproc_per_node=1 tools/train_amp.py --config configs/bisenetv2_city.py
  • 注意:
  1. 若报错“train_amp.py: error: unrecognized arguments: --local-rank=0”:
    把脚本中的python3 -m torch.distributed.launch 换成 torchrun(推荐此方法);
    或者修改torch版本,重配置环境;
  2. 若报错"
    修改BiSeNet/configs/bisenetv2_city.py 中的ims_per_gpu,改小,比如修改为2;
    或者添加:
import os
os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:128"

4.3 模型评估

python tools/evaluate.py --config configs/bisenetv2_city.py --weight-path ./res/model_final.pth

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

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

相关文章

【安装】Linux环境下的 JDK的安装 安装配置 环境变量

目录 Linux安装java环境1.检查系统中是否有JDK2.删除原有的java相关的包3.上传jdk到指定的文件夹4.解压jdk-8u371-linux-x64.tar.gz5.配置jdk的环境变量6.让配置生效 运行一个jar包运行jar包进行测试 Oracle 甲骨文中国 | 云应用和云平台 windows环境下的 JDK官网下载 & 安…

Android实现抓包 使用Fiddler抓包

Fiddler下载:https://pan.baidu.com/s/1QzvL0xugp6XX7gbFBFlEJg?pwdbf6u 提取码:bf6u 1.Fiddler配置 如果用不到https可以不开启https抓包 电脑打开fiddler,手机电脑同一网段。fiddler打开https抓包(Tools->Options->HTTPS)&a…

re学习(17)Bugku-re-Tworld(使用DFS解决迷宫问题)

下载地址: 跳转提示 参考视频: 【Bugku/CTF/Re/WP】使用DFS解决迷宫问题CTF "Tworld"_哔哩哔哩_bilibili 载入IDA后发现有UPX壳,先用工具进行脱壳,然后载入IDA进行分析。 编写脚本: #全部代码 import…

【电路原理学习笔记】第3章:欧姆定律:3.3 电压的计算

第3章:欧姆定律 3.3 电压的计算 电压相关欧姆定律公式: V I R VIR VIR 【例3-11】在图3-10所示的电路中,产生5A电流需要多大电压? 【答】 V I R 5 A 100 Ω 500 V VIR5\rm A\times 100Ω500 V VIR5A100Ω500V 【同步练习…

N天爆肝数据库——MySQL(5)

本文主要对索引进行了讲解 这里写目录标题 本文主要对索引进行了讲解索引概述介绍优缺点索引结构二叉树红黑树B-Tree(多路平衡查找树)BTreeBTree与B-Tree区别: HashHash索引特点 为什么InnoDB存储引擎选择使用BTree索引结构?索引分类在InnoDB存储引擎中,…

详解JS的四种异步解决方案!

目录 同步&异步的概念 js中异步的应用场景 实现异步的四种方法 1、 回调函数 2、Promise 3、Generator 4、 async/await 「异步编程」是前端工程师日常开发中经常会用到的技术,也是校招面试过程中常考的一个知识点。 通过掌握「异步编程」的四种方式&…

redis 和mongodb基础操作练习

目录 redis作业 string、list、hash 数据类型 举例说明list和hash的应用场景,每个至少一个场景 mongodb作业 1. 创建一个数据库 名字grade 2. 数据库中创建一个集合名字 class 3. 集合中插入若干数据 文档格式如下 4. 查找 5. 增加、更新、删除、统计 re…

【电路原理学习笔记】第3章:欧姆定律:3.1 电压、电流与电阻的关系

第3章:欧姆定律 3.1 电压、电流与电阻的关系 欧姆定律指出:电流与电压成正比,与电阻成反比。即 I V R I\frac{V}{R} IRV​ 3.1.1 电压与电流之间的线性关系 数学上,线性指的是变量之间的关系在图形上是一条直线。线性方程所对…

数据结构与算法——希尔排序(引例、希尔增量序列、原始希尔排序、代码、时间复杂度、Hibbard增量序列、Sedgewick增量序列)

目录 引例 希尔增量序列 原始希尔排序 代码(C语言) 时间复杂度 更多增量序列 Hibbard增量序列 Sedgewick增量序列 希尔排序(by Donald Shell) 引例 给以下序列进行排序: 先以5的间隔进行插入排序&#xff1a…

自学数据结构和算法(5)

二叉树的遍历 分为先序、中序、和后序遍历。 这三种遍历都可以由递归序来得到: (1)先序遍历(也是二叉树的深度优先遍历)是第一次到某个结点才打印; (2)中序遍历是第二次到某个结…

【ACM】—蓝桥杯大一暑期集训Day3

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前正在学习C/C、Java、算法等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&#xff…

PCL 获取点集中距离最近的两个点(二维)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 给定一个平面上n个点的点集,问题是找出点集中最近的点对。这个问题经常出现在许多应用程序中,例如,在空中交通管制中,监视靠得太近的飞机,因为这可能发生碰撞。这里实现一种方式来获取这两个点,具体计算过程如…

换零钱II:零钱面值动态变化,class方法自动兑换最少零钱(贪心算法)

银行现存零钱面值种类动态变化但数量无限,类方法change()完成指定金额的最少零钱个数兑换。 (本笔记适合学透python基本数据结构,熟悉class的基构造,对类内全局变量有一定认的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1…

C++并发编程(4):共享数据的问题、使用互斥量保护共享数据、死锁

在线程间共享数据 参考博客 线程间共享数据——使用互斥量保护共享数据 [c11]多线程编程(四)——死锁(Dead Lock) c多线程之死锁 C 死锁及解决办法 共享数据的问题 设想你有一段时间和朋友合租公寓,公寓只有一个厨房和一个浴室。除非你们的感情格外深厚&#xff0…

KBQA项目-基于豆瓣电影TOP250数据的知识图谱对话机器人

从今天开始,我们要一起来学习一个新的课程,叫做《基于豆瓣电影TOP250数据的知识图谱对话机器人》,同时,这个课程也是「知识图谱」系列的第一个项目。 项目演示 课程内容 1、爬取数据:使用reqests库,结合b…

贝莱德CEO再谈比特币ETF:客户需求让我们进军加密市场

来源:CNBC 编译:WEEX Exchang 「进军加密货币领域符合这家资产管理巨头更广泛的使命,即为投资者创造易用且低成本的产品。」贝莱德 CEO Larry Fink 周五(7 月 14 日)在 CNBC 「街谈巷议」(Squawk on the St…

Java 设计模式——装饰者模式

目录 1.概述2.结构3.案例实现3.1.抽象组件3.2.具体组件3.3.抽象装饰3.4.具体装饰3.5.测试 4.优缺点5.使用场景6.JDK 源码解析——BufferedWriter7.装饰者模式和静态代理的比较 1.概述 (1)我们先来看一个快餐店的例子:快餐店有炒面、炒饭这些…

PCB板框评估及叠层设计

PCB板框评估及叠层设计 板框评估叠层设计 板框评估 首先选中所有器件,点击下图指令 在PCB中画一个矩形框,所有器件将会排列在这个框中 快捷键 E O S 重新定义原点 选择机械1层,快捷键P L 画出大致的板框,板框画好之后&#x…

全网最详细4W字Flink入门笔记(下)

本文已收录至Github,推荐阅读 👉 Java随想录 文章目录 Flink State状态CheckPoint & SavePointCheckPoint原理SavePoint原理 StateBackend状态后端MemoryStateBackendFsStateBackendRocksDBStateBackend集群级配置StateBackend Window滚动窗口&#…

从小白到大神之路之学习运维第61天--------Ansible自动化运维工具(playbook配置文件深入了解)

第三阶段基础 时 间:2023年7月14日 参加人:全班人员 内 容: playbook配置文件 目录 playbook配置文件 一、playbook配置文件概念 修改hosts文件 建立playbook配置文件 yml脚本写法注释: 二、Playbook的核心元素 三、…