前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >(收藏必看)HCIE | 彻底搞懂LAN技术-CSS、Eth-trunk、MSTP、vlan

(收藏必看)HCIE | 彻底搞懂LAN技术-CSS、Eth-trunk、MSTP、vlan

作者头像
网络技术联盟站
发布于 2020-03-26 08:41:32
发布于 2020-03-26 08:41:32
1.3K00
代码可运行
举报
运行总次数:0
代码可运行
接着昨天的技术贴!!!
6.CSS

通过交换机集群,可以实现网络高可靠性和网络大数据量转发,同时简化网络管理。

高可靠性:集群系统两台成员交换机之间冗余备份,同时利用链路聚合功能实现跨设备的链路冗余备份。

强大的网络扩展能力:通过组建集群增加交换机,从而轻松的扩展端口数、带宽和处理能力。

简化配置和管理:集群建立后,两台物理设备虚拟成为一台设备,用户只需登录一台成员交换机即可对集群系统所有成员交换机进行统一配置和管理。

不同于 iStack 可以多台设备堆叠,对于 CSS 集群,集群中只能有一主一备两台交换机。

集群建立时,成员交换机间相互发送集群竞争报文,通过竞争,一台成为主交换机,负责管理整个集群系统,另一台则成为备交换机。

角色选举:
  1. 最先完成启动,并进入单框集群运行状态的交换机成为主交换机。
  2. 当两台交换机同时启动时,集群优先级高的交换机成为主交换机。
  3. 当两台交换机同时启动,且集群优先级又相同时,MAC 地址小的交换机成为主交换机。
  4. 当两台交换机同时启动,且集群优先级和 MAC 都相同时,集群 ID 小的交换机成为主交换机。
版本同步:
  1. 集群具有自动加载系统软件的功能,待组成集群的成员交换机不需要具有相同的软件版本,只需要版本间兼容即可。当主交换机选举结束后,如果备交换机与主交换机的软件版本号不一致时,备交换机会自动从主交换机下载系统软件,然后使用新的系统软件重启,并重新加入集群。
配置同步:
  1. 集群具有严格的配置文件同步机制,来保证集群中的多台交换机能够像一台设备一样在网络中工 作。
配置备份:
  1. 交换机从非集群状态进入集群状态后,会自动将原有的非集群状态下的配置文件加上.bak的扩展名进行备份,以便去使能集群功能后,恢复原有配置。例如,原配置文件扩展名为.cfg,则备份配置文件扩展名为.cfg.bak。去使能交换机集群功能时,用户如果希望恢复交换机的原有配置,可以更改备份配置文件名并指定其为下一次启动的配置文件,然后重新启动交换机,恢复原有配置。
7.Eth-trunk

可以交换机与路由器,交换机与交换机,交换机与服务器,交换机与 PC。路由器与路由器。

手工负载分担:

多少条链路聚合起来,带宽就增加多少。所有的链路都为活动状态,参与转发。比较早的协议,大部分支持链路聚合都是支持手工负载分担。

  1. 如果出现链路故障,还是可以通,但是带宽减少,可能出现拥塞。所以丢包。
  2. 如果交换机出现错连,或者逻辑故障,手工负载负担无法检测。
错连:
静态 LACP:

M:N 模式,M 代表活动链路,N 代表备份链路。N 可以是 0。M 最少是 1,最大 8.

如果在有备份链路情况下,如果活动链路故障,备份链路承载转发流量,带宽可以保持不变,可以做到高可靠性。

老的设备不支持 LACP 协议。所以如果这种情况。两边设置手工负载分担。

针对错连,逻辑故障问题,LAcp 会进行检测。

