Распознавание автомобильных номеров в деталях
Настало время подробно рассказать, как работает наша реализация алгоритма распознавания номеров: что оказалось удачным решением, что работало весьма скверно. И просто отчитаться перед Хабра-пользователями — ведь вы с помощью Android приложения Recognitor помогли нам набрать приличного размера базу снимков номеров, снятых совершенно непредвзято, без объяснения как снимать, а как нет. А база снимков при разработке алгоритмов распознавания самое важное!
Что получилось с Android приложением Recognitor
Было очень приятно, что пользователи Хабра взялись качать приложение, пробовать его и отправлять нам номера.
Скачиваний программы и оценки
С момента выкладывания приложения на сервер пришло 3800 снимков номеров от мобильного приложения.
А еще больше нас порадовала ссылка http://212.116.121.70:10000/uploadimage — нам за 2 дня отправили около 8 тысяч полноразмерных снимков автомобильных номеров (преимущественно вологодских)! Сервер почти лежал.
Теперь у нас на руках база в 12 000 снимков фотографий — впереди гигантская работа по отладке алгоритмов. Все самое интересное только начинается!
Напомню, что в приложении Android предварительно выделялся номер. В этой статье я не буду подробно останавливаться на этом этапе. В нашем случае — каскадный детектор Хаара. Этот детектор не всегда срабатывает, если номер в кадре сильно повернут. Анализ того, как работает нами обученный каскадный детектор, когда не работает, оставлю на следующие статьи. Это ведь действительно очень интересно. Кажется, что это черный ящик — вот обучили детектор и больше ничего не сделать. На самом деле это не так.
Но все-таки каскадный детектор — неплохой вариант в случае ограниченных вычислительных ресурсов. Если автомобильный номер грязный или рамка плохо видна, то Хаар тоже неплохо себя проявляет относительно других методов.
Распознавание номера
Здесь рассказ про распознавание текста в картинках такого вида:
Общие подходы про распознавании были описаны в первой статье.
Изначально мы ставили перед собой задачу распознавания грязных, частично стертых и здорово искаженных перспективой номеров.
Во-первых, это интересно, а во-вторых, казалось, что тогда чистые будут срабатывать вообще в 100% случаях. Обычно, конечно, так и происходит. Но тут не сложилось. Оказалось, что если по грязным номерам вероятность успеха была 88%, то по чистым, например, 90%. Хотя на деле вероятность распознавания от фотографии на мобильном приложении до успешного ответа, конечно, оказалось еще хуже указанной цифры. Чуть меньше 50% от приходящих изображений (чтобы люди не пытались фотографировать). Т.е. в среднем дважды нужно было сфотографировать номер, чтобы распознать его успешно. Хотя во многом такой низкий процент связан с тем, что многие пытались снимать номера с экрана монитора, а не в реальной обстановке.
Весь алгоритм строился для грязных номеров. Но вот оказалось, что сейчас летом в Москве 9 из 10 номеров идеально чистые. А значит лучше изменить стратегию и сделать два раздельных алгоритма. Если удалось быстро и надежно распознать чистый номер, то этот результат и отправим пользователю, а если не удалось, то тратим еще немного времени процессора и запускаем второй алгоритм для грязных номеров.
Простой алгоритм распознавания номеров, который стоило бы реализовать сразу
Как же распознать хороший и чистый номер? Это совсем не сложно.
Предъявим следующие требования к такому алгоритму:
1) некоторая устойчивость к поворотам (± 10 градусов)
2) устойчивость к незначительному изменению масштаба (20%)
3) отрезание каких-либо границ номера границей кадра или просто плохо выраженные границы не должны рушить все (это принципиально важно, т.к. в случае грязных номеров приходится опираться на границу номера; если номер чистый, то ничего лучше цифр/букв не характеризует номер).
Итак, в чистых и хорошо читаемых номерах все цифры и буквы отделимы друг от друга, а значит можно бинаризовать изображение и морфологическими методами либо выделить связанные области, либо воспользоваться известными функциями выделения контуров.
Здесь стоит еще пройтись фильтром средних частот и нормализовать изображение.
На изображении приведен изначально малоконтрастный кадр для наглядности.
Затем бинаризовать по фиксированному порогу (можно порог фиксировать, т. к. изображение было нормализовано).
Гипотезы по повороту кадра
В дальнейшем метод будет иметь небольшую устойчивость к углу поворота цифр и букв, поэтому выбран такой достаточно большой шаг по углу — 10 градусов.
С каждым кадром в дальнейшем будем работать независимо. Какая гипотеза по повороту даст лучший результат, та и победит.
А затем собрать все связанные области. Тут использовалась стандартная функция findContours из OpenCV. Если связанная область (контур) имеет высоту в пикселях от H1 до H2 а ширина и высота связана отношением от K1 до K2, то оставляем в кадре и отмечаем, что в этой области может быть знак. Почти наверняка на этом этапе останутся лишь цифры и буквы, остальной мусор из кадра уйдет. Возьмем ограничивающие контуры прямоугольники, приведем их к одному масштабу и дальше поработаем с каждой буквой/цифрой отдельно.
Вот какие ограничивающие прямоугольники контуров удовлетворили нашим требованиям:
Качество снимка хорошее, все буквы и цифры отлично разделимы, иначе мы до этого шага не дошли бы.
Масштабируем все знаки к одному размеру, например, 20х30 пикселей. Вот они:
Кстати, OpenCV при выполнении Resize (при приведении к размеру 20х30) бинаризованное изображение превратит в градиентаное, за счет интерполяции. Придется повторить бинаризацию.
И теперь самый простой способ сравнить с известными изображениями знаков — использовать XOR (нормализованная дистанция Хэмминга). Например так:
Distance = 1.0 — |Sample XOR Image|/|Sample|
Если дистанция больше пороговой, то считаем, что мы нашли знак, меньше — выкидываем.
Да, мы ищем автомобильные знаки РФ именно в таком формате. Тут нужно учесть, что цифра 0 и буква «о» вообще не отличимы друг от друга, цифра 8 и буква «в». Выстроим все знаки слева направо и будем брать по 6 знаков.
Критерий раз — буква-цифра-цифра-цифра-буква-буква (не забываем про 0/о, 8/в)
Критерий два — отклонение нижней границы 6 знаков от линии
Суммарные очки за гипотезу — сумма дистанций Хэмминга всех 6 знаков. Чем больше, тем лучше.
Итак, если суммарные очки меньше порога, то считаем, что мы нашли 6 знаков номера (без региона). Если больше порога, то идем к алгоритму устойчивому к грязным номерам.
Тут еще стоит рассмотреть отдельно буквы «Н» и «М». Для этого нужно сделать отдельный классификатор, например, по гистограмме градиентов.
Следующие два или три знака над линей, проведенной по низу 6 уже найденных знаков, — регион. Если третья цифра существует, и ее похожесть больше пороговой, то регион состоит из трех цифр. Иначе из двух.
Однако, распознавание региона часто происходит не так гладко, как хотелось бы. Цифры в регионы меньше, могут удачно не разделиться. Поэтому регион лучше узнавать способом более устойчивым к грязи/шума/перекрытию, описанным далее.
Какие-то детали описания алгоритма не слишком подробно раскрыты. Отчасти из-за того, что сейчас сделан лишь макет этого алгоритма и предстоит еще протестировать и отладить его на тех тысячах изображений. Если номер хороший и чистый, то нужно за десятки миллисекунд распознать номер или ответить «не удалось» и перейти к более серьезному алгоритму.
Алгоритм устойчивый к грязным номерам
Понятно, что алгоритм, описанный выше совсем не работает, если знаки на номере слипаются из-за плохого качества изображения (грязи, плохого разрешения, неудачной тени или угла съемки).
Вот примеры номеров, когда первый алгоритм не смог ничего сделать:
А алгоритм, описанный далее, смог.
Но придется опираться на границы автомобильного номера, а потом уже внутри строго определенной области искать знаки с точно известной ориентацией и масштабом. И главное — никакой бинаризации!
Ищем нижнюю границу номера
Самый простой и самый надежный этап в этом алгоритме. Перебираем несколько гипотез по углу поворота и строим для каждой гипотезы по повороту гистограмму яркости пикселей вдоль горизонтальных линий для нижней половины изображения:
Выберем максимум градиента и так определим угол наклона и по какому уровню отрезать номер снизу. Не забудем улучшить контраст и получим вот такое изображение:
Вообще стоит использовать не только гистограмму яркости, но также и гистограмму дисперсии, гистограмму градиентов, чтобы увеличить надежность обрезки номера.
Ищем верхнюю границу номера
Тут уже не так очевидно, оказалось, если снимают с рук задний автомобильный номер, то верхняя граница может быть сильно изогнута и частично прикрывать знаки или в тени, как в данном случае:
Резкого перехода яркости в верхней части номера нет, а максимальный градиент и вовсе разрежет номер посередине.
Мы вышли из ситуации не очень тривиально: обучили на каждую цифру и каждую букву каскадный детектор Хаара, нашли все знаки на изображении, так определили верхнюю линию где резать:
Казалось бы, что тут и стоит остановиться — мы же нашли уже цифры и буквы! Но на деле, конечно, детектор Хаара может ошибаться, а у нас тут 7-8 знаков. Хороший пример цифры 4. Если верхняя граница номера сливается с цифрой 4, то совсем не сложно увидеть цифру 7. Что кстати и произошло в данном примере. Но с другой стороны, несмотря на ошибку в детектировании, верхняя граница найденных прямоугольников действительно совпадает с верхней границей автомобильного номера.
Найти боковые границы номера
Тоже ничего хитрого — абсолютно также, как и нижнюю. Единственное отличие, что часто яркость градиента первого или последнего знака в номере может превышать яркость градиента вертикальной границы номера, поэтому выбирается не максимум, а первый градиент, превышающий порог. Аналогично с нижней границей необходимо перебрать несколько гипотез по наклону, т. к. из-за перспективы перпендикулярность вертикальной и горизонтальной границы совсем не гарантирована.
Итак, вот хорошо обрезанный номер:
да! особенно приятно вставить кадр с отвратительным номером, который был успешно распознан.
Печалит лишь одно — к этому этапу от 5% до 15% номеров могут отрезаться неправильно. Например, так:
(кстати это кто-то нам отправил желтый номер такси, насколько я понял — формат не штатный)
Все это нужно было, чтобы все это делалось лишь для оптимизации вычислений, т. к. перебрать все возможные положение, масштабы и наклоны знаков при их поиске — очень затратно вычислительно.
Разделить строку на знаки
К сожалению, из-за перспективы и не стандартной ширины всех знаком, приходится как-то выделять символы в уже обрезанном номере. Тут снова выручит гистограмма по яркости, но уже вдоль оси X:
Единственное, что в дальнейшем стоит исследовать две гипотезы: символы начинаются сразу или один максимум гистограммы стоит пропустить. Это связано с тем, что на некоторых номерах отверстие под винт или головка винта автомобильного номера могут различаться, как отдельный знак, а могут быть и вовсе незаметны.
Изображение до сих пор не бинаризовано, будем использовать всю информацию, что есть.
Здесь печатные символы, значит подойдет взвешенная ковариация для сравнения изображений с примером:
Образцы для сравнения и веса при ковариации:
Конечно, нельзя просто сравнить область, выделенную с помощью горизонтальной гистограммы, с образцами. Приходится делать несколько гипотез по смещению и по масштабу.
Количество гипотез по положению по оси X = 4
Количество гипотез по положению по оси Y = 4
Количество гипотез по масштабу = 3
Таким образом, для каждой области при сравнении с одним знаком необходимо рассчитать 4х4х3 ковариации.
Первым делом найдем 3 большие цифры. Это 3 х 10 х 4 х 4 х 3 = 1440 сравнений.
Затем слева одну букву и справа еще две. Букв для сравнения 12. Тогда количество сравнений 3x12x4x4x3 = 1728
Когда у нас есть 6 символов, то все справа от них — регион.
В регионе могут быть 2 цифры или 3 цифры — это нужно учесть. Разбивать регион гистограммным способом уже бессмысленно из-за того, что качество изображения может быть слишком низкое. Поэтому просто поочередно находим цифры слева направо. Начинаем с левого верхнего угла, необходимо несколько гипотез по оси X, оси Y и масштабу. Находим наилучшее совпадение. Смещаемся на заданную величину вправо, снова ищем. Третий символ будем искать слева от первого и справа от второго, если мера похожести третьего символа больше пороговой, то нам повезло — номер региона состоит из трех цифр.
Выводы
Практика применения алгоритма (второго описанного в статье) в очередной раз подтвердила прописную истину при решении задач распознавания: нужна действительно презентативная база при создании алгоритмов. Мы нацеливались на грязные и потертые номера, т.к. тестовая база снималась зимой. И действительно часто довольно плохие номера удавалось узнавать, но чистых номеров в обучающей выборке почти не было.
Вскрылась и другая сторона медали: мало что так раздражает пользователя, как ситуация, когда автоматическая система не решает совсем примитивную задачу. «Ну что тут может не читаться?!» А то, что автоматическая система не смогла узнать грязный или потертый номера, — это ожидаемо.
Откровенно говоря, это наш первый опыт разработки системы распознавания для массового потребителя. И о таких «мелочах», как о пользователях, стоит учиться думать. Сейчас к нам присоединился специалист, разработавший аналогичную «Recognitor» программу под iOs. В UI у пользователя появилась возможность увидеть, что сейчас отправляется на сервер, выбрать какой из выделенных Хааром номеров нужный, есть возможность выделить необходимую область в уже «застывшем» кадре. И пользоваться этим уже удобнее. Автоматическое распознавание становится не дурацкой функцией, без которой нельзя ничего сделать, а просто помощником.
Продумывать систему, в которой автоматическое распознавание изображения будет гармонично и удобно пользователю, — оказалось задачей ничуть не проще, чем создавать эти алгоритмы распознавания.
И, конечно, надеюсь, что статья будет полезна.
Первая статья цикла — общий обзор технологий
Вторая статья — Наш сервер
Третья статья — Протокол обращения к нашему серверу
Системы распознавания номеров на практике
Наверняка каждый сталкивался с историями – «Здравствуйте, мне надо проехать в компанию, которая у вас на территории находится», получая в ответ, что «пропуск не заказан», «нельзя» или и вовсе глухие ворота высотой метра 4. Притом сам въезд как правило охраняется очень разным контингентом – от не совсем трезвого дяди Васи со стаей собак до реальных профи на важных объектах.
Как это может быть?
Как обычно устроен въезд?
На въезде на территорию обычно стоит контрольно-пропускной пункт (КПП). Чаще всего это строение для размещения в нем сотрудника охраны или службы безопасности, плюс разные сочетания противоподкатных препятствий или столбов (боллардов), ворот с автоматическим приводом, «падающих деревьев» (именно так дословно переводится der Schlagbaum с немецкого языка), брелков и пультов для управления этими штуками, считывателей различных идентификаторов.
Вот так выглядит типовой КПП на стандартных объектах (фото с Яндекс.Карт)
Например, тут есть и будка КПП небольших размеров, и ограждающие ширину проезда бетонные блоки, и шлагбаум и даже противоподкатные шипы. В данном случае управление всеми техническими средствами исключительно ручное: брелок на открытие шлагбаума у дежурного в расчет не идет.
Проезд машин на таком КПП чаще всего осуществляется по бумажным спискам. Списки составляются по звонку или, в лучшем случае, по письму от руководителей отделов. Здесь человеческий фактор налицо, а возможность восстановить картину событий даже через день весьма посредственная. Если понадобится провести какое-то расследование, то оно будет основываться исключительно на показаниях людей. Возможно, его ещё можно будет дополнить кадрами из архива системы видеонаблюдения, в котором еще придется выискивать нужную информацию, так как тегов с маркой или номером машины там никто не проставляет в реальном времени. Результат — низкая достоверность отчетной информации и огромные временные затраты на составление прокотола.
Три стадии КПП
Понятно, что первая категория не требует больших денежных вложений. Защита объекта и возможность достоверно восстановить картину событий отсутствуют. «Зарегистрированные» пользователи проезжают, предъявляя выставленный под лобовым стеклом кусок картона или лист бумаги с напечатанным «пропуском», остальные идут к вахтёру и объясняют цель визита, далее их либо пропускают под их честное слово, либо сверяют с бумажным списком.
Пример оснащения въезда автоматическим шлагбаумом
Вторая категория потребует некоторых денежных вложений на приобретение и установку технических средств. Однако по-прежнему уровень защиты является посредственным – человеческий фактор в качестве возможного ложного допуска сыграет свою роль, ведение логов событий отсутствует. Доступ чаще всего осуществляется с помощью радиобрелков. Эта категория хороша лишь тем, что позволяет «зарегистрированным» пользователям (например, сотрудникам компании ) заезжать на территорию с большим комфортом, остальных будут пропускать, как и в случае №1.
Пример КПП 3-й категории
Третья категория КПП с персональными идентификаторами уже обладает «интеллектом». Для начала — появляется возможность вести и сохранять протоколы событий проезда.
Правда, тут тоже есть нюансы: например, если нужно опускать стекло и тянуться картой-пропуском к считывателю, это не очень удобно. Можно использовать считыватели и идентификаторы на базе радиосигнала с хорошим радиусом действия — это добавит комфорт при проезде для зарегистрированных пользователей. Правда, и тут не обойдется без человеческого фактора, так как проезд чужой машины по заявке, даже если она формируется в электронном виде и сохраняется в системе, все равно осуществляется путем нажатия кнопки на пульте управления преграждающего устройства (его тип и исполнение в данном случае не важны). Получается, что данный тип оснащения все равно оставляет русскому изобретательному уму лазейки для получения собственной выгоды.
Когда несколько месяцев назад наши безопасники осознали этот простой и печальный факт, мы начали искать решение, которое можно будет применять и у нас, и на объектах заказчиков.
Решение на практике
Вводная: есть офисный центр, у которого есть два въезда и один выезд. На территории — многоярусная стоянка для автомобилей сотрудников и гостей. Исходно въезд и выезд на территорию оснащены контрольно-пропускным пунктом с системой контроля и управления доступом (СКУД), включающей в себя автоматические шлагбаумы, которые управляются СКУД, а СКУД, в свою очередь, использует уникальные персональные идентификаторы для принятия решения о доступе. Сначала работали с RFID-метками, которые располагались в машинах и выдавались сотрудникам.
Условием для получения RFID-метки служило предоставление информации о машине – марки и госномера. С момента внедрения системы данная информация стала персональной, т.е. начала попадать под действие закона о защите персональных данных (это отдельный вопрос). Задача по проезду гостей решалась через электронную заявку на разовый пропуск с указанием данных о машине. Таким образом, в рассматриваемой системе сохранялась точная информация о проездах сотрудников с привязкой к точке и времени проезда и информация о дате посещения компании гостем на определенной машине.
Со временем сотрудники меняли машины, и лишь самые сознательные сообщали актуальную информацию. RFID-метка легко переносилась в другую машину: в результате начался зарождаться бардак: это привело к потере актуальной информации о стоящей на автостоянке машине. Когда на одном из уровней мы нашли ржавую девятку, то прошерстили базу машин и поняли, что сотрудники научились подолгу хранить неиспользуемые машины на стоянке, пользуясь тем, что привязки автомобиль-водитель нет. Это, конечно, не конец света, но сигнал о проблеме — отсутствии актуальной информации у службы безопасности. Как следствие — невозможность быстро найти владельца машины в случае действительно серьезных инцидентов. Так и возникла задача отслеживания проезда конкретного сотрудника на конкретной машине.
Был вариант оснащения автомобилей различными стационарными метками, которые крепятся на кузове машины, но это оказалось не очень целесообразным при расчётах: если такую машину угоняют или меняют, затраты слишком велики. Плюс пришлось бы получать разрешение каждого сотрудника на прикручивание непонятного предмета к кузову (как правило, в пространстве под бампером).
В итоге решили остановиться на использовании системы видеоаналитики номеров машин. При этом нужно было подключить распознавание к текущей СКУД, чтобы была связка человек-машина. Идеальным решением стало новое голландское решение, которое показывали на выставке MIPS 2012. Что приятно, голландцы сразу разрабатывали свою систему распознавания с учётом особенностей российского рынка и рынка восточной Европы, в частности, с точной подстройкой по особенностям номеров и шрифтов.
В отличие от других решений, интеграция прошла дешевле (примерно в два раза дешевле существующих тогда на рынке вариантов) и намного проще. Дело в том, что железка больше напоминает «чёрный ящик» — по сути, только отдаёт число, уникально соответствующее госномеру автомобиля. Её интерфейс стандартный, поэтому достаточно просто воткнуть новое устройство вместо старого идентификатора радиометок – и вся система после минимальных настроек работает на ура.
Устройство
Штука называется ANPR – Automatic Number Plate Recognition. Состоит из модуля с телекамерой и светодиодной подсветкой со встроенным контроллером, на котором «крутится» вся аналитика по распознаванию номера, и модуля-конвертора для подключения этой системы в систему контроля доступа как внешнего считывателя. Итого у нас всего две коробочки, которые для СКУД являются обычным считывателем, передающим уникальный идентификатор. Идентификатором является госномер машины, который по специальному алгоритму преобразуется в цифровой код, понятный СКУД. Общая схема работы системы — картинка вверху топика.
Система может работать и напрямую с любым исполнительным преграждающим устройством. В этом случае потребуется только модуль ANPR без модуля-конвертора, так как у ANPR есть релейный выход для управления внешними устройствами. Понятно, что при таком подключении теряется важная часть сохранения событий проезда в СКУД, остается только протокол событий на самом устройстве. Одним словом, на любой запрос и любую задачу возможна нужная конфигурация системы без лишних затрат.
Производитель дает четкие инструкции по высоте и дальности установки системы от линии, на которой должно выполняться распознавание. Обоим устройствам необходимо питание с постоянным напряжением 24 В, для конфигурирования модулей и удаленного управления они оснащены портами LAN. На модуле ANPR есть web-интерфейс и встроенный FTP-сервер.
Все параметры настроек понятны и легко изменяются, а через FTP-соединение можно скачать кадры, сделанные при проезде автомобилей. Есть настройки размера, качества картинки. Параметры записи по событиям позволяют хранить кадры без перезаписи в течение месяца или же настроить автоматическое сохранение кадров на внешнем FTP-сервере.
Настройки параметров обработки изображения позволяют ограничить область для распознавания, чтобы исключить попадание сразу двух госномеров, или задать параметры считывания номера для ускорения передачи информации о нем в СКУД.
Вот так выглядит законченная установка системы на выезде с территории
Модуль с телекамерой и подсветкой работает в любых режимах, независимо от времени суток и погодных условий, а для системы распознавания важно получение контрастной картинки. Из этого сразу становятся понятны ответы на возможные вопросы – «А как это работает, если номер грязный?», «А что, если номер испорчен?». Ответ заключается в понимании степени загрязненности или испорченности номера.
Примеры
Ниже – примеры распознаваемых номеров (в том числе с нестандартным размещением, в плохую погоду и т.д.), а также пара картинок с номерами, которые распознать не удается.
Обратите внимание, что в левом верхнем углу кадра размещается информация о распознанном госномере, дате, времени и количестве распознаваний за время перемещения машины в поле зрения телекамеры.
Информация непосредственно на записываемом кадре
А на внутреннюю карту памяти записывается файл с теми же данными, в итоге при необходимости быстро найти данные в архиве по конкретной машине можно просто поискать файл по госномеру. Выглядит имя файла вот так:
2012-08-17_09-21-41-842_CAR_H714MY71-RUS_4
Установка госномера выше, чем у обычных легковых автомобилей. Распознаётся.
А это любитель совсем нештатного места установки. Распознаётся.
Работа системы в дождь. Номер чистый. Распознаётся.
Первая цифра и первая буква значительно размыты. Не распознается!
Один из нескольких погнутых номеров. Распознается с ошибкой: T 954 KP 19RUS.
Резюме
Система себя оправдывает для любых организаций и предприятий, с любым количеством своих и чужих автомобилей, где важно значительно снизить человеческий фактор, повысить актуальность информации о проезжающих автомобилях и всегда иметь возможность выполнить быстрый анализ и получить отчет.
Опыт тестовой эксплуатации в течение месяца позволил значительно поднять уровень актуальности данных об эксплуатируемых автомобилях, так как у сотрудников появился стимул сообщить эти данные, ведь новая система позволяла проезжать быстрее, не отвлекаясь на нажатие кнопки на RFID-метке.
И под занавес, предвосхищая вопросы и предложения по способам обмана системы, хочу напомнить, что эта система предназначена для санкционированного доступа, поэтому с точки зрения безопасности важнее не пропустить автомобиль со «странным» госномером, чем наоборот. Для безнадежно испорченных номеров всегда остается вариант проезда по RFID-метке, однако таких машин совсем мало, и теперь охрана точно знает их владельца в лицо, а машину по характерному номеру. Любители специально проверить граничные условия работоспособности системы распознавания вольны выбирать – спокойно заехать на охраняемую парковку или искать место на улице с известным риском вернуться после работы к поцарапанной или битой машине (такие случаи, увы, уже были).