几何图形相似性判断
1有两个CAD矢量图形,图形相似但是绘制存在旋转和缩放,怎么判断其相似性 判断两个矢量图形的相似性是计算机图形学、CAD、BIM、图像识别等领域的重要问题。由于矢量图形由点、线、曲线、多边形等几何元素构成,不能像像素图像那样直接用像素差比较,需要从几何结构、拓扑关系、形状特征等多个维度综合判断。 ✅ 一、相似性的定义(根据场景不同) 场景 相似性含义 几何匹配 形状、尺寸、角度接近 拓扑结构 连接方式、邻接关系一致 语义结构 功能相同(如“门”、“墙”) 变换不变性 平移、旋转、缩放后仍视为相似 ✅ 二、判断矢量图形相似性的常用方法 1. 基于几何特征的比较 (1) Hausdorff 距离(推荐) 衡量两个点集之间的最大最小距离,适合比较线段、多边形轮廓。 1234567from scipy.spatial.distance import directed_hausdorff# shape1, shape2 是两组点 [(x,y), ...]dist = max( directed_hausdorff(shape1, shape2)[...
python编程规范
Python 作为一门强调“可读性”和“简洁性”的语言,拥有非常完善的代码规范与最佳实践体系。遵循主流规范不仅能提升代码质量,还能增强团队协作效率。 以下是目前 Python 主流的编码规范、风格指南和工程实践,涵盖语法、命名、结构、文档、测试等多个方面。 ✅ 一、PEP 8:官方代码风格指南(最核心) 📚 官方文档:PEP 8 – Style Guide for Python Code 这是 Python 官方推荐的代码风格标准,几乎所有 Python 项目都以此为基础。 1. 缩进 使用 4 个空格缩进(不要用 Tab) 不要混用空格和 Tab 1234567# ✅ 正确if x > 0: print("positive")# ❌ 错误if x > 0: print("positive") # 使用了 Tab 2. 行宽 每行不超过 79 个字符(代码),注释/文档字符串不超过 72 超长表达式可用括号隐式换行 12345# ✅long_list = [ "item1", ...
VS Code 常用快捷键
Visual Studio Code(VS Code)是开发者广泛使用的轻量级但功能强大的代码编辑器。掌握其常用快捷键可以极大提升编码效率。 以下整理了 Windows / Linux 和 macOS 两大平台的常用快捷键(括号内为 macOS 键位): 🚀 一、通用导航与编辑 功能 Windows/Linux macOS 说明 保存文件 Ctrl + S Cmd + S 保存当前文件 撤销 Ctrl + Z Cmd + Z 撤销上一步操作 重做 Ctrl + Y 或 Ctrl + Shift + Z Cmd + Y 或 Cmd + Shift + Z 重做 复制一行 Ctrl + C(无选中) Cmd + C(无选中) 复制整行 剪切一行 Ctrl + X(无选中) Cmd + X(无选中) 剪切整行 删除一行 Ctrl + Shift + K Cmd + Shift + K 删除当前行 向上/下移动一行 Alt + ↑ / ↓ Option + ↑ / ↓ 移动当前行 复制一行到上下 Alt + Shift + ↑ / ↓ Op...
Multi-Head Latent Attention (MLA)详解
Multi-Head Latent Attention (MLA)详解 论文 DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model github: DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model 参考博客: https://www.bilibili.com/video/BV1wjQvY6Enm https://bruceyuan.com/post/hands-on-deepseek-mla-projection-absorption.html https://kexue.fm/archives/10091 https://github.com/madsys-dev/deepseekv2-profile/blob/main/workspace/blog/optimizing-mla.md 1234洞见:1.位置编码目前是添加...
pytorch-激活函数
常用的激活函数介绍 激活函数的原则: 单调函数(或有极小一部分不单调) 非线性函数 具有良好的梯度 1. Sigmoid 函数 Sigmoid 是早期神经网络中常用的激活函数,其数学表达式为: f(x)=11+e−xf(x) = \frac{1}{1 + e^{-x}} f(x)=1+e−x1 优点:输出值在 (0, 1) 区间内,适合用于二分类问题的概率预测。 缺点:容易出现梯度消失问题,计算量相对较大。 2. Tanh(双曲正切)函数 Tanh 的数学表达式如下: f(x)=tanh(x)=ex−e−xex+e−x f(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=tanh(x)=ex+e−xex−e−x 优点:将输入值压缩到 (-1, 1),对于后续的优化过程较为友好。 缺点:与 Sigmoid 类似,两端的导数接近于零,可能导致梯度消失问题。 3. ReLU(修正线性单元) ReLU 是当前深度学习中最常用的激活函数之一,定义为: f(x)=max(0,x) f(x) = \max(...
桩识图
一种建筑图纸中桩的识别方法和装置 技术领域 人工智能、图像处理,建筑审图 技术背景 在结构工程审图领域,桩平面图的自动识别面临以下严峻挑战:1. 图纸上桩的画法多样,2. 单张图纸中桩结构高度密集,3. 受墙体和柱子等其他建筑元素的严重干扰,这使得传统的基于规则的检测方法显得力不从心,无法满足现代建筑审图的高精度与效率需求。 解决的技术问题 本项目通过创新性地结合基于规则和深度学习的算法,实现了高效、准确的桩检测。相较于基于规则的传统方法,本方法检测效率提高3倍,召回率提高了30%,准确率达到99%,显著优化了检测效果。通过自研自动化数据生成,自监督训练方案,替代完全依赖人工标注的传统方式,降低大量标注成本。总体来看,本项目实现了从无到有的技术突破,为结构检测带来了新的赋能。 技术方案 1. 总体流程 基于规则的桩检测 采用基于规则的方法检测桩,检测时不区分桩类别。确保绝对准确率(100%),保持较高召回率(>60%)。 生成桩检测数据集 利用规则检测的结果作为标注,生成桩检测数据集【pile_v0.1】。 模型训练 使用YOLO算法,在桩检测数据集上训练初...
Detecting Text in Natural Image with Connectionist Text Proposal Network
名称:Detecting Text in Natural Image with Connectionist Text Proposal Network 论文:https://arxiv.org/abs/1609.03605 会议:ECCV 2016 github: https://github.com/tianzhi0549/CTPN CTPN(Connectionist Text Proposal Network)是一种基于深度学习的文本检测算法,擅长在自然场景图像中定位文本行。其核心思想是将文本行分解为多个小文本段(text proposals),再通过序列连接形成完整文本行 。以下从算法流程、关键技术、优缺点及改进方向展开详解: 一、算法流程 特征提取 使用预训练的CNN(如VGG16)提取图像特征,得到高维特征图(如conv5层输出)。 双向LSTM序列建模 在特征图上滑动窗口(如3×3),每个窗口生成固定高度(如11px)的锚点(anchors),覆盖不同宽度(如16px、32px等)。通过双向LSTM捕捉水平方向的文本序列上下文信息,增强对长文本的建模能力。 文...
ABINet: Autonomous, Bidirectional and Iterative Language Modeling for Scene Text Recognition
[TOC] 名称:Read Like Humans: Autonomous, Bidirectional and Iterative Language Modeling for Scene Text Recognition 论文:https://arxiv.org/abs/2103.06495 会议:AAAI2020 Github: https://github.com/FangShancheng/ABINet ABINet(Attention-based Bidirectional Network)是一种用于场景文本识别(Scene Text Recognition, STR)的深度学习模型。它在处理复杂背景、噪声干扰以及弯曲或倾斜文本时表现出色。ABINet 的核心创新点是引入了 双向注意力机制 和 迭代优化策略 ,从而显著提升了文本识别的准确性和鲁棒性。 以下是 ABINet 的详细解析,包括其架构设计、工作原理、优势和实现细节。 1. ABINet 的背景 问题 自然场景中的文本通常具有复杂的形状(如弯曲、倾斜等),并且背景可能包含大量噪声。 传统的基于分类的方法...
DBNet: Real-time Scene Text Detection with Differentiable Binarization
[TOC] 名称:DBNet: Real-time Scene Text Detection with Differentiable Binarization 论文:https://arxiv.org/abs/1911.08947 会议:AAAI2020 V2:Real-Time Scene Text Detection with Differentiable Binarization and Adaptive Scale Fusion V2:https://arxiv.org/abs/2202.10304 顶刊:TPAMI 2022 DBNet(Differentiable Binarization Network)是一种用于文本检测的深度学习模型,特别适用于自然场景中的文本检测任务。它在处理弯曲、倾斜或复杂背景中的文本时表现出色。DBNet 的核心创新点是引入了 可微分二值化(Differentiable Binarization, DB) 模块,使得模型能够在训练过程中直接优化分割掩码的二值化效果。 以下是 DBNet 的详细解析,包括其架构设计、工作原理、优势和实现细节...
Android Studio配置Gradle
在IntelliJ IDEA 和Android Studio 中,可以通过以下步骤指定 Gradle 主目录(Gradle Home Directory)。这个设置允许你使用手动安装的 Gradle 版本,而不是依赖 IDE 自动下载的版本。 步骤 1:打开设置窗口 启动 IntelliJ IDEA 或 Android Studio。 打开 设置/首选项 窗口: Windows/Linux 作系统 :File > Settings。 macOS :IntelliJ IDEA > Preferences。 步骤 2:导航到 Gradle 设置 在设置窗口中,展开左侧的Build, Execution, Deployment 菜单 点击Build Tools > Gradle 。 步骤 3:指定 Gradle 主目录 在右侧的 Gradle 设置面板中,找到**“Gradle JVM”** 和**“Use Gradle from”** 部分 选项 1:使用 Gradle Wrapper 默认情况下,IDE 会选择**‘gradle-wrapp...
