1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/abcc009-EasyPR

Клонировать/Скачать
Usage.md 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 01.06.2025 08:32 e246704

Использование

Получение исходного кода

Вы можете получить исходный код, посетив нашу страницу проекта:

Если вы знакомы с системой контроля версий Git, вы можете использовать следующую команду для клонирования исходного кода с GitHub:

$ git clone https://github.com/liuruoze/EasyPR

Подготовка

  1. Установка OpenCV

Скачайте соответствующую версию OpenCV3.1.0 с официального сайта OpenCV.

EasyPR поддерживает текущие основные операционные системы, обычно не требуя изменения исходного кода для компиляции и запуска. Тем не менее, настройка среды разработки (IDE) на разных платформах может отличаться. В основном будут рассмотрены методы компиляции для Windows, Linux и Mac OS.

Windows

Для пользователей Windows рекомендуется использовать IDE Visual Studio. Если вы используете другую IDE, пожалуйста, настройте её самостоятельно или поделитесь вашим решением.

Окружение Требования
Операционная система 64-битная, Windows 7 SP1 / Windows 8 и выше
Visual Studio vs2013 / vs2015
Python (необязательно) Python 3.*

Примечание: Предварительно скомпилированный OpenCV3.1 не поддерживает более ранние версии Visual Studio, поэтому рекомендуется использовать версию vs2013 и выше.

Метод 1****Примечание: Метод с использованием Python применим только для версий ниже 1.5. В версиях 1.6 и выше из-за изменения архитектуры не рекомендуется использовать этот метод. Подробнее можно узнать в соответствующем сообществе.1. Убедитесь, что папка установки Python добавлена в переменную окружения PATH. 2. Выполните команду python configure.py, следуя инструкциям. 3. Откройте файл решения EasyPR.sln и скомпилируйте и запустите его.

Метод 2

Откройте файл решения EasyPR.sln, который загружает два проекта:

  • EasyPR, который компилирует исходные файлы в папке src/ и создаёт статическую библиотеку libeasypr.lib.
  • Demo, который компилирует main.cpp в папке test/ и создаёт исполняемый файл, связанный с libeasypr.lib.

Настройка OpenCV

OpenCV для Windows обычно размещает скомпилированные бинарные файлы в папке opencv\build\.

Если загруженные проекты не соответствуют вашему окружению, настройте их вручную:

demo

Настройка Значение
C/C++-Дополнительные пути для включения [путь к include OpenCV];$(SolutionDir)include
Компоновщик-Дополнительные пути для библиотек [путь к lib OpenCV]
Компоновщик-Входные данные-Дополнительные зависимости opencv_world310d.lib;%(AdditionalDependencies)

Замечание: Для версии Debug используется библиотека opencv_world310d.lib, а для версии Release — opencv_world310.lib.

libeasypr

Настройка Значение
C/C++-Дополнительные каталоги включения [каталог include OpenCV];$(SolutionDir)include

Компиляция

По умолчанию, сгенерированный файл demo.exe будет расположен в корневом каталоге проекта.Замечание: При двойном щелчке и запуске программы могут возникнуть проблемы с отсутствием динамической библиотеки OpenCV. В этом случае есть два решения:

  • Найти отсутствующий dll в каталоге opencv\build\x64\vc(..)\bin и поместить его в каталог выполнения.
  • Добавить указанный каталог bin в системную переменную среды PATH, а затем перезапустить программу.

Ссылка: Ручная настройка OpenCV для Windows можно найти в этом блоге.

Linux & Mac OS

EasyPR использует CMake для компиляции на Linux и Mac OS. Убедитесь, что на вашей системе установлен последний CMake.

Чтобы избежать влияния старых версий OpenCV, установленных на вашей системе, необходимо изменить CMakeLists.txt:

set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} "/usr/local/opt/opencv3")

Этот путь указывает на каталог установки OpenCV3, в котором должны быть файлы конфигурации CMake OpenCV.

Проект предоставляет скрипт для однокликовой компиляции, который можно запустить в корневом каталоге проекта:

$ ./build.sh

и это все.


Замечание: Вы можете использовать EasyPR/include и статическую библиотеку, сгенерированную после компиляции, для вызова функций API, предоставляемых EasyPR.

Запуск Demo:

$ ./demo // Войти в интерактивное меню
$ ./demo ? // Просмотреть помощь по CLI

Как начать

После входа в интерактивное меню, вы попадаете в основное меню, где представлены следующие функции:| Название | Описание |-------------|----------- | Тест | Тестирование каждого этапа распознавания номерного знака. Чтобы изменить изображение для тестирования, замените изображение в каталоге resources/image; | Пакетный тест | Запуск тестирования всех изображений в каталоге general_test, вывод метрик, таких как точность, для оценки эффективности EasyPR; | Обучение SVM | Обучение модели распознавания номерного знака с помощью SVM; | Обучение ANN | Обучение модели распознавания символов и китайских символов с помощью ANN, соответствующие ann.xml и ann_chinese.xml; | Обучение китайских символов | Новый в версии 1.6, обучение ANN модели для распознавания серых китайских символов, генерация annCh.xml; | Генерация символов | Требует использования набора данных plates_200k;

После успешного запуска EasyPR, выполните функцию пакетного тестирования. Если метрики в конце совпадают с теми, что указаны в README, это означает, что EasyPR установлен правильно. Измените pr.setResultShow(false) на pr.setResultShow(true) в файле accuracy.hpp, чтобы результаты пакетного тестирования отображали эффект локализации номерных знаков.

