From 9a5038c86bc59a1689346ec363db39162b79ee7a Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Tue, 28 Dec 2021 11:04:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/4.0.0/3.1-tutorial_py_basic_ops.md | 4 ++-- docs/4.0.0/3.2-tutorial_py_image_arithmetics.md | 8 ++++---- docs/4.0.0/8.2.1-tutorial_py_svm_basics.md | 16 ++++++++-------- docs/4.0.0/8.2.2-tutorial_py_svm_opencv.md | 2 +- .../8.3.1-tutorial_py_kmeans_understanding.md | 14 +++++++------- docs/4.0.0/8.3.2-tutorial_py_kmeans_opencv.md | 10 +++++----- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/4.0.0/3.1-tutorial_py_basic_ops.md b/docs/4.0.0/3.1-tutorial_py_basic_ops.md index acbe561..e8084fa 100644 --- a/docs/4.0.0/3.1-tutorial_py_basic_ops.md +++ b/docs/4.0.0/3.1-tutorial_py_basic_ops.md @@ -119,7 +119,7 @@ UINT8 检查以下结果:
- +
## 拆分和合并图像通道 @@ -184,7 +184,7 @@ plt.show() 请参阅下面的结果。(图像是通过 matplotlib 展示的。因此红色和蓝色通道将互换):
- +
## 其他资源 diff --git a/docs/4.0.0/3.2-tutorial_py_image_arithmetics.md b/docs/4.0.0/3.2-tutorial_py_image_arithmetics.md index d3b11b7..18d4e53 100644 --- a/docs/4.0.0/3.2-tutorial_py_image_arithmetics.md +++ b/docs/4.0.0/3.2-tutorial_py_image_arithmetics.md @@ -30,7 +30,7 @@ OpenCV 相加操作和 Numpy 相加操作之间存在差异。OpenCV 添加是 这也是将图像相加,但是对图像赋予不同的权重,从而给出混合感或透明感。图像按以下等式添加:
- +
通过在(0,1)之间改变![](https://github.com/zhangqizky/opencv-doc-zh/blob/master/docs/4.0.0/img/alpha.gif)的值, 可以用来对两幅图像或两段视频产生时间上的 *画面叠化* (cross-dissolve)效果,就像在幻灯片放映和电影制作中那样(很酷吧?)(译者注:在幻灯片翻页时可以设置为前后页缓慢过渡以产生叠加效果,电影中经常在情节过渡时出现画面叠加效果)。 @@ -38,7 +38,7 @@ OpenCV 相加操作和 Numpy 相加操作之间存在差异。OpenCV 添加是 在这里,我拍了两张图片将它们混合在一起。第一图像的权重为 0.7,第二图像的权重为 0.3。[cv.addWeighted()](https://docs.opencv.org/4.0.0/d2/de8/group__core__array.html#gafafb2513349db3bcff51f54ee5592a19)在图像上应用以下等式。
- +
```Python @@ -54,7 +54,7 @@ cv.destroyAllWindows() 观察以下结果:
- +
@@ -89,7 +89,7 @@ cv.destroyAllWindows() 请参阅下面的结果。左图显示了我们创建的蒙版。右图显示最终结果。为了加深理解,请在上面的代码中显示所有中间图像,尤其是 img1_bg 和 img2_fg。
- +
## 其他资源 diff --git a/docs/4.0.0/8.2.1-tutorial_py_svm_basics.md b/docs/4.0.0/8.2.1-tutorial_py_svm_basics.md index 0905ea4..eb795c5 100644 --- a/docs/4.0.0/8.2.1-tutorial_py_svm_basics.md +++ b/docs/4.0.0/8.2.1-tutorial_py_svm_basics.md @@ -8,7 +8,7 @@ ### 线性可分离数据 考虑下面的图像有两种类型的数据,红色和蓝色。在 kNN 中,对于一个测试数据,我们通常要计算它与所有训练样本的距离,并选择最短距离的那个。计算与所有样本的距离花费了大量时间,而且存储所有的训练样本要花费大量的内存。但是,对于图片中所给出的数据,我们真的需要这么多吗?
-
+
图像
@@ -16,7 +16,7 @@ 在上图中,你可以看到很多这样的直线。我们将选哪一条?非常直观地说,该直线应该尽可能远离所有点。为什么呢?因为输入数据中可能存在噪声数据。这些噪声数据不应影响分类准确性。因此,选择最远的直线将提供更强的抗噪声能力。因此,SVM 所做的是找到与训练样本具有最大最小距离的直线(或超平面)。请参见下图中穿过中心的粗线。
-
+
图像
@@ -24,7 +24,7 @@ 发生了什么事呢?首先,有两个超平面被发现最能代表数据。例如,蓝色数据由 **wTx + b0 > 1** 表示,而红色数据由 **wTx + b0 < -1** 表示,其中 **w** 是权重向量( **w = [w1,w2,...,wn]** ), **x** 是特征向量( **x = [x1,x2,...,xn]** ), **b0** 是偏差。权重向量决定决策边界的方向,而偏差点决定其位置。现在,决策边界被定义为这些超平面的中间,因此表示为 **wTx + b0 = 0** 。从支持向量到决策边界的最小距离由 **distancesupport vectors = 1/||w||** 给出。间距是这个距离的两倍,我们需要最大化这个间距。即我们需要最小化一个新函数 **L(w,b0)** ,其中一些约束可以表示如下:
-
+
其中 ti 是每个类的标签, **ti ∈ [-1,1]** 。 @@ -38,12 +38,12 @@ 考虑二维空间中的两个点, **p = (p1, p2)** 和 **q = (q1, q2)** 。设 ***Φ*** 是一个映射函数,它将二维的点映射到三维空间,如下所示:
-
+
让我们定义一个核函数 ***K*(*p*,*q*)** ,它在两点之间做一个点积,如下所示:
-
+
@@ -51,18 +51,18 @@ 除了所有这些概念之外,还存在分类错误的问题。因此,仅仅找到具有最大间距的决策边界是不够的。我们还需要考虑分类错误的问题。有时,可能会找到间距较小的决策边界,但分类错误减少。无论如何,我们需要修改我们的模型,使其找到具有最大间距的决策边界,但分类错误较少。最小化标准修改为:
-
+
下图显示了这个概念。对于训练数据的每个样本,定义新参数 ***ξ*i** 。它是从相应的训练样本到正确决策区域的距离。对于那些没有被错误分类的数据,它们会落在相应的支持平面上,因此它们的距离为零。
-
+
图像
所以新的优化问题是:
-
+
如何选择参数 C?很明显,这个问题的答案取决于训练数据的分布方式。虽然没有一般性答案,但考虑以下规则很有用: diff --git a/docs/4.0.0/8.2.2-tutorial_py_svm_opencv.md b/docs/4.0.0/8.2.2-tutorial_py_svm_opencv.md index 281bd04..bed956d 100644 --- a/docs/4.0.0/8.2.2-tutorial_py_svm_opencv.md +++ b/docs/4.0.0/8.2.2-tutorial_py_svm_opencv.md @@ -20,7 +20,7 @@ def deskew(img): ``` 下图展示了应用于零图像的上述矫正函数。左图是原始图像,右图是矫正后的图像。
-
+
图像
接下来,我们必须找到每个单元的 HOG 描述符。为此,我们在 X 和 Y 方向找到每个单元的 Sobel 导数。然后,在每个像素处找到它们的大小和梯度方向。该梯度被量化为 0~16 间的整数。将此图像分为四个子方块。对于每个子方块,计算使用大小加权的方向的直方图(16 bins)。因此,每个子方块都会给你一个有 16 个值的向量。四个这样的向量(四个子方块)一起给出了有着 64 个值的特征向量。这是我们用来训练数据的特征向量。 diff --git a/docs/4.0.0/8.3.1-tutorial_py_kmeans_understanding.md b/docs/4.0.0/8.3.1-tutorial_py_kmeans_understanding.md index 357ebe2..deedef8 100644 --- a/docs/4.0.0/8.3.1-tutorial_py_kmeans_understanding.md +++ b/docs/4.0.0/8.3.1-tutorial_py_kmeans_understanding.md @@ -8,13 +8,13 @@ ### T 恤大小问题 举个例子,有一家公司将向市场推出一种新型 T 恤。显然,他们必须制造不同尺寸的衣服,以满足各种身材的人。为此,公司收集了一份人的身高和体重的数据,并将其绘制成图表,如下所示:
-
+
图像
公司不能制作所有尺寸的 T 恤。相反,他们将人们划分为小巧、中等和高大,并且仅制造这 3 种尺寸的衣服,以满足所有人的需求。将人群分为 3 组这种事情可以用 K-Means 聚类算法来完成,并且算法能够给我们找出最合适的 3 个尺寸,让所有人满意。如果不行,公司可以将人们分成更多的组,可能是 5 组,或者其它。查看下图:
-
+
图像
@@ -23,7 +23,7 @@ 考虑如下的一组数据(你可以将其视为 T 恤问题)。我们需要将这些数据分成两组。
-
+
图像
@@ -33,7 +33,7 @@ 在这个例子中,我们用红色标记所有的'0',用蓝色标记所有的'1'。在上述操作之后,我们得到了下图:
-
+
图像
@@ -43,18 +43,18 @@ 然后我们得到了如下结果:
-
+
图像
现在,迭代 **步骤二** 和 **步骤三**,直到两个中心点收敛到固定点。\*( 或者可能根据我们所给的条件停止,如最大迭代次数,或达到特定的准去率等。)\* **这些点使得测试数据与其对应的中心点之间的距离之和最小。** 或者简单地说,***C1↔红色点*** 和 ***C2↔蓝色点*** 之间的距离之和最小。
-
+
最终结果大概如下所示:
-
+
图像
diff --git a/docs/4.0.0/8.3.2-tutorial_py_kmeans_opencv.md b/docs/4.0.0/8.3.2-tutorial_py_kmeans_opencv.md index 25c3d03..d540672 100644 --- a/docs/4.0.0/8.3.2-tutorial_py_kmeans_opencv.md +++ b/docs/4.0.0/8.3.2-tutorial_py_kmeans_opencv.md @@ -53,7 +53,7 @@ plt.hist(z,256,[0,256]),plt.show() 所以我们有'z',这是一个大小为 50 的数组,值范围从 0 到 255。我已经将'z' 重塑为列向量。当存在多个特征时,它将更有用。然后我将类型数据转为 np.float32 。 我们得到以下图片: -

图像
+

图像
现在我们应用 KMeans 功能。在此之前,我们需要指定标准。我的标准是,每当运行 10 次迭代算法或达到 epsilon = 1.0 的精度时,就停止算法并返回答案。 @@ -81,7 +81,7 @@ plt.hist(centers,32,[0,256],color = 'y') plt.show() ``` 以下是我们得到的输出: -

图像
+

图像
## 2.具有多个特征的数据 在前面的例子中,我们只采取了 T 恤问题的高度。在这里,我们将采用高度和重量,即两个特征。 @@ -89,7 +89,7 @@ plt.show() 请记住,在前一种情况下,我们将数据制作为单个列向量。 每个特征排列在一列中,而每行对应一个输入测试样本。 举个例子,在本例中,我们将测试数据集的大小设为 50x2 ,这是 50 个人的高度和体重。第一列对应着 50 个人的高度,第二列对应着他们的重量。第一行包含两个元素,其中第一个元素是第一人的高度,第二个元素是他的重量。类似地,剩余的行对应于其他人的高度和重量。查看下图: -

图像
+

图像
现在我直接转到代码: ```python @@ -121,7 +121,7 @@ plt.show() ``` 以下是我们得到的输出: -

图像
+

图像
## 3.色彩量化 色彩量化是减少图像中颜色数量的过程。这样做的一个原因是减少内存。有时,某些设备可能具有限制,使得它只能产生有限数量的颜色。在那些情况下,也执行色彩量化。这里我们使用 k-means 聚类进行色彩量化。 @@ -154,7 +154,7 @@ cv.destroyAllWindows() ``` 对于 K = 8,请参见下面的结果: -

图像
+

图像
## 额外资源 ## 练习 -- GitLab