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
相關文章
- 談談如何使用 opencv 進行影像識別OpenCV
- python示例 呼叫影象識別服務識別影象Python
- C#+OpenCV進階(二)_文字識別C#OpenCV
- C#+OpenCV進階(一)_人體識別C#OpenCV
- 使用Tesseract進行圖片文字識別
- 使用 Nim 進行基礎影像識別
- 使用 Racket 進行基礎影像識別Racket
- 使用 OCaml 進行基礎影像識別
- 使用 Lua 進行基礎影像識別
- [譯] 使用 WFST 進行語音識別
- OpenCV使用ParallelLoopBody進行平行計算OpenCVParallelOOP
- opencv 人臉識別OpenCV
- 使用 OpenCV-Python 識別答題卡判卷OpenCVPython
- 影象識別sift+bow+svm
- [Python影象處理] 一.影象處理基礎知識及OpenCV入門函式PythonOpenCV函式
- [影象處理] Python+OpenCV實現車牌區域識別及Sobel運算元PythonOpenCV
- 阿里AI獲影象識別冠軍 百萬影象識別演算法可跑在手機上阿里AI演算法
- 使用 Rust 和 OpenCV 進行物體檢測RustOpenCV
- 影象二值化(python+opencv)PythonOpenCV
- [譯]計算機如何高效識別影象?計算機
- 使用OpenCV進行ROS 2的循線跟蹤OpenCVROS
- 用神經網路來識別人物影象性別神經網路
- OpenCV之影象直方圖均衡化OpenCV直方圖
- 使用 Go 語言與 OpenCV 進行物體檢測GoOpenCV
- 使用SQIP工具和交叉點觀察器進行漸進式影象載入
- 圖片文字識別工具怎樣進行批次識別圖片?
- 使用Python,OpenCV進行銀行支票數字和符號的OCRPythonOpenCV符號
- opencv圖片處理與OCR識別OpenCV
- OpenCV-Python 人臉眼睛嘴識別OpenCVPython
- 【opencv實戰】影象素描及卡通化OpenCV
- 製作一個Node命令列影象識別工具命令列
- Python OpenCV 3 使用背景減除進行目標檢測PythonOpenCV
- 如何在opencv下使用SIFTOpenCV
- 如何使用機器學習進行影像識別 | 資料標註機器學習
- 使用 SpeechT5 進行語音合成、識別和更多功能
- 使用 OpenCV 進行文件矯正OpenCV
- python呼叫hanlp進行命名實體識別PythonHanLP
- iOS身份證號識別iOS