private async Task InitOCR(System.Net.DownloadProgressChangedEventHandler onDownloadProgressChanged = null) { if (_ocr == null) { FileDownloadManager manager = new FileDownloadManager(); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/license-plate-recognition-barrier-0001/FP32/license-plate-recognition-barrier-0001.xml", _modelFolderName, "B5B649B9566F5CF352554ACFFD44207F4AECEE1DA767F4B69F46060A102623FA"); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/license-plate-recognition-barrier-0001/FP32/license-plate-recognition-barrier-0001.bin", _modelFolderName, "685934518A930CC55D023A53AC2D5E47BBE81B80828354D8318DE6DC3AD5CFBA"); if (onDownloadProgressChanged != null) { manager.OnDownloadProgressChanged += onDownloadProgressChanged; } await manager.Download(); _ocr = DnnInvoke.ReadNetFromModelOptimizer(manager.Files[0].LocalFile, manager.Files[1].LocalFile); /* * if (Emgu.CV.Cuda.CudaInvoke.HasCuda) * { * _ocr.SetPreferableBackend(Emgu.CV.Dnn.Backend.Cuda); * _ocr.SetPreferableTarget(Emgu.CV.Dnn.Target.Cuda); * }*/ } }
private async Task InitLicensePlateDetector(System.Net.DownloadProgressChangedEventHandler onDownloadProgressChanged = null) { if (_vehicleLicensePlateDetector == null) { FileDownloadManager manager = new FileDownloadManager(); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/vehicle-license-plate-detection-barrier-0106/FP32/vehicle-license-plate-detection-barrier-0106.xml", _modelFolderName); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/vehicle-license-plate-detection-barrier-0106/FP32/vehicle-license-plate-detection-barrier-0106.bin", _modelFolderName); manager.OnDownloadProgressChanged += onDownloadProgressChanged; await manager.Download(); _vehicleLicensePlateDetector = DnnInvoke.ReadNetFromModelOptimizer(manager.Files[0].LocalFile, manager.Files[1].LocalFile); /* * if (Emgu.CV.Cuda.CudaInvoke.HasCuda) * { * _vehicleLicensePlateDetector.SetPreferableBackend(Emgu.CV.Dnn.Backend.Cuda); * _vehicleLicensePlateDetector.SetPreferableTarget(Emgu.CV.Dnn.Target.Cuda); * }*/ } }
private async Task InitVehicleAttributesRecognizer(System.Net.DownloadProgressChangedEventHandler onDownloadProgressChanged = null) { if (_vehicleAttrRecognizer == null) { FileDownloadManager manager = new FileDownloadManager(); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/vehicle-attributes-recognition-barrier-0042/FP32/vehicle-attributes-recognition-barrier-0042.xml", _modelFolderName, "9D1E877B153699CAF4547D08BFF7FE268F65B663441A42B929924B8D95DACDBB"); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/vehicle-attributes-recognition-barrier-0042/FP32/vehicle-attributes-recognition-barrier-0042.bin", _modelFolderName, "492520E55F452223E767D54227D6EF6B60B0C1752DD7B9D747BE65D57B685A0E"); manager.OnDownloadProgressChanged += onDownloadProgressChanged; await manager.Download(); _vehicleAttrRecognizer = DnnInvoke.ReadNetFromModelOptimizer(manager.Files[0].LocalFile, manager.Files[1].LocalFile); /* * if (Emgu.CV.Cuda.CudaInvoke.HasCuda) * { * _vehicleAttrRecognizer.SetPreferableBackend(Emgu.CV.Dnn.Backend.Cuda); * _vehicleAttrRecognizer.SetPreferableTarget(Emgu.CV.Dnn.Target.Cuda); * }*/ } }
private async Task InitVehicleAttributesRecognizer(System.Net.DownloadProgressChangedEventHandler onDownloadProgressChanged = null) { if (_vehicleAttrRecognizer == null) { FileDownloadManager manager = new FileDownloadManager(); manager.AddFile( "https://download.01.org/opencv/2020/openvinotoolkit/2020.4/open_model_zoo/models_bin/3/vehicle-attributes-recognition-barrier-0042/FP32/vehicle-attributes-recognition-barrier-0042.xml", _modelFolderName); manager.AddFile( "https://download.01.org/opencv/2020/openvinotoolkit/2020.4/open_model_zoo/models_bin/3/vehicle-attributes-recognition-barrier-0042/FP32/vehicle-attributes-recognition-barrier-0042.bin", _modelFolderName); manager.OnDownloadProgressChanged += onDownloadProgressChanged; await manager.Download(); _vehicleAttrRecognizer = DnnInvoke.ReadNetFromModelOptimizer(manager.Files[0].LocalFile, manager.Files[1].LocalFile); /* * if (Emgu.CV.Cuda.CudaInvoke.HasCuda) * { * _vehicleAttrRecognizer.SetPreferableBackend(Emgu.CV.Dnn.Backend.Cuda); * _vehicleAttrRecognizer.SetPreferableTarget(Emgu.CV.Dnn.Target.Cuda); * }*/ } }
private async Task InitOCR(Dnn.Backend preferredBackend, Dnn.Target preferredTarget, System.Net.DownloadProgressChangedEventHandler onDownloadProgressChanged = null) #endif { if (_ocr == null) { FileDownloadManager manager = new FileDownloadManager(); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/license-plate-recognition-barrier-0001/FP32/license-plate-recognition-barrier-0001.xml", _modelFolderName, "B5B649B9566F5CF352554ACFFD44207F4AECEE1DA767F4B69F46060A102623FA"); manager.AddFile( "https://storage.openvinotoolkit.org/repositories/open_model_zoo/2021.2/models_bin/3/license-plate-recognition-barrier-0001/FP32/license-plate-recognition-barrier-0001.bin", _modelFolderName, "685934518A930CC55D023A53AC2D5E47BBE81B80828354D8318DE6DC3AD5CFBA"); if (onDownloadProgressChanged != null) { manager.OnDownloadProgressChanged += onDownloadProgressChanged; } #if UNITY_EDITOR || UNITY_IOS || UNITY_ANDROID || UNITY_STANDALONE || UNITY_WEBGL yield return(manager.Download()); #else await manager.Download(); #endif _ocr = DnnInvoke.ReadNetFromModelOptimizer(manager.Files[0].LocalFile, manager.Files[1].LocalFile); using (Mat seqInd = new Mat( new Size(1, 88), DepthType.Cv32F, 1)) { if (seqInd.Depth == DepthType.Cv32F) { float[] seqIndValues = new float[seqInd.Width * seqInd.Height]; for (int j = 1; j < seqIndValues.Length; j++) { seqIndValues[j] = 1.0f; } seqIndValues[0] = 0.0f; seqInd.SetTo(seqIndValues); } _ocr.SetInput(seqInd, "seq_ind"); } _ocr.SetPreferableBackend(preferredBackend); _ocr.SetPreferableTarget(preferredTarget); } }