关于链路聚合两种方式的:
  1. 以流的形式负载分担:定义的属于相同源 IP,目的 IP,或者其他条件相同属于同一种流。按照不同的流给不同的链路分别承担。一个流只会在一个链路上。 这样的话,不同链路带宽利用率不一致。
  2. 以包的形式负载分担:根据接口的权重值。来分一定比例的包。第一个包与包之间,大小不一致。第二,可能会相同流出现乱序。 可以提高链路的利用率,但是出现报文乱序,出现报文无效。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW1] load-balance ?
flow Load balance per flow //以流的形式负载分担
packet Load balance per packet //以包的形式负载分担。

成员接口的带宽,流控,双工模式,全部得相同,编号连不连续无所谓。

选举:选举高优先级的交换机成为主动端。决定 LACP 的其他属性。

系统 LACP 优先级(32768),MAC。 小的优先

接口下如果有备份接口,端口 LACP 优先级(32768),端口编号。

配置二层链路聚合:
  1. 创建链路聚合接口
  2. 选择模式(可选,如果是手工负载分担可以不配置)
  3. 添加成员接口 a)接口下 eth-trunk x b)链路聚合下 trunkport
  4. 设置系统优先级选举主动端。
  5. 活动链路多少条(默认是 8 条)
  6. 是否开启抢占(默认没有开) lacp preempt enable //开启抢占并且默认 30s。
三层链路聚合需要考虑?
  1. 把链路聚合接口设置为三层。
  2. 为其配置 IP 地址。
8.MSTP
  • Stp 生成树
  • RSTP 快速生成树
  • MSTP 多实例生成树。

STP 和 RSTP 共享一颗生成树。所有交换链路只能走非阻塞的链路。存在如下问题:

  1. 部分 VLAN 不通
  2. 次优的二层路径
  3. 无法负载分担

一个 MST 域支持多个实例。

MST 域(MST Region):相同的域需要符合一定条件:

  • 实例和 VLAN 映射都需要相同
  • 域名要相同
  • 修订版本需要相同。

MSTI代表一个生成树实例,可以包含多个 VLAN,每个 MSTI 生成树计算相互独立。不同 vlan 所属实例不相同,所走的路径也不一致。

VLAN 映射表:默认所有的 VLAN 都属于实例 0。一个 vlan 只能映射在一个 MSTI,有其他实例阻塞了端口,但是自己所属的没有阻塞,那就可以通行。 CST:把一个域当成一个交换机,相连出来的路就是 CST,跨域的流量根据 CST 来走。 IST:是各 MST 域内的一棵生成树。IST 是一个特殊的 MSTI,MSTI 的 ID 为 0,通常称为 MSTI0。 SST:如果是 STP,RSTP 都是单生成树。这个树 SST CIST:总树。需要在一个优先级最高成为总根,将整个拓扑作为一颗树。 域根:距离总根最近的端口 总根:需要在整个二层网络选一个优先级最高成为总根,也就是 CIST 的根桥 主桥:IST Master,它是域内距离总根最近的交换设备。(同域根) 端口角色:同 RSTP,MSTP 中定义了根端口、指定端口、Alternate 端口、Backup 端口和边缘端口。 端口状态:同 RSTP,MSTP 定义的端口状态有 Forwarding, Learning, Discarding。

单颗树的选举:

