人眼定位演算法簡單概述

2021-08-19 17:08:06 字數 1606 閱讀 2552

這篇部落格只是總結一下人眼定位的方法。

首先人眼定位效果是得到人眼的座標,即瞳孔的座標。大體來說人眼定位的方法有兩種,第一種是利用人眼的幾何特徵,灰度特徵等通過演算法來實現定位,第二種要通過機器學習,其實opencv自帶了瞳孔分類器,但我應用起來效果並不是很好。下面主要是講解一下通過特徵定位人眼的一些演算法。

以下對每種方法的實驗均是利用低解析度的,即是利用普通攝像頭獲取的。

##基礎

進行人眼定位之前首先是要通過人臉分類器得到人臉的,然後對人臉根據一些先驗知識分割出包含人眼區域的。這些先驗知識可以是人眼在人臉的大概比例等,具體還是看不同以及不同的定位需求。

幾何特徵利用的是人眼是圓型的,通過定位圓取圓心得到大致瞳孔位置。

opencv中有霍夫園檢測方法可以對中的圓進行檢測,其主要原理是通過霍夫變換引數空間,霍夫線檢測是將的座標空間轉換為極座標引數空間,而霍夫園檢測是將座標轉換成x,y,r(圓心座標,半徑)的引數空間,霍夫圓檢測還利用了霍夫梯度法對圓心進行過濾。

改進單純利用霍夫圓檢測方法是肯定不能檢測到精準的圓心座標,因為檢測出來的目標圓很多,可以對這些目標圓進行過濾。過濾原理:人眼經過二值化後的目標區域主要還是人眼的圓形,即可以利用人眼灰度高於**區域灰度的特徵。對霍夫圓檢測出的目標圓,在二值化影象計算畫素值為255或0的(255或0取決於你二值化的方式)比例,比例最高的圓即為待選的目標人眼。

優缺點:

優點精度還行,缺點就是光照影響以及每次都要調節引數來適應不同的。

###灰度特徵

灰度特徵主要是利用人眼主要顏色比**更深,即灰度值更強。我第一次利用的灰度特徵主要是計算人眼行灰度和(把每一行畫素相加),其中最大的行灰度和就是人眼所在的行座標,而人眼的列座標可以通過分割人眼(雙眼)為左右兩張人眼,在計算列灰度和得到。不過我當時並沒有將人眼分割成左右兩張,從而在計算列時參考某篇**,嘗試把列灰度和曲線擬合成兩條高斯曲線,獲得每條高斯曲線的x=u的點,但過於複雜沒有成功,不過現在想來這種方法太過於複雜。另加快計算速度可以選擇跳行計算。

優缺點精度不錯,光照影響還是挺大的,調節引數必須的,戴眼鏡干擾很大。

改進改進的方法其實是利用梯度,眼睛是人眼灰度變換最明顯部分,而灰度變換的速率可以用梯度表示,用梯度來確定是比較合適的了,用灰度總有種勉強的感覺。計算方法:首先要將和行尺度不變運算元做卷積,作用是突出眼部梯度,在計算行梯度和,取最大的行梯度為人眼行座標。這種效果適應性比較強,而且適用於戴眼鏡的情況。但是利用梯度獲得列座標我沒有嘗試過,因為眼睛區域在行方向是梯度明顯的,而在列方面不明顯,通過分別計算行列梯度可知。目前我主要想要實現的是通過梯度確定的行去精確化霍夫園檢測。

###模板匹配

模板匹配是將人眼分成左右眼兩張,分別對兩張進行模板匹配,首先要求的就是你要有各種各樣眼睛不同姿態的模板,使用者匹配。沒有嘗試過,只做過了解。

求輪廓是初步學習opencv裡的套路了,就是二值化,對進行找輪廓,對找到的輪廓進行簡單的篩選,在求取輪廓的中心即可。這種方法也可行但是需要需要進行濾波處理。

了解以及嘗試的方法大概這麼幾種把,首先每種方法都不是孤立的,應該結合多種方法利用各種特徵去做人眼定位。其次在不斷探索的過程種,發現自己沒有快速建立原型的思維,總是想要尋找一種方法簡單而又適應於所有情況,這一點要引起警戒,因為這樣浪費時間又消耗自己的心力。不應該糾結於完美的方法,而是快速的實現儘管有缺陷,但是首先到達問題的核心和深度才是最重要的。

用opencv檢測人眼並定位瞳孔位置

最近的研究要用到定位瞳孔的位置,所以上網搜了下相關的 總結如下 1 定位瞳孔可以直接使用opencv中的自帶的分類器 haarcascade eye tree eyeglasses.xml 來實現,以前聽師兄說用opencv自帶的這個方法定位瞳孔不准,但我自己做了實驗後發現在正面人臉的情況下定位還是...

機器學習實踐系列之8 人眼定位

一.人眼檢測 opencv自帶的人眼檢測,及教程都已比較普及,這裡不再囉嗦,訓練模板直接 load已經訓練好的檔案 haarcascade eye tree eyeglasses.xml,直接看 linolzhang 2014.10 基於opencv的人眼檢測 cascade include ope...

加密演算法簡單概述

基本過程就是對原來為明文的檔案或資料按某種演算法進行處理,使其成為不可讀的一段 通常稱為 密 文 使其只能在輸入相應的金鑰之後才能顯示出本來內容,通過這樣的途徑來達到保護資料不被非法人竊取 閱讀 的目的。該過程的逆過程為解密,即將該編碼資訊轉化為其原來資料的過程。功能 對稱 symmetric 演算...