Browse Source

Use only inference engine dnn backend for VehicleLicensePlateDetector.

pull/703/head
Canming Huang 4 years ago
parent
commit
503186227a
  1. 15
      Emgu.CV.Example/XamarinForms/Core/App.cs
  2. 4
      Emgu.CV.Models/Dnn/VehicleLicensePlateDetector.cs

15
Emgu.CV.Example/XamarinForms/Core/App.cs

@ -263,7 +263,7 @@ namespace Emgu.CV.XamarinForms
p.IsVisible = true;
p.Title = "Preferred DNN backend & target";
foreach (String option in GetDnnBackends())
foreach (String option in GetDnnBackends(DnnBackendType.InferenceEngineOnly))
{
p.Items.Add(option);
}
@ -356,7 +356,13 @@ namespace Emgu.CV.XamarinForms
}
}
private String[] GetDnnBackends()
private enum DnnBackendType
{
Default,
InferenceEngineOnly
}
private String[] GetDnnBackends(DnnBackendType backendType = DnnBackendType.Default)
{
var openCVConfigDict = CvInvoke.ConfigDict;
bool haveDNN = (openCVConfigDict["HAVE_OPENCV_DNN"] != 0);
@ -367,6 +373,11 @@ namespace Emgu.CV.XamarinForms
List<String> dnnBackendsText = new List<string>();
foreach (var dnnBackend in dnnBackends)
{
if (backendType == DnnBackendType.InferenceEngineOnly &&
!((dnnBackend.Backend == Dnn.Backend.InferenceEngine)
|| (dnnBackend.Backend == Dnn.Backend.InferenceEngineNgraph)
|| (dnnBackend.Backend == Dnn.Backend.InferenceEngineNnBuilder2019)))
continue;
dnnBackendsText.Add(String.Format("{0};{1}", dnnBackend.Backend, dnnBackend.Target));
}

4
Emgu.CV.Models/Dnn/VehicleLicensePlateDetector.cs

@ -263,7 +263,7 @@ namespace Emgu.CV.Models
Object initOptions = null)
#endif
{
Dnn.Backend backend = Dnn.Backend.OpenCV;
Dnn.Backend backend = Dnn.Backend.InferenceEngine;
Dnn.Target target = Target.Cpu;
if (initOptions != null && ((initOptions as String) != null))
{
@ -277,7 +277,7 @@ namespace Emgu.CV.Models
Enum.TryParse(targetStr, true, out target)))
{
//If failed to part either backend or target, use the following default
backend = Dnn.Backend.OpenCV;
backend = Dnn.Backend.InferenceEngine;
target = Target.Cpu;
}
}

Loading…
Cancel
Save