选举根桥:BID。(桥 ID =优先级+MAC。默认优先级:32768最小越优先

选举交换机上选举根端口(每个交换机有且只有一个。接收 BPDU 报文,同时这个交换机距离根桥最近的端口)

  1. 各端口的路径开销。(一台交换机自家对比)
  2. 对比对端的 BID
  3. 对比对端的 PID
  4. 对比本端的 PID

在每条链路上选举一个指定端口。(每条链路只有一个,发送 BPDU 报文)

  1. 根路径开销。(链路上两个交换机,对比到达根桥的最短路径。)
  2. 本端 BID
  3. 本端 PID

MSTP 和 RSTP 一样可以做到快速收敛。通过 P/A 机制。

STP 为什么那么慢? 从侦听状态到学习状态需要 15s,学习状态到转发状态 15. 总共需要 30s。

为什么需要等 15+15?? 因为 STP 没有确定机制,不确定对端是否收敛好了。定了一个比较长的时间 15s,等待足够长的时间全局可以收敛完,就不会环路。

P/A 机制,就是确认机制。

什么是置位? 报文这里的 0 变成 1。

普通的 P/A 协商。(所有厂商都支持的 P/A)

刚启动起来的交换机都会认为自己是根桥,所有端口都为指定端口,端口状态都为 discarding,所以对全局发送P 置位。高优先级的设备会忽略低优先级的 P 置位报文。低优先级的交换机收到高优先级的 P 置位。停止所有端口的发送,然后同步信息。收到 P 置位的接口成为根端口。向高优先级发送 A 置位并将自己接口状态转为 forwarding 。高优先级收到 A 置位的接口成为指定端口,接口状态成为forwardsing

华为增强 P/A 协商机制。 高优先级设备发送 P 置位以后,会再发送 A 置位请求对方快速切换并转发。低优先级再发送 A 置位。完成 P/A协商。

如果拿一台华为交换机与其他厂商交换机进行 P/A 快速协商。可能出现两个设备互相协商不成功。像这种情况,就应该在华为设备接口上关闭华为增强 P/A 协商。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei-GigabitEthernet0/0/1]stp no-agreement-check //关闭这个端口的增强型 P/A 协商
MSTP 的配置:

默认每个交换机都有自己的域名,自己的 MAC。修订版本默认是 0,实例 0 默认所有 VLAN。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
stp region-configuration /进入预配置
region-name HW
revision-level 1
instance 1 vlan 1 to 10
instance 2 vlan 11 to 20
active region-configuration
修改根桥:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[sw2]stp instance 2 root ?
primary Primary root switch //将优先级修改 0
secondary Secondary root switch //将优先级修改 4096
根保护:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//在指定端口,如果该接口接收到了高优先级 BPDU 报文,则将该接口设置为 discarding 状态,两个转发延迟后恢复正常。
[sw2-GigabitEthernet0/0/6]stp root-protection 
BPDU 保护:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[sw2]stp bpdu-protection //边缘端口收到 BPDU 报文是将该接口 shutdown,并且告警。
环路保护:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//如果在根端口上配置,如果根端口不收到 BPDU 报文,则将该接口置位 discarding 状态。避免环路。
[sw2-GigabitEthernet0/0/6]stp loop-protection 
TC 保护:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//如果生成树收到 TC,会删除掉没有接收到 TC 报文接口的 MAC 地址。如果攻击者不断的发送 TC报文,整个交换网络。不断删除。用户流量将全面泛洪。CPU 使用将提高带来危险。默认没有开 TC 防护。开了以后默认每 2s 处理 1 个 TC报文。
[sw3]stp tc-protection 
禁止发送接受 BPDU 报文:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//一般是在边缘端口上设置,默认边缘端口会发送 BPDU 报文。不小配错可能导致环路。
[sw1-GigabitEthernet0/0/1]stp bpdu-filter enable 

Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20

  • Hello 代表交换机每 2 秒发送一次 BPDU 报文
  • MAXage :老化时间 20s, 如果一个接口收到报文会缓存下来。然后 20 才老化。

在 STP 中非直连故障,断开的设备自认为是根桥,会发送次优 BPDU 报文,可是连接他的阻塞端口由于缓存了最优 BPDU 报文 20s,在这 20s 里面,丢弃次优 BPDU 报文。

FwDly 转发延迟 MaxHop BPDU 报文超过 20 跳就丢弃,代表无效。

如果边缘端口布置错误。是有可能出现环路。

修改 STP 计时器:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei]stp timer ?
forward-delay Specify forward delay
hello Specify hello time interval
max-age Specify max age

不建议修改,但是你们要会。

