Русский
Русский
English
Статистика
Реклама

Блог компании cognitive pilot

Наша огромная гордость мирные советские роботы-комбайны убрали первый урожай в южных регионах

11.08.2020 14:11:07 | Автор: admin
image
А ведь в прошлом году это делали senior-разработчики.

Возможно, вы помните, что мы говорили про то, как можно сильно улучшить работу обычного сельскохозяйственного комбайна, если использовать нейросетки для распознавания культур и препятствий и робота для автопилотирования. Всё это (кроме процессоров Nvidia и ещё части железа) наша разработка. А радость в том, что в некоторых южных регионах страны закончилась уборочная страда, и наши комбайны показали себя лучше, чем ожидалось. Слава роботам!

image

В этом году мы поставили несколько сотен блоков из мощного графического ядра (для нейросетей), камер, гидравлических насосов или CAN-модулей для подруливания. Если в прошлом году агропилоты были в опытной эксплуатации, то сейчас речь идёт уже про серийные модели. И они справились.

Более того, они справились лучше, чем мы ждали. Кроме того, в релиз вошли далеко не все фичи. В релизе осталось, по сути, ядро, но одно только это позволило получить очень заметный экономический эффект.

Конечно, обошлось не без сюрпризов. Но давайте расскажу более конкретно, с числами и примерами.

image
Можно разглядеть камеру 2 Мп сверху. NVIDIA TX2 в специальном кожухе и с огромным радиатором монтируется внизу в подкабинном пространстве. Экран в кабине.

image

О чём идёт речь


Сельскохозяйственный комбайн по сложности управления похож на церковный орган. Когда в кабине комбайнёр и помощник, то один рулит (держит кромку), а второй управляет мотовилом, ветрами, барабанами и вообще следит за сбором. Третий в это время может делать отгрузку на ходу в грузовик, едущий рядом. Четвёртый следит за препятствиями. В эпоху СССР в кабине было двое, потом остался один. В итоге он или рулит, или собирает зерно нормально. Стоя на месте, собирать зерно нормально не выходит, поэтому он рулит. Про то, как там всё хитро закручено и почему комбайны регулярно перемалывают людей, врезаются в тракторы и бегущие через поле столбы ЛЭП, наш первый пост.

Вторая особенность каждая из ролей, даже если выполнять её не отрываясь, очень монотонная и требует постоянной бдительности. Это как смотреть на трассу 10 часов в день при условии, что нужно поймать буквально два момента за сутки, когда нужна быстрая реакция.

Третья особенность комбайнёры часто предпочитают убирать быстрее с меньшим КПД (поскольку оплата идёт за отгруженные тонны), а не получать максимум зерна с гектара.

В серию вошли фичи удержания кромки (комбайн сам следит за тем, как едет, и сам рулит) и предотвращения столкновений (комбайн внимательно смотрит по сторонам и прогнозирует движение всего, что видит, от людей до тракторов). Тут наработки беспилотного трамвая после езды вокруг ВДНХ очень пригодились. В поле куда спокойнее с препятствиями. Про видеоаналитику есть вот здесь.


Отдельное подразделение занимается обучением нейросетей (фотографированием ситуаций и разметкой данных), чтобы определять, где какая культура, как выглядит полёгшая пшеница и так далее. Поскольку обучающих выборок нет, мы ездим в поля и снимаем сами. Это важно, потому что одна и та же культура от сорта к сорту и от климата к климату отличается визуально.

image

Ещё одно подразделение занимается разработкой железа. У нас есть радар собственной разработки для тепловозов и трамваев, но на комбайне только камеры, потому что оснащать их нужно как можно дешевле. Сложная история это разбор протоколов управления (иногда утерянных вместе с производителем, и тогда нужно реверсить) или же установка гидравлики для подмешивания нашего сигнала в руление. Вычислительные модули на каждом комбайне автономные.


Что случилось в этом году


В поля вышли не инженеры и специально обученные испытатели, а обычные работяги, для которых всё это и разрабатывалось. Они убирали реальный урожай. И да, они проверяли нашу систему на прочность, как в том анекдоте про бензопилу.

