Download presentation
Presentation is loading. Please wait.
1
人機介面 OpenCV簡介 授課教師 開課單位
2
OpenCV 環境設定 更多簡單的範例 OpenCV 專案 與Visual Studio 2010 C++ express整合
讀圖&高斯模糊 開啟攝影機 OpenCV 專案 影像差異 歷史移動影像 背景相減 人臉偵測
3
關於OpenCV OpenCV(開放原始碼之電腦視覺)主要是針對在及時計算機視覺庫的一種編程功能。 人機介面(HCI) 物體識別 切割辨識
人臉辨識 手勢辨識 移動偵測 動作認知 場景重構(Structure From Motion) 立體聲和多台攝影機校準及深度計算 移動機器人.
4
HI!OpenCV 從英特爾1999年發展OpenCV以來,現正在積極發展中,目前正持續由Willow Garage支援.
目前最新的版本為2.4.3 (October, 2012) 所有的原始碼是用C語言編寫,並支援以下語言: C, C++ Python 跨平台: Windows, xNIX, MacOS etc… 超過2500個函式
5
OpenCV 導讀 發展歷史 知名程式 OpenCV 總覽 參考資料
6
OpenCV 歷史 動機起源於讓電腦視覺有更低的門檻,並充分利 用 Intel 處理器的運算效能 Timeline:
Gary Bradski, 2009 Gary Bradski (c) 2008
7
哪裡用到OpenCV? Google Maps, Google street view, Google Earth, Books
學術界和工業界研究 安全監控 安全系統 圖像檢索 影像搜尋 電影中的運動結構 機器人
8
應用範例:自動駕駛
9
OpenCV Overview: > 2500 functions Robot support 通用圖像函式 影像金字塔 生物特徵
opencv.willowgarage.com 通用圖像函式 影像金字塔 生物特徵 切割 攝影機校準 特徵擷取 轉換 工具和資料結構 追蹤 機器學習 偵測 辨認 Fitting 矩陣數學
10
OpenCV Structure CV MLL HighGUI CXCORE IPP Aux Image Processing and
Vision Algorithms MLL Statistical Classifiers and Clustering Tools HighGUI GUI, Image and Video I/O CXCORE basic structures and algorithms, XML support, drawing functions IPP Fast architecture-specific low-level functions Aux Experimental or less used routines Gary Bradski, 2009 10 10
11
範例
12
讀圖及高斯模糊
13
讀圖及高斯模糊(處理結果)
14
存取像素
15
結果
16
開啟攝影機
17
影像差異
18
介紹 連續影像相減(Temporal differencing)原理是利用再時間上連續的影像做一對一的像素相減
若是兩者差異為零,就表示此像素不屬於移動物件像素 反之,則此像素為移動物件像素。
19
簡介 由前後Frame相減,可以找出不相同的部位 但無法看出動作的方向
20
Frame Difference 程式碼
21
優點及缺點 優點: 缺點: 計算簡單快速 此法對於環境的改變適應性佳 但是偵測出的移動物件常常會發生內部破碎的情形
移動物件的形狀較不完整,對於後續的移動物件追蹤與辨識將無法提供完整的資訊
22
背景相減
23
介紹 純粹的影格差異雖然計算快,但是移動物體內部都破碎 使用背景相減,是先將要偵測的背景設為參考影像速度一樣快
但萬一背景改變,無法彈性調整 使用Mixture Background Modeling,將背景建立可適性模型,彈性變化背景 速度慢 但背景改變後,仍然可以使用
24
背景相減 無論第幾張影格,皆減去第一張是先建好的參考影格,不一樣的地方即是前景(動作) 相減時,究竟要相差多少才算動作
MOVEMENT_THRESHOLD – 30 改變看看有什麼不一樣 Please refer to our solution -- BackgroundSubtraction
26
混合高斯背景模型 利用背景應為穩定影像的特質 可用混和高斯分配來表示其分布 使用愈多高斯分佈愈貼近現實,但計算愈慢
若有一張新影像不在 現有的分布上,即為 前景,並更新現有分 布,維持可適性
27
混合高斯背景模型 // initialize MoG parameters int totalGaussian = 5; 想模擬的分布數量
int maxGaussian = 5; 找尋前景時,只找前maxGaussian個依weight大小排序後的分布 float stdDeviationInit = 6; 預設的標準差 float stdDeviationThreshold = 3.0; 判斷前景的標準(多少倍標準差之外) float weightThreshold = 0.25; 找尋前景時,只找weight高於此標準的分布 float alpha = 0.01; 背景學習率,愈大背景改變愈快,愈小愈有容忍度。
28
混合高斯背景模型 Please try our solution – GaussianBackgroundModel
目前totalGaussian, maxGaussian一定要一樣 嘗試實作將分布排序,然後可以設定只考慮依weight排序後的前maxGaussian個分布
29
動態歷史圖像
30
簡介 一般Frame Difference只能看到動作的區域還有其大小,不能看出趨勢與方向
若不只單純考慮前一張Frame,而是把多張Frame一起考慮,就可以記錄出移動的歷史軌跡
31
動態歷史圖像(Motion History Image, MHI)
32
動態歷史圖像函式
33
範例 Challenge -- 嘗試將gradient圖標記拿掉 請參照原始碼 motempl.c
Or our solution in MotionHistoryImage 一些變數 MHI_DURATION – 想要追蹤的時間長度(secs) N – 想要計算motion detection的Frame buffer長度(frames) Challenge -- 嘗試將gradient圖標記拿掉
34
人臉偵測
35
介紹 如何偵測具有特徵的物體,例如人臉?
36
挑戰 收集並標示數據是很重要的,但很花時間 如何取得的想要的特徵 如何分類 即使是巢狀或串級的分類 如何測試或檢驗 還好,我們有openCV
37
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 執行辨識的程式
38
前景臉部偵測 Facedetect --cascade="./haarcascades/haarcascade_frontalface_alt.xml” --nested-cascade="./haarcascades/haarcascade_eye.xml” --scale=1.3 先找到在前面的臉 接者尋找眼睛 縮放標記
39
試試其他模組 haarcascade_eye.xml haarcascade_eye_tree_eyeglasses.xml
haarcascade_frontalface_alt.xml haarcascade_frontalface_alt2.xml haarcascade_frontalface_alt_tree.xml haarcascade_frontalface_default.xml haarcascade_fullbody.xml haarcascade_lefteye_2splits.xml haarcascade_lowerbody.xml haarcascade_mcs_eyepair_big.xml haarcascade_mcs_eyepair_small.xml haarcascade_mcs_lefteye.xml haarcascade_mcs_mouth.xml haarcascade_mcs_nose.xml haarcascade_mcs_righteye.xml haarcascade_mcs_upperbody.xml haarcascade_profileface.xml haarcascade_righteye_2splits.xml haarcascade_upperbody.xml
40
如何製作自己的Xml 你必須收集一些樣品去檢測… 接著校導… 產生 xml 檔 接著測試…
Please refer to following link:
41
推薦的參考網站 Open Computer Vision Library (Sourceforge)
OpenCV Official Forum OpenCV Wiki (Willowgarage) (Wikipedia) OpenCV中文網站 優質OpenCV教學網 Learning OpenCV: Computer Vision with the OpenCV Library (Paperback)
42
參考
43
參考 http://vbie.eic.nctu.edu.tw/vol_2/skill_7.htm
44
參考
45
參考 特徵檢測專題
Similar presentations