Image Processing and Analysis_15_Image Registration:Mutual-Information-Based Registration of Medical...

本文探讨了图像处理与分析中的关键概念—图像配准,最初应用于医学图像融合,现广泛用于计算机视觉如跟踪和拼接。介绍了基于互信息的配准方法及多种图像配准技术,包括特征匹配和3-D形状配准。

此主要讨论图像处理与分析。虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来。同样,这里面也有一些 也可以划归到计算机视觉中去。这都不重要,只要知道有这么个方法,能为自己 所用,或者从中得到灵感,这就够了。

注意:Registration翻译为“配准”或“匹配”,一般是图像配准,特征匹配(特征点匹配)。

15. Image Registration
图像配准最早的应用在医学图像上,在图像融合之前需要对图像进行配准。在现在的计算机视觉中,配准也是一个需要理解的概念,比如跟踪,拼接等。在KLT中,也会涉及到配准。这里主要是综述文献。
[1998 MIA] Image matching as a diffusion process
[1992 PAMI] A Method for Registration of 3-D shapes
[1992] a survey of image registration techniques

[1996 MIA] Multi-modal volume registration by maximization of mutual information

[1997 IJCV] Alignment by Maximization of Mutual Information
[1998 MIA] A survey of medical image registration
[2003 IVC] Image registration methods a survey
[2003 TMI] Mutual-Information-Based Registration of Medical Survey
[2011 TIP] Hairis registration

 

翻译

基于互信息的医学调查注册——

作者:

 

摘要 -

 

 

 