Больше всего мы боялись, что именно конечные пользователи (комбайнёры) станут мешать внедрению, потому что почувствуют угрозу своей работе. Но всё обошлось успешно. Они понимают ограничения автопилота, понимают, что нужны в кабине, понимают, как он их разгружает и что именно они могут делать лучше. У них увеличивается выработка, а значит, увеличивается заработок за уборочную. Причём значительно: примерно на 1015 %. Они хотят работать с нашим роботом в паре. В одном хозяйстве они бились за машины с ним.

Человек полностью разгружен. Он включает систему, отпускает руль, в лучшем случае контролирует работу машины, в худшем сидит в телефоне. Недели уборочной для комбайнёров это работа-сон-работа-сон-работа. Сил ни на что не бывает в принципе, потому что за месяц нужно заработать на полгода. Наши пилоты стали рассказывать, что у них остаются силы для домашней работы. Машины стали лучше смотреть, потому что после работы хотелось не упасть и уснуть, а можно было заняться техобслуживанием. Те, кто осознанно выбирал больший рабочий день, говорили, что можно легко работать на два часа больше. Они и работали бы больше, но совсем ночью нельзя: роса.

Вот пара картинок, которые соседние механизаторы увидели из своих машин и потом полезли смотреть, как всё устроено:

image

image
Сидит там, чай пьёт, гад! *** [зачем] теперь механизатор нужен?. Потом смотрели, что робот всё же может далеко не всё, и понимали, что это просто как новый комбайн с парой особенностей. И успокаивались.

Есть числа:

  1. Увеличилась производительность смены по времени комбайнёр не устаёт. Это может показаться численным преимуществом в 1015 %, но там всё гораздо интереснее. Дело в том, что это даёт три дополнительных дня на уборку. Это значит, что если будет плохая погода (проливные дожди, в которые зерно прорастает или осыпается), то урожай не пропадёт, а будет убран целиком с куда большей вероятностью.
  2. Комбайнёр разгружен. Он может смотреть за функционалом комбайна, высотой подъёма жатки и забивкой жатки всё время. Это работа на чувствительность и навык, и раньше она не могла быть качественной из-за постоянного поворота головы в другую сторону, где кромка. Теперь мастера могут вытаскивать из машины 100 % возможной производительности. Это уменьшает себестоимость зерна.
  3. Внимания начало вполне хватать для выгрузки на ходу. Это важно, потому что не нужно ездить куда-то на край поля опустошать бункер в грузовик. Грузовик может ехать за комбайном, а комбайнёр будет сгружать в него урожай меньше простоев, меньше пробег, больше производительность смены.
  4. Поскольку комбайн контролирует режим, наш робот защищает от ошибок. Владельцы сельхозхозяйств говорят, что теперь можно смело сажать менее опытных комбайнёров. Обычно нужно три сезона, чтобы человек набил руку (это примерно 1,6 единицы убитой техники).
  5. Меньше зазоры: раньше промежутки контролировал человек, и они брались с допуском на усталость (к концу смены получались очень большие непрокошенные участки). А роботу плевать, он держит норматив в любое время смены.

Получается механизаторы и руководители в один голос говорят, что работа стала проще. У кого не было перегрузчиков зерна, задумались, чтобы их докупить. В разных хозяйствах разные дневные нормы, обычно это 2025 гектаров. Мы видели, что спокойно ставят 30, и люди на этом не выматываются. Для кого-то это оказалось возможностью сократить парк комбайнов на следующий год: не нужно будет закупать две-три машины. Знаю, звучит очень странно, но два хозяйства (примерно из сотни) сказали, что сделают именно так.

image

Уборочная началась с того, что Герман Греф попробовал в Песчанокопской аграрной группе (на крупной серийной партии) и сказал, что освоил за три минуты. Мы гордимся этим видео. Если президент банка справился, то работяги в полях справятся точно.


Ну и если вдруг у кого-то освободится в регионе несколько сотен чиновников, то можно быстро переквалифицировать их в операторов техники. Вы задумайтесь: Русагро подписала контракт на 240 машин. Многие хозяйства дозаказали на следующий год комплекты на весь парк.

Не без сюрпризов


К слову о том, как мужики быстро освоили технику. Хозяйство взяло четыре комплекта протестировать, мы приехали, установили их на машины, сделали пусконаладку. Не до конца откалибровали одометрию, потому что для этого нужен дневной свет. Решили сделать с утра. Утром приходят установщики, а мужики на этих машинах на дефолтных настройках уже вышли в поле, всё инициализировали и снимают из кабины, что творит робот. Возможно даже, это был стрим в Инстаграме для остальных на поле. С одной стороны, конечно, хотелось сделать калибровку, а с другой приятно, что мужики всё сами запустили и всё поднялось на настройках по умолчанию.

