Распознавание дорожных знаков камерой ассистентов
Дизель 2.0 л (190 л. с.), робот, полный, 2019 Москва, Россия Запчасти Audi — это РОССКО РОССКО Информация о рекламе- Без контрафакта Прямые контракты с брендами
- 1,5 млн. наименований запчастей в ассортименте
- Быстрая доставка От 30 минут
Привет всем неравнодушным :)Еще с покупки машины меня не отпускала идея по реализации функции распознавания знаков камерой ассистентов, тем более что у меня в заводской комплектации эта опция заявлена под кодом QR9. И эта функция у меня как-то пару раз случайно включалась и работала до момента пока я не заглушил машину. Это еще сильней убедило меня в том, что функция есть и она работает, нужно просто заставить её работать не случайным образом, а постоянно :) Сама система в состоянии определять знаки ограничения скорости, запрета обгона, ограничений при мокрой дороге, ограничений при тумане и ограничений при движений с прицепом. На тиге пользовался этой опцией и в целом был ей доволен, даже с учетом некоторых нюансов её работы. А нюансы эти были связаны с особенностями нашего ПДД. В частности, у нас действие знаков распространяется до ближайшего перекрестка, до конца населенного пункта или до следующего знака, а в других странах для прекращения действия знака применяется знак отмены ограничений. У нас он тоже используется, но очень редко и по непонятной логике, чаще его используют для отмены всех ограничений :) Напомню, что выезд с прилегающей территории перекрестком не считается. В итоге, довольно часто складывается ситуация, когда проехав лежачий полицейский с ограничением 20км/ч, можно с этой двадцаткой на панели приборов прокататься довольно долго, пока не встретится какой-нибудь другой знак. По началу меня это напрягало, но потом я рассудил так: если у нас по городу в основном скорость 60км/ч, то цифра 20 означает, что других знаков ограничений (как минимум знака 40км/ч) нам по пути не встретилось, а значит можно смело ездить 60км/ч. А т.к. в начале участков с более высокой скоростью (80-90-110) эти знаки ограничения зачастую присутствуют, то там этот знак распознается и на приборах появится актуальная информация. Обычно и при съезде с больших дорог/магистралей знаки снижения скорости тоже зачастую стоят. Т.е. при движении за городом с камерой и знаками проблем должно быть меньше, чем в городе. Следующим нюансом опции распознавания знаков была появляющаяся ошибка, или скорей напоминание/уведомление, указывающее на то, что функция распознавания знаков действует с ограничениями. Это уведомление появляется после каждого запуска мотора спустя небольшое расстояние, проеханное машиной. Формально, оно ни на что не влияло, но некоторых перфекционистов это «убивало» :) И они таки нашли решение как от этой «ошибки» избавиться и если бы я не поменял тигу на ауди, то скорей всего воспользовался бы этим решением. Хотя если честно, то меня это уведомление нисколько не напрягало. Но это было небольшое лирическое отступление.Почитывая драйв, я периодически натыкался на записи об активациях нужной мне функции и заносил их в закладки. Как-то на глаза попалось видео о реализация функции на шкоде, где на экран мультимедии выводились ограничения скорости, которые брались из самой навигации. Там проблемы «двадцаток» не было в принципе, т.е. на экране был знак, который действовал именно на этом участке дороге, а не висел до опупения :) Конечно захотел и себе такую же фичу. Но где бы я не искал и не спрашивал, никто толком ничего сказать не мог, а многие говорили, что у меня это вообще невозможно. Ну да ладно подумал я, пусть хотя бы распознавание заработает. В какой-то момент собрав, как мне казалось, достаточно информации «отправился» кодировать :)За основу была принята инструкция из этой записи Вроде все сделал по инструкции, но ничего не заработало. Там была пометка о том, что нужно еще параметрию заливать, которой у меня не было. Возможно именно поэтому ничего не заработало, но ведь у меня распознавание работало и без параметрии, хоть и случайным образом :) В общем на время подзабил с исследованиями.Но время шло, стали появляться записи о том, как на MQB избавиться от этого уведомления, попутно активируя режим Fusion. Например тут Судя по этой записи, все сводилось к тому, что машина автоматом определяла свое местоположение и в зависимости от этого включала или не давала включать функцию распознавания. Народ же просто отключил функцию автоматического определения и вручную указывал регион, в котором эта фича функционировала. К сожалению на моей машине так сделать нельзя :( Возможно, у меня эта функция работала случайным образом в те моменты, когда происходил какой-то сбой в навигации и система считала это «сбойное» местоположение пригодным для работы.Полез дальше штудировать драйв и наткнулся на эту запись, автор которой тоже столкнулся с тем, что после всех нужных кодировок, распознавание знаков у него не заработало. Тогда он выключил биты 6 и 7 в байте 24 блока 5F и все заработало. Дай думаю проверю эти биты у себя. Проверяю – у меня только 7 бит включен, 6 выключен. Выключаю 7 бит, перегружаю mmi и еду проверять. Спустя небольшое расстояние появляется уведомление об ограничении работы функции распознавания и первый же знак появляется на проекции :) Еще никогда я не был так рад ошибке :) Правда на панели приборов знаки так и не стали отображаться – не порядок. Продолжая изучать инфу дальше, в одной из записей заметил пользователя A1rb0rn, который тоже интересовался активацией распознавания знаков и я решил поинтересоваться его успехами. Он ответил, что его все кодеры отговорили от этой функции и он остановился на варианте отображения ограничений на экране MMI. Это кстати для меня тоже неплохой вариант – данные об ограничениях берутся из навигации и меняются в зависимости от дороги/участка по которому двигается авто (как на видео про шкоду). Он сказал, что сам активировал эту фичу и дал ссылку на запись по кодировкам для OBDeleven. Там нужен пункт 32. Посмотрел инструкцию и оказалось, что она очень похожа на ту, по которой я уже все это делал, правда была пара отличий. В «новой» инструкции добавилась активация 6 бита в 14 байте блока 17, а также активация 4 бита в 16 байте блока А5. Также там был упомянут мифический файл Q5_80A907217_AEB_ON_VZE_ON.flash, который то ли параметрия, то ли прошивка, но факт в том, что никто не знает где его взять :) Поэтому логично, что этот пункт я пропустил. В общем пошел проверять :) Подключил свой OBDeleven и начал следовать инструкции. Но тут меня ждал небольшой облом – я не смог найти нужные адаптации в блоке 5F о_О. Все перекопал, но нужных не нашел. Даже интерфейс перевел на английский – мало ли на русский не так перевели. Но и это не помогло. И тут я вспоминаю, что в первый раз я делал активации с телефона на андройде, а сейчас с айфона. Взял андройд и все сразу нашлось :) Неужели версия программы на iOS настолько урезана? На всякий случай проверил еще раз настройки в блоке 5F, добавил новые изменения, но… ничего не изменилось – по прежнему знаки выводились только на проекцию. Попутно переписываясь с Дмитрием A1rb0rn рассказываю ему, что смог заставить работать распознавание сняв галочки, чем он не преминул воспользоваться. В итоге у него после снятия двух галочек в 6 и 7 бите в 24 байте блока 5F появились знаки на приборке и сообщение об ограниченной работе функции, но с MMI знаки пропали. Я уж было распереживался, что своими советами человеку железку поломал :) Но после того, как он вернул галочки обратно, знаки на MMI появились. У меня отлегло :) Дмитрий, если читаешь — ещё раз извини за доставленный стресс :) Дальше я решил попробовать включить у себя бит 6 и посмотреть что получится. А получилось то, что у меня на приборке появились знаки :) Я уж было обрадовался, но радость была недолгой. Буквально до момента появления нового знака, который нормально отобразился лишь на проекции, а на приборке остался «старым». Получалась такая картина, что на приборке знаки нормально обновлялись только до момента появления сообщения об ограниченной работе этой функции, а это метров 300-400 пути – дальше не обновляется. Возможно, со временем кто-нибудь найдет решение этой задачи, а может оно уже есть, но я про него не знаю :) Ладно, мы не привыкли просто так сдаваться. Вспоминая слова Дмитрия, что у него знаки на MMI работают при обеих включенных галочках, решаю включить вторую галочку и у себя. И? В результате у меня появляются знаки на MMI, чему я рад наверное больше, чем функции распознавания знаков, которую так хотел включить. В любом случае теперь я знаю, как мне можно переключаться между этими функциями :)
Найди знак 60 :)Ну и моя финальная инструкция собранная из указанных выше записей, за что авторам большое спасибо! Сразу оговорюсь, что не знаю как она будет работать (и будет ли вообще) на машинах, у которых изначально функции распознавания знаков не было. Возможно как раз им понадобится соответствующая параметрия. Но за этим уже к профи :) Все операции проводил с помощью OBDеleven на андройде. Напоминаю, что все делаете на свой страх и риск! Все операции проводятся на заглушенном моторе, но с включенным зажиганием и открытым капотом :)Заходим в блок 17 (Dashboard), далее Длинное кодирование, далее активируем “Byte 14 Bit 6”
Byte 14 Bit 6Заходим в блок 5F (Multimedia), далее Адаптации, ищем пункт “Car_Function_List_BAP_Gen2” там ищем “traffic_sign_recognition_0x21” и в нем ставим Включ.
traffic_sign_recognition_0x21Заходим в блок 5F (Multimedia), далее Адаптации, ищем пункт “Car_Function_Adaptations_Gen2” там ищем “menu_display_road_sign_identifiction” — в нем ставим Включ.
menu_display_road_sign_identifictionЗаходим в блок 5F (Multimedia), далее Адаптации, ищем пункт “Car_Function_Adaptations_Gen2” там ищем “menu_display_road_sign_identifiction_over_threshould_high” — в нем ставим Включ.
menu_display_road_sign_identifiction_over_threshould_highЗаходим в блок A5 (Driver Assistance), далее Длинное кодирование, далее активируем “Byte 1 Bit 0” и “Byte 16 Bit 4”
Byte 1 Bit 0Byte 16 Bit 4
Если хотите получить распознавание знаков на проекции, то в блоке 5F (Multimedia), в Byte 24 выключайте биты 6 и 7. Если хотите знаки на MMI, то эти биты включайте. Если хотите и на проекции и на mmi, тогда включайте только Bit 6.
Byte 24 Bit 6 и 7Для тех у кого Адаптивный круиз контроль (13 — ACC) и/или Проекционный дисплей (82 — HUD):Заходим в блок 13 (Adaptive cruise control), далее Длинное кодирование, далее ищем “traffic_sign_detection” и в нем ставим Включ.
traffic_sign_detectionЗаходим в блок 82 (Head-up-display), далее Длинное кодирование, далее ищем “road_sign_detection” и в нем ставим Включ.
road_sign_detectionТеперь вопросы из зала :)P.S. Не знал какое имя дать записи — сама запись вроде как и про распознавание знаков, а вроде как финал другой, но решил все же остановиться на том, которое и указал, т.к. про распознавание знаков камерой тут тоже есть :)P.P.S. Конструктивная критика приветствуется!