Обнаружение областей штрих-кода с помощью ИИ в приложении .NET.
В этом разделе
VintaSoft Barcode .NET SDK 16.0+ может использовать нейронную сеть (искусственный интеллект) для поиска областей штрих-кодов на изображении.
Если SDK должен находить области одномерных штрих-кодов с помощью нейронной сети, необходимо выполнить следующие шаги:
-
Добавьте ссылку на nuget-пакет
Microsoft.ML.OnnxRuntime, версия 1.23.0
в ваше .NET-приложение.
-
Добавьте ссылку на nuget-пакет
Microsoft.ML.OnnxRuntime.Managed, версия 1.23.0
в ваше .NET-приложение.
- Добавьте ссылку на сборку .NET Vintasoft.Barcode.AI.1D.dll в ваше .NET-приложение.
-
Скопируйте файл Vintasoft.Barcode.AI.1D.vsres в папку "Bin" вашего .NET-приложения.
Если файл Vintasoft.Barcode.AI.1D.vsres должен храниться в пользовательской папке, укажите путь к этой пользовательской папке с помощью свойства ResourcesPath.
- Инициализируйте использование нейронной сети с помощью кода "Vintasoft.Barcode.Ai1DAssembly.Init();".
Если SDK должен находить области 2D-штрих-кодов с помощью нейронной сети, необходимо выполнить следующие шаги:
-
Добавьте ссылку на nuget-пакет
Microsoft.ML.OnnxRuntime, версия 1.23.0
в ваше .NET-приложение.
-
Добавьте ссылку на nuget-пакет
Microsoft.ML.OnnxRuntime.Managed, версия 1.23.0
в ваше .NET-приложение.
- Добавьте ссылку на сборку .NET Vintasoft.Barcode.AI.2D.dll в ваше .NET-приложение.
-
Скопируйте файл Vintasoft.Barcode.AI.2D.vsres в папку "Bin" вашего .NET-приложения.
Если файл Vintasoft.Barcode.AI.2D.vsres должен храниться в пользовательской папке, укажите путь к этой папке с помощью свойства ResourcesPath.
- Инициализируйте использование нейронной сети с помощью кода "Vintasoft.Barcode.Ai2DAssembly.Init();".
Когда следует использовать нейронную сеть для распознавания областей штрих-кодов на изображении?
Включите использование нейронной сети в вашем .NET-приложении, если выполняется одно из следующих условий:
- Вам необходимо распознавать двумерные штрих-коды на изображениях неизвестного размера, включая изображения среднего размера - 2 мегапикселя и более;
- Вам необходимо распознавать одномерные штрих-коды на изображениях неизвестного размера, включая изображения среднего размера - 15 мегапикселей и более;
- Вам необходимо распознавать неизвестное количество штрих-кодов на изображении;
- Вам необходимо распознавать большое количество двумерных и/или одномерных штрих-кодов на изображении;
Обнаружение областей штрих-кодов с помощью нейронной сети занимает от 30 до 70 миллисекунд на изображение. Детектор областей штрих-кодов с использованием ИИ (
Ai1DBarcodeRegionDetector,
Ai2DBarcodeRegionDetector) содержит настройки, которые активируют нейронную сеть только тогда, когда ожидается повышение производительности.
Как ускоряется процесс распознавания штрих-кодов?
Если SDK использует нейронную сеть для поиска областей штрих-кодов на изображении, SDK сначала находит области штрих-кодов на изображении с помощью нейронной сети (от 30 до 70 миллисекунд на изображение), а затем выполняет многопоточное распознавание штрих-кодов в найденных областях. Использование многопоточности ускоряет процесс распознавания штрих-кодов.
Что делать, если я не знаю количество штрих-кодов на изображении?
Если вы не знаете количество штрих-кодов на изображении, используйте нейронную сеть и установите свойство
ReaderSettings.ExpectedBarcodes в значение 0.
Я знаю, где расположены штрих-коды на изображении. Есть ли способ ускорить процесс распознавания штрих-кодов?
Используйте класс
BarcodeLayoutInfo для определения макета изображения - это позволит распознавателю штрих-кодов выполнять распознавание только в необходимых областях и эффективно использовать многопоточность.