Time of Update: 2018-12-04
對臉部偵測的研究最初可以追溯到 20 世紀 70 年代,早期的研究主要致力於模板匹配、子空間方法,變形模板匹配等。近期臉部偵測的研究主要集中在基於資料驅動的學習方法,如統計模型方法,神經網路學習方法,統計知識理論和支援向量機方法,基於馬爾可夫隨機域的方法,以及基於膚色的臉部偵測。目前在實際中應用的臉部偵測方法多為基於 Adaboost 學習演算法的方法。 Viola臉部偵測方法是一種基於積分圖、 級聯檢測器和AdaBoost 演算法的方法,方法架構可以分為以下三大部分:
Time of Update: 2018-12-04
最近在做臉部偵測的Haartraining訓練分類器,發現訓練到最後誤檢率很低時分類器總是卡到某一層就不在繼續進行,像是進入了死迴圈,程式碼與參數輸入應該是沒有任何問題的,所以我從網上找這方面的資料,最後在OpenCV的中文論壇看到一個帖,終於找到原因了。具體如下:1、問題出現在取負樣本的那個函數icvGetHaarTrainingDataFromBG中; 當剩下所有的negtive樣本在臨時的cascade
Time of Update: 2018-12-04
分水嶺分割技術是一種很優秀的且得到了廣泛應用的分割技術,從本質上講,它屬於一種基於地區增長的分割方法,但它得到的確是目標的邊界,且是連續、閉合、但像素寬的邊界。在很多領域,這種分割技術都得到了廣泛的應用,但分水嶺分割卻有一個致命的弱點,那就是容易產生過分割,對於雜訊和細密紋理非常敏感,使其常常產生嚴重的過分割結果。所以,針對這個問題,很多人提出了很多種改進的分水嶺分割技術。綜合來講,大概也就三類。其一,分割預先處理。既在應用分水嶺分割之前對映像進行一些預先處理,諸如除噪,求梯度映像,形態學重建,
Time of Update: 2018-12-04
搞了一下午,看了些資料,終於弄好了matlab GUI中的回呼函數。見底部~umtitled3.m:function varargout = untitled3(varargin)% UNTITLED3 M-file for untitled3.fig% UNTITLED3, by itself, creates a new UNTITLED3 or raises the existing% singleton*.%% H = UNTITLED3 returns
Time of Update: 2018-12-04
車牌識別包括預先處理、定位、字元分割和字元識別等幾部分。在本文中,我們僅討論預先處理的二值化過程。二值化的好壞決定著車牌識別的精度。事實上,要提高車牌識別精度必須要有好的二值化方法。本文提出了一種新的直接基於彩色映像的二值化方法。車牌識別,一直存在兩種思路。一是將彩色映像灰階化,然後二值化等等;二是直接基於彩色映像。由於直接基於彩色映像的方法大都未取得很好的效果,因此,造成灰階化、二值化成為目前車牌識別的主流。但是,採用灰階化的方法,有個根本的問題就是,灰階化是有損的。灰階化難在閾值選取。儘管沒
Time of Update: 2018-12-04
本文就是對這幾天來看opencv內建的臉部偵測的一些收穫。目前先是梳理這個AdaBoost演算法學習人臉,訓練分類器,檢測人臉的這麼一個過程。以期整體把握該演算法。Adaboost臉部偵測分3個步驟:準備樣本,訓練分類器,檢測 準備樣本: 正樣本,opencv是用的FERET 人臉庫做的樣本來訓練的內建的分類器。Harrtraining需要的是.vec檔案的樣本,因此需要把整理樣本。分為兩步:1先產生樣本描述檔案,2用內建的createsamples.exe來建立樣本.vec檔案具體步驟為
Time of Update: 2018-12-04
If you want to experiment with Physically Based Rendering, PBRT is the tool to use. Unfortunately, the latest builds have some incomplete instructions on how to build PBRT on your own machine.This article will show you how to compile and
Time of Update: 2018-12-04
那麼到底如何尋找檔案呢?我們需要一個結構體和幾個大家可能不太熟悉的函數。這些函數和結構體在<io.h>的標頭檔中,結構體為struct _finddata_t ,函數為_findfirst、_findnext和_fineclose。具體如何使用,我會慢慢講來~ 首先講這個結構體吧~ struct _finddata_t
Time of Update: 2018-12-04
STL中的vector提供了erase功能,在參考手冊上說刪除元素之後,iterator指向下一個元素的位置。這個說法感覺不是很明了,自己就嘗試了一下 int j=0; for(vector<int>::iterator i=v.begin();i!=v.end();) { cout<<"before erase size is : "<<v.size()<<" location is :
Time of Update: 2018-12-04
一直研究車牌識別演算法,主要關注車牌定位和字元識別。我想分享一下我對車牌定位的看法。
Time of Update: 2018-12-04
由於最近要用到一個.EXE檔案做訓練,發現每次都要敲很多命令才能到目錄下,然後每次都要輸入參數覺得很麻煩,就想到用批次檔去解決這個問題,網上搜了半天也沒有什麼好結果,不是講的太細就是沒講到重點,總之沒有我想要的結果,後來解決了。批處理代碼如下: @echo.exe的路徑名 要傳給.exe的參數1 參數2 參數3。。。pause 把這三條語句儲存為.bat的檔案,然後雙擊運行就行了注意:如果參數是某個檔案,需要保證這個檔案和.bat在同一個檔案夾下面
Time of Update: 2018-12-04
映像旋轉是將新舊座標值轉換以及像素間線性插值處理,由於座標值轉換時使用到乘法運算,本文使用加法運算替轉乘法運算解決速度問題。代碼如下://函數功能:圖象旋轉//參數說明:iSrc,表示原始映像;iDst,表示靶心圖表像;Angle,表示旋轉角度;nColorType,表示邊界外地區填充顏色//傳回值:無void ImageRotate2(CxImage* iSrc,CxImage* iDst,double Angle,int nColorType){ LONG
Time of Update: 2018-12-04
對很多人來說,這幾個概念很清楚,也很模糊,下面生動形象的表述一下。對上帝來說,一切都是確定的,因此機率作為一門學問存在,正好證明了人類的無知。好在人類還是足夠聰明的,我們並沒有因為事物是隨機的而束手無措,我們根據事物的可能性來決定我們的行為。比如,某個人搶銀行之前,一定反反覆複考慮過各種可能性。如果人們要等到一切都確定後再做,那麼你可能什麼都做不了,因為幾乎一切都是隨機的。一個事情有N種發生的可能性,我們不能確信哪種會發生,是因為我們不能控制結果的發生,影響結果的許多因素不在我們的支配範圍之內,
Time of Update: 2018-12-04
裡面有很多不錯的綜述性的文章, 長度基本都在100頁左右.個人比較關注的是:(1)Computer Graphics and Vision (2) Machine Learning (3) Signal Processing. 文章不多, 但篇篇經典, 都是一些大家寫的綜述性的文章. 雖然不能直接下, 但把標題放到google裡面搜, 基本上都可以搜到.推薦其中幾篇比較感興趣的文章,網上都可以下到.Structured Learning and Prediction in Computer
Time of Update: 2018-12-04
我要從徐家匯趕去機場,於是匆匆結束了一個會議,在美羅大廈前搜尋出租車。一輛福士發現了我,非常專業的、徑直的停在我的面前。這一停,於是有了後面的這個讓我深感震撼的故事,象上了一堂生動的MBA案例課。為了忠實於這名出租車司機的原意,我憑記憶盡量重複他原來的話。“去哪裡……好的,機場。我在徐家匯就喜歡做美羅大廈的生意。這裡我只做兩個地方。美羅大廈,均瑤大廈。你知道嗎?接到你之前,我在美羅大廈門口兜了兩圈,終於被我看到你了!從寫字樓裡出來的,肯定去的不近~~~”“哦?你很有方法嘛!”我附和了一下。“做
Time of Update: 2018-12-04
清華大學(22)1. 洪先龍 64數學 清華電腦系教授 2. 周孝信 65電機 國家電力公司電力科研院總工 3. 李文源 68電機 96年加拿大IEEE唯一“傑出工程師”獎 4. 淩複雲 68本 Qualcomm Inc副總裁 5. 鄭元芳 70本 美國Ohio州立大學電子工程系主任 6. 王 瑤 83電子 美國Polytechnic大學 7. 黃學東 84電腦
Time of Update: 2018-12-04
typedef void(* Fun)(void) Fun類似於typedef int INTFun在聲明以後,可以把它當作資料類型聲明其他變數Fun的確切意義是一個函數指標類型,該函數沒有參數且無傳回值 定義了一個int類型的變數i;而這樣typedef INT int;表示使用者自己定義了一個整數資料型別INT,實際上就等同於int所以:INT ii;同上,表示定義了一個int類型的變數ii;同樣的:void (*pFn)(void)定義了一個函數指標,該函數指標指向 類似於 void
Time of Update: 2018-12-04
OpenCV配套的教程Tutorials對於Video的部分,沒有執行個體進行說明,我只能摸石頭過河啦,之前試過一個camShift做目標檢測,這次試一試光流法做運動估計。這裡使用的光流法是比較常用的 Lucas-Kanade方法。對於光流法的原理,我就不過多介紹了,主要講使用OpenCV如何?。首先利用goodFeaturesToTrack函數得到映像中的強邊界作為跟蹤的特徵點,接下來要調用calcOpticalFlowPyrLK函數,輸入兩幅連續的映像,並在第一幅映像裡選擇一組特徵點,輸出為
Time of Update: 2018-12-04
相信學習Adaboost的都拜讀過Paul Viola和Michael Jones的《Robust Real-time Object Detection》,但自己在實現這個演算法的時候或者說訓練Adaboost分類器的時候總是會碰到一些問題。我總結一下我的分類器訓練過程。 在實際中,我們一般是確定最終級聯分類器的檢測率和虛警率以及級聯的層數,這樣我們就能算出每一層必須達到的檢測率和虛警率,這裡說明一下,檢測率和虛警率分為整個級聯分類器檢測率和虛警率的和每一層檢測率和虛警率,
Time of Update: 2018-12-04
1.海爾訓練現在,我們使用haartraining.exe來訓練我們自己的分類器。訓練語句如下:Usage: ./haartraining -data <dir_name> -vec <vec_file_name> -bg <background_file_name> [-npos <number_of_positive_samples = 2000>] [-nneg <number_of_negative_samples = 2