После первых дней во многих хозяйствах в нашего робота то ли начинали верить, как во всемогущий интеллект вроде Терминатора, то ли просто тестировали на прочность. Так или иначе, в одном хозяйстве решили попробовать убирать ночью. Иногда люди думают, что робот должен думать, как человек. Были несколько разочарованы тем, что ночью он справляется хуже. Дело в том, что в боевом релизе нет ночной уборки: это требует дообучения и немного других алгоритмов обработки данных. Пока мы гарантируем нормальную ночную работу только при достаточно широком освещении (оно такое на иностранных комбайнах трёх-четырёхлетней давности почти везде), а здесь наши испытатели вышли в поле на отечественном комбайне 16-летней давности с узким мерцающим конусом света впереди. Поскольку ночную уборку большая часть хозяйств не практикует, мы отложили эту фичу на следующий год.

Второе место, где были завышенные ожидания, это сложные условия по пыли. Например, комбайны, когда идут друг за другом, поднимают облака пыли. Ветер иногда такой, что порывом тучу пыли сносит на комбайн, который сзади. Поскольку ориентируется он не по дорогущему радару, а по обычной камере, ему не видно, что впереди. Видимость в облаках пыли бывает шесть метров. В такие моменты наша система перестаёт видеть: она сигнализирует механизатору и отпускает управление. Нам даже говорили, что лидар отказал. Но лидара на комбайне нет. Механизаторы ругались: Ну как он не видит?. В итоге именно это почему-то их успокоило насчёт работы. Человек-то помнит и понимает: до комбайна метров 10, мы едем с такой-то скоростью, порыв пронесёт через минуту, ничего не случится, если дольше надо вставать. И Пётр Михалыч впереди точно не встанет. Наверное. Система жизненным опытом не обладает и с Михалычем годами не бухала, поэтому она в таком случае останавливает машину и отпускает управление. Так в очередной раз человеческий интеллект побеждает бота.

В релиз не вошли автоповороты. Это та фича, которая невероятно поражала всех комбайнёров, но она же оказалась самой сложной по тестированию: при огромной ширине жатки нужно строить очень много гипотез про то, что выпадает из поля зрения. На каждой машине свои особенности. Плюс это же требует сложной системы управления с тем, чтобы задавать маршрут заранее или как-то его программировать. Мы за естественное управление: щёлкнул рубильником робота, ведёшь машину, выходишь на поле, начинаешь убирать. Робот говорит: Мужик, дай я порулю, щёлкаете вторым рубильником и он рулит. Нужно повернуть просто делаете это, ко-пилот отпускает управление, потом ищет новую кромку. Когда находит снова просит вернуть управление. Всё интуитивно понятно и просто. В итоге поворачивать между проходами мы доверили людям. С автоматизацией ждём конца тестов на сложном рельефе. Обычно проходка длиной до пяти километров, то есть сами повороты занимают меньше 1 % времени работы комбайнёра.

image

Камера на комбайне одна, потому что приоритет цена. Вторая не очень увеличивает цену, но очень увеличивает нагрузку на вычисления, а вычислительный блок на 4 Tflops большая часть стоимости железа. Камера смотрит влево на жатку. Есть несколько экзотических схем (редко используемых в РФ), когда всё интересное происходит не только слева, но и справа. Вообще у нас две основные системы уборки: загонкой и челноком. Работа загонкой: отрезается кусок поля, и вокруг него всё обкашивают по сужающемуся прямоугольнику или кругу, стремясь к центру. Соответственно мы это делаем против часовой стрелки. Челноком: с одной стороны заезжают и ездят туда-сюда как на принтере. Образуются пустые прогоны между проходками, но зато можно взять участок любой формы. Так вот, для полей сложной формы есть более оптимизированные схемы, которые требуют смотреть в обе стороны. Возможно, в одном из следующих релизов предложим переключение между камерами.

image
Канадская схема.

