線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1633
推到 Plurk!
推到 Facebook!

橢圓形比對人頭速度太慢,無法做到即時.

尚未結案
harisan3
一般會員


發表:6
回覆:11
積分:3
註冊:2004-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-07 23:03:28 IP:220.139.xxx.xxx 未訂閱
最近在研究從CCD上面的影像,辨識出人頭位置(想先做出跟論文作者一樣的功能)橢圓模板跟搜尋都已經做出來了,只是運算時間要很久,我也參考了站裡面的文章先建立了一個橢圓形模板在一個矩陣裡面,在去比對是不是圓周上面的點,如果是才會處理.不過還是因為用到了2 個For 的迴圈(2個2個控制影像Width and Height,另2個控制模板移動),而每次只移動一個Pixel所以運算速度非常慢,所以想請問之前做過橢圓人頭追蹤的一些先進,你們可以做到即時的找出人頭嗎? 能否給我一些建議...
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-08 00:21:38 IP:218.168.xxx.xxx 未訂閱
您好: 可將程式碼po上來讓前輩們幫您看看問題在哪邊
harisan3
一般會員


發表:6
回覆:11
積分:3
註冊:2004-12-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-08 13:02:48 IP:220.139.xxx.xxx 未訂閱
我的程式碼的架構大概如下,有些部分我省略掉了,我的問題在於迴圈太多,請各位前輩給我些建議,感激不盡...    
bool ** GetEllipseMask(int w,int h) //產生橢圓模板
{
  int CenterX,CenterY;
  double a,b;
  // 宣告一個 pattern[j][i] 大小 w x h
  bool **pattern=new bool*[h];
  for(int j=0;jHeight];    // STEP 1: SET UP THE ROWS.
   for (int row = 0; row < pSrcBitmap->Height; row  )
       ImageMatrix[row] = new Byte[pSrcBitmap->Width];     // STEP 2: SET UP THE COLUMNS
  // read image data for image processing.
   for(int row = 0; row < pSrcBitmap->Height; row  )
     ImageMatrix[row]= (Byte *)pSrcBitmap->ScanLine[row];  //影像資料都儲存在ImageMatrix裡面處理      int  srcWidth, srcHeight;
  srcWidth= pSrcBitmap->Width;
  srcHeight= pSrcBitmap->Height;      Byte* ptr;
  for(int w=100;w<=200;w  =10)      //模板縮放 
  {
   for (int h=120;h<240;h  =10)
   {
    pattern=GetEllipseMask(w,h); //重新產生橢圓樣版        for(int y=0;y        發表人 - harisan3 於 2005/06/08  13:08:18
        
harisan3
一般會員


發表:6
回覆:11
積分:3
註冊:2004-12-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-08 13:06:38 IP:220.139.xxx.xxx 未訂閱
我最主要的目的是能夠像論文作者一樣,做到即時的人頭追蹤... 所以如果各位前輩有其他建議也可以提供的話,個人感激不盡... 發表人 - harisan3 於 2005/06/08 13:09:59
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-08 14:56:33 IP:210.68.xxx.xxx 未訂閱
您好: 不曉得您處理的畫面大小為何? 1.可以加入膚色偵測當作搜尋的範圍(不用整張畫面都做) 2.把前一次抓到的人頭座標當作下一次搜尋的範圍(假設移動速度不會太快) 3.可以一次多跳幾個像素,而不要一次一個像素    順心
harisan3
一般會員


發表:6
回覆:11
積分:3
註冊:2004-12-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-06-08 18:48:32 IP:220.139.xxx.xxx 未訂閱
首先感謝您的建議,而我處理的畫面是320x240,但是如果一次多跳幾個像素不會因此找不到正確的畫面嗎? 論文作者可以做到移動一個Pixel而已,看來他處理的畫面應該是比我小,還有如果加入膚色判斷的話我的畫面要先處理過,速度不會變更慢嗎? 還有我對膚色判斷沒做過,有可以建議的資料讓我研究嗎? 看樣子我只能先試試看保留第一次的X,Y(但是第一次就已經有夠慢了...)
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-06-08 18:59:32 IP:210.68.xxx.xxx 未訂閱
引言: 而我處理的畫面是320x240,但是如果一次多跳幾個像素不會因此找不到正確的畫面嗎? 論文作者可以做到移動一個Pixel而已,看來他處理的畫面應該是比我小, 因為您的模板會縮放所以不用擔心,只是模版縮放的scale可能不能跳太多 像素 還有如果加入膚色判斷的話我的畫面要先處理過,速度不會變更慢嗎? 這我有試過,會遠比單單用橢圓遮罩偵測來的快,運算複雜度會小很多 因為您只需在膚色範圍搜尋而不是對整張畫面做搜尋 還有我對膚色判斷沒做過,有可以建議的資料讓我研究嗎? 膚色偵測站上已有資料與程式碼供您參考 看樣子我只能先試試看保留第一次的X,Y(但是第一次就已經有夠慢了...)
順心
系統時間:2024-05-03 6:29:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!