可以通过修改 STP 直径来修改时间参数:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei]stp bridge-diameter ?
 //两台交换机之间最大可以多少台。这条命令可以修改,之后 STP 会这个规模自动修改合理的时间。
INTEGER<2-7> Bridge diameter
[Huawei]stp converge ? //关于故障 MAC 地址表处理
fast Fast mode //直接删除
normal Normal mode //修改老化时间加速收敛(默认)

高级生成树支持兼容低级生成树。高级的接口收到了低级的报文,在两个 hello 以后,该接口模式改为低级的模式。但是如果高版本兼容低版本以后,该接口除非手工修改,不然会保持在低版本状态。所以建议使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei-GigabitEthernet0/0/1]stp mcheck 

这个命令在这个接口如果兼容了低版本,在下次接口重启后恢复原本协议。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei]stp mcheck //全局检查。
华为计算 STP 开销的协议:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei]stp pathcost-standard ?

dot1d-1998 IEEE 802.1D-1998 dot1t IEEE 802.1T (默认值) legacy Legacy (华为私有的计算方式)

9.vlan
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei-GigabitEthernet0/0/1]port link-type ?

access Access port dot1q-tunnel QinQ port hybrid Hybrid port trunk Trunk port

access 是怎么处理报文?

入方向:如果无标签打上该接口的 PVID。如果进来携带标签,检查该标签与 PVID 是否一致,如果不同则丢弃该报文,如果相同保留标签进入。

出方向:如果与 PVID 相同,撕掉标签。如果与 PVID 丢弃报文。

Trunk 是怎么处理报文?

入方向:如果无标签,加上该接口的 PVID,然后进入。如果有标签,查看本地 VLAN 表是否有该 VLAN,存在即接收,不存在则丢弃。

出方向:检查标签与允许发送列表(allow-pass),是否允许发送,如果不允许则丢弃,如果允许检查 PVID 是否相同,如果相同撕掉标签发出,如果不相同保留标签发出。

两个 PC 之间不同 VLAN,但是相同网段,使两个 PC 可以通信,需要做到的就是换标签。

PC1 到 SW1 加上 vlan 10 的标签, PC2 到 SW2 家伙是哪个的 vlan 20 的标签。像从 SW1 发到 PC1 和 SW2 到达PC 都需要特定的 VLAN。所以需要的 SW1 到 SW2 中间,可以替换标签。如 SW1 的出去的 vlan 10 到达 SW2时变为 VLAn 20 .从 SW2 出去的 vlan 20 到达 SW1 变为 VLAN10

Mux vlan

MUX VLAN(Multiplex VLAN)提供了一种通过 VLAN 进行网络资源控制的机制。

Mux Vlan 里的所有设备不管同不同 vlan,都属于一个网段。

主 VLAN : 主 VLAN 可以与其他所有 VLAN 通信。但是主 VLAN 不可以设置 VLANif

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan 100
mux-vlan //将 VLAN 100 设置为 Mux vlan 的主 VLAN

从 VLAN:

  • 互通型 VLAN:相同 vlan 之间可以互通,并且可以访问主 VLAN。
  • 隔离型 VLAN:相同 vlan 之间不可以通信,但是可以与主 VLAN 通信。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[sw1-vlan100]subordinate ? //在主 VLAN 里设置从 VLAN
group Vlan Group //互通型 VLAN
separate Separate vlan //隔离型 VLAN

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan 100
mux-vlan //将 VLAN 100 设置为主 VLAN
subordinate separate 30 //vlan 30 设置为隔离 vlan
subordinate group 10 20 //vlan 10 20 设置为互通型
[sw1-GigabitEthernet0/0/1]port mux-vlan enable //接入 Mux vlan 的接口都必须开启这条命令。

设置 Mux VLAN 需要解决内部 VLAN 与其他网段的问题。

可以接入一台新的三层,连接这个三层设备的时候,划分为主 vlan, 并且开启 mux vlan.

Voice VLAN

