kitchen角点检测算法--Apple的学习笔记

1.前言

  进入opencv算法学习。算法学习分2个步骤,一个是算法推导及理解。另外一部分是看opencv算法源码。
  今天进行的是kitchen-Rosenfeld角点检测算法理论。

2.理解算法

  网上先搜索了下,kitchen和Rosenfeld提出的基于局部梯度幅度值和边界上梯度方向改变率的角点检测算法。因为他利用了边缘曲线曲率和梯度幅度值都很大的特点。响应函数C为曲率k和梯度幅度值g的乘积。公式为
C=kg=k(I_x^2+I_y^2)^{1/2}=\frac{I_{xx}I_y^2+I_{yy}I_x^2-2I_{xy}I_xI_y}{I_x^2+I_y^2}
C的极值对应的像素即为角点。
其中I_x=\frac{\partial I}{\partial x}, I_y=\frac{\partial I}{\partial y}, I_{xx}=\frac{\partial^2 I}{\partial^2 x}, I_{yy}=\frac{\partial^2 I}{\partial^2 y}, I_{xy}=\frac{\partial^2 I}{\partial xy},

这个公式是如何推导的?下载了Kitchen 1982年的论文 Gray-level corner detection,没有全看,主要是看公式推导,想看看他的具体推导步骤。结果由于我不记得二元函数链式法则,折腾了老半天。另外,梯度在某个方向上的投影就是方向导数,论文中的\theta_x我一开始理解错了,因为看到论文中写了投影,以为是方向导数的方向,其实是梯度的方向。

3.论文算法推导

论文算法相关的截图如下:

原始论文.png

是梯度对x轴的旋转角度。代表梯度对于x方向的偏导数。然后又对求x和y方向的偏导数,就是求梯度方向的变化率,其实可以理解为曲率,具体曲率公式如下图:
曲率公式.png

但是作者这部分论文中公式的描述还没有说到曲率,\theta_x和\theta_y对x的偏导数和对y的偏导数。之后会利用二元函数链式除法求导法则来推导的,至少我目前是这样理解的。
[\frac{u(x)}{v(x)}]'=\frac{u'(x)v(x)-u(x)v'(x)}{v^2(x)}
g_x=v(x),g_y=u(x),而g_x本来就是对x的导数,再次对x求偏导数,就是二阶导数g_{xx},若是g_y对x求偏导数就是g_{xy}继续看tan\theta是通过什么公式变成\theta的呢?
acrtan\theta=\frac{z'}{1+z^2},我在网上曲率公式里搜索到的。
那么论文中的\theta = \frac{(\frac{g_y}{g_x})'}{1+(\frac{g_y}{g_x})^2}
\theta =\frac{g^2_x}{g^2_x+g^2_y}*(\frac{g_y}{g_x})'
然后对\frac{g_y}{g_x}求偏导,前面的乘数我把他看做常数。按照链式法则求导就是:
\frac{g_y}{g_x}|_x = \frac{g_{xy}g_x-g_yg_{xx}}{g_x^2},和前面的乘数进行约分,最后梯度方向\theta_x是对x的偏导数为\theta_x = \frac{g_y}{g_x}|_x = \frac{g_{xy}g_x-g_yg_{xx}}{g^2_x+g^2_y},同理可以计算梯度方向\theta对y的偏导数。结果和论文中一致。

最后论文中用了梯度在沿边缘线的方向(梯度-90的方向)的投影来计算,即通过内积公式,cos\theta =1。但是里面的K有除数{g^2_x+g^2_y},我觉得不应该有的。
然后通过点乘公式
C=g_x \theta_y - g_y \theta_x,将之前的\theta_x\theta_y带入后,得出C=\frac{g_{xx}g_y^2+g_{yy}g_x^2-2g_{xy}g_xg_y}{g_x^2+g_y^2}和最初网上搜索到的kitchen公式一致。

4.遇到的问题

1.点g(x,y)关于x和y是二元函数,所以是一个三维曲面。怎么和灰度联系呢?
答:图像输入数据可以看做是离散的像素点集合,可以从曲面的角度来任务它是一个以像素灰度值为Z方向值的曲面。

2.后来突然来了个问题,图像梯度怎么求呀,只有输入图像数据,公式是什么呢?
答:后来看了sobel算子就是离散函数的梯度表达式,soble算子和图像数据进行计算就可以求梯度了。这个将来再具体分析。

3.(gx,gy)的方向是梯度方向,是穿过边缘的,(-gy,gx)是边缘的方向该怎么理解呢?
答:从公式计算来理解,他的目的其实是想用cos0=1,否则x和y方向垂直,内积需要乘以cos90=0。(gx,gy)为90度,那么像左转90度(即减去90度)则为0度了。
看看cos图像。


cos图像.png

从含义来理解,梯度是标量场增加最快的方向。从地理学等高线来理解。梯度方向上经过很多等高线(边缘),而沿边缘方向(即沿着等高线方向)就是和梯度垂直的方向。

  1. 关于偏导数g_{xy}等于g_{xy}吗?
    答:是的。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容