Потом монтаж. В середине лета в самый разгар карантина наши комбайны впервые с прошлого года вдруг все увидели и заметили. Точнее, наверное, заметили ещё в том году, но заказывать комплекты стали прямо перед уборочной (это связано, возможно, с кредитованием хозяйств с короткими сроками). В итоге мы ездили по стране в условиях карантина, что наложило неповторимый отпечаток на работу специалистов по нейросетям. Установщики где-то сидели 14 дней, где-то ходили чуть ли не в скафандрах, но получилось справиться с 50 хозяйствами (и предстоит ещё столько же).

Сталкивались с техсложностями: на некоторых зарубежных моделях (и одной российской) компоновка отсеков крайне плотная. Разница как между заглянуть под капот Жигулей и заглянуть в Макбук. Из полей присылали размеры, мы срочно заказывали новые кронштейны или новые системы крепления под конкретную модель.

Из-за пандемии сменили поставщика оборудования. Гидроблоки были от немецкого производителя. Они нам в марте сказали: Приходите через четыре месяца. Это была паника, потому что от этого зависела вся история. Нашли российского производителя, они всё поняли, оказались лёгкими на подъём и сделали нам гидравлику. Оперативно, но тоже не без сюрпризов да и не без нервов при постановке задачи, конечно. Но до этого года мы не верили, что это вообще возможно в России.

Что дальше


Роботы убирали злаковые: пшеницу, ячмень, овёс, рожь в южных регионах. Ещё не было серийной эксплуатации на кукурузе и подсолнечнике (это позже по агрономическим срокам). Нам интересны ещё рапс и соя. Рапс это Центральная Россия, пока там ждём уборки. Соя Сибирь, Алтай, юг Сибири, Хабаровский край, это уже совсем скоро.

Сарафанное радио не стоит на месте. За последние месяца полтора пришло около десятка очень крупных холдингов из первых 50 со своими кастомными запросами. Какие-то уже приобретают комплекты для тестирования на эту уборочную. Кто-то делает для нас собственное ТЗ и особые хотелки мы будем думать в межсезонье. Задачи стоят подвязать мониторинг урожайности (комбайн же считает зерно в телеметрии и видит координаты, то есть можно снимать данные по урожайности участков почв до метра), мониторинг работы комбайна (отправка телеметрии в центр). Какие-то хозяйства приходят только к цифре, многим для севооборота важно, чтобы были отмечены критические точки на полях. Важно понимать годовую среднюю урожайность и оценивать каждый год живые деньги. Аналитика нужна для того, чтобы примерно понимать загрузку тракторов и технику: докупить или убавить. Там много нюансов вплоть до заказа ГСМ перед сезоном: это всё неприятные предоплаты. Как сказал крупный руководитель крупного хозяйства: Мы работаем с рынком. Рынок мы не контролируем. Чтобы больше зарабатывать, можем только уменьшать себестоимость. Если не уменьшать нас съедят тупо.

Срок жизни комбайна пишут 1012 лет (но мы часто видим 2005 год, ставили в этом году даже на 2001-й). Мы их все дооснащаем. Потому что, пока лошадка живая, на ней ездят. Когда починка становится дороже стоимости нового, берут новый. Кончается, кстати, тем, что старый комбайн становится донором запчастей для других таких же. Да, это просаженная печень и сломанные ноги, но год-два они работают. Потом всё это сгнивает.

И ещё замечательное отзывы о том, что с этой экономикой комбайн окупается быстрее. Стоит машина, например, 25 миллионов рублей (зависит от производителя и модели). В хозяйстве считают: пять лет на отечественные машины, иномарка окупается за восемь лет. Теперь минус год примерно.

Сейчас мы закончим уборку в этом году на серийных моделях и ещё нескольких экспериментальных, сведём экономику и будем публиковаться в международных экономических обзорах. Наши модули будут ставиться как в таком виде отдельной коробки на комбайны, так и войдут в виде интегрированных устройств в новые комбайны, если всё кончится хорошо. У нас получилось. Два с половиной года жизни команды, кажется, немного меняют мир.
Подробнее..

Как мы первыми в мире роботизируем кормоуборочные комбайны

18.08.2020 14:15:47 | Автор: admin
Недавно мой коллега рассказал как мы роботизируем зерноуборочные комбайны и чему научились за этот сезон.

Начинается уборка кормовых культур и мы активно осваиваем кормоуборочную технику.
Кормоуборочный комбайн технически более сложная и мощная машина. В связке с ним идут сразу несколько транспортных средств для сбора урожая (трактора с прицепом, грузовики, силосовозы). К работе на такой технике допускаются только опытные механизаторы, у которых за спиной несколько лет работы.

