OCR文本检测和DBNet
1. 文本检测难点 文本的多样性: 颜色, 大小, 字体, 形状, 方向, 语言, 文本长度… 复杂的背景干扰: 图像失真, 模糊, 低分辨率, 阴影, 亮度… 密集文本或重叠文本 文字存在局部一致性: 文本行的一部分也可以是为独立的文本 2. 场景文本检测方法分类 ...
1. 文本检测难点 文本的多样性: 颜色, 大小, 字体, 形状, 方向, 语言, 文本长度… 复杂的背景干扰: 图像失真, 模糊, 低分辨率, 阴影, 亮度… 密集文本或重叠文本 文字存在局部一致性: 文本行的一部分也可以是为独立的文本 2. 场景文本检测方法分类 ...
1. 原始CNN 卷积结构的网络大致由 3 各网络层组成: 卷积层, 池化层和全连接层. 1.1. 卷积层 Convolution layer 使用不同的卷积核依次进行卷积提取特征 卷积操作涉及的参数如下: 滑动窗口步长: 步长不同会导致特征图尺寸不同 步长越小, 计算效率越低 卷积核尺寸 边缘填充 有些卷积核按照特定步长会导致漏掉一些原图的像素, 所以需要再边界补 $0$. $0$ 不会对卷积计算产生影响. 卷积核个数 卷积核的个数决定了特征图的厚度 (第三个维度) 卷积的尺寸计算, 卷积有两种方式: VALID 和 SAME. VALID 不进行补 $0$, 会漏掉一些原图的参数, SAME 补 $0$, 多加一圈 $0$ 来补齐. 下面的公式是 SAME, 去掉 $2P$ 就是 VALID. 长度: $$ H_2=\frac{H_1-F_H+2 P}{S}+1 $$ 宽度: $$ W_2=\frac{W_1-F_W+2 P}{S}+1 $$ $W_1,H_1$ 表示 input 的宽度和长度 $W_2,H_2$ 表示输入特征图的宽度和长度 $F$ 表示卷积核长和宽的大小 $S$ 表示滑动窗口的步长 $P$ 表示边界填充 (padding) 厚度 卷积参数共享: 如果图像是 $32*32*3$ 的图像, 卷积核有 $10$ 个, 尺寸都为 $5*5*3$ (就是对 RGB 三通道都做卷积). 这样的话, 每个卷积核需要 $5*5*3=75$ 个参数, 加上每个卷积核都有一个对应的偏置参数 $b$, 总共需要 $(75+1)*10$ 个参数. 所以卷积网络参数远少于全连接神经网络参数. 使用多个不同尺寸的卷积核之后全连接如何处理? (NLP 处理句子或 CV 处理图片时被使用到) 使用多个不同尺寸的卷积核卷积后的全连接处理_多个卷积核_空字符(公众号:月来客栈)的博客-CSDN博客 ...
1. 激活函数 深度学习常见激活函数介绍及代码实现 - UCloud云社区 1. ReLU 线性整流函数(Linear rectification function), 又称修正线性单元, 是一种人工神经网络中常用的激活函数(activation function), 通常指代以斜坡函数及其变种为代表的非线性函数. $$ f(x)=max(0,x) $$2. Sigmoid 缺点 sigmoid有一个梯度消失的问题, $|z|>4$(变量值很大或很小)的时候, 梯度就快消失了(趋近于0). ...
1. 汉诺塔问题 问题: 将汉诺塔从A移动到C, 小圆盘必须在大圆盘上面. 分析: 可以将最底下的一块圆盘作为独立个体, 上面的所有圆盘作为另一个个体. 则整个汉诺塔的移动步骤如下. ...
1. Logistic Regression 模型介绍 逻辑回归 (Logistic regression) 是分类模型, 常用于二分类. 逻辑回归的本质是: 假设数据服从分布, 然后使用极大似然估计做参数的估计 Logistic 分布是一种连续概率分布 分布函数: $$ F(x)=P(X \leq x)=\frac{1}{1+e^{-(x-\mu) / \gamma}} $$ 密度函数: $$ f(x)=F^{\prime}(X \leq x)=\frac{e^{-(x-\mu) / \gamma}}{\gamma\left(1+e^{-(x-\mu) / \gamma}\right)^{2}} $$ $\mu$: 未知参数; $\gamma$: 形状参数. logistic 分布的形状与正态分布的形状相似, 但是Logistic 分布的尾部更长, 所以我们可以使用Logistic 分布来建模比正态分布具有更长尾部和更高波峰的数据分布. Sigmoid 函数就是Logistic 的分布函数在$\mu=0, \gamma=1$的特殊形式. Logistic 回归 Logistic 回归主要用于分类问题, 如二分类, 对于所给的数据假设存在一条直线可以将数据完成线性可分. 先看决策边界 (decision boundary) 问题 有线性决策边界(linear decision boundaries) 可以表示为 $w_1x_1+w_2x_2+b=0$, 假设某个样本点 $h_w(x)=w_1x_1+w_2x_2+b>0$ 那么可以判断其类别为1, 这个过程就是感知机. 非线性决策边界(non-linear decision boundaries) Logistic 回归还需要找到分类概率$P(Y=1)$与输入向量$x$ 的直接关系, 然后通过比较概率值来判断类别. 考虑二分类问题, 给定数据集: $D=\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right), x_{i} \subseteq R^{n}, y_{i} \in 0,1, i=1,2, \cdots, N$ 由于多元线性回归模型(单调可导函数) $w^Tx+b$ 的取值是连续的, 所以不能拟合离散变量, 但可以用它来拟合条件概率$P(Y=1|x)$, 因为概率的取值也是连续的. 而概率的取值范围是[0, 1], 所以使用广义线性模型. 最理想的模型是单位阶跃函数: $p(y_i=1 \mid x_i)=\left\{\begin{array}{ll}0, & z<0 \\0.5, & z=0 \\1, & z>0\end{array}, \quad z=w^{T} x_i+b\right.$ 但是这个模型不单调, 所以不可导(不连续不平滑), 所以不是广义线性模型 常用的函数是sigmoid函数, 将 $f(x) = \frac{1}{1+e^{-x}}\in(0,1)$, $h(y_i) = w^Tx_i+b\in(-\infty, \infty)$ $y_i = f(x_i) = \frac{1}{1+e^{-(w^Tx_i+b)}}$ 此时$y$是一个概率(0到1之间), 设y为x的正例概率, 1-y为x的反例概率, 两者的比值为几率 (odds). $ln(odds)=ln(\frac{y}{1-y})=w^Tx+b$ $w^Tx+b=ln\frac{P(Y=1|x)}{1-P(Y=1|x)}$ $P(y=1|x)=\pi_w(x)=\frac{1}{1-e^{-(w^Tx+b)}}$ $P(y=-1|x)=1-\pi_w(x)$ 这里$y\in(-1,1)$ 所以输出$y=1$的对数几率是由输入$x$的线性函数表示的模型, 这就是逻辑回归模型. ...
1. CNN 卷积核介绍 CNN中常用的四种卷积详解 1.1. 一般卷积 一个卷积核在图像上滑动,并求取对应元素相乘求和的过程. 使用参数: 卷积核大小 (Kernel Size) 步长 (Stride) 填充 (Padding) 输入和输出通道数 (Input & Output Channels) 普通卷积公式: ...
1. 梯度问题 梯度 梯度是一个向量, 表示某一函数在该点处的方向导数沿着该方向取得最大值. 即函数在该点处沿着该方向(此梯度的方向)变化最快, 变化率最大(为该梯度的模). 梯度下降 目的: 减小真实值(gt)和预测值的距离 批量梯度下降法(Batch Gradient Descent) batch_size=样本总数 小批量梯度下降法(Mini-Batch Gradient Descent) batch_size=x(16, 32, 64 …) 随机梯度下降(Stochastic Gradient Descent) batch_size=1 改进方法 Momentum (动量) $v_t=\gamma v_{t-1}+\eta g_t$ $\theta_{t+1}=\theta_t-v_t$ $\gamma$: 阻力(衰减系数); $g_t$: 梯度; $v$: 前进步伐; $\eta$: 学习速率 Adam 惯性保持: 记录梯度的一阶矩 $m_t=\beta_1m_{t-1}+(1-\beta_1)g_t$ 环境感知: 记录梯度的二阶矩 $v_t=\beta_2v_{t-1}+(1-\beta_2)g_t^2$ 更新函数 $\theta_{t+1}=\theta_t-\frac{\eta\cdot \hat{m_t}}{\sqrt{\hat{v_t}+\epsilon}}$ $\hat{m_t}=\frac{m_t}{1-\beta_1^t}$; $\hat{v_t}=\frac{v_t}{1-\beta_2^t}$ AdaDelta和RMSProp 对AdaGrad的改进 AdaGrad使用所有历史梯度的平方和的平方根做分母, 所以分母随时间单调递增. 这两个采用指数衰退计算平均值的方法, 用历史梯度的均值代替求和. ...
简介 *args 和 **kwargs *是必要的, 后面的变量可以变换 *args 是用来发送一个非键值对的可变数量的参数列表给一个函数. def test_var_args(f_arg, *argv): print("first normal arg:", f_arg) for arg in argv: print("another arg through *argv:", arg) test_var_args('yasoob', 'python', 'eggs', 'test') **kwargs允许你将不定长度的键值对, 作为参数传递给一个函数. def greet_me(**kwargs): for key, value in kwargs.items(): print("{0} == {1}".format(key, value)) >>> greet_me(name="yasoob") name == yasoob 如果你想在函数里同时使用所有这三种参数 some_func(fargs, *args, **kwargs) ...
0. 微超主板登陆 超微主板使用配置 ipmi 功能流程介绍 用户名和密码都是: ADMIN 可以在配置-用户中更改密码 设置时间 显示画面 在远程控制中找到iKVM/HTML5, 可以启动远程管理服务器, 在网页端直接看到开机时显示的bios等画面, 就不需要外接显示器了. ...
1. 安装Gitea镜像 qnap Container Station - 创建 - 创建应用程序(yaml文件, 与docker compose文件建立docker container完全相同) version: '3.3' services: gitea_db: image: mysql:5.7 container_name: gitea_db restart: always environment: MYSQL_DATABASE: gitea MYSQL_ROOT_PASSWORD: [mysql root password] MYSQL_USER: gitea MYSQL_PASSWORD: [mysql root password] volumes: - db_data:/var/lib/mysql_gitea ports: - "[host sql port for sql container]:3306" networks: - gitea-network gitea_app: depends_on: - gitea_db image: gitea/gitea container_name: gitea_app restart: always ports: - "[host ssh port for gitea container]:22" - "[host http port for gitea container]:3000" volumes: - [gitea config and data path in nas]:/data networks: - gitea-network volumes: db_data: app_data: networks: gitea-network: driver: "bridge" 1.1. gitea install配置参考 如果sql服务器中没有保存以前的gitea配置, 首次打开gitea页面会显示安装配置 ...
什么是梯度下降法? - 知乎 [论文阅读] 综述梯度下降优化算法 最小二乘问题的四种解法——牛顿法,梯度下降法,高斯牛顿法和列文伯格-马夸特法的区别和联系 1. 梯度下降 梯度下降法用来计算函数的最小值. 1.1. 二维函数梯度下降 比如需要计算函数 $f(x)=x^2$ 的最小值, 如果不从经验上获知其最小值, 如何通过迭代来计算呢? ...
最小二乘法合函数的公式 使用最小二乘法拟合函数需要前置条件 设定多项式的阶数 $n$ 存在大于多项式阶数的点坐标 $((x_1,y_1), (x_2,y_2), ..., (x_k,y_k))$ 最小二乘拟合公式 $$ \begin{bmatrix} (\varphi_0,\varphi_0) & (\varphi_0,\varphi_1) & ... & (\varphi_0,\varphi_n)\\ (\varphi_1,\varphi_0) & (\varphi_1,\varphi_1) & ... & (\varphi_1,\varphi_n)\\ & &... \\ (\varphi_n,\varphi_0) & (\varphi_n,\varphi_1) & ... & (\varphi_n,\varphi_n)\end{bmatrix}\begin{bmatrix}a_0 \\ a_1 \\ ... \\ a_n\end{bmatrix}=\begin{bmatrix}(f,\varphi_0) \\(f,\varphi_1) \\ ... \\(f,\varphi_n) \end{bmatrix} $$ 其中括号的含义是矩阵内元素逐个相乘之和; $\varphi_n$ 是所有点坐标的 $x$ 坐标的 $n$ 次方; $a_n$ 是多项式每一阶前的参数, 从 0 开始增大; $f$ 表示所有点坐标的 $y$ 坐标; 最终可以获得 $n$ 个包含 $a_n$ 的公式, 计算公式即可算出 $a_0,a_1,...,a_n$ 参数, 从而拟合多项式. ...