Сегодня мы хотим рассказать о направлении, с которого мы, Cognitive Pilot, исторически начали свои разработки в области создания беспилотных технологий, а именно отрасли automotive. Вообще эта сфера ставит перед разработчиками беспилотных систем наиболее интересные задачи: на дорогах общего пользования сцены намного сложнее и динамичнее, чем в сельском хозяйстве или на рельсах, а поведение объектов часто почти невозможно предугадать. Для создания беспилотных автомобилей используются технологии глубокого обучения, наиболее сложные нейронные сети и объемные датасеты.
Но вместе с тем не секрет, что промышленное использование беспилотных автомобилей на дорогах общего пользования не разрешено законодателями. И получение санкций на это не стоит ожидать прямо завтра. Участникам рынка еще предстоит решить целый ряд серьезных организационных, юридических, технических и иных проблем. Поэтому мы и выбрали в качестве приоритетных, реальные рынки агро- и рельсового транспорта, на которых наш ИИ может работать и приносить пользу уже сегодня, где, например, комбайнеры уже не касаются руля, сосредоточившись на управлении техпроцессом уборки зерновых, машинисты локомотивов повышают безопасность работы, и где в рамках представленных нами моделей использования автопилотов не нужно ждать разрешения чиновников того или иного уровня.
Но системы беспилотного управления автотранспортом мы продолжаем развивать и остаемся в лидерах в совершенствовании технической стороны вопроса. В подтверждение этому мы реализуем сейчас несколько крупных многолетних контрактов по созданию компьютерного зрения с автопроизводителями и производителями комплектующих Tier1 (информация о них не разглашается по условиям подписанных NDA), в числе которых некоторые известные германские компании, а также Hyundai Mobis. И мы будем готовы более активно включиться в процесс продвижения наших ИИ-решений на рынок, когда ситуация с решением законодательных, орг- и иных вопросов станет более-менее понятной.
Но начнем с азов.
Шесть уровней автопилотирования
Многие потребители до сих пор путают продвинутый круиз-контроль с полноценным автопилотом. Иногда это приводит к серьезным ДТП, как в относительно недавней аварии Tesla, врезавшейся на полном ходу в опрокинувшуюся фуру. Напомним, что в сфере ADAS выделяют шесть уровней автопилотирования, которым должны соответствовать использующиеся в автомобилях когнитивные решения. Каждый из них предполагает поддержку тех или иных функций: оповещения водителя о ситуации на дороге, удержания полосы, экстренного торможения и т.д.
Способный доставить вас из точки А в точку Б автопилот живет только на четвертом и пятом этажах, притом предпоследний уровень допускает вмешательство живого водителя, а последний наличия руля даже не предполагает. На нулевом и первом уровне находятся умные помощники. Грубо говоря, предупреждающие о ситуации на дороге пищалки. На втором уровне эти пищалки уже имеют связь с тормозами (системы экстренного торможения), а на третьем живет продвинутый круиз-контроль. Кстати, решения Tesla выше третьего уровня пока не поднялись. Они помогут вам удержать полосу движения и не врезаться в стену, затормозят перед выскочившим на дорогу пешеходом и даже выведут машину без водителя с парковки, но на дороге потребуют обязательного контроля со стороны человека. Если в таких системах робот принимает опрокинувшийся белый фургон за нарисованный на асфальте объект без третьего измерения — это проблема водителя, который должен успеть нажать на тормоз самостоятельно.
Слово о рынке
Тема создания автопилота для отрасли automotive является одной из хайповых в мире. Помимо информации о реальных достижениях игроков рынка, вокруг нее много спекуляций, вымыслов и домыслов. В подтверждение этого, на прошлой неделе произошли сразу несколько событий, которые очень точно отражают современное состояние рынка ADAS. Первое – очередная авария Tesla. На сей раз детище И.Маска протаранило полицейский автомобиль Департамента общественной безопасности в Калифорнии. Одновременно с этим, баварский государственный суд в Германии постановил, что использование Tesla термина «Автопилот» рекламе вводят потребителей в заблуждение.
В конфликтных ситуациях представители Tesla как правило ссылаются на дисклеймер, набранный мелким шрифтом в документации компании, где сказано, что автомобиль не является автономным и требует постоянного контроля со стороны водителя
Не секрет, что компании не раз потребители вменяли в вину чрезмерное преувеличение возможностей ее автопилота. Илон Маск сразу оправдался в Твиттере, заявив, что термин был использован, по аналогии с авиацией.
И как бы в противоположность маркетинговой политики Tesla, Intel — Mobileye объявил о сотрудничестве с Ford, в рамках которого он поставит компании по всему миру систему помощи водителю. Вы спросите, наверное, это уже полностью автономный авто с 4 или уже 5 уровнем ADAS? Да нет. Всего-навсего 0 – 2 уровень – обычная система помощи водителю.
Вот вам на лицо два тренда – выскакивание из штанов для накрутки рейтингов, роста акций, поддержания хайпа и т.д. и абсолютно честная позиция компании-профессионала, которая спокойно делает свое дело. Именно по таким результатам сегодня и нужно оценивать реальное состояние рынка ADAS.
В продолжении темы, в начале 2020 года специалисты California Department of Motor Vehicle (DMV) опубликовали очередной отчет, в котором, проводятся данные лучших компаний-разработчиков беспилотных систем, тестирующих свои автопилоты на территории штата. Согласно DMV, 60 компаний — обладатели лицензий на автономное вождение, проехали за 2019 год около 2,88 миллиона миль в автономном режиме на дорогах общего пользования в Калифорнии, что на 800 000 миль больше, чем за 2018 год. Вот так выглядит ТОП-2020: Waymo, Cruise Automation, Apple, Uber, Lyft, Aurora, Nuro, Pony.ai, Baidu, Zoox, Tesla. Методика оценки качества их автопилотов заточена на количество пройденных миль и часов при условии невмешательства водителя в управление. Однако, представители профессионального сообщества все более активно выражают свой протест против подобного рода подходов. «Если мы проезжаем 100 миллионов миль по ровному, сухому району, где нет ни других транспортных средств, ни людей, ни перекрестков, уровень нашего автопилота (степень невмешательства водителя в управление) на самом деле будет сопоставим с пробегом лишь в 100 миль в таком оживленном и сложном городе, как Питсбург», уверены топ-менеджеры Aurora и Cruise. Такие методики абсолютно не рассчитаны на эксплуатацию авторобота на реальных дорогах. Добавим от себя, что рассматриваемый показатель, вероятно, вообще никак не сопоставим с проездом по окрестностям любого из российских городов. Да и не только российских. А если зима, дождь, туман и т.д.? Эксперты едины во мнении, что пришло время новой метрики оценки качества автопилотов.
Вернемся к нашим разработкам.
В прошлом году Cognitive Pilot получила престижную премию профессионального сообщества Tech.AD в Берлине, как третья в мире компания-разработчик ADAS в категории 'The Most Innovative ADAS Technology'. В результате открытого голосования топ-менеджеров известных автопроизводителей и отраслевых экспертов мы уступили только хозяевам мероприятия, известному германскому разработчику BrighterAI и одному из ведущих мировых automotive-брендов Velodyne.
Награда 'The Most Innovative ADAS Technology' профессионального automotive-сообщества Tech.AD Берлин, врученная Cognitive Pilot
Расскажем теперь о том, как куется лидерство.
От R&D до реальных машин
Наша история R&D началась еще году в 2008 и через несколько лет воплотилась в конкретный прототип – мобильного робота, который в режиме реального времени обрабатывал видеопоток, распознавал окружающую сцену, детектировал объекты и формировал управляющее воздействие, направленное на решение поставленной задачи – игру с мячом в футбол. Если мяч находился в поле зрения камеры, робот детектировал мяч, разгонялся и толкал его бампером. Если мяч покидал поле зрения камеры, то робот начинает его искать.
На следующем этапе наши работы продолжились на Nissan XTrail. Здесь важно понимать, что для систем Искусственного Интеллекта крайне важно обучение в настоящих боевых условиях.
Так выглядел первый опытный образец беспилотного автомобиля Cognitive Pilot
Мы изначально нацеливались создать автопилот, способный работать в любую погоду, на любых дорогах и собирали датасеты в самых сложных условиях. Мы отрабатывали базовые технологии в дождь и снег, туман и изморось, на канавах и проселочных дорогах. Оценивали, как в комплексе работает компьютерное зрение, алгоритмы принятия решения, локализация.
Пример распознавания объектов дорожной сцены в сложных погодных условиях:
Пример тестовых проездов XTrail в Сколково:
Слово о датасетах
В отличии от многих игроков, которые работают в основном с готовыми, публичными датасетами в приложениях для одного рынка automotive, мы накопили солидную экспертизу по обучению нейронных сетей на собственных датасетах еще и в направлениях агро и рельсового транспорта. У нас в этой зоне самый крутой опыт в мире. Фактически, мы создали инфраструктуру работы с датасетами и активно используем его при разработке ADAS моделей. У нас есть большая группа разметки. Свой туллинг, который позволяет использовать технологии для ускорения разметки, для ускорения контроля. Нашим спецам не нужно у себя настраивать всю инфраструктуру для работы с нейронными сетями. У нас все эти сетки развернуты, как сервисы в офисе, и тонкие клиенты общаются с ними, и разметчики это могут использовать как начальное приближение, или как способ отбора интересных данных.
Сами инструменты разметки оптимизируются у нас по количеству кликов. Например, если ты размечаешь дорогу, то тебе не нужно оконтуривать все элементы на ней. Это долго и требует много кликов. Мы, используя геометрию дорожной сцены, сделали такой инструмент, что разметка элементов дороги производится быстро, в один клик. Автоматически (полуавтоматически) все делится на отдельные объекты с небольшой корректировкой. Это позволяет увеличить выход от разметчика (уменьшить цену размеченного кадра).
У нас организована работа по выявлению информативных примеров, которые влияют на дальнейшее дообучение. Потому что дисбаланс в датасетах – очень распространенная проблема. Ты собираешь 90% одинаковых данных, где машина едет и все ОК. А нужны данные, где сети наоборот, плохо работают, и мы стараемся, как можно более эффективно выявлять такие данные из записанных.
Так нейросеть видит дорожную сцену
При этом мы тренируемся на реальных данных. Симулятор используем только на этапе отладки. Например, чтобы не выезжать в машине в дождь или холод, а сделать все в офисе.
Анатомия компьютерного зрения
Тренируясь на любых дорогах и в любую погоду, мы смогли создать целый ряд уникальных технологий, позволяющих детектировать с высокой точностью объекты дорожной сцены и тем самым обеспечить безопасность участникам движения. При этом в своих разработках искусственного интеллекта, мы придерживались антропоморфного подхода, моделируя основные мыслительные процессы человека, считая, что круче Бога никто ничего не придумал.
Мы можем с уверенностью сказать, что сегодня по точности детекции объектов на реальных дорогах мы находимся в самом топе разработчиков в мире. Еще на CES 2018 мы сравнивались по своим метрикам с другими лидерами и явно видели свое преимущество. Нас тогда американцы прозвали «снежный искусственный интеллект» за безопасную езду в плохую погоду.
Виртуальный тоннель
Эта одна из первых технологий компьютерного зрения. Она позволяет качественно распознавать дорожное полотно и делает это независимо от наличия разметки и других инфраструктурных элементов. Она эффективно работает в любую погоду, независимо от времени года, снегового покрова, наличия асфальтового покрытия и т.д.
В основе предложенного метода лежит принцип внутреннего самоподобия дорожной сцены. Мы научились выявлять наиболее общие, фундаментальные признаки, присуще дорожному полотну, будь это автомагистраль, проселочная или грунтовая дорога. Это позволяет распознавать дорожное полотно с высокой точностью и обеспечивать устойчивую работу разработанных на основе технологии алгоритмов компьютерного зрения на различных конфигурациях дороги и в различных условиях: поворотах в разные стороны, подъемах, спусках, в ночное время, зимний период, а также в неблагоприятных погодных условиях.
Свое название «виртуальный тоннель» технология получила, поскольку именно такую форму напоминает удаляющаяся последовательность прямоугольных зон интереса.
До сих пор она является одной из наших базовых инноваций, которые позволяют распознавать любые дороги.
Работа «виртуального тоннеля»:
Распознавание объектов
Помимо распознавания дороги, второй важный момент — детекция подвижных объектов. В основном, они делятся на четыре типа: машины, мотоциклы с мотоциклистами, велосипеды с велосипедистами (у них разная с мотоциклами динамика) и пешеходы. Последние три группы — довольно сложные объекты для распознавания, поскольку они не имеют постоянной формы.
Примеры распознавания скутеристов и велосипедистов
Дальше идет система распознавания знаков (TSR или Traffic Sign Recognition). Она зависит от страны, хотя какие-то знаки повторяются в разных системах. Обычно их делят на европейскую и американскую, притом в России используется европейская система с незначительными вариациями.
Для распознавания знаков ограничения скорости мы сначала локализуем знак, а дальше распознаем текст внутри. Обычно так не делают. Обычно это просто классификация, но при таком подходе знаки распознаются плохо. У нас существует отдельная подсистема распознавания значения скорости. Мы для этого используем методы OCR. Аналогичным образом распознаются таблички под знаками.
Распознаем дорожные знаки
Частично заслоненные объекты
При частичном заслонении объектов или оклюзии (occlusion), наша стратегия разметки состоит в том, что при обучении форма объекта как-бы додумывается. Например, если видна половинка человека, то датасет все равно готовится, как когда человек виден полностью. Он обводится полностью. Сеть все равно учится как по целому человеку.
Если говорим про знаки, основная проблема их выделить. Из всех данных важно выбрать подборку, когда, например, знаки спрятаны за деревьями. Систему нужно до определенного уровня натренировать и с помощью ее искать эти знаки.
В любом случае важен подбор данных. Если есть разнообразные (не только идеальные, но и плохо различимые) данные, будет хорошая сеть.
Примеры разметки частично заслоненных объектов: автомобилей, дорожных знаков и пешеходов (слева оригинальная картинка, справа, примеры разметки)
Отдельная тема — произвольное препятствие на дороге. Это может быть упавший с машины груз или, как в случае с одной из последних аварий Tesla, перевернувшаяся фура. Без типизации мы должны определить обладающий высотой объект, понять, что он не нарисован на дороге и как-то его объехать или экстренно затормозить.
Примеры детекции объектов дорожной сцены
Теперь распознавание светофоров. В самом простом случае умная система должна предупредить водителя, если, например, уже загорелся зеленый, а машина еще стоит. Более сложная задача — определение произвольных светофоров. У знаков и светофоров есть некая область действия. Системе нужно понять логику этого светофора или знака в контексте других распознанных объектов дорожной сцены. Без понимания контекста в дорожной ситуации разобраться нельзя, когда система видит, к примеру, два светофора, на одном из которых горит зеленый, а на другом — красный.
Предсказание поведения
Когда мы собираем дорожную сцену, одним из ключевых вопросов является behavior prediction (предсказание поведения). Пару-тройку месяцев назад Tesla опубликовала пост, что ее автопилоту типа удалось предотвратить боковое столкновение с несущимся на нее слева автомобилем.
Видео:
Очевидно, что заслуга в предотвращении ДТП заключается не в умении ИИ Tesla прогнозировать развитие событий, а в возможностях боковой камеры и обычных инженерных решениях.
Нейронка над нейронкой
Теперь остановимся на наших подходах, позволяющих строить прогнозы развития дорожных ситуаций. Начнем с пешеходов — одних из наиболее опасных объектов, которые часто становятся причинами ДТП. Когда автомобиль приближается к перекрестку, возникает задача оценки поведения людей, стоящих у края дороги. При этом сложно получить оценку внутри толпы, не разбирая объекты на части. Поэтому мы сначала запускаем общую детектирующую полносвязную нейронку, которая определяет все необходимые для нас объекты сцены, например, пешеходов, автомобилей, знаков и т.д. Эта сеть работает всегда. Далее, после определения в кадре человека запускается дополнительная нейронная сеть, как бы «нейронка над нейронкой», которая предсказывает human pose estimation — ключевые точки, соответствующие частям тела на человеке, выделяет скелеты на людях. Для прогнозирования используются специальные системы, самая популярная из которых оценивает положение 17 точек на теле человека (скажем, поворот головы определяется по глазам, носу и ушам). Еще определяется направление плеч, глаз, коленей и т.д. Когда мы захватили цель — человека, начинаем ее непрерывно вести от кадра к кадру. Если, например, система работает 10 кадров в сек., то мы можем за секунду 10 раз распознать человека и получить 10 таких скелетов. Имея в 10 моментах времени изменения по скелетам, мы можем оценить движение пешехода.
Если человек стоит спиной к проезжей части, он нам, скорее всего, не опасен, а если плечи направлены к дороге и голова в сторону автомобиля, то он нас видит. Если голова направлена в сторону проезжей части, это уже опасный человек. Дальше рассматриваются вероятностные модели траекторий, и система принимает решение.
При помощи получения такой статистики движения можно достоверно строить гипотезы движения пешеходов.
Есть еще сети, которые одновременно могут и детектировать, и предсказывать скелеты. Но они достаточно тяжелые. А наш вариант динамически подключается и не требует больших затрат.
Предсказываем поведение пешеходов
Для определения направления движения других машин используются так называемые кубоиды (3D-ориентация), а также учитывается трекинг во времени. Тут тоже нужно прогнозировать траекторию движения с использованием вероятностной модели, определять ее возможное пересечение с нашей и принимать решение.
В ADAS-системах выделяют порядка 10 наиболее типичных сценариев поведения водителей. Есть определенные классы маневров. Что он хочет? Например, ничего. Движется прямо в своей полосе. Или перестраивается в соседнюю полосу, направо или налево. Или поворачивает направо или налево, снижает скорость для парковки. Их можно прогнозировать. Примерно, как распознавание жестов. Имея четкий прогноз поведения ADAS система предотвращает ДТП. Мы строим модель поведения объекта, оцениваем траектории, сталкиваемся или не сталкиваемся, время до столкновения. Если маневр такой, что мы сталкиваемся, выбираем тот или иной сценарий и далее актуация.
Такие типичные ситуации разной сложности есть на euroncap.com. Например, мы едем за машиной, держим дистанцию. Передняя машина видит препятствие (машина на аварийке), выруливает, и мы должны ее объехать.
Вообще главное отличие полноценной системы автопилотирования от всех прочих — даже в непонятной ситуации она обязана принять решение за четко отведенный промежуток времени. Отказы, как говорится, не принимаются.
Искусственная интуиция
Технология Cognitive Artificial Intuition (CAI) позволяет моделировать элементы интуиции человека и делать точный прогноз развития дорожной ситуации для всех участников дорожной сцены, формировать сценарии безопасного движения, в том числе и в критических дорожных ситуациях.
Интуиция является ключевым фактором в принятии водителем многих решений. Известно, что когнитивная психология объясняет интуитивные процессы как способность человека непреднамеренно и неосознанно обрабатывать комплексную информацию. В процессе интуитивного познания человеком не осознаются все те признаки, по которым осуществляется вывод. Предельно ясно осознаётся именно итог мысли.
Наши спецы научились выделять такие признаки в рамках исследования поведения объектов дорожной сцены. Например, водитель может боковым зрением уловить какое-либо мельчайшее изменение направление движения бокового зеркала соседнего автомобиля, или колена пешехода, подходящего к проезжей части, или руля велосипедиста, находящегося справа и т.д. Эти детали не находятся в прямой зоне видимости и логический аппарат человека их напрямую не фиксирует, не осознает. Но интуитивно можно догадаться, что за этим может последовать опасное движение, и водитель перестраивается в другой ряд или предпринимает торможение. Эти особенности и учитывает CAI.
Технология использует ряд решений, в числе которых детектирование и определение динамики мелких элементов объектов дорожной сцены и предметов на дороге. Например, наблюдая за изменением положения в пространстве фары или бокового зеркала впередиидущей машины, можно прогнозировать ее маневр.
Пример детекции мелких деталей автомобилей – боковых зеркал, колес, номеров:
CAI позволяет существенно повысить уровень безопасности автономного движения. На рынке не отмечено промышленных примеров аналогичных решений.
Комбинирование данных
Еще одной проблемой, которая стала камнем преткновения для многих разработчиков ИИ для автороботов, является интеграция данных, полученных от разных сенсоров (видеокамер, радаров и т.д.) на вычислительный блок. Как показала практика, попытки многих команд объединять данные на высоком уровне — high level data fusion (данные от каждого сенсора сначала поступают в вычислительный блок и только потом объединяются) нередко приводят к снижению общего качества распознавания объектов дорожной сцены. Ошибки каждого из каналов складываются.
Sensor’s fusion — наша сильная сторона. Технология Cognitive Low Level Data Fusion (CLLDF) позволяет эффективно комбинировать данные в модели компьютерного зрения. Принцип ее действия антропоморфный, как и большинство подходов, которые мы используем. Информация, снятая с каждого из датчиков, сначала синхронизируется и приводится к единой системе координат. Затем, «сырые» данные поступают в вычислитель, где они комплексно обрабатываются взаимно «обогащая» друг друга.
Комплексное использование данных также позволяет объединить всю информацию о скорости, координатах, расстоянии до объекта, его типе, взаимном расположении, наличии других объектов в непосредственной близости от него и их физических характеристиках.
Такой подход позволяет также реализовать компенсаторную функцию — когда один из органов чувств человека отказывает или выполняет свои функции не в полном объеме, активность других существенно усиливается. Аналогично архитектура Cognitive Low level Data Fusion в таких случаях предусматривает возможность получения более детальных данных о дорожной сцене от других сенсоров. Например, если сигнал от радара детектирует препятствие на пути автомобиля, а видеокамера из-за ослепления солнцем его четко не распознает, искусственный интеллект оценит эту ситуацию, как проблемную и либо затребует более детальную информацию от видеокамеры, либо примет решение на основе данных с радара.
CLLDF позволяет существенно повысить качество распознавания объектов дорожной сцены до промышленного, и что особенно важно, в сложных дорожных, погодных и климатических условиях. По данным экспертов, технология CLLDF дает возможность снизить уровень аварийности беспилотного автомобиля на 20%-25%
Радар VS Лидар
Многие автопроизводители для получения необходимой информации о дорожной сцене в качестве одного из основных сенсоров, помимо видеокамер, используют лидары – сканирующие излучатели на базе лазеров, позволяющие определять помимо расстояния до объекта, его форму. Однако их физические характеристики существенно деградируют в условиях дождя, снега или пылевых облаков. Приборы сильно подвержены загрязнению и быстро выходят из строя. Кроме того, их стоимость во многих случаях бывает сопоставимой со стоимостью автомобиля. Все это исключает возможность их промышленного использования на данном этапе.
Мы в наборе используемых в задаче создания компьютерного зрения сенсоров используем видеокамеры и радары. Это наиболее оптимальная комбинация для промышленного использования, как техническим, так и по стоимостным характеристикам. Такое положение дел было подтверждено на последних оффлайновых Tech.AD в Дейтройте и Берлине.
А с появлением промышленного Cognitive Imogine 4D-радара, позволяющего, помимо скорости и координат получать также форму объектов дорожной сцены независимо от наличия снега, дождя, пыли, условий видимости и т.п., и имеющего к тому же стоимость в пару сотен долларов, эксперты рассчитывают, что дебаты вокруг проблемы соперничества сторонников «радарного» и «лидарного» подходов просто прекратятся.
Видео сравнения возможностей 4D-радара и лидара:
Поедет ли робот?
В заключение, отвечая на главный вопрос статьи, можем сказать: машина обязательно поедет без водителя по дорогам общего пользования, но промышленные образцы появятся точно не в ближайшие годы. Причем эксперты отрасли на своих профтусовках продолжают отодвигать границы своих прогнозов по этому событию. Лет на 10, а то и больше. Это значит, что те автомобили, которые сегодня маркетингово позиционируется как беспилотные, требуют обязательного контроля со стороны водителя. А многие прототипы, которым приписываются 4-е, или чуть ли не 5-е уровни, как правило, представляют собой тестовые образцы со стоимостью обвеса, не позволяющей им даже в перспективе выйти на промышленное производство. Надо наконец спуститься с небес на землю. Машины будут умнеть постепенно. В ближайшее время стоит ожидать появления промышленного автопилота 3-го уровня, когда водитель не принимает участия в управлении в определенных режимах, например, на хайвее или в пробках. Но опять-таки, оговоримся, законодательная и исполнительная власть должна регламентировать и разрешить такой режим использования автороботов на дорогах общего пользования. Такие меры не потребуются на закрытых территориях, где иже сегодня работают автономные погрузчики, транспортеры и другая техника. Правда не вся она в качестве модели управления использует ИИ. Многие разработки функционируют на основе GPS-навигации и высокоточной картографии.
В любом случае нужно понимать, что рынок находится только в стадии своего формирования. И тот, кто первым создаст промышленный автопилот, и может сорвать джек пот. И на это сегодня имеет шансы любой игрок рынка automotive.
Автор: Геннадий Савицкий