惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
V
Visual Studio Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
博客园 - 司徒正美
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
小众软件
小众软件
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
腾讯CDC
A
About on SuperTechFans
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
B
Blog RSS Feed
G
Google Developers Blog
量子位
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 三生石上(FineUI控件)

又见苍岚

COLMAP PatchMatch Stereo 算法详解 事件驱动的状态机框架:从理论到工程实践 Git 在国内网络环境下无法 Push 的排查与修复 —— 配置 Clash 代理 分段五次多项式插值原理详解 路径插值方法深度对比研究 Claude Code 使用指南 OpenClaw 记忆管理与技能创建指南 CBS(Conflict-Based Search)算法详解 A* 算法及其变种详解 OpenClaw 配置多 Agents Windows Powershell 无法加载文件,因为在此系统上禁止运行脚本问题的解决方案 MaxClaw 安装流程 大模型 AI 名词介绍 AList 网盘聚合工具简介 Protobuf 简介与测试 Claude Code 简介以及 GLM 4.7 模型接入 Github 歌词下载工具 163MusicLyrics Python __getattr__ 懒加载 Python TypedDict 机器人仿真平台 Gazebo 安装记录 机器人仿真平台 Gazebo 简介 多机器人路径规划问题(Multi-Agent Path Finding, MAPF)简介 Python exifread 读取修改过的 jpeg 信息错误问题修复 3D 坐标系变换的理解 3D 旋转矩阵基本概念 MongoDB Compass 介绍 Python 环境管理工具 uv Flutter 开发指南 Snipaste 安装下载与黑屏问题解决方案 全局路径规划算法记录
通过投影统计计算灰度图像朝向
Yiwei Zhang · 2022-09-14 · via 又见苍岚

图像处理中会遇到需要计算物体朝向的情况,前文计算了二值图物体朝向,本文进一步放宽条件,计算灰度图像朝向。

问题描述

  • 对于一个灰度图像,需要求解图像的朝向

解决思路

  • 按照根据投影计算二值图朝向的思路,在二值图中默认密度为1,因此在计算中忽略了图像的像素值,对于灰度图相当于薄板密度不再为1

  • 于是可以通过计算加权距离,求解灰度图像体朝向

  • 我们可以将该带密度的薄板理解为平面上的二维概率分布,即将整个图像每个像素值除以总质量,即得到了总和为1的 $x,y$ 的联合分布

    当图中物体部分密度相同(非零),背景部分密度为 0 时,灰度图像朝向即坍缩为二值图的朝向计算问题

  • 那么我们的目标是找到某个方向,使得该联合分布投影到这个方向得到的边缘分布方差最小,我们认为这个方向为与物体朝向垂直的方向。

计算方法

  • 考虑单通道非零灰度图像$I$,假设其中的点有 $N$ 个
  • 第$i$个点坐标为 $(x_i, y_i), 0 <i<N+1$,合并为列向量

$$
\textbf{x}=[x_1,x_2, …,x_N]^T, \textbf{y}=[y_1,y_2, …,y_N]^T
$$

  • 合并为维度 $N \times 2$ 的矩阵 $\textbf{M} = [\textbf{x}, \textbf{y}]$

  • 对应 $N$ 个点的密度 $[\rho_1,\rho_2, …,\rho_N]^T $

  • 总质量为 $S=\sum_{n=1}^N\rho_n$

  • 将原始图像转义为二维分布,$N$ 个点的概率密度为 $\textbf{p} =[p_1,p_2, …,p_N]^T $,其中 $p_i=\rho_i/S$

  • 给定一条直线,直线过点 $(x_t, y_t)$,直线的法向量 $\textbf{v} = [a, b]^T$,该法向量为单位向量,有:

$$
a^ 2 + b ^2=1
$$

  • 则直线可表示为:

$$
[x-x_t,y-y_t]\textbf{v} = 0
$$

  • 二值图上的点 $(x,y)$ 到直线的有向距离为: 点到$(x_t, y_t)$ 的向量到直线法向量 $\textbf{v}$ 的投影:

$$
d =[x-x_t,y-y_t]\textbf{v}
$$

  • 所有点的有向距离组成向量:

$$ \begin{array}{c} \textbf{d} &= [\textbf{M}-[x_t,y_t]]\textbf{v}\\ &= \textbf{M}\textbf{v}- [x_t,y_t]\textbf{v} \end{array} $$

  • 设 $[x_t,y_t]\textbf{v}$ 为常数 $c$,有:

$$
d =[x,y]\textbf{v}-c,\textbf{d} = \textbf{M}\textbf{v}- c
$$

  • 我们的目标是找到所有点的有向距离组成的样本集合的方差统计量最小,有向距离的均值为:

$$ \overline{d} = \sum_{i=1}^Np_i\textbf{m}_i\textbf{v}- c\\ =[\overline{x},\overline{y}]\textbf{v}- c $$

其中 $[\overline{x},\overline{y}]$ 为 $x,y$ 的期望向量

  • 灰度图像,有向距离的方差可表示为:

$$ \begin{array}{c} Var&=&\frac{1}{N} \sum_{i=1}^N (d_i-\overline{d})^2p_i\\ &=&\frac{1}{N} \sum_{i=1}^N ([x_i,y_i]\textbf{v}-c-[\overline{x},\overline{y}]\textbf{v}+c)^2p_i\\ &=&\frac{1}{N} \sum_{i=1}^N ([x_i-\overline{x},y_i-\overline{y}]\textbf{v})^2p_i \end{array} $$

  • 可见二值图到直线的有向距离的方差与直线的偏置无关,仅与法向量有关,设 $\textbf{M}’=\textbf{M}-[\overline{x}, \overline{y}]$,有:

$$ \begin{array}{c} Var&=&\frac{1}{N} \sum_{i=1}^N ([x_i-\overline{x},y_i-\overline{y}]\textbf{v})^2p_i\\ &=&\frac{1}{N} (\sqrt{\textbf{p}}^T\textbf{M}’\textbf{v})^T(\sqrt{\textbf{p}}^T\textbf{M}’\textbf{v})\\ &=& \frac{1}{N} \textbf{v}^T\textbf{M}’^T\sqrt{\textbf{p}}\sqrt{\textbf{p}}^T\textbf{M}’\textbf{v} \end{array} $$

  • 可以看做 $Var$ 是关于 $\textbf{v}$ 的二次型,系数矩阵为 $\frac{1}{N}\textbf{M}’^T\sqrt{\textbf{p}}\sqrt{\textbf{p}}^T\textbf{M}’ $
  • 注意:我们需要该方差最小,但不能直接对 $\textbf{v}$ 求导,令其取值为零:

$$ \begin{array}{c} \frac{{\partial Var}}{{\partial {\bf{v}}}} = \frac{2}{N}\textbf{M}’^T\sqrt{\textbf{p}}\sqrt{\textbf{p}}^T\textbf{M}’\bf{v}= 0\\ \textbf{M}’^T\sqrt{\textbf{p}}\sqrt{\textbf{p}}^T\textbf{M}’\bf{v}= 0 \end{array} $$

  • 因为这样做会得到 $\bf{v}$ 为零向量的平凡解,但是事实上 $\bf{v}$ 是有模长为 1 的约束的,因此我们需要解的是带约束的优化方程:

    $$ \begin{array}{c} minimize \quad Var= \frac{1}{N} \textbf{v}^T\textbf{M}’^T\sqrt{\textbf{p}}\sqrt{\textbf{p}}^T\textbf{M}’\textbf{v}\\ subject \ to \quad \bf{v}^T\bf{v}-1=0 \end{array} $$

解方程

拉格朗日

  • 至此之后的方程解法和之前完全相同,只是矩阵数值根据密度发生了一些变化
  • 之后解该方程需要在 $|\bf{v}|= 1$ 的约束下进行,因此可以引入拉格朗日乘数法
  • 可以参考 拉格朗日解该方程 的流程

特征向量

  • 我们用 $\bf{A}$ 表示上述系数矩阵 $\frac{1}{N}\textbf{M}’^T\sqrt{\textbf{p}}\sqrt{\textbf{p}}^T\textbf{M}’ $ (此处为 $2\times 2$ 的矩阵)
  • 因此我们的优化目标变为: $\bf{v}^TA\bf{v}$
  • 拉格朗日方程为:

$$ L =\bf{v}^TA\bf{v}+\lambda(\bf{v}^T\bf{v}-1) $$

  • 对 $\bf{v}$ 求导,令其为 0:

$$ \begin{array}{c} 2A\bf{v}+2\lambda\bf{v}=0\\ A\bf{v}+\lambda\bf{v}=0\\ (A+\lambda I)\bf{v}=0 \end{array} $$

  • 哈,这不就是在求 $\bf{A}$ 的特征向量吗?
  • 求就完了,会得到两个特征向量,特征值小的对应的特征向量为方差最小的投影方向。

参考资料

文章链接:
https://www.zywvvd.com/notes/study/image-processing/robot-vision/chapter-3/obj-orientation/gray-obj-orientation/