几何图形相似性判断
1有两个CAD矢量图形,图形相似但是绘制存在旋转和缩放,怎么判断其相似性
判断两个矢量图形的相似性是计算机图形学、CAD、BIM、图像识别等领域的重要问题。由于矢量图形由点、线、曲线、多边形等几何元素构成,不能像像素图像那样直接用像素差比较,需要从几何结构、拓扑关系、形状特征等多个维度综合判断。
✅
一、相似性的定义(根据场景不同)
场景
相似性含义
几何匹配
形状、尺寸、角度接近
拓扑结构
连接方式、邻接关系一致
语义结构
功能相同(如“门”、“墙”)
变换不变性
平移、旋转、缩放后仍视为相似
✅
二、判断矢量图形相似性的常用方法
1. 基于几何特征的比较
(1) Hausdorff
距离(推荐)
衡量两个点集之间的最大最小距离,适合比较线段、多边形轮廓。
1234567from scipy.spatial.distance import directed_hausdorff# shape1, shape2 是两组点 [(x,y), ...]dist = max(...
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 ...
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
删除当前行
向上/下移动一行...
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) = \frac{1}{1 + e^{-x}}
$$
优点:输出值在 (0, 1)
区间内,适合用于二分类问题的概率预测。
缺点:容易出现梯度消失问题,计算量相对较大。
2. Tanh(双曲正切)函数
Tanh 的数学表达式如下:
$$
f(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
$$
优点:将输入值压缩到 (-1,
1),对于后续的优化过程较为友好。
缺点:与 Sigmoid
类似,两端的导数接近于零,可能导致梯度消失问题。
3. ReLU(修正线性单元)
ReLU 是当前深度学习中最常用的激活函数之一,定义为:
f(x) = max (0, x)
优点:计算简单,有效缓解了梯度消失问题;允许模型稀疏表示。
缺点:可能导致“死亡...
桩识图
一种建筑图纸中桩的识别方法和装置
技术领域
人工智能、图像处理,建筑审图
技术背景
在结构工程审图领域,桩平面图的自动识别面临以下严峻挑战:1.
图纸上桩的画法多样,2. 单张图纸中桩结构高度密集,3.
受墙体和柱子等其他建筑元素的严重干扰,这使得传统的基于规则的检测方法显得力不从心,无法满足现代建筑审图的高精度与效率需求。
解决的技术问题
本项目通过创新性地结合基于规则和深度学习的算法,实现了高效、准确的桩检测。相较于基于规则的传统方法,本方法检测效率提高3倍,召回率提高了30%,准确率达到99%,显著优化了检测效果。通过自研自动化数据生成,自监督训练方案,替代完全依赖人工标注的传统方式,降低大量标注成本。总体来看,本项目实现了从无到有的技术突破,为结构检测带来了新的赋能。
技术方案
1. 总体流程
基于规则的桩检测
采用基于规则的方法检测桩,检测时不区分桩类别。确保绝对准确率(100%),保持较高召回率(>60%)。
生成桩检测数据集
利用规则检测的结果作为标注,生成桩检测数据集【pile_v0.1】。
模型训练
...
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
默认情况...
