system: [SYSTEM]

user: 3. 目标方向估计 3.1. 网络输出设计 利用神经网络进行目标方向估计的主体思想是将目标方向作为卷积神经网络的一个输入对其进行训练，最终进行预测。首先，如图5所示，本文中定义的目标方向指，以朝上为标准方向，即0˚方向，顺 时针旋转 θ 角度为 θ 方向， θ ∈ [ 0 ∘ ， 360 ∘ ) 。 但是，由于角度 θ 在旋转一整周后，即从360˚到0˚处角度的数值存在突变，而实际上360˚和0˚是指的同一方向，所以如果直接使用 θ 角度值进行回归，网络在0˚和360˚处的预测值在数值上极有可能会存在很大误差。所以本文采用目标方向 θ 的两个单位方向分量 ( x ， y ) ( sin θ ， cos θ ) ，作为卷积神经网络的输入数据和预测数据，因为 sin θ 和 cos θ 在 θ ∈ [ 0 ∘ ， 360 ∘ ) 上具有单调性和连续性，不会出现上述问题，并且用预测出的一组方向分量，可以通过反三角函数公式并结合符号，唯一确认目标方向 θ ，实现目标方向估计。 3.2. 方向分量间的强约束 令 ， y = cos θ 作为网络的输出，如图5所示，由于方向分量为单位矢量，即两个输出分量之间存在函数约束 x 2 + y 2 = 1 ，则目标方向估计神经网络就是输出带有单个强约束关系的神经网络，其强约束函数 φ 为 φ = x 2 + y 2 − 1 = 0 (16) 3.3. 目标方向估计神经网络 为进行方向分量估计，现建立一个从输入图像I到输出方向分量 ( x ， y ) 的卷积神经网络数学模型 图5. 目标方向角 θ 示意图 ( x ， y ) = f ( W ， I ) ，其中W是参数矢量。通过给定大量样本图片 I i 和对应方向分量 ( x i ， y i ) ，其中 i = 1 ， 2 ， ⋯ ， n ，利用神经网络解算出模型参数W，最终建立从输入图像I到输出方向分量 ( x ， y ) 的完整映射，实现对任一图像的方向估计。 本文神经网络结构参考Lenet-5经典模型 [ 12 ] 的结构，在特征提取部分，同样使用两组卷积层和最大池化层最后通过一个全连接层提取图像的抽象特征；在特征映射部分，在保留图像目标识别功能的同时，网络中增加一条分支实现目标方向估计，即连接一个由两个神经元构成的全连接层，输出方向分量 ( x ， y ) 。完整网络结构如图6所示。 目标识别部分的网络与Lenet-5一致，具体介绍方向估计部分的网络。由于两个输出分量 ( x ， y ) 之间存在单个强约束 φ = x 2 + y 2 − 1 = 0 ，则按照本文第一节所述，考虑单个输出约束的网络结构如图7所示，其中网络的整个特征提取部分抽象为一个抽象特征层。 在图7中，不仅需要计算最终预测的估计值 ( x ˜ ， y ˜ ) 与真值 ( x ¯ ， y ¯ ) 之间的误差，以 D i f f θ 表示，则 D i f f θ = ( x ˜ − x ¯ ) + ( y ˜ − y ¯ ) (17) 还需要考虑输出 ( x ˜ ， y ˜ ) 之间的约束关系 φ ，计算约束误差，约束误差函数为 E r r o r φ ，则 E r r o r φ = φ ˜ − 0 = x ˜ 2 + y ˜ 2 − 1 (18) 在利用大量标注有方向的图片样本集对网络进行训练的过程中，通过误差反向传播对各权值进行修正，过程示意图如图8所示。 权重更新计算推导如下。 图6. 基于Lenet-5的目标识别和方向估计网络结构图 图7. 考虑方向分量输出约束的神经网络结构图 图8. 考虑方向分量输出约束的神经网络反向传播示意图 Loss层中，使用均方差定义输出损失函数 L o s s θ ，则 L o s s θ = 1 2 ∑ [ ( x ˜ − x ¯ ) 2 + ( y ˜ − y ¯ ) 2 ] (19) L o s s θ 在反向传播时，对 x ˜ 和 y ˜ 的偏导分别为 { ∂ L o s s θ ∂ x ˜ = ( x ˜ − x ¯ ) ∂ L o s s θ ∂ y ˜ = ( y ˜ − y ¯ ) (20) 约束误差的平方为 E r r o r φ 2 = 1 4 ( φ − 0 ) 2 = 1 4 ( x ˜ 2 + y ˜ 2 − 1 ) 2 (21) 其中增加的系数 1 4 是为了平衡求偏导引入的系数。 则 E r r o r φ 2 在反向传播时，对 x ˜ 和 y ˜ 的偏导分别为 { ∂ E r r o r φ 2 ∂ x ˜ = ( x ˜ 2 + y ˜ 2 − 1 ) ⋅ x ˜ ∂ E r r o r φ 2 ∂ y ˜ = ( x ˜ 2 + y ˜ 2 − 1 ) ⋅ y ˜ (22) 记总体误差为 E sum ，则 E sum = λ ⋅ E r r o r φ 2 + L o s s θ (23) 其中 λ 为约束误差的常数系数，实验中讨论 λ 的取值。 则 E sum 在反向传播时，对 x ˜ 和 y ˜ 的偏导分别为 { ∂ E sum ∂ x ˜ = λ ∂ E r r o r φ 2 ∂ x ˜ + ∂ L o s s θ ∂ x ˜ ∂ E sum ∂ y ˜ = λ ∂ E r r o r φ 2 ∂ y ˜ + ∂ L o s s θ ∂ y ˜ (24) 代入公式(20)和(22)，则 E sum 对 x ˜ 和 y ˜ 的偏导为 { ∂ E sum ∂ x ˜ = λ ⋅ ( x ˜ 2 + y ˜ 2 − 1 ) ⋅ x ˜ + ( x ˜ − x ¯ ) ∂ E sum ∂ y ˜ = λ ⋅ ( x ˜ 2 + y ˜ 2 − 1 ) ⋅ y ˜ + ( y ˜ − y ¯ ) (25) 权值修正根据导数的链式法则计算，例如，可通过下式更新权值 w k x 和 w k y ， { ∂ E sum ∂ w k x = ∂ E sum ∂ x ˜ × ∂ x ˜ ∂ w k x ∂ E sum ∂ w k y = ∂ E sum ∂ y ˜ × ∂ y ˜ ∂ w k y (26) { w k x + = w k x − η ⋅ ∂ E sum ∂ w k x w k y + = w k y − η ⋅ ∂ E sum ∂ w k y (27) 其中 η 为神经网络的学习率。 其他部分与传统神经网络处理方法一致，由此对网络中所有权值进行更新迭代，得到模型最佳参数矢量W。 3.4. 方向角精度评定 神经网络预测出一组 ( cos θ ˜ ， sin θ ˜ ) ，可以通过反三角函数公式 θ ˜ = arctan x ˜ y ˜ ，并结合 cos θ ˜ 和 sin θ ˜ 的符号，唯一确认目标方向预测值 θ ˜ 。若用 θ ¯ 表示真实值，那么方向角的估计误差 Δ θ 为 Δ θ = θ ˜ − θ ¯ (28) 而由于 θ 在360˚到0˚时数值有一个跳变，简单地利用该式计算可能会产生很大偏差。因为单个方向角的 l o s s 可以由公式(19)计算，将式中的方向分量分别用方向角的正弦和余弦展开，可以得到 l o s s = ( sin θ ˜ − sin θ ¯ ) 2 + ( cos θ ˜ − cos θ ¯ ) 2 2 = sin 2 θ ˜ + cos 2 θ ˜ + 1 2 − cos ( θ ˜ − θ ¯ ) (29) cos ( Δ θ ) = sin 2 θ ˜ + cos 2 θ ˜ + 1 2 − l o s s (30) 所以，估计误差 Δ θ 可以由 l o s s 和方向分量估计值反算得到，即 | Δ θ | = arccos ( sin 2 θ ˜ + cos 2 θ ˜ + 1 2 − l o s s ) (31) 如果有N个样本测试，那么所有测试样本的方向估计均方误差E则为 E = ∑ i = 1 N Δ θ i 2 N = ∑ i = 1 N arccos 2 ( sin 2 θ ˜ i + cos 2 θ ˜ i + 1 2 − l o s s i ) N (32) 其中， i = 1 ， 2 ， ⋯ ， N 。 这样，利用公式(31)和(32)计算得到的估计误差和均方误差不会因为角度值的跳变而出现突变。 公式(32)也反映了方向分量损失与方向估计精度的关系，当方向分量估计损失越小时，均方误差E越小，方向估计精度越高。 另外方向分量估计值的平方和也会影响估计误差，由于其存在 φ ˜ = sin 2 θ ˜ + cos 2 θ ˜ − 1 = 0 的约束，还需关注约束误差，约束误差由公式(18)和(21)计算得到，约束误差越小，方向估计精度越高。