HyperLPR: высокопроизводительная открытая китайская система распознавания автомобильных номеров
python -m pip install hyperlpr
Поддержка Python 3, Windows, Mac, Linux, Raspberry Pi и других.
Скорость работы в реальном времени (на MacBook Pro 2015 с процессором Intel Haswell 2,2 ГГц).
# Импорт пакетов
from hyperlpr import *
# Импорт библиотеки OpenCV
import cv2
# Чтение изображения
image = cv2.imread("demo.jpg")
# Распознавание результата
print(HyperLPR_plate_recognition(image))
Q: Распознавание на Android лучше, чем у демонстрационного APK?
A: Используйте модель из Prj-Linux, в модели по умолчанию для Android используется относительно старая модель.
Q: Откуда данные для обучения распознаванию автомобильных номеров?
A: Поскольку данные для обучения связаны с юридическими вопросами конфиденциальности и т. д., этот проект не может их предоставить. Существует открытый набор данных CCPD с данными о номерах автомобилей.
Q: Предоставляются ли обучающие коды?
A: Соответствующие ресурсы содержат обучающие коды.
Q: О происхождении проекта?
A: Этот проект основан на ранних исследованиях и отладочном коде автора, код не соответствует определённым стандартам, но PR приветствуются.
cd Prj-Linux
mkdir build
cd build
cmake ../
sudo make -j
#include "../include/Pipeline.h"
int main(){
pr::PipelinePR prc("model/cascade.xml",
"model/HorizonalFinemapping.prototxt","model/HorizonalFinemapping.caffemodel",
"model/Segmentation.prototxt","model/Segmentation.caffemodel",
"model/CharacterRecognization.prototxt","model/CharacterRecognization.caffemodel",
"model/SegmenationFree-Inception.prototxt","model/SegmenationFree-Inception.caffemodel"
);
//Определение файла модели
cv::Mat image = cv::imread("test.png");
std::vector<pr::PlateInfo> res = prc.RunPiplineAsImage(image,pr::SEGMENTATION_FREE_METHOD);
//Использование модели «конец-в-конец» для распознавания, результаты распознавания сохраняются в res.
for(auto st:res) {
if(st.confidence>0.75) {
std::cout << st.getPlateName() << " " << st.confidence << std::endl;
//Вывод результатов распознавания и уровня достоверности.
cv::Rect region = st.getPlateRect();
//Получение положения номера.
cv::rectangle(image,cv::Point(region.x,region.y),cv::Point(region.x+region.width,region.y+region.height),cv::Scalar(255,255,0),2);
//Рисование положения номера.
}
}
cv::imshow("image",image);
cv::waitKey(0);
return 0 ;
}
Однострочный синий номер.
Однострочный жёлтый номер.
Номер нового энергетического транспортного средства.
Белый служебный номер.
Номера представительств/Гонконга и Макао. Тренерские автомобильные номера
Военные номера
Авиационные номера
Двухслойные жёлтые номера
Двухслойные военные номера
Двухслойные армейские номера
Двухслойные сельскохозяйственные номера
Двухслойные персонализированные номера
Примечание: из-за того, что во время обучения в выборке были некоторые проблемы с неравномерностью, у некоторых специальных номеров есть определённые проблемы с низкой скоростью распознавания, например, (номера для дипломатических представительств / гонконгские и макаоские номера), в последующих версиях будут внесены улучшения.
— Опыт использования приложения для Android: http://demo.zeusee.com/HyperLPR (настройте масштаб программы в соответствии с размером изображения, чтобы повысить точность).
— Обсуждение в группе HyperAI на QQ: 529385694.
— Джек Ю — автор (jack-yu-business@foxmail.com / https://github.com/szad670401). — Сяосяо (xiaoxiao@xidian.edu.cn). — AlanNewImage — версия v2 для Windows, улучшение Python для двухслойных номеров (https://github.com/AlanNewImage). — lsy17096535 — организация (https://github.com/lsy17096535). — xiaojun123456 — вклад iOS (https://github.com/xiaojun123456). — sundyCoder — сторонний вклад Android (https://github.com/sundyCoder). — coleflowers — вклад PHP (@coleflowers). — Free&Easy — вклад ресурсов. — Тюлень — обучение каскадного детектора LBP. — SalamanderEyes — модель от начала до конца для Windows (https://github.com/SalamanderEyes). — lxhAndSmh — реализация реального времени сканирования для Android (https://github.com/lxhAndSmh).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )