背景
在使用PaddleHub对姿态关键点分析的时候,想计算一下关节点的夹角,竟然有一些卡住了,在此记录一下。
使用内积计算夹角
刚开始想到的,就是内积公式
a ⋅ b = ∣ a ∣ ∣ b ∣ c o s θ a \cdot b = |a||b|cos\theta a⋅b=∣a∣∣b∣cosθ
但是上面的公式有一个问题,因为 θ \theta θ的定义域在 [ 0 , π ] [0,\pi] [0,π]之间,所以计算的角度就有些问题。
当顺时针角度大于 π \pi π的时候,就会有问题。
使用外积来判断是否超过了 π \pi π
外积的模长是 ∣ a × b ∣ = ∣ a ∣ ∣ b ∣ s i n θ |a\times b|=|a||b|sin\theta ∣a×b∣=