資源簡介
此文章試用于移動的人臉識別,能夠選中人臉,眼睛。用的是emgu3.0,如果運行錯誤的情況下,里面有兩點需要修改,Emgu里面X86X64,需要復制到DeBug目錄下,Xml文件屬性,復制到輸出目錄更改為-》如果較新則復制。就可以運行了。如有其他問題,請留言,一起探討。
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Diagnostics;
using?System.Drawing;
using?Emgu.CV;
using?Emgu.CV.Structure;
#if?!(IOS?||?NETFX_CORE)
using?Emgu.CV.Cuda;
#endif
namespace?FaceRecognition
{
????public?static?class?DetectFace
????{
????????public?static?void?Detect(
??????????Mat?image?String?faceFileName?String?eyeFileName
??????????List?faces?List?eyes
??????????bool?tryUseCuda?bool?tryUseOpenCL
??????????out?long?detectionTime)
????????{
????????????Stopwatch?watch;//記錄代碼運行時間
#if?!(IOS?||?NETFX_CORE)
????????????if?(tryUseCuda?&&?CudaInvoke.HasCuda)
????????????{
????????????????using?(CudaCascadeClassifier?face?=?new?CudaCascadeClassifier(faceFileName))
????????????????using?(CudaCascadeClassifier?eye?=?new?CudaCascadeClassifier(eyeFileName))
????????????????{
????????????????????face.ScaleFactor?=?1.1;//圖像縮放比例,可以理解為同一個物體與相機距離不同,其大小亦不同,必須將其縮放到一定大小才方便識別,該參數指定每次縮放的比例
????????????????????face.MinNeighbors?=?10;//對特征檢測點周邊多少有效點同時檢測,這樣可避免因選取的特征檢測點太小而導致遺漏
????????????????????face.MinobjectSize?=?Size.Empty;
????????????????????eye.ScaleFactor?=?1.1;
????????????????????eye.MinNeighbors?=?10;
????????????????????eye.MinobjectSize?=?Size.Empty;
????????????????????watch?=?Stopwatch.StartNew();
????????????????????using?(CudaImage?gpuImage?=?new?CudaImage(image))
????????????????????using?(CudaImage?gpuGray?=?gpuImage.Convert())
????????????????????using?(GpuMat?region?=?new?GpuMat())
????????????????????{
????????????????????????face.DetectMultiScale(gpuGray?region);
????????????????????????Rectangle[]?faceRegion?=?face.Convert(region);
????????????????????????faces.AddRange(faceRegion);
????????????????????????foreach?(Rectangle?f?in?faceRegion)
????????????????????????{
????????????????????????????using?(CudaImage?faceImg?=?gpuGray.GetSubRect(f))
????????????????????????????{
????????????????????????????????//For?some?reason?a?clone?is?required.
????????????????????????????????//Might?be?a?bug?of?CudaCascadeClassifier?in?opencv
????????????????????????????????using?(CudaImage?clone?=?faceImg.Clone(null))
????????????????????????????????using?(GpuMat?eyeRegionMat?=?new?GpuMat())
????????????????????????????????{
????????????????????????????????????eye.DetectMultiScale(clone?eyeRegionMat);
????????????????????????????????????Rectangle[]?eyeRegion?=?eye.Convert(eyeRegionMat);
????????????????????????????????????foreach?(Rectangle?e?in?eyeRegion)
????????????????????????????????????{
????????????????????????????????????????Rectangle?eyeRect?=?e;
????????????????????????????????????????eyeRect.Offset(f.X?f.Y);
????????????????????????????????????????eyes.Add(eyeRect);
????????????????????????????????????}
????????????????????????????????}
????????????????????????????}
????????????????????????}
????????????????????}
????????????????????watch.Stop();
????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????..A..H.?????20992??2017-11-22?16:57??FaceRecognition\.vs\FaceRecognition\v14\.suo
?????文件????????189??2017-11-22?16:40??FaceRecognition\FaceRecognition\App.config
?????文件??????66048??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.Cuda.dll
?????文件?????194048??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.Cuda.pdb
?????文件?????144172??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.Cuda.xm
?????文件???????8192??2015-06-24?03:20??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.DebuggerVisualizers.VS2010.dll
?????文件???????8192??2015-06-24?03:20??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.DebuggerVisualizers.VS2012.dll
?????文件?????363008??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.dll
?????文件????1064448??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.pdb
?????文件?????114688??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.UI.dll
?????文件?????136704??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.UI.pdb
?????文件??????34738??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.UI.xm
?????文件????1061179??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.CV.xm
?????文件??????18432??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.Util.dll
?????文件??????34304??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.Util.pdb
?????文件??????17339??2017-11-21?15:51??FaceRecognition\FaceRecognition\bin\Debug\Emgu.Util.xm
?????文件??????12288??2017-11-22?16:57??FaceRecognition\FaceRecognition\bin\Debug\FaceRecognition.exe
?????文件???????1542??2017-11-22?16:57??FaceRecognition\FaceRecognition\bin\Debug\FaceRecognition.exe.config
?????文件??????26112??2017-11-22?16:57??FaceRecognition\FaceRecognition\bin\Debug\FaceRecognition.pdb
?????文件??????22696??2017-11-22?16:58??FaceRecognition\FaceRecognition\bin\Debug\FaceRecognition.vshost.exe
?????文件???????1542??2017-11-22?16:57??FaceRecognition\FaceRecognition\bin\Debug\FaceRecognition.vshost.exe.config
?????文件????????490??2017-03-19?05:00??FaceRecognition\FaceRecognition\bin\Debug\FaceRecognition.vshost.exe.manifest
?????文件?????341406??2017-11-22?16:49??FaceRecognition\FaceRecognition\bin\Debug\haarcascade_eye.xm
?????文件?????930127??2017-11-22?16:49??FaceRecognition\FaceRecognition\bin\Debug\haarcascade_frontalface_default.xm
?????文件???13839360??2015-06-29?23:40??FaceRecognition\FaceRecognition\bin\Debug\x64\cvextern.dll
?????文件????1498624??2015-06-29?23:40??FaceRecognition\FaceRecognition\bin\Debug\x64\cvextern_test.exe
?????文件?????660128??2013-10-05?12:58??FaceRecognition\FaceRecognition\bin\Debug\x64\msvcp120.dll
?????文件?????963232??2013-10-05?12:58??FaceRecognition\FaceRecognition\bin\Debug\x64\msvcr120.dll
?????文件????9720042??2014-07-24?21:56??FaceRecognition\FaceRecognition\bin\Debug\x64\opencv_ffmpeg300_64.dll
?????文件???10999808??2015-06-24?02:51??FaceRecognition\FaceRecognition\bin\Debug\x86\cvextern.dll
............此處省略51個文件信息
評論
共有 條評論