【无人机】基于改进粒子群算法的无人机路径规划研究[和遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性和寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度和全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础和优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型和改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
# istio for dev.aps1 # config reference: https://sohoiconfluence.rd.tp-link.net/pages/viewpage.action?pageId=59583497 # ingress gateway port definition: https://sohoiconfluence.rd.tp-link.net/pages/viewpage.action?pageId=35105373 kind: Gateway apiVersion: networking.istio.io/v1alpha3 metadata: name: common-data-management-system-aps1-gw namespace: common-data-management-system spec: selector: istio: ingressgateway servers: - hosts: - aps1-api-common-data-management-system-alpha.tplinkcloud.com port: name: https-web number: 11443 protocol: HTTP2 - hosts: - common-data-management-system-aps1.common-data-management-system.svc.cluster.local port: name: grpc-aps1 number: 21885 # aps1 gRPC internal: aws internal network access protocol: GRPC --- kind: VirtualService apiVersion: networking.istio.io/v1alpha3 metadata: name: common-data-management-system-aps1-vs namespace: common-data-management-system spec: gateways: - common-data-management-system-aps1-gw hosts: - aps1-api-common-data-management-system-alpha.tplinkcloud.com http: # Web HTTP API - match: - uri: prefix: / # access path - port: 11443 route: - destination: host: common-data-management-system-aps1 port: number: 8091 --- kind: VirtualService apiVersion: networking.istio.io/v1alpha3 metadata: name: common-data-management-system-internal-grpc-aps1-vs namespace: common-data-management-system spec: gateways: - common-data-management-system-aps1-gw hosts: - common-data-management-system-aps1.common-data-management-system.svc.cluster.local http: # internal grpc - match: - uri: prefix: / # access path - port: 21885 # aps1 gRPC internal: aws internal network access route: - destination: host: common-data-management-system-aps1 port: number: 8850 --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: common-data-management-system-grpc-aps1-vs namespace: common-data-management-system spec: hosts: - common-data-management-system-aps1.common-data-management-system.svc.cluster.local # Internal gRPC http: - match: - port: 8850 route: - destination: host: common-data-management-system-aps1 port: number: 8850 --- kind: DestinationRule apiVersion: networking.istio.io/v1alpha3 metadata: name: common-data-management-system-aps1-dr namespace: common-data-management-system spec: host: common-data-management-system-aps1.common-data-management-system.svc.cluster.local trafficPolicy: tls: mode: DISABLE --- # Limit the amount of Istio configuration for workloads in a certain namespace # config reference: https://pdconfluence.tp-link.com/pages/viewpage.action?pageId=43063019; https://pdconfluence.tp-link.com/pages/viewpage.action?pageId=63018180 apiVersion: networking.istio.io/v1alpha3 kind: Sidecar metadata: name: default namespace: common-data-management-system spec: egress: - hosts: - common-data-management-system/* 解析一下怎么配置
10-23
你提供的 Istio 配置是一个 **完整的微服务网关 + 路由 + 安全策略** 的 YAML 文件,用于在 Kubernetes 中为 `common-data-management-system` 服务配置对外和对内访问。 我们来逐部分详细解析它的作用、逻辑结构,并说明它是如何工作的。 --- ## 🌐 总体架构概览 这个配置实现了以下功能: | 功能 | 说明 | |------|------| | ✅ 外部 HTTPS 访问 Web API | 通过域名 `aps1-api-common-data-management-system-alpha.tplinkcloud.com:11443` 暴露 HTTP 接口 | | ✅ 内部 gRPC 通信(跨集群) | 允许 AWS 内网通过端口 `21885` 调用内部 gRPC 服务 | | ✅ 集群内服务间调用 gRPC | Pod 直接使用 `.svc.cluster.local` 访问本地 gRPC 端口 `8850` | | ✅ 流量策略控制 | 禁用 mTLS 加密(测试环境) | | ✅ Sidecar 限制出口范围 | 减少 Envoy 代理加载的路由数量,提升性能 | --- ## 🔍 1. `Gateway`:入口网关定义 ```yaml kind: Gateway apiVersion: networking.istio.io/v1alpha3 metadata: name: common-data-management-system-aps1-gw namespace: common-data-management-system spec: selector: istio: ingressgateway servers: - hosts: - aps1-api-common-data-management-system-alpha.tplinkcloud.com port: name: https-web number: 11443 protocol: HTTP2 - hosts: - common-data-management-system-aps1.common-data-management-system.svc.cluster.local port: name: grpc-aps1 number: 21885 protocol: GRPC ``` ### ✅ 作用: 这是 Istio 的“大门”,决定哪些外部请求可以进入网格。 ### 🔍 字段详解: | 字段 | 含义 | |------|------| | `selector: istio: ingressgateway` | 绑定到默认的 Istio Ingress Gateway(通常是负载均衡器暴露的 Pod) | | 第一个 server(HTTPS) | 外部用户通过 `https://aps1-api-...tplinkcloud.com:11443` 访问 Web API | | 第二个 server(gRPC) | AWS 内部网络可通过 `:21885` 访问该服务的 gRPC 接口(跨集群调用) | | `protocol: HTTP2` / `GRPC` | gRPC 基于 HTTP/2,所以这两个都可以支持 gRPC 流量 | > ⚠️ 注意:虽然写了 `GRPC` 协议,但实际还是走 HTTP/2。Istio 会自动识别。 --- ## 🔍 2. `VirtualService` #1:外部 Web API 路由 ```yaml kind: VirtualService metadata: name: common-data-management-system-aps1-vs namespace: common-data-management-system spec: gateways: - common-data-management-system-aps1-gw hosts: - aps1-api-common-data-management-system-alpha.tplinkcloud.com http: - match: - uri: prefix: / - port: 11443 route: - destination: host: common-data-management-system-aps1 port: number: 8091 ``` ### ✅ 作用: 将来自网关的外部 HTTPS 请求(端口 11443)转发到后端服务的 `8091` 端口。 ### 🔍 解析: - 只有绑定了 `common-data-management-system-aps1-gw` 的流量才生效 - 当请求头中 `Host: aps1-api-...tplinkcloud.com` 且目标端口是 `11443` 时匹配 - 所有路径 `/` 开头的请求都路由到 `common-data-management-system-aps1:8091` - 这个 8091 很可能是 Spring Boot 或 Go 编写的 RESTful API 服务 --- ## 🔍 3. `VirtualService` #2:内部 gRPC 外部入口(AWS 内网) ```yaml kind: VirtualService metadata: name: common-data-management-system-internal-grpc-aps1-vs namespace: common-data-management-system spec: gateways: - common-data-management-system-aps1-gw hosts: - common-data-management-system-aps1.common-data-management-system.svc.cluster.local http: - match: - uri: prefix: / - port: 21885 route: - destination: host: common-data-management-system-aps1 port: number: 8850 ``` ### ✅ 作用: 允许从 **AWS 内部网络** 通过 `21885` 端口访问本服务的 gRPC 接口(映射到内部 `8850`) ### 🔍 关键点: - 使用的是 **集群内 DNS 名称** 作为 host(`.svc.cluster.local`) - 但这不是集群内的调用,而是为了让外部系统也能用相同名字访问(比如 VPC 对等连接) - 实际上是“伪装成内部服务”的外部接入方式 - 典型场景:多区域部署,其他区域的服务通过专线调用此服务的 gRPC --- ## 🔍 4. `VirtualService` #3:纯内部 gRPC 调用 ```yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: common-data-management-system-grpc-aps1-vs namespace: common-data-management-system spec: hosts: - common-data-management-system-aps1.common-data-management-system.svc.cluster.local http: - match: - port: 8850 route: - destination: host: common-data-management-system-aps1 port: number: 8850 ``` ### ✅ 作用: 处理 **集群内部 Pod 到 Pod 的直接 gRPC 调用** ### 🔍 区别于上面那个: | VS 类型 | 来源 | 是否经过 Ingress | 端口 | 场景 | |--------|------|------------------|-------|------| | `internal-grpc-aps1-vs` | 外部(AWS 内网) | 是(经 Ingress) | 21885 → 8850 | 跨集群调用 | | `grpc-aps1-vs` | 集群内部 Pod | 否(直连 Sidecar) | 8850 → 8850 | 同集群服务调用 | 📌 即:同一个服务名,既可以从外进,也可以从内调,Istio 自动区分。 --- ## 🔍 5. `DestinationRule`:目标策略(禁用 TLS) ```yaml kind: DestinationRule apiVersion: networking.istio.io/v1alpha3 metadata: name: common-data-management-system-aps1-dr namespace: common-data-management-system spec: host: common-data-management-system-aps1.common-data-management-system.svc.cluster.local trafficPolicy: tls: mode: DISABLE ``` ### ✅ 作用: 明确告诉 Istio:**所有发往这个服务的流量都不需要加密(mTLS)** ### 🔍 适用场景: - 开发/测试环境调试方便 - 客户端不支持 mTLS - 与遗留系统集成 > ❌ 不推荐生产环境使用!应设为 `ISTIO_MUTUAL` --- ## 🔍 6. `Sidecar`:限制 Envoy 代理的可见性 ```yaml apiVersion: networking.istio.io/v1alpha3 kind: Sidecar metadata: name: default namespace: common-data-management-system spec: egress: - hosts: - common-data-management-system/* ``` ### ✅ 作用: 限制该命名空间下所有 Pod 的 **出站(egress)网络访问范围** ### 🔍 解释: - 默认情况下,Istio Sidecar 会加载整个网格的所有服务信息(可能导致内存过高) - 此配置表示:“只允许访问 `common-data-management-system` 命名空间下的服务” - 提升性能、增强安全性(防误连其他服务) > 💡 类似防火墙规则:只允许调用自己 namespace 的服务 --- ## 🧩 整体流量流向图 ```text 外部 HTTPS 请求 (Web API) │ Host: aps1-api-*.tplinkcloud.com:11443 ↓ Istio Ingress Gateway │ ├─→ VirtualService #1 → common-data-management-system-aps1:8091 (HTTP) │ 内部 gRPC 请求 (AWS 内网) │ Host: *.svc.cluster.local:21885 ↓ Istio Ingress Gateway │ ├─→ VirtualService #2 → common-data-management-system-aps1:8850 (gRPC) │ 集群内 gRPC 请求 │ 直接访问 *.svc.cluster.local:8850 ↓ Pod A → Sidecar → VirtualService #3 → Pod B (gRPC) │ ←─ DestinationRule 控制是否启用 TLS │ Sidecar 规则限制只能访问本 ns 服务 ``` --- ## ✅ 配置总结表 | 资源 | 名称 | 用途 | |------|------|------| | `Gateway` | `-gw` | 定义入口端口和域名 | | `VirtualService` | `-vs` | 外部 Web API 路由 | | `VirtualService` | `-internal-grpc-aps1-vs` | 外部 gRPC 接入(AWS 内网) | | `VirtualService` | `-grpc-aps1-vs` | 内部 gRPC 直接调用 | | `DestinationRule` | `-dr` | 禁用 mTLS | | `Sidecar` | `default` | 限制出口流量范围 | --- ## ✅ 建议优化项(生产环境) ### 1. 启用 mTLS ```yaml trafficPolicy: tls: mode: ISTIO_MUTUAL ``` ### 2. 添加重试机制(尤其 gRPC) ```yaml http: - route: - destination: ... retries: attempts: 3 perTryTimeout: 2s ``` ### 3. 添加超时控制 ```yaml timeout: 30s ``` ### 4. 添加负载均衡策略 ```yaml loadBalancer: simple: ROUND_ROBIN ``` --- ## ✅ 如何验证? ```bash # 查看资源是否创建成功 kubectl get gw,vs,dr,sidecar -n common-data-management-system # 查看 ingress gateway 外部 IP kubectl get svc istio-ingressgateway -n istio-system # 测试外部访问 curl -H "Host: aps1-api-common-data-management-system-alpha.tplinkcloud.com" \ https://<INGRESS_IP>:11443/api/health # 测试 gRPC 调用(需 grpcurl) grpcurl -plaintext <INGRESS_IP>:21885 list ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值