Работа на комбайне во время уборки кормовой кукурузы похожа на езду в машине в густом тумане, только вместо тумана на протяжении всего пути высокая зеленая стена из растений, из которой может выскочить кабан, столб или человек. Перемолов человека (история есть в моей прошлой статье), комбайнеры седеют и больше не могут работать. Кроме этого, в этом зеленом тумане надо суметь не врезаться в рядом едущий силосовоз, следить за точностью загрузки силоса с хоботом длиной до 7 метров, из которого вылетает по 50-60 кг силоса в секунду, и равномерно заполнять фургон, чтобы он не гонял полупустым туда сюда.



Фактически один комбайнёр работает за троих, следит за процессом уборки кукурузы (одно рабочее место), ведёт технику (второе рабочее место), загружает силосовоз (третье рабочее место). В итоге что-то страдает. Если плохо вести, можно сломать дорогую технику (минимальная цена кормоуборочного комбайна 16 млн рублей, есть модели и по 50 миллионов), поэтому обычно ухудшается качество уборки и загрузки.

Большую часть работы мы автоматизируем, сейчас расскажу какие сложности мы преодолеваем и что делаем.

Отсутствует видимость


Высота спелой кукурузы в среднем 2-2,5 метра, высота комбайна 2,5 метра, механизатор находится чаще всего на уровне чуть выше стоящего на земле человека и видит перед собой только растения, дальше своего носа он по сути уже не видит и так на протяжении всего рабочего дня, а это 12 часовая смена, немногие могут выдержать такое напряжение на глаза и держать темп сборки, а еще на пути могут выскочить кабанчики или столб!



Существуют комбайны, например KRONE, с телескопической кабиной, которая поднимается на высоту до 3 метров, или Acros RSM-142 высотой 4 метра, но это скорее исключение из правил.



Поэтому работать за таким комбайном могут только опытные комбайнеры, которые проработали уже 3-4 сезона.

Потери во время работы


В отличии от зерноуборочных, кормоуборочный комбайн не может хранить урожай в бункере, а сразу выдает его через выгрузной хобот в едущее рядом транспортное средство. Как я говорил, скорость выброса силоса может достигать 50 кг в секунду, в зависимости от модели комбайна, длина хобота при этом 5-7 метров. Немного отъехал от машины вбок или притормозил и потерял полтонны силоса за 10 секунд. В среднем до 7-10% урожая остается на поле. Потерянный силос никто уже не собирает, потери на ГСМ будут гораздо больше. На видео видно как высыпается силос, если немного сдвинуть хобот.



Равномерное заполнение фургона


В бригаде с одним комбайном до 7 машин, заполняется одна машина примерно за 20 минут. За день они могут совершить свыше 10 рейсов до силосной ямы. Все зависит от длины плеча доставки. Если поле рядом с ямой, то плечо короткое и можно совершить больше рейсов для выгрузки, если дальше, рейсов становится меньше и здесь становится очень важным правильное заполнение фургона (силосовоза), чтобы не возил воздух. Привез половину прицепа, считай потерял на топливе, комбайнер должен максимально правильно направлять хобот, чтобы равномерно наполнить силосовоз.



Что мы можем автоматизировать в кормоуборочных комбайнах?


Как уже говорилось выше, для работы на таких комбайнах допускаются только опытные комбайнеры. Почти все эффективные механизаторы обучались при СССР, после чего технологические секреты этой цивилизации были утеряны. Конкретно ослабло обучение, и приходящие молодые, естественно, работают хуже. Это нормально почти для всех рабочих профессий, но конкретно здесь наш робот как нельзя больше востребован в первую очередь из-за этого эффекта.

Второе, наш робот видит кромку, препятствия на поле, видит другую технику. Работа комбайнера максимально упрощается, теперь он может следить за техническим состоянием комбайна, за калибровкой фракции кукурузы, которая наиболее подходит для данного типа скота.


Также наш робот может полно и равномерно, а главное точно заполнить силосовоз, это уменьшает потери на ГСМ и сводит потери на уборке к нулю.



