Содержание
Обнаружение номерного знака автомобиля и поиск информации о владельце с использованием машинного обучения
Обнаружение номерного знака автомобиля и предоставление информации о его владельцах может быть реализовано с помощью машинного обучения, особенно с использованием OpenCV.
Каковы варианты использования создания такой системы?
Его можно использовать для поиска информации об угнанных автомобилях, в пунктах взимания платы для проверки, на парковках и т. д.
Давайте посмотрим, как это реализовать…
Для обнаружения любого номерного знака автомобиля я использовал модель «haarcascade_russian_plate_number.xml», которая точно определяет, показан ли ему какой-либо номерной знак.
Например, после запуска его кода он будет выглядеть так:
Для получения символов номерного знака мы также можем использовать CNN:
import matplotlib.pyplot as plt импортировать numpy как np импорт cv2 # Сопоставьте контуры с номерным знаком или шаблоном персонажа def find_contours (размеры, изображение): # Найти все контуры на изображении cntrs, _ = cv2. findContours(img.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # Получить потенциальные размеры нижняя_ширина = размеры[0] верхняя_ширина = размеры[1] нижняя_высота = размеры[2] upper_height = размеры[3] # Проверьте самые большие 5 или 15 контуров для номерного знака или символа соответственно cntrs = sorted(cntrs, key=cv2.contourArea, reverse=True)[:15] ii = cv2.imread('контур.jpg') x_cntr_list = [] target_contours = [] img_res = [] для cntr в cntrs : # обнаруживает контур в бинарном изображении и возвращает координаты окружающего его прямоугольника intX, intY, intWidth, intHeight = cv2.boundingRect(cntr) #проверка размеров контура для фильтрации символов по размеру контура если intWidth > lower_width и intWidth < upper_width и intHeight > lower_height и intHeight < upper_height: x_cntr_list.append(intX) #сохраняет x-координату контура персонажа, чтобы использовать ее позже для индексации контуров char_copy = np.zeros((44,24)) # извлечение каждого символа с использованием координат окружающего прямоугольника. char = img[intY:intY+intHeight, intX:intX+intWidth] символ = cv2.resize (символ, (20, 40)) cv2.rectangle(ii, (intX,intY), (intWidth+intX, intY+intHeight), (50,21,200), 2) plt.imshow(ii, cmap='серый') # Отформатировать результат для классификации: инвертировать цвета символ = cv2.subtract(255, символ) # Изменить размер изображения до 24x44 с черной рамкой char_copy[2:42, 2:22] = символ char_copy[0:2,:] = 0 char_copy[:, 0:2] = 0 char_copy[42:44,:] = 0 char_copy[:, 22:24] = 0 img_res.append(char_copy) #Список, в котором хранится двоичное изображение персонажа (несортированное) #Возвращает символы в порядке возрастания относительно координаты x (сначала самый левый символ) plt.show() #произвольная функция, хранящая отсортированный список индексов символов индексы = отсортированные (диапазон (длина (x_cntr_list)), ключ = лямбда k: x_cntr_list [k]) img_res_copy = [] для idx в индексах: img_res_copy.append(img_res[idx])# сохраняет изображения символов в соответствии с их индексом img_res = np. массив (img_res_copy) вернуть img_res
Чтобы найти символы на изображении:
# Найти символы в полученных изображениях def segment_characters (изображение): # Предварительно обработать обрезанное изображение номерного знака img_lp = cv2.resize (изображение, (333, 75)) img_gray_lp = cv2.cvtColor (img_lp, cv2.COLOR_BGR2GRAY) _, img_binary_lp = cv2.threshold(img_gray_lp, 200, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU) img_binary_lp = cv2.erode(img_binary_lp, (3,3)) img_binary_lp = cv2.dilate (img_binary_lp, (3,3)) LP_WIDTH = img_binary_lp.shape[0] LP_HEIGHT = img_binary_lp.shape[1] # Сделать границы белыми img_binary_lp[0:3,:] = 255 img_binary_lp[:,0:3] = 255 img_binary_lp[72:75,:] = 255 img_binary_lp[:,330:333] = 255 # Оценки размеров контуров символов обрезанных номеров размеры = [LP_WIDTH/6, LP_WIDTH/2, LP_HEIGHT/10, 2*LP_HEIGHT/3] plt.imshow(img_binary_lp, cmap='серый') plt.show() cv2.imwrite('контур.jpg',img_binary_lp) # Получить контуры в обрезанном номерном знаке char_list = find_contours (размеры, img_binary_lp) вернуть список_символов
Вывод:
Для обучения модели сделано 20 эпох:
т. е. модель обучается 20 раз, что снижает потери и повышает точность модели.
Теперь, чтобы найти информацию о владельцах по номеру автомобиля, мы либо воспользуемся помощью RTO API, либо создадим API с помощью flask.
Итак, я создал веб-приложение для пользователей, которые могут проверить информацию об автомобиле и его владельце с помощью RTO API.
Нам нужно просто ввести номер автомобиля или загрузить изображение автомобиля с номерным знаком и нажать на кнопку отправки. Далее он покажет информацию об автомобиле и его владельце.
Это интерфейс, созданный мной, чтобы пользователь мог проверить информацию об автомобиле и владельце автомобиля.
Используемый RTO API:
https://www.regcheck.org.uk/
И я использовал его, чтобы найти детали номера, например DL8CAF5030, ниже приведен вывод, который я получил в формате xml. .
Кроме того, для правильной работы серверная часть веб-приложения работает с использованием python и javascript. Также python преобразует этот формат в формат JSON.
Я связал RTO API со своим веб-сервером, чтобы пользователь мог быть перенаправлен на RTO API.
Интерфейсный код (HTML, CSS, JavaScript), который также называется клиентским языком.
Спасибо 😊
Как найти владельца автомобиля по номерному знаку в Кении
- Автор сообщения: Моха
Вы хотите знать, как найти информацию о владельце автомобиля, например, имя, только по номерному знаку? Если да, то вы находитесь в правильном месте.
Самый простой способ найти зарегистрированного владельца номерного знака в Кении — это посетить онлайн-портал mVerified.
Продолжайте читать, чтобы ознакомиться с полной пошаговой процедурой.
Во-первых, есть несколько причин, по которым вы можете искать владельца автомобиля.
Возможно, вам просто любопытно, кому принадлежит этот «чудовище» автомобиля. Или вы можете искать детали автомобиля, попавшего в аварию. Еще лучше, если вы покупаете подержанный автомобиль, вы можете провести фоновый поиск покупателя.
Какими бы ни были ваши причины найти владельца автомобиля, эта статья поможет вам.
Как найти владельца автомобиля по номерному знаку в Кении
- Перейти в меню Mpesa
- Выбрать « Lipa na Mpesa »
- Выбрать « Купить товары и услуги» 9006 906 Войти 90 mVerified Till Number: 202994
- Введите Kes. 940 в качестве суммы
- Введите свой 4-значный секретный PIN-код и нажмите OK.
- Теперь посетите портал mVerified: Verified.co.ke
- Введите следующие данные: регистрационный номер транспортного средства (номерной знак), код транзакции Mpesa, ваше имя, адрес электронной почты и номер телефона.
- Отметьте в поле «Я не робот с проверкой кода»
- Нажмите Отправить заказ .
Портал mVerified выполнит поиск автомобиля за вас и немедленно отправит детали через SMS на указанный вами номер телефона.
Затем на ваш адрес электронной почты будет отправлена копия документации транспортного средства для печати.
Теперь это самый простой способ найти информацию о владельце автомобиля в Кении, потому что все будет сделано за вас. Но если вы предпочитаете заниматься поиском самостоятельно, то есть и другой способ.
Альтернативные способы поиска владельца автомобиля по номерному знаку
Национальное управление по транспорту и безопасности (NTSA) в 2016 году представило онлайн-платформу, известную как Transport Integrated Safety Authority (TIMS).
Основная цель TIMS заключалась в том, чтобы позволить отдельным лицам, учреждениям, дилерам и автошколам иметь централизованную платформу, на которой они могут регистрировать, передавать и покупать автомобили. Можно также выполнить онлайн-поиск в журнале на портале TIMS.
Услуга стоит Кес. 550, если вы используете портал TIMS для поиска информации о транспортном средстве. Вы можете оплатить через Mpesa, Airtel Money или Visa.
Выполните следующую процедуру:
- Войдите на портал TIMS, используя свои учетные данные eCitizen (идентификационный номер и пароль). Если у вас нет учетной записи eCitizen, вы можете создать ее, посетив сайт ecitizen.go.ke.
- Выберите Национальное управление безопасности на транспорте и выберите «Получить услуги сейчас»
- Нажмите «Подать заявку»
- Выберите «Регистрация автомобиля»
- Нажмите «Подать заявку» и введите номерной знак без пробелов, например, KAA123B.
- Выберите предпочитаемый способ оплаты и заплатите Kes. 550. Наконец, нажмите «Отправить».
В случае возникновения каких-либо трудностей вы можете связаться с NTSA по их адресу электронной почты [email protected]
Final Word
Вышеуказанные два способа упростили задачу поиска владельца автомобиля.