как узнать номера машины на авито
Для чего и как мы скрываем госномера автомобилей в объявлениях Авито
Привет. В конце прошлого года мы стали автоматически скрывать номера автомобилей на фотографиях в карточках объявлений на Авито. О том, зачем мы это сделали, и какие есть способы решения таких задач, читайте в статье.
Задача
На Авито за 2018 год было продано 2,5 миллиона автомобилей. Это почти 7000 в день. Всем объявлениям о продаже нужна иллюстрация — фото автомобиля. Но по государственному номеру на нём можно найти много дополнительной информации о машине. И некоторые наши пользователи стараются самостоятельно закрывать госномер.
Причины, почему пользователи хотят скрывать госномер, могут быть разными. Со своей стороны мы хотим помогать им защищать свои данные. И стараемся улучшать процессы продажи и покупки для пользователей. Например, у нас уже давно работает услуга анонимного номера: когда вы продаёте автомобиль, для вас создается временный сотовый номер. Ну а чтобы защитить данные о госномерах, мы обезличиваем фотографии.
Обзор способов решения
Чтобы автоматизировать процесс защиты пользовательских фотографий, можно воспользоваться сверточными нейронными сетями для детектирования полигона с номерным знаком.
Сейчас для детекции объектов используются архитектуры двух групп: двухэтапные сети, например, Faster RCNN и Mask RCNN; одноэтапные (singleshot) — SSD, YOLO, RetinaNet. Детектированием объекта является вывод четырёх координат прямоугольника, в которые вписан объект интереса.
Упомянутые выше сети способны находить на картинках множество объектов разных классов, что уже является избыточным для решения задачи поиска номерного знака, потому что машина у нас на картинках, как правило, всего одна (бывают исключения, когда люди фотографируют свою продаваемую машину и её случайную соседку, но это происходит достаточно редко, поэтому этим можно было пренебречь).
Ещё одна особенность этих сетей состоит в том, что по умолчанию они выдают bounding box со сторонами, параллельными осям координат. Это происходит так, потому что для детектирования используется набор заранее определённых видов прямоугольных рамок, называемых anchor boxes. Если точнее, то сначала с помощью какой-то сверточной сети (например resnet34) из картинки получают матрицу признаков. Потом для каждого подмножества признаков, полученного с помощью скользящего окна, происходит классификация: есть или нет объект для k anchor box и проводится регрессия в четыре координаты рамки, которые корректируют её положение.
Подробнее об этом можно прочитать здесь.
После этого есть ещё две головы:
одна для классификации объекта (собака/кошка/растение и т.д),
вторая (bbox regressor) — для регрессии координат рамки, полученной на предыдущем шаге, чтобы увеличить соотношение площади объекта к площади рамки.
Для того, чтобы предсказать повернутую рамку бокса, нужно изменить bbox regressor так, чтобы получать ещё и угол поворота рамки. Если этого не делать, то получится как-то так.
Кроме двухэтапного Faster R-CNN, есть одноэтапные детекторы, например RetinaNet. Он отличается от предыдущей архитектуры тем, что сразу предсказывает класс и рамку, без предварительного этапа предложения участков картинки, которые могут содержать объекты. Для того чтобы предсказывать повернутые маски, нужно также изменить голову box subnet.
Один из примеров существующих архитектур для предсказания повернутых bounding box — DRBOX. Эта сеть не использует предварительный этап предложения региона, как в Faster RCNN, поэтому она является модификацией одноэтапных методов. Для обучения этой сети используется K повернутых под определенными углами bounding box (rbox). Сеть предсказывает вероятности для каждого из K rbox содержать таргет объект, координаты, размер bbox и угол поворота.
Модифицировать архитектуру и заново обучить одну из рассмотренных сетей на данных с повернутыми bounding boxes — задача реализуемая. Но нашу цель можно достигнуть проще, ведь область применения сети у нас гораздо уже — только для скрытия номерных знаков.
Поэтому мы решили начать с простой сети для предсказания четырёх точек номера, впоследствии можно будет усложнить архитектуру.
Данные
В задании дана фотография автомобиля. Необходимо выделить номерной знак автомобиля, используя для этого четырёхугольник. При этом следует выделять государственный номер максимально точно.
С помощью Толоки можно создавать задания по разметке данных. Например, оценивать качество поисковой выдачи, размечать разные классы объектов (текстов и картинок), размечать видео и т.д. Их будут выполнять пользователи Толоки, за плату, которую вы назначите. Например, в нашем случае толокеры должны выделить полигон с госномером автомобиля на фото. В целом это очень удобно для разметки большого датасета, но получить высокое качество довольно сложно. На толоке много ботов, задачей которых является получить с вас деньги, наставив ответы рандомно или с помощью какой-то стратегии. Для противодействия этим ботам есть система правил и проверок. Основной проверкой является подмешивание контрольных вопросов: вы размечаете вручную часть заданий, пользуясь интерфейсом Толоки, а далее подмешиваете их в основное задание. Если размечающий часто ошибается на контрольных вопросах, вы его блокируете и разметку не учитываете.
Для задачи классификации очень просто определить, ошибся размечающий или нет, а для задачи выделения области это не так просто. Классический способ — считать IoU.
Если это отношение меньше некоторого заданного порога для нескольких заданий, то такой пользователь блокируется. Однако для двух произвольных четырехугольников посчитать IoU не так просто, тем более, что в Толоке приходится это реализовать на JavaScript. Мы сделали небольшой хак, и считаем, что пользователь не ошибся, если для каждой точки исходного полигона в небольшой окрестности находится точка, отмеченная разметчиком. Ещё есть правило быстрых ответов, чтобы блокировались слишком быстро отвечающие пользователи, капча, расхождение с мнением большинства и т.д. Настроив эти правила, можно ожидать довольно неплохую разметку, но если нужно действительно высокое качество и сложная разметка, нужно специально нанимать фрилансеров-разметчиков. В итоге наш датасет составил 4к размеченных картинок, и стоило всё это 28$ на Толоке.
Модель
Теперь сделаем сеть для предсказания четырёх точек области. Получим признаки с помощью resnet18 (11.7M параметров против 21.8M параметров у resnet34), далее делаем голову для регрессии в четыре точки (восемь координат) и голову для классификации, есть на картинке номерной знак или нет. Вторая голова нужна, потому что в объявлениях о продаже машины не все фотографии с машинами. На фото может быть деталь автомобиля.
Подобное нам, конечно, детектить не надо.
Обучение двух голов делаем одновременно, добавив в датасет фото без номерного знака с таргетом bounding box (0,0,0,0,0,0,0,0) и значением для классификатора «картинка с номерным знаком / без» — (0,1).
Тогда можно составить единую лосс функцию для обеих голов как cумму следующих лоссов. Для регрессии в координаты полигона номерного знака используем гладкий L1 loss.
Его можно интерпретировать как комбинацию L1 и L2, который ведёт себя как L1, когда абсолютное значение аргумента велико и как L2, когда значение аргумента близко к нулю. Для классификации используем softmax и crossentropy loss. Экстрактор признаков — resnet18, используем веса, предобученные на ImageNet, дальше дообучаем на нашем датасете экстрактор и головы. В данной задаче мы использовали фреймворк mxnet, так как он является основным для computer vision в Авито. Вообще, микросервисная архитектура позволяет не привязываться к конкретному фреймворку, но когда имеешь большую кодовую базу, лучше использовать ее и не писать тот же самый код заново.
Получив приемлемое качество на нашем датасете, мы обратились к дизайнерам, чтобы нам сделали номерной знак с логотипом Авито. Сначала мы конечно попробовали сделать сами, но выглядел он не очень красиво. Дальше требуется изменить яркость номерного знака Авито на яркость оригинальной области с номерным знаком и можно накладывать логотип на изображение.
Запуск в прод
Проблема воспроизводимости результатов, поддержки и развития проектов, решённая с некоторой погрешностью в мире backend- и frontend-разработки, всё ещё стоит открытой там, где требуется использовать модели машинного обучения. Вам наверняка приходилось разбираться в легаси коде моделек. Хорошо если в readme есть ссылки на статьи или опенсорс-репозитории, на которых базировалось решение. Скрипт для запуска переобучения может упасть с ошибками, например, поменялась версия cudnn, и та версия tensorflow уже не работает с этой версией cudnn, а cudnn не работает с этой версией драйверов nvidia. Может, для обучения использовался один итератор по данным, а для тестирования и в продакшене другой. Так можно продолжать довольно долго. В общем, проблемы с воспроизводимостью существуют.
Мы стараемся убрать их, используя nvidia-docker окружение для обучения моделек, в нём есть все необходимые зависимости для сuda, также туда устанавливаем зависимости для питона. Версия библиотеки с итератором по данным, аугментациями, инференсу моделек — общая для стадии обучения/экспериментирования и для продакшена. Таким образом, чтобы дообучить модель на новых данных, вам нужно выкачать репозиторий на сервер, запустить shell скрипт, который соберет докер-окружение, внутри которого поднимется jupyter notebook. Внутри у вас будут все notebook’и для обучения и тестирования, которые точно не упадут с ошибкой из-за окружения. Лучше, конечно, иметь один файл train.py, но практика показывает, что всегда требуется смотреть глазами на то, что выдаёт моделька и что-то менять в процессе обучения, так что в конце вы всё равно запустите jupyter.
Веса модели хранятся в git lfs — это специальная технология для хранения больших файлов в гите.До этого мы пользовались артифактори, но через git lfs удобнее, потому что скачивая репозиторий с сервисом, вы сразу получаете актуальную версию весов, как на продакшене. Для инференса моделей написаны автотесты, так что не получится раскатить сервис с весами, которые их не проходят. Сам сервис запускается в докере внутри микросервисной инфраструктуры на кластере kubernetes. Для мониторинга производительности мы используем grafana. После раскатки мы постепенно увеличиваем нагрузку на инстансы сервисов с новой моделькой. При выкатке новой фичи мы создаем а/б тесты и выносим вердикт по дальнейшей судьбе фичи, опираясь на статистические тесты.
В результате: мы запустили замазывание номеров на объявлениях в категории авто для частников, 95 перцентиль времени обработки одной картинки для скрытия номера равен 250 мс.
Зачем скрывают номера при продаже машины и можно ли сообщать VIN и номер покупателям
На современных интернет-площадках по продаже автомобилей стало стандартом скрытие номера продаваемой машины. На этом фоне просьбы потенциальных покупателей сообщить им данные с регистрационного знака и VIN могут показаться излишними и даже подозрительными: ведь если их советуют скрыть – значит, на то есть причины. Но действительно ли номерные знаки, VIN и прочие данные продаваемой машины стоит держать в секрете и есть ли риск в том, чтобы передавать их покупателям?
Традиция скрывать номерной знак продаваемого автомобиля появилась еще до разработки крупными интернет-площадками алгоритмов по автоматическому скрытию всех буквенно-цифровых данных на фотографиях в объявлении. Каковы причины? На самом деле, многие делают это, просто поддаваясь массовому инстинкту: раз так делают все, значит, так нужно. Есть, впрочем, и некоторые объективные причины: например, желание скрыть факт продажи машины от кого-то из друзей или родственников. Для массовых машин без ярких отличительных черт простого скрытия номеров может быть достаточно. Еще один вариант – продажа машины перекупщиком, а не собственником. Закрытый номер позволяет перекупщику скрыть от покупателя данные о владельце, а от владельца – данные о стоимости перепродажи машины. Впрочем, все это помогает лишь заманить покупателя на просмотр: при очной встрече факт продажи машины не от собственника все равно вскроется. То же самое касается попыток продавца или перекупщика скрыть прошлое автомобиля – серьезные ДТП, юридические ограничения, работу в такси и так далее. Ну и, наконец, еще один надуманный сценарий – стремление продавца защититься от мошенничества. Некоторые люди действительно волнуются о том, что кто-то может отследить их сделку по продаже дорогой машины и, например, похитить деньги.
Однако по-настоящему ключевая причина скрытия номеров в объявлениях в наше время относится не к продавцам, а именно к интернет-площадкам. Крупные доски объявлений имеют собственные платные сервисы по проверке автомобилей, и они заинтересованы в том, чтобы покупатели ими пользовались. Ну а по номеру машины и VIN покупатель может получить часть информации бесплатно, так что скрытие этих данных позволяет слегка повысить востребованность платного сервиса. Справедливости ради стоит отметить, что такие сервисы зачастую действительно могут быть полезны, предоставляя данные не только об истории регистраций, залогах и ограничениях, но и зарегистрированных пробегах, ДТП, страховых выплатах и других подробностях, которых не узнать в государственных бесплатных ресурсах. Однако нужно понимать, что для первичной проверки можно просто запросить у продавца данные о VIN и номерном знаке – откровенно «неблагополучные» машины отсеются уже на этом этапе.
Итак, мы выяснили, что традиция скрывать данные машины при продаже имеет мало практического смысла. Но можно ли раскрывать каждому потенциальному покупателю не только регистрационный знак, но и VIN автомобиля? Если говорить кратко, то ответ – да. Давайте чуть подробнее разберемся, почему.
Прежде всего стоит понимать, что и номер машины, и VIN – это открытая информация, доступная практически любому желающему. У современных автомобилей одно из мест расположения VIN – площадка под лобовым стеклом, так что получить комбинацию из двух номеров можно, просто подойдя к машине. Соответственно, ее передача третьим лицам вполне безопасна. Чуть больше вопросов вызывают просьбы покупателя прислать фотографию ПТС или свидетельства о регистрации автомобиля, однако и здесь риск обмана покупателем продавца минимален. По сути, одним из самых неприятных сценариев может быть создание «автомобиля-двойника», копирующего данные с другой машины той же модели. Но вероятность того, что целью мошенников будет непосредственно продающийся автомобиль, ничтожно мала. Конечно, покупатель, сходу запрашивающий «полное досье» из госномера, VIN, фотографий всех документов на машину и паспорта продавца, может показаться подозрительным, однако на деле все эти данные могут использоваться для подробной проверки машины перед осмотром.
Более того, развернутый ответ на вопрос, стоит ли сообщать данные об автомобиле покупателям, звучит не как «да, можно», а как «да, нужно». Опытный покупатель, всерьез заинтересованный в машине, но уже перебравший несколько вариантов, наверняка запросит VIN и госномер, чтобы не тратить время на очередной плохой экземпляр. И отказ продавца сообщить базовые данные о машине может быть расценен как желание скрыть какие-то темные пятна в ее биографии. Так что если вам нечего скрывать, можно смело сообщать всем потенциальным покупателям данные об автомобиле, чтобы у них была возможность убедиться в прозрачности его истории.
Проверить автомобиль по ВИН
Наши данные используют
Посмотри,
как работает сервис
Работаем с 2012 года
Застрахованная ответственность при предоставлении недостоверных данных в отчёте
Нам доверяют проверку тысячи покупателей и продавцов
Сейчас проверяют
куплен отчет | Вольво S40 | YV1MS434BC2565860 |
проверен | МЕРСЕДЕС-БЕНЦ С180 | М543ТК48 |
проверен | ВАЗ 21312 | XTA213100X1396327 |
проверен | ФОЛЬКСВАГЕН ДЖЕТТА | Н281ТТ46 |
проверен | ХОНДА ФИТ | В082УО27 |
куплен отчет | Kia Rio | К619АУ790 |
куплен отчет | Киа Cerato | Н358ЕК159 |
куплен отчет | Рено Дастер | О729ОК31 |
проверен | НИССАН NОТЕ | В290НЕ125 |
проверен | МИЦУБИСИ ДИОН | Н332СН37 |
куплен отчет | Дэу Нексиа | Н281НР33 |
куплен отчет | Мицубиси Паджеро Пинин 1 8 Lwв | С543ОМ177 |
проверен | 2818-0000010-02 | М263МА43 |
проверен | КАМАЗ55102 | А358АА02 |
куплен отчет | Форд Фьюжн | К857ВМ161 |
куплен отчет | Ваз 21063 | М959ОМ97 |
проверен | ТОЙОТА МАРК 2 | Т118МА14 |
проверен | ВАЗ 21140 | А361ВР190 |
проверен | ЛАДА ГРАНТА 219010 | XTA219010M0727783 |
проверен | КИА АВЕЛЛА | KNADB2412VS572974 |
куплен отчет | Ауди A4 | WAUZZZ8DZ1A145202 |
куплен отчет | Мазда 6 | 1YVFP80C835M19553 |
куплен отчет | Мазда 6 | Е555МВ54 |
проверен | ТОЙОТА ЛАНД КРУЗЕР 200 | JTMCV02J704253197 |
проверен | ХОНДА АИРВАВЕ | У873АТ125 |
проверен | VОLКSWАGЕN РАSSАТ | М264МА43 |
куплен отчет | Lada Granta 219010 | XTA219010M0725758 |
куплен отчет | Фольксваген Джетта | XW8ZZZ16ZGN905011 |
куплен отчет | Шевроле Kl1J Cruze | Т663РТ33 |
куплен отчет | Тойота Ленд Крузер 150 | А531ТТ92 |
Более 2 600 000 проверок за год
Наши источники
Скачай мобильный «Автокод»
Вся история проверок на сайте и приложении
Оплата осуществляется любым удобным способом
Удобно брать на сделку или осмотр автомобиля
Отзывы
Проверял КИА РИО. Опасался, что продавец что-нибудь скрывает. Наслышан о том, как после покупки машины, люди не могут поставить ее на учет. Но автомобиль, который покупал я, оказался чистым. Понравилось, что отчет пришел очень быстро. Мне кажется, даже 5 минут не прошло.
Случайно решила проверить машину перед продажей. Увидела ограничения ГИБДД, о которых даже не подозревала. Сначала подумала, что сервис врет. Начала разбираться. Оказалось, что несколько лет назад получила штраф, который не оплатила. Штраф перерос в ограничения. Погасила долг, отчет стал чистым.
Nissan X-Trail 2011
Постоянно проверяю авто по работе. Очень удобный сервис. Все отчеты хранятся в личном кабинете. Можно ссылку отправлять на отчет. Можно проверить через приложение прямо на месте. По цене меня всё устраивает. Лучше заплачу деньги и будут спать спокойно, чем куплю непроверенный автомобиль.
Проверял все машины перед тем, как ехать на осмотр. Половина отсекалась. То ДТП, то ремонты, то ограничения. Выбранный вариант на всякий случай проверил повторно перед самой покупкой. Для меня лучше потратить 349 рублей на проверку, чем потом вкладываться в ремонт или бегать по судам.
Renault Logan 2013
Видеоотзывы
Часто задаваемые вопросы
Чтобы получить отчет с историей ТС, достаточно знать госномер или VIN-код автомобиля.
В строке поиска на главной странице введите госномер или VIN, нажмите кнопку «Проверить авто». После этого откроется краткий отчет об автомобиле. Чтобы получить полную информацию, введите e-mail и оплатите услугу «Заказать полный отчет».
Основные преимущества сервиса:
Мы предоставляем актуальную информацию, которая имеется в базах источников на данный момент времени.
Да, Вы можете проверить историю автомобиля, снятого с учета.
Если VIN-номер отсутствует или не соответствует стандарту, Вы можете проверить автомобиль по госномеру.
Сервис «Автокод» получает данные из государственных и коммерческих источников: ГИБДД МВД РФ, ФНС, ФТС, реестров такси, крупных банков, страховых компаний и других.
Отчет содержит следующую информацию:
Госномер устанавливается на заднем и переднем бамперах автомобиля.
Это уникальный номер автомобиля, состоящий из 17 символов, разделенных на 3 части — всемирный индекс изготовителя (3 символа), описательная часть (6 символов) и отличительная часть (8 символов). Общепринятое расположение: под ветровым стеклом, слева на приборной панели и на водительской двери.
Согласно ФЗ № 152 «О персональных данных», мы не вправе предоставлять персональные данные. К персональным данным относятся Ф. И. О., место жительства, паспортные данные и др.. В полном отчете указывается статус владельца: физическое или юридическое лицо.
Да, можно. Эта информация отражается в блоках «История регистрационных действий» и «Периоды владения». Там вы сможете увидеть дату и регион последней регистрации автомобиля. Информация предоставляется по данным ГИБДД.
Подробнее о сервисе «Автокод»
Более 70% объявлений о продаже подержанных автомобилей не соответствует действительности. Недобросовестные продавцы скрывают информацию об авариях, ремонтах, пробегах и юридических проблемах своей машины. Раньше у покупателей не было возможности узнать правду, и им приходилось покупать кота в мешке. Сегодня эту проблему решает сервис «Автокод».
Проверить историю автомобиля на сайте Автокод
Автокод — официальный сервис проверки истории автомобилей. С помощью сервиса легко проверить машины, зарегистрированные на территории Российской Федерации. Проверка автомобиля доступна по VIN, госномеру и номеру кузова. Вся процедура займет не более 5 минут! Если продавец скрывает VIN-номер или госзнак, насторожитесь! Ресурс создан для защиты покупателей от мошенников. Проверенные через «Автокод» машины можно смело покупать или, наоборот, отметать: история владения авто читается, как открытая карта.
Проверка авто по всем базам всего за 5 минут
В режиме онлайн сервис просканирует машину более, чем по 13 официальным источникам:
Ссылка на документ с результатами проверки автомобиля приходит на электронный адрес клиента.
Подробный отчет об автомобиле
Результаты проверки по VIN и госномеру расскажут всю историю автомобиля. Полный отчет включает в себя следующие пункты:
Посмотрите пример отчета. Все проверки хранятся в личном кабинете клиента.
Выгодные цены
Можно купить один отчет за 349 рублей или же пакет из 5. Чем больше проверок в пакете, тем выгоднее:
Для профессиональных продавцов авто мы разработали отдельный сервис «АвтокодПрофи». Через этот сервис проверять автомобили можно безлимитно.
Удобно проверять машины и хранить отчеты
Мы имеем ряд преимуществ перед конкурентами. Для проверки ТС необязательно знать VIN-код, любая информация доступна по номеру машины. Автокод – единственный сервис, который проверяет праворульные японские автомобили по госномеру. Из других преимуществ:
Также на сайте можно заказать выездную проверку автомобиля. В помощь продавцам и покупателям мы разработали информационные разделы. Наши полезные статьи и бесплатная книга помогут вам грамотно оформить сделку купли-продажи машины. А в блоге мы собрали для вас обзоры самых популярных автомобилей с пробегом.
Помните, проверить автомобиль дешевле, чем потом решать проблемы бывшего владельца!