eye blink detect眨眼檢測演算法

2021-06-19 00:10:05 字數 1025 閱讀 1929

眨眼檢測演算法有很多種,但準確率都有很大提高空間。此摘錄幾種簡單的判斷方法:

一:基於閥值的

當眼完全閉上時、需要更高的閥值才能找到乙個聯通區(media blur後)

二:簡單邏輯判斷法

說簡單點就是判斷眼中心在不在當前聯通區內

/*        eye blink code goes here & checks for bounding rects

to determine whether eye is blinked or not.

*/int is_blink(cvseq* comp, int num, cvrect window, cvrect eye)

個人依據經驗做的演算法如下

//特徵:眼睜開時圖形似矩形、閉眼時似三角形。

/**********likely highly

開 圖形似矩形 眼高

閉 似高三角形 眼低

openeyelikely = max ((up and down value/2 )* high)

f(x) = max(openeyelikely)

歸一化處理:

高度歸一化處理:highly = float(brightcount)/rowmean.rows; 開眼時為1,閉眼時實驗資料為0.3左右

rectanglelikely歸一化處理: rectanglelikely = (up + down)/2 / middle. 開眼時接盡1, 閉眼小於0.5

openeyelikely = rectanglelikely * highly ;

*/

其實、眨點有很多特點:下眼皮很少移動、是上眼皮向下眨。由此可以做很乙個眨眼週期的估計,上眼皮在乙個週期內會跳動一次。

實際情況下會有很多其它問題

一:很難捕捉到真正close eye的瞬間。

二:眨眼會有拖影。

這些情況都難以解決,只能說慢點眨點吧,太快了處理不過來。

VIBE檢測演算法

一 vibe 獲取目標 其他演算法處理 最終目標 優點 記憶體占用少,處理速度快,計算量小,檢測效果好 無引數法 可直接應用在產品中,軟硬體相容性好 效能優於混合高斯,引數化方法,sacon等 背景模型及時初始化 具有較好的抗噪能力。缺點 ghost區域 挑戰 必須適應環境的變化 比如光照的變化造成...

素數檢測演算法

因為1既不是素數也不是合數,所以下面的實現 中不考慮小於2的情況。本文以c語言進行講解,建議對著完整的原始碼看。最原始 最粗暴的方法就是從頭到尾逐個進行檢測,一旦遇到可被整除的數馬上返回false bool is prime 1 int n return true 該演算法時間複雜度為n2 n 2對...

邊緣檢測演算法

邊緣是由灰階等高線定義的,穿過等高線時,灰階會迅速變化,沿著等高線走,灰階值的變化會更加輕柔,有可能是隨機變化的,因此邊緣具有乙個可以測量的方向。邊緣畫素和雜訊畫素相比周圍的畫素都有明顯的變化,而邊緣畫素互相連線,構成等高線,因此可以通過這一特性區分邊緣畫素和雜訊畫素。1 數位化 影象的取樣不可能使...