Нормой считается потеря на уборке 7% урожая, если их свести к нулю, то поскольку силос делается в основном не для продажи, а для корма своего скота, мы можем уменьшить засев под кукурузу на 7% и отдать его под пшеницу, что более выгодно. Скажем если выделено 1000 га на кукурузу, из них 70 га отдать под пшеницу, то даже по минимальным оценкам при урожае в 30 центнер с 1 Га мы соберем 210 тонн, а это примерно 1,5 млн рублей прямой прибыли. При этом за счет более полной сборки уменьшается расход ГСМ за счет сокращения числа поездок от силосной ямы до поля.

Как мы обучаем нейронные сети для анализа сцен уборки кукурузы


Уборка кукурузы ведется с помощью специальных приставок для пропашных культур. Для этого случая предусмотрен режим работы, при котором комбайн пытается удержать жатку посередине междурядья. Получив карту сегментации кадра (сцены) и зная положение жатки, можно найти так называемую vanishing point и рассчитать отклонение зуба жатки от необходимого положения.



В отличие от пшеницы, где мы следим за краем убранного поля и ведем комбайн по кромке, здесь задача нейронной сети увидеть междурядье между растениями. Нейронная сеть прекрасно видит ряды между кукурузой, в отличии от человека, камера находится над культурой, и при этом она не устает.

Изображения приходят к нам в формате видео потока, либо отдельными изображениями. Данные обрабатываются и хранятся в Сognitive Agro Data Factory. Кроме сырых данных с камеры, здесь также присутствуют и целевые размеченные кадры, которые при необходимости можно добавить в обучающий датасет.

Для более точного подбора возможных сцен уборки урожая необходимо правильно скомпоновать обучающий датасет. Кроме реальных изображений, полученных с камеры в процессе уборки культур, используется подход генерации синтетических изображений с помощью процедуры аугментации на основе естественных изображений.

На вход сеть принимает 3-хканальное RGB изображение. Далее в процессе обучения нейронной сети к входному тензору применяются яркостные/цветовые искажения в HSV пространстве, локальные искажения каналов в HSL пространстве процедура добавления искусственных теней, геометрические искажения и добавление шумов. Подбор параметров аугментации нетривиальная процедура, требующая детального анализа сцен, полученных в реальных условиях.

Обученная сеть способна выдавать сегментационные карты, определяющие междурядное пространство.

Уборка сенажа


Помимо силоса, кормоуборочные комбайны используют также для сбора сенажа, с помощью приставки подборщика. Процесс сбора аналогичный кукурузе, разница только в том, что комбайн идет по валку. Валок может не отличаться по цвету от общей массы и комбайнер часто может ехать в холостую.



Например, на видео выше видно, что валок практически не отличим от травы и насколько точно надо комбайнеру вести машину по валку и при этом постоянно наблюдать за процессом загрузки сенажа в грузовик. Работа очень напряженная, к концу 12 часовой смены, комбайнеры просто валятся с ног, с полной сменой справляются только при опыте от 3-4 сезонов работ.

Если комбайнер неопытный, то работа в холостую это потери на ГСМ. Кормоуборочный комбайн в отличие от зерноуборочного только 10% ГСМ тратит на движение самого комбайна, остальные 90% уходят на прорезку, измельчение, протяжку, швыряние силоса или сенажа. Поэтому очень важно работать с полной загрузкой комбайна.

Нейронная сеть отлично справляется с валком, пример того как сеть видит валки.



Здесь наша система может помочь комбайнеру в ведении комбайна по валку, также наш робот может полно и равномерно, а главное точно заполнить силосовоз, это уменьшает потери на ГСМ и сводит потери на уборке к нулю, комбайнер становится уже оператором комбайна, а всю работу берет на себя автопилот.

Сейчас осваиваем кормовую кукурузу, подсолнечник, сенаж. По окончании сезона, если интересно, расскажем как наши роботы справились с кормобурочными комбайнами.

P.S. Если вашего агронома нет на Хабре, а ему это интересно, то можно тут найти контакты: promo.cognitivepilot.com и предметно обсудить, для какого комбайна какой конкретно набор техники нужен, сколько примерно стоит, и как это можно быстро посмотреть-испытать.
Подробнее..

Взгляд на ADAS изнутри когда поедет робот?

21.10.2020 14:12:03 | Автор: admin
Сегодня мы хотим рассказать о направлении, с которого мы, 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 (данные от каждого сенсора сначала поступают в вычислительный блок и только потом объединяются) нередко приводят к снижению общего качества распознавания объектов дорожной сцены. Ошибки каждого из каналов складываются.

Sensors 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.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru