45
人人人人 OpenCV 人人 授授授授 授授授授

人機介面 OpenCV 簡介

  • Upload
    airlia

  • View
    394

  • Download
    1

Embed Size (px)

DESCRIPTION

人機介面 OpenCV 簡介. 授課教師 開課單位. OpenCV. 環境設定 與 Visual Studio 2010 C++ express 整合 電腦視覺資料庫 – OpenCV 更多簡單的範例 讀圖 & 高斯模糊 開啟攝影機 OpenCV 專案 影像差異 歷史移動影像 背景相減 人臉偵測. 關於 OpenCV. OpenCV ( 開放 原始碼之電腦視覺) 主要是針對在及時計算機視覺 庫的一種 編程 功能。 人機介面 (HCI) 物體識別 切割辨識 人臉辨識 手勢辨識 移動偵測 動作認知 - PowerPoint PPT Presentation

Citation preview

人機介面OpenCV簡介

授課教師開課單位

OpenCV

環境設定– 與 Visual Studio 2010 C++ express 整合– 電腦視覺資料庫– OpenCV

更多簡單的範例– 讀圖 & 高斯模糊– 開啟攝影機OpenCV 專案– 影像差異– 歷史移動影像– 背景相減– 人臉偵測

關於OpenCV

OpenCV (開放原始碼之電腦視覺)主要是針對在及時計算機視覺庫的一種編程功能。– 人機介面 (HCI)– 物體識別– 切割辨識– 人臉辨識– 手勢辨識– 移動偵測– 動作認知– 場景重構 (Structure From Motion)– 立體聲和多台攝影機校準及深度計算– 移動機器人 .

HI!OpenCV

從英特爾 1999 年發展 OpenCV 以來,現正在積極發展中,目前正持續由 Willow Garage支援 .

目前最新的版本為 2.4.3 (October, 2012)所有的原始碼是用 C 語言編寫,並支援以下語

言 :– C, C++– Python

跨平台 : Windows, xNIX, MacOS etc…超過 2500 個函式

OpenCV 導讀發展歷史知名程式OpenCV 總覽參考資料

OpenCV 歷史• 動機起源於讓電腦視覺有更低的門檻,並充分利

用 Intel 處理器的運算效能• Timeline:

Gary Bradski (c) 2008Gary Bradski, 2009

哪裡用到OpenCV?

Google Maps, Google street view, Google Earth, Books

學術界和工業界研究安全監控安全系統圖像檢索影像搜尋電影中的運動結構機器人

應用範例 :自動駕駛

OpenCV Overview: 通用圖像函式

機器學習• 偵測 辨認

切割

追蹤

矩陣數學

工具和資料結構

Fitting

影像金字塔

攝影機校準

轉換特徵擷取

生物特徵

Robot support

opencv.willowgarage.com> 2500 functions

OpenCV Structure

CVImage ProcessingandVision Algorithms

HighGUIGUI,Image andVideo I/O

MLLStatistical ClassifiersandClustering Tools

CXCOREbasic structures and algorithms,XML support, drawing functions

IPPFast architecture-specific low-level functions

10Gary Bradski, 2009 10

AuxExperimental or less used routines

範例

讀圖及高斯模糊

讀圖及高斯模糊 (處理結果 )

存取像素http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html#SECTION00053000000000000000

結果

開啟攝影機

影像差異

介紹連續影像相減( Temporal

differencing )原理是利用再時間上連續的影像做一對一的像素相減

若是兩者差異為零,就表示此像素不屬於移動物件像素

反之,則此像素為移動物件像素。

簡介由前後 Frame 相減,可以找出不相同的

部位但無法看出動作的方向

Frame Difference 程式碼

優點及缺點優點 :– 計算簡單快速– 此法對於環境的改變適應性佳缺點 :– 但是偵測出的移動物件常常會發生內部破碎的

情形– 移動物件的形狀較不完整,對於後續的移動物

件追蹤與辨識將無法提供完整的資訊

背景相減

介紹純粹的影格差異雖然計算快,但是移動物體

內部都破碎使用背景相減,是先將要偵測的背景設為參

考影像速度一樣快– 但萬一背景改變,無法彈性調整使用 Mixture Background Modeling ,

將背景建立可適性模型,彈性變化背景– 速度慢– 但背景改變後,仍然可以使用

背景相減無論第幾張影格,皆減去第一張是先建好的

參考影格,不一樣的地方即是前景 ( 動作 )

相減時,究竟要相差多少才算動作–MOVEMENT_THRESHOLD – 30– 改變看看有什麼不一樣

Please refer to our solution -- BackgroundSubtraction

混合高斯背景模型利用背景應為穩定影像的特質– 可用混和高斯分配來表示其分布– 使用愈多高斯分佈愈貼近現實,但計算愈慢– 若有一張新影像不在

現有的分布上,即為前景,並更新現有分布,維持可適性

混合高斯背景模型// initialize MoG parametersint totalGaussian = 5; 想模擬的分布數量

int maxGaussian = 5;找尋前景時,只找前 maxGaussian 個依weight大小排序後的分布

float stdDeviationInit = 6;預設的標準差

float stdDeviationThreshold = 3.0;判斷前景的標準 ( 多少倍標準差之外 )

float weightThreshold = 0.25;找尋前景時,只找 weight 高於此標準的分布

float alpha = 0.01;背景學習率,愈大背景改變愈快,愈小愈有容忍度。

混合高斯背景模型Please try our solution –

GaussianBackgroundModel目前 totalGaussian, maxGaussian 一

定要一樣–嘗試實作將分布排序,然後可以設定只考慮依

weight排序後的前 maxGaussian 個分布

動態歷史圖像

簡介一般 Frame Difference只能看到動作的區域還有其大小,不能看出趨勢與方向

若不只單純考慮前一張 Frame ,而是把多張 Frame 一起考慮,就可以記錄出移動的歷史軌跡

動態歷史圖像 (Motion History Image, MHI)

動態歷史圖像函式

範例–請參照原始碼–motempl.c– Or our solution in MotionHistoryImage– 一些變數–MHI_DURATION – 想要追蹤的時間長度

(secs)– N – 想要計算 motion detection 的 Frame

buffer長度 (frames)

Challenge -- 嘗試將 gradient 圖標記拿掉

人臉偵測

介紹如何偵測具有特徵的物體,例如人臉 ?

挑戰收集並標示數據是很重要的,但很花時間如何取得的想要的特徵如何分類–即使是巢狀或串級的分類如何測試或檢驗還好,我們有 openCV

How to use

Try our package – FaceDetection– FaceDetect.cmd

Usage: facedetect [--cascade="<cascade_path>"][--nested-cascade[="nested_cascade_path"]][--scale[=<image scale>[filename|camera_index]

– FaceDetect.exe執行辨識的程式

前景臉部偵測Facedetect--cascade="./haarcascades/haarcascade_frontalface_alt.xml”--nested-cascade="./haarcascades/haarcascade_eye.xml”--scale=1.3 先找到在前面的臉接者尋找眼睛縮放標記

試試其他模組haarcascade_eye.xmlhaarcascade_eye_tree_eyeglasses.xmlhaarcascade_frontalface_alt.xmlhaarcascade_frontalface_alt2.xmlhaarcascade_frontalface_alt_tree.xmlhaarcascade_frontalface_default.xmlhaarcascade_fullbody.xmlhaarcascade_lefteye_2splits.xmlhaarcascade_lowerbody.xmlhaarcascade_mcs_eyepair_big.xmlhaarcascade_mcs_eyepair_small.xmlhaarcascade_mcs_lefteye.xmlhaarcascade_mcs_mouth.xmlhaarcascade_mcs_nose.xmlhaarcascade_mcs_righteye.xmlhaarcascade_mcs_upperbody.xmlhaarcascade_profileface.xmlhaarcascade_righteye_2splits.xmlhaarcascade_upperbody.xml

如何製作自己的 Xml

你必須收集一些樣品去檢測…接著校導…產生 xml 檔接著測試…Please refer to following link:– http://note.sonots.com/SciSoftware/haar

training.html

推薦的參考網站

Open Computer Vision Library (Sourceforge)– http://sourceforge.net/projects/opencvlibrary/

OpenCV Official Forum– http://tech.groups.yahoo.com/group/OpenCV/

OpenCV Wiki– http://opencv.willowgarage.com/wiki/ (Willowgarage)– http://en.wikipedia.org/wiki/OpenCV (Wikipedia)

OpenCV 中文網站– http://www.opencv.org.cn/index.php/

優質OpenCV 教學網– http://yester-place.blogspot.com/

Learning OpenCV: Computer Vision with the OpenCV Library (Paperback)– http://www.amazon.com/Learning-OpenCV-Computer-Vision-Libra

ry/dp/0596516134

參考特徵檢測專題– http://www.opencv.org.cn/index.php/

%E7%89%B9%E5%BE%81%E6%A3%80%E6%B5%8B%E4%B8%93%E9%A2%98