如果语音流量与普通业务流量一起正常处理。那么可能造成什么?出现拥塞时,处理的优先级一致,比如出现尾丢弃,语音流量也会被丢弃,但是对于语音业务而言,需要保证,低时延,低抖动,低丢包率。那么就可以设置

voice vlan 提高报文处理的优先级。

报文优先级:

802.1p:

DSCP:

接口下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
voice-vlan 40 enable
[sw1-GigabitEthernet0/0/1]voice-vlan mode auto

在全局:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
voice-vlan mac-address 5489-982d-76cd mask ffff-ffff-ffff
#
voice-vlan remark 8021p 7
super VLAN

如果一个 vlan 进行隔离,需要一个网段,那么这样如果每个 VLAN 的 PC 个数不多,浪费了 IP 地址。

可以将所有的 VLAN 设置同一个网段,聚合成一个 VLAN,就可以做到多个 VLAN 一个网段的效果。聚合 vlan是不可以加入任何接口的配置先创建子 vlan, 将接口都划分给子 vlan

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20

创建聚合 VLAN:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan 100
aggregate-vlan //将 vlan 100 设置聚合 vlan
access-vlan 10 20 //子 VLAN 有 10 和 20

为聚合 vlan 设置 vlanif

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
interface Vlanif100
ip address 192.168.1.1 255.255.255.0

VLAN 聚合在实现不同 Sub-VLAN 间共用一个子网网段地址的同时也带来了 Sub-VLAN 间的三层转发问题。

普通 VLAN 实现方式中,VLAN 间的主机可以通过各自不同的网关进行三层转发达到互通的目的。但是 VLAN 聚合方式下,同一个 Super-VLAN 内的主机使用的是同一个网段的地址和共用同一个网关地址。即使是属于不同的 Sub-VLAN 的主机,由于它们同属一个子网,彼此通信时只会做二层转发, 而不会通过网关进行三层转发。而实际上不同的 Sub-VLAN 的主机在二层是相互隔离的,这就造成了 Sub-VLAN 间无法通信。

为了实现 Sub-VLAN 间相互通信及 Sub-VLAN 与其他网络的互通,需要利用 Proxy ARP 功能。在创建好 Super-VLAN 和对应的 VLANIF 接口后,用户需要开启设备的 Proxy ARP 功能,Super-VLAN 利用Proxy ARP 功能可以进行 ARP 请求和响应报文的转发与处理,从而实现 Sub-VLAN 之间的三层互通。