Примечание:

В пакетном тестировании есть опция native_test. Вы можете поместить свои изображения в папку resources/image/native_test для тестирования. Если у ваших изображений нет ground_truth, то метрика точности не будет вычисляться. Однако можно включить отображение эффекта локализации номерных знаков.Для оценки метрик локализации номерных знаков необходимо сгенерировать файлы GroundTruth_windows.xml и GroundTruth_others.xml. Вы можете обратиться к файлам с аналогичными именами в папке general_test для понимания их формата. Например, следующий XML-узел:

<taggedRectangle x="170" y="184" width="96" height="27" rotation="-1" locateType="1">синий номер:京A88731</taggedRectangle>

taggedRectangle соответствует одному номерному знаку, а свойства x и y представляют центральные координаты прямоугольника, окружающего номер. Ширина и высота — это ширина и высота соответственно. Два других свойства в настоящее время не используются.

Кодировка GroundTruth_windows.xml должна быть установлена в ANSI, а GroundTruth_others.xml — в UTF-8, иначе могут появиться символы-мусор.

Примеры командной строки

Вы можете передать параметры командной строки в demo[.exe], чтобы выполнить нужную работу. В настоящее время Demo поддерживает cq пяти подкоманд. Для получения справочной информации по каждой подкоманде можно передать параметр -h.

Распознавание номерных знаков

# Используйте предоставленные SVM и ANN модели для распознавания всех номерных знаков на изображении

$ ./demo recognize -p resources/image/plate_recognize.jpg --svm model/svm.xml --ann model/ann.xml

# Или проще
$ ./demo recognize -p resources/image/plate_recognize.jpg

Обучение SVM

Новая версия EasyPR значительно упростила обучение SVM:

<taggedRectangle x="170" y="184" width="96" height="27" rotation="-1" locateType="1">синий номер:京A88731</taggedRectangle>

taggedRectangle соответствует одному номерному знаку, а свойства x и y представляют центральные координаты прямоугольника, окружающего номер. Ширина и высота — это ширина и высота соответственно. Два других свойства в настоящее время не используются.

Кодировка GroundTruth_windows.xml должна быть установлена в ANSI, а GroundTruth_others.xml — в UTF-8, иначе могут появиться символы-мусор.

Примеры командной строки

Вы можете передать параметры командной строки в demo[.exe], чтобы выполнить нужную работу. В настоящее время Demo поддерживает пять подкоманд. Для получения справочной информации по каждой подкоманде можно передать параметр -h.

Распознавание номерных знаков

# Используйте предоставленные SVM и ANN модели для распознавания всех номерных знаков на изображении

$ ./demo recognize -p resources/image/plate_recognize.jpg --svm model/svm.xml --ann model/ann.xml

# Или проще
$ ./demo recognize -p resources/image/plate_recognize.jpg

Обучение SVM

Новая версия EasyPR значительно упростила обучение SVM. # Сначала подготовьте коллекцию изображений номерных знаков plates/ # номерные знаки помещаются в plates/has/ # не номерные знаки помещаются в plates/no/ # номерные знаки можно получить из проекта resources/train/svm.7z.

$ ./demo svm --plates=path/to/your/plates --svm=save/to/svm.xml

# Этот командный вызов использует 70% номерных знаков для обучения, а 30% для тестирования.
# Это можно изменить в include/easypr/config.h.
# Обученная модель будет сохранена в save/to/svm.xml.Сначала в корневой директории easypr создайте папку tmp и переместите распакованный svm файл в эту папку. Выполнение команды `$ demo svm --plates=tmp/svm --svm=tmp/svm.xml` приводит к созданию файла `svm.xml` в папке `tmp`, который является обученной моделью.

Замена файла model/svm.xml позволяет использовать новую модель. Перед заменой рекомендуется сделать резервную копию исходной модели.

Обучение нейронной сети (ANN)

Сначала подготовьте набор изображений символов. Вы можете извлечь его из архива ann.7z в папке project/resources/train/.

Каждый тип символов хранится в отдельной подпапке, названной по имени символа. Правила названий можно найти в файле resources/text/province_mapping.

После подготовки всех необходимых данных, выполните следующую команду:

$ ./demo ann --chars=path/to/chars --ann=save/to/ann.xml

Сначала в корневой папке проекта easypr создается папка tmp, а архив ann.7z распаковывается в нее.

Выполнение команды $ demo ann --chars=tmp/ann --ann=tmp/ann.xml приводит к созданию файла ann.xml в папке tmp, который является обученной моделью.

Замена файла model/ann.xml позволяет использовать новую модель. Перед заменой рекомендуется сделать резервную копию исходной модели.

Внимание

В папке train находятся три архива ANN:| Файл | Цель | |-------------|-----------| | ann.7z | Содержит черно-белые изображения символов и китайские данные, модели ann и ann_chinese.xml были обучены на основе этого архива; | annCh.7z | Содержит только китайские данные в оттенках серого, модель annCh.xml была обучена на основе этого архива; | annGray.7z | Содержит данные символов в оттенках серого, на данный момент модель, обученная на основе этого архива, не используется, но предназначена для будущего обучения с использованием CNN.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/abcc009-EasyPR.git
git@api.gitlife.ru:oschina-mirror/abcc009-EasyPR.git
oschina-mirror
abcc009-EasyPR
abcc009-EasyPR
master