iOS下使用OpenCV進行影象識別
OpenCV提供了機器學習程式和影象識別的框架。接下來我們看看它是如何實現這些功能的。
首先OpenCV提供的機器學習是監督學習,也就是我們需要提供給機器正樣本和負樣本,使機器生成相應的檢測器。OpenCV使用進行影象識別的檢測器叫級聯分類器,所謂的級聯分類器,就是將若干的簡單的分量分類器(可以理解為一般的普通分類器)依次串聯起來,最終的檢測分類結果,要依次通過所有的分量分類器才能算是一個有效的檢測分類結果。否則,就認為當前檢測區域內沒有我們需要找的目標。
所以我們先要做的是,收集訓練樣本->生成正、負樣本描述檔案->生成正樣本特徵檔案->進行分類器訓練
OpenCV中有兩個程式可以訓練級聯分類器: opencv_haartraining和opencv_traincascade。opencv_traincascade 是一個新程式,使用OpenCV 2.x API 以C++編寫。這二者主要的區別是 opencv_traincascade 支援 Haar、Hog和 LBP(Local Binary Patterns)三種特徵,並易於增加其他的特徵。與Haar特徵相比,LBP特徵是整數特徵,因此訓練和檢測過程都會比Haar特徵快幾倍。LBP和Haar特徵用於檢測的準確率,是依賴訓練過程中的訓練資料的質量和訓練引數。訓練一個與基於Haar特徵同樣準確度的LBP的分類器是可能的。
參考連結:https://blog.csdn.net/uncle_lin/article/details/48582251
訓練完後的級聯分類器是一個xml檔案。我們將這個檔案匯入專案中就可以使用進行影象識別了。
OpenCV中提供了CascadeClassifier類,首先通過專案中的xml檔案初始化這個類。
例如:
cv::CascadeClassifier humanFaceClassifier([[bundle pathForResource:@"haarcascade_frontalface_alt" ofType:@"xml"] UTF8String])
接下來將想要識別的影象傳入這個類的函式detectMultiScale就可以進行影象識別了
例如:
humanFaceClassifier.detectMultiScale(equalizedImage, humanFaceRects, DETECT_HUMAN_FACE_SCALE_FACTOR, DETECT_HUMAN_FACE_MIN_NEIGHBORS, 0, detectHumanFaceMinSize);
識別到目標的Rect存在函式的第二個引數中。
至此,OpenCV中的影象識別功能就完成了。
參考資料:iOS Application Development with OpenCV 3.pdf chapter 4
相關文章
- iOS中使用opencv進行影象識別操作iOSOpenCV
- 談談如何使用 opencv 進行影像識別OpenCV
- OpenCV(iOS)影象金字塔(13)OpenCViOS
- OpenCV(iOS)影象尺寸縮放(14)OpenCViOS
- python示例 呼叫影象識別服務識別影象Python
- 使用OpenCV (iOS)對兩幅影象求和(求混合(blending))(6)OpenCViOS
- C#+OpenCV進階(二)_文字識別C#OpenCV
- Opencv利用神經網路進行車牌識別(c++)OpenCV神經網路C++
- C#+OpenCV進階(一)_人體識別C#OpenCV
- 使用 canvas 對影象進行處理Canvas
- [譯] 使用 WFST 進行語音識別
- 使用 Racket 進行基礎影像識別Racket
- 使用 OCaml 進行基礎影像識別
- 使用 Lua 進行基礎影像識別
- 使用 Nim 進行基礎影像識別
- OpenCV使用ParallelLoopBody進行平行計算OpenCVParallelOOP
- opencv 人臉識別OpenCV
- OpenCV — 人臉識別OpenCV
- 使用StretchBlt函式進行影象縮放函式
- 利用opencv合併影象OpenCV
- 學習身份證影象識別
- 阿里AI獲影象識別冠軍 百萬影象識別演算法可跑在手機上阿里AI演算法
- OpenCV進階之路:神經網路識別車牌字元OpenCV神經網路字元
- 使用 OpenCV-Python 識別答題卡判卷OpenCVPython
- [Python影象處理] 一.影象處理基礎知識及OpenCV入門函式PythonOpenCV函式
- 如何使用機器學習進行影像識別 | 資料標註機器學習
- 快速高效 | iOS銀行卡識別iOS
- [影象處理] Python+OpenCV實現車牌區域識別及Sobel運算元PythonOpenCV
- 使用OpenCV進行ROS 2的循線跟蹤OpenCVROS
- iOS 影象處理 - 影象拼接iOS
- [譯]計算機如何高效識別影象?計算機
- 使用SQIP工具和交叉點觀察器進行漸進式影象載入
- 用神經網路來識別人物影象性別神經網路
- 如何在 iOS 工程中使用 OpenCV?iOSOpenCV
- 【王曉剛】深度學習在影象識別中的研究進展與展望深度學習
- 圖片文字識別工具怎樣進行批次識別圖片?
- Python-OpenCV 處理影象(三):影象畫素點操作PythonOpenCV
- IOS下使用多執行緒iOS執行緒