在聚合 vlanif 中开启 ARP vlan 间代理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Huawei-Vlanif100]arp-proxy inter-sub-vlan-proxy enable
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
使用YOLO11分割和高斯模糊创建人像效果
本文通过结合最新的YOLO11实例分割模型和高斯模糊,为你的图片应用人像效果。我们将使用YOLO11将人物从背景中分割出来,并对除了主体之外的所有内容应用模糊效果。
小白学视觉
2024/10/11
3760
使用YOLO11分割和高斯模糊创建人像效果
使用Python-去除视频背景
no怕不了木
2023/08/08
7800
使用Python-去除视频背景
视频处理系列︱利用达摩院ModelScope进行视频人物分割+背景切换(一)
做了一个简单的实验,利用modelscope的人像抠图模型对视频流进行抠像并更换背景。
悟乙己
2023/01/03
2K0
视频处理系列︱利用达摩院ModelScope进行视频人物分割+背景切换(一)
Github复现之TransUnet更新[通俗易懂]
上一篇关于TransUnet的GitHub复现,大家反映效果不好,调参也不好调,我把模型单独拿出来,放到另外一个框架,供大家参考学习(上一篇链接:https://blog.csdn.net/qq_20373723/article/details/115548900) 我这里训练了20个epoch,下面先给出效果正常的情况: 原图
全栈程序员站长
2022/10/04
1.9K0
Github复现之TransUnet更新[通俗易懂]
一行代码快速图像识别~一排代码搞定视频识别
一行代码能干嘛?这种噱头式的开头现在估计已经不香了。。。我只能在别人挖好的土堆上再刨一铲子。
一个有趣的灵魂W
2020/09/15
7920
一行代码快速图像识别~一排代码搞定视频识别
实战 | 基于YOLOv9+SAM实现动态目标检测和分割(步骤 + 代码)
本文主要介绍基于YOLOv9+SAM实现动态目标检测和分割,并给出详细步骤和代码。
Color Space
2024/04/12
2.8K0
实战 | 基于YOLOv9+SAM实现动态目标检测和分割(步骤 + 代码)
这个操作可能不值钱,但却值得学习 | 【图片批量裁剪】
有一句叫:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已 这句话,在实际的应用中,让我体会很深,目前很多算法已经能到初步满足我们的需求,更多的时候是要花费大量的时间在处理数据上面,现实生活的数据经常是很难满足算法的基本要求,例如常见的样本不均衡问题的等,今天要介绍的就是1、固定区域图片裁剪;2、自定义裁剪图片
AI算法与图像处理
2019/05/22
7990
利用Python做一个小姐姐词云跳舞视频
本文将以哔哩哔哩–乘风破浪视频为例,you-get下载视频,同时利用python爬取B站视频弹幕,并利用opencv对视频进行分割,百度AI进行人像分割,moviepy生成词云跳舞视频,并添加音频。
Python编程与实战
2021/03/10
7760
利用Python做一个小姐姐词云跳舞视频
Segment Anything笔记 - plus studio
Segment Anything project是一个用于图像分割的新任务、模型和数据集。在他刚出来的那一天,知乎等平台就已经高呼CV已死。为了这个项目,作者创建了迄今为止最大的分割数据集,1100万张在10亿次授权且尊重隐私的图像上的数据集。模型也被设计和训练成了promptable,就是说可以给他一些提示。作者在多个数据集测试了他的结果并认为结果令人满意。
plus sign
2024/02/28
3860
Segment Anything笔记 - plus studio
OpenCV趣味应用系列--grabCut人物背景替换
本文将使用grabCut来提取图像中的人物,同时使用mask将提取的人物贴到新的背景中,实现给人物替换背景的功能。
Color Space
2022/12/22
7230
OpenCV趣味应用系列--grabCut人物背景替换
「 计算机视觉」帧差法移动侦测
这是我大学舍友小钊在前几天培训公司内部人员顺便记录的一篇关于帧差法移动侦测的文章,介绍下小钊,广西佬,我的大学舍友,特点是烟勤话少爱抠脚。是一名计算机视觉工程师,主要专注于桑拿沐足(啊?呸!)、将算法应用到嵌入式设备上,实现低成本的落地方案注册 。
JavaFish
2019/10/17
1.2K0
利用Python做一个漂亮小姐姐词云跳舞视频
B站上的漂亮的小姐姐真的好多好多,利用 you-get 大法下载了一个 B 站上跳舞的小姐姐视频,利用视频中的弹幕来制作一个漂亮小姐姐词云跳舞视频,一起来看看吧。
叶庭云
2021/02/02
1K0
学会这些Python美图技巧,就等着女朋友夸你吧
Python中有许多用于图像处理的库,像是Pillow,或者是OpenCV。而很多时候感觉学完了这些图像处理模块没有什么用,其实只是你不知道怎么用罢了。今天就给大家带了一些美图技巧,让你的图美翻全场,朋友圈赞不绝口,女朋友也夸你,富贵你好厉害啊!
ZackSock
2020/05/18
5700
学会这些Python美图技巧,就等着女朋友夸你吧
Python的Albumentations库
对 ImageNet validation set 中的前 2000 张图片进行处理,采用 Intel Core i7-7800X CPU. 不同数据增强库的处理速度对比(以秒为单位,时间越少越好).
狼啸风云
2021/05/13
2.4K0
Python的Albumentations库
OpenCV 图像分割之grabCut算法
GrabCut算法的原理涉及到以下知识: K均值聚类 高斯混合模型建模(GMM) max flow/min cut GrabCut算法的实现步骤: 在图片中定义(一个或者多个)包含物体的矩形。 矩形外的区域被自动认为是背景。 对于用户定义的矩形区域,可用背景中的数据来区分它里面的前景和背景区域。 用高斯混合模型(GMM)来对背景和前景建模,并将未定义的像素标记为可能的前景或者背景。 图像中的每一个像素都被看做通过虚拟边与周围像素相连接,而每条边都有一个属于前景或者背景的概率,这是基于它与周边像素颜色上的
用户6021899
2019/09/17
3.5K0
OpenCV 图像分割之grabCut算法
MaskRCNN 基于OpenCV DNN的目标检测与实例分割
这里主要记录基于 OpenCV 4.x DNN 模块和 TensorFlow MaskRCNN 开源模型的目标检测与实例分割 的实现.
AIHGF
2019/05/13
1.9K0
MaskRCNN 基于OpenCV DNN的目标检测与实例分割
Semantic Drone Dataset(语义无人机数据集)使用方法「建议收藏」
Semantic Drone Dataset数据集下载地址 该语义无人机数据集专注于城市场景的语义理解,以提高无人机自主飞行和着陆程序的安全性。该图像描绘了在距地面 5 至 30 米的高度从最低点(鸟瞰)视角拍摄的 20 多座房屋。高分辨率相机用于获取尺寸为 6000x4000px (24Mpx) 的图像。训练集包含 400 张公开可用的图像,测试集包含 200 张私有图像。
全栈程序员站长
2022/09/21
4850
Semantic Drone Dataset(语义无人机数据集)使用方法「建议收藏」
用 OpenCV 实现自动驾驶中的车道识别
“车道”,其相关解释在维基百科或者百度百科上都有,不过,正如我们日常所言,都是用来专指“机动车道”。所以,“车道识别”、“自动驾驶”等术语,也是针对机动车而言。
老齐
2021/12/13
7530
用 OpenCV 实现自动驾驶中的车道识别
交互式前景提取
算法:交互式前景提取是首先用矩形框指定要提取的前景所在的大致范围,接着执行前景提取算法得到初步结果。然后,用户复制原图像作为掩模图像,用白色标注要提取的前景区域,用黑色标注背景区域。最后,使用掩模图像执行前景提取算法从而获得理想的提取结果。
裴来凡
2022/09/21
6940
交互式前景提取
CV -- YOLOv8 图像分割(GPU环境)
https://download.csdn.net/download/2403_83182682/90405543?spm=1001.2014.3001.5503
用户11404404
2025/02/20
2660
CV -- YOLOv8 图像分割(GPU环境)
相关推荐
使用YOLO11分割和高斯模糊创建人像效果
更多 >
目录
  • 接着昨天的技术贴!!!
  • 6.CSS
    • 角色选举:
    • 版本同步:
    • 配置同步:
    • 配置备份:
  • 7.Eth-trunk
    • 手工负载分担:
    • 错连:
    • 静态 LACP:
    • 关于链路聚合两种方式的:
    • 配置二层链路聚合:
    • 三层链路聚合需要考虑?
  • 8.MSTP
    • 单颗树的选举:
    • MSTP 的配置:
      • 修改根桥:
      • 根保护:
      • BPDU 保护:
      • 环路保护:
      • TC 保护:
      • 禁止发送接受 BPDU 报文:
      • 修改 STP 计时器:
      • 可以通过修改 STP 直径来修改时间参数:
      • 华为计算 STP 开销的协议:
  • 9.vlan
    • access 是怎么处理报文?
    • Trunk 是怎么处理报文?
    • Mux vlan
    • Voice VLAN
      • 报文优先级:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档