ФОРМИРОВАНИЕ МОДЕЛИРОВАННЫХ ДАННЫХ ДАТЧИКОВ ДЛЯ ОБУЧЕНИЯ И ПРОВЕРКИ ДОСТОВЕРНОСТИ МОДЕЛЕЙ ОБНАРУЖЕНИЯ
GENERATION OF SIMULATED SENSOR DATA FOR TRAINING AND VALIDATING DETECTION MODELS

Уровень техники
Область техники, к которой относится изобретение
[001] Данное изобретение относится к выполнению объезда препятствия в автономных транспортных средствах.
Уровень техники
[002] Большинство активных и пассивных признаков безопасности, доступных в транспортных средствах на сегодняшний день, обнаруживают препятствия с использованием датчиков, таких как ультразвуковые датчики, камеры, лидар, радар и т.д. Контроллер транспортного средства должен точно классифицировать и отслеживать объекты в динамических окружениях. Многие из таких признаков, как содействие при экстренном торможении, нацелены на предотвращение прямых столкновений с твердыми объектами, например, столбами, пешеходами, другими транспортными средствами, которые потенциально приводят к авариям или материальному ущербу.
[003] Имеется несколько ограничений в отношении данных датчиков, которые обычно являются зашумленными, разреженными и неточными. Помимо этого, противоречивости данных, такие как "объекты-призраки", имеют тенденцию появляться в различных сценариях. Эти неидеальности данных могут вызывать  ненужное вмешательство посредством активных признаков безопасности и неудобство посредством пассивных признаков безопасности, многократно оповещающих водителя.
[004] Системы и способы, раскрытые в данном документе, предоставляют усовершенствованный подход для обнаружения препятствий посредством транспортного средства.
Краткое описание чертежей
[005] Для простого понимания преимуществ изобретения, более подробное описание изобретения, кратко описанного выше, приводится в отношении конкретных вариантов осуществления, проиллюстрированных на прилагаемых чертежах. С пониманием того, что эти чертежи иллюстрируют только типичные варианты осуществления изобретения и в силу этого не должны рассматриваться как ограничивающие его объем, изобретение описывается и поясняется более конкретно и подробно посредством использования прилагаемых чертежей, на которых:
[006] Фиг. 1A и 1B являются принципиальными блок-схемами системы для реализации вариантов осуществления изобретения;
[007] Фиг. 2 является принципиальной блок-схемой примерного вычислительного устройства, подходящего для реализации способов в соответствии с вариантами осуществления изобретения;
[008] Фиг. 3A и 3B являются схемами последовательности операций обработки способа для формирования моделированных данных датчиков для оценки статистической модели в соответствии с вариантом осуществления настоящего изобретения;
[009] Фиг. 3C является схемой последовательности операций обработки способа для обучения модели машинного обучения с использованием моделированных данных датчиков в соответствии с вариантом осуществления настоящего изобретения;
[0010] Фиг. 4A и 4B иллюстрируют сценарий для оценки или обучения модели в соответствии с вариантом осуществления настоящего изобретения;
[0011] Фиг. 5 является схемой последовательности операций обработки способа для отслеживания препятствия с использованием треклетов в соответствии с вариантом осуществления настоящего изобретения;
[0012] Фиг. 6 является схемой последовательности операций обработки способа для создания треклетов в соответствии с вариантом осуществления настоящего изобретения;
[0013] Фиг. 7 является схемой, иллюстрирующей показания датчиков для обновления треклета в соответствии с вариантом осуществления настоящего изобретения;
[0014] Фиг. 8 является иллюстрацией сценария для обнаружения препятствий с использованием вероятностной модели в соответствии с вариантом осуществления настоящего изобретения;
[0015] Фиг. 9 является схемой последовательности операций обработки способа для обнаружения препятствий с использованием вероятностной модели в соответствии с вариантом осуществления настоящего изобретения;
[0016] Фиг. 10 является схемой последовательности операций обработки способа для обнаружения препятствий с использованием вероятностной модели на основе сетки в соответствии с вариантом осуществления настоящего изобретения; и
[0017] Фиг. 11 иллюстрирует восприятие сценария с использованием вероятностной модели на основе сетки в соответствии с вариантом осуществления настоящего изобретения.
Подробное описание изобретения
[0018] Следует понимать, что компоненты настоящего изобретения, как, в общем, описано и проиллюстрировано на чертежах в данном документе, могут компоноваться и проектироваться в широком спектре различных конфигураций. Таким образом, нижеприведенное подробное описание вариантов осуществления изобретения, как представлено на чертежах, не имеет намерение ограничивать объем изобретения, как заявлено, а просто представляет определенные примеры текущих предполагаемых вариантов осуществления в соответствии с изобретением. Текущие описанные варианты осуществления должны лучше всего пониматься со ссылками на чертежи, на которых аналогичные части обозначаются аналогичными номерами.
[0019] Варианты осуществления в соответствии с настоящим изобретением могут быть осуществлены в качестве аппаратуры, способа или компьютерного программного продукта. Соответственно, настоящее изобретение может принимать форму полностью аппаратного варианта осуществления, полностью программного варианта осуществления (включающего в себя микропрограммное обеспечение, резидентное программное обеспечение, микрокод и т.д.) или варианта осуществления, комбинирующего программные и аппаратные аспекты, которые могут совместно, в общем, упоминаться в данном документе как "модуль" или "система". Кроме того, настоящее изобретение может принимать форму компьютерного программного продукта, реализованного на любом материальном носителе, в представлении, имеющем машиноиспользуемый программный код, реализованный на носителе.
[0020] Может использоваться любая комбинация одного или более машиноиспользуемых или машиночитаемых носителей. Например, машиночитаемый носитель может включать в себя одно или более из портативной компьютерной дискеты, жесткого диска, оперативного запоминающего устройства (RAM), постоянного запоминающего устройства (ROM), стираемого программируемого постоянного запоминающего устройства (EPROM или флэш-памяти), портативного постоянного запоминающего устройства на компакт-дисках (CDROM), оптического устройства хранения данных и магнитного устройства хранения данных. В выбранных вариантах осуществления, машиночитаемый носитель может представлять собой любой энергонезависимый носитель, который может содержать, сохранять, передавать, распространять или транспортировать программу для использования посредством либо в связи с системой, аппаратурой или устройством выполнения инструкций.
[0021] Компьютерный программный код для выполнения операций настоящего изобретения может записываться в любую комбинацию одного или более языков программирования, включающих в себя объектно-ориентированный язык программирования, такой как Java, Smalltalk, C++и т.п., и традиционные процедурные языки программирования, такие как язык программирования "C" или аналогичные языки программирования. Программный код может выполняться полностью в компьютерной системе в качестве автономного программного пакета, в автономном аппаратном модуле, частично в удаленном компьютере, расположенном на некотором расстоянии от компьютера, или полностью в удаленном компьютере или сервере. Во втором сценарии удаленный компьютер может соединяться с компьютером через любой тип сети, включающей в себя локальную вычислительную сеть (LAN) или глобальную вычислительную сеть (WAN), либо соединение может осуществляться к внешнему компьютеру (например, через Интернет с использованием поставщика Интернет-услуг).
[0022] Настоящее изобретение описывается ниже в отношении иллюстраций блок-схем последовательности операций способа и/или блок-схем способов, аппаратур (систем) и компьютерных программных продуктов согласно вариантам осуществления изобретения. Следует понимать, что каждый блок на иллюстрациях блок-схем последовательности операций способа и/или на блок-схемах и комбинации блоков на иллюстрациях блок-схем последовательности операций способа и/или на блок-схемах могут быть реализованы посредством компьютерных программных инструкций или кода. Эти компьютерные программные инструкции могут быть предоставлены в процессор компьютера общего назначения, компьютера специального назначения или в другую программируемую аппаратуру обработки данных, чтобы формировать машину, так что инструкции, которые выполняются через процессор компьютера или другой программируемой аппаратуры обработки данных, создают средство для реализации функций/действий, указываемых на блок-схеме последовательности операций способа, и/или блока либо блоков на блок-схеме.
[0023] Эти компьютерные программные инструкции также могут быть сохранены на энергонезависимом машиночитаемом носителе таким образом, что они управляют компьютером или другой программируемой аппаратурой обработки данных с возможностью функционировать конкретным способом, так что инструкции, сохраненные на машиночитаемом носителе, формируют изделие, включающее в себя средство инструктирования, которое реализует функцию/действие, указываемую на блок-схеме последовательности операций способа, и/или блок либо блоки на блок-схеме.
[0024] Компьютерные программные инструкции также могут загружаться в компьютер или в другую программируемую аппаратуру обработки данных для того, чтобы инструктировать выполнение последовательности функциональных этапов на компьютере или на другой программируемой аппаратуре, чтобы формировать машинореализуемый процесс таким образом, что инструкции, которые выполняются на компьютере или на другой программируемой аппаратуре, предоставляют процессы для реализации функций/действий, указанных на блок-схеме последовательности операций способа, и/или блока или блоков на блок-схеме.
[0025] Ссылаясь на фиг. 1A, сетевое окружение 100 может включать в себя серверную систему 102, которая выполняет хостинг или осуществляет доступ к базе 104 данных, включающей в себя данные, достаточные для того, чтобы задавать сценарий для обучения или оценки системы обнаружения. В частности, база 104 данных может сохранять модели 106a транспортного средства, которые включают в себя геометрические данные 108a для транспортного средства, например, форму кузова, шин и любых других видимых признаков транспортного средства. Геометрические данные 108a дополнительно могут включать в себя данные материалов, такие как твердость, коэффициент отражения или тип материала. Модель 106 дополнительно может включать в себя звуковой профиль 108b, который включает в себя аудиофайлы или другую характеристику данных звука, сформированного посредством транспортного средства при определенных обстоятельствах, например, различные скорости и разные уровни ускорений на различных скоростях. Модель 106a транспортного средства дополнительно может включать в себя динамическую модель 108c, которая указывает рабочие пределы транспортного средства, например, радиус поворота, профиль ускорения (максимальное ускорение с конкретной скоростью) и т.п. Модели 106a транспортного средства могут быть основаны на фактических транспортных средствах, и поля 108a-108c могут быть заполнены с использованием данных, полученных из измерения фактических транспортных средств.
[0026] В некоторых вариантах осуществления база 104 данных может сохранять модель 106b транспортного средства для транспортного средства, включающего в себя один или более датчиков, которые используются для обнаружения препятствий. Как описано ниже, выходные сигналы этих датчиков могут вводиться в модель, которая обучается или оценивается согласно способам, раскрытым в данном документе. Соответственно, модель 106b транспортного средства дополнительно может включать в себя одну или более моделей 108d датчиков, которые указывают местоположения одного или более датчиков на транспортном средстве, ориентации одного или более датчиков и один или более дескрипторов одного или более датчиков. Например, для микрофона модель 108d датчиков может включать в себя усиление, отношение "сигнал-шум", профиль чувствительности (чувствительность по сравнению с частотой) и т.п. Для камеры модель 108d датчиков может включать в себя поле зрения, разрешение, изменение масштаба, частоту кадров или другой функциональный предел камеры. Для лидарного или радарного датчика модель 108d датчиков может включать в себя разрешение, поле зрения и частоту сканирования системы.
[0027] Как подробнее описано в данном документе, шум датчиков может моделироваться в моделированных выводах датчиков модели 106b транспортного средства. Соответственно, модель 108d датчиков может (одно или оба из означенного) (1) быть достаточно точной или моделированной с достаточным уровнем детализации, так что шум является результатом моделированного восприятия сценария посредством датчика, (2) включать в себя определение шума, типично присутствующего в выводе датчика, так что шум может случайно добавляться в моделированное восприятие сценария посредством модели датчиков.
[0028] База 104 данных может включать в себя модель 106c окружения, которая включает в себя модели различных сред, к примеру, модели городских улиц с перекрестками, зданиями, пешеходами, деревьями и т.д. Модели могут задавать геометрию и местоположение объектов в среде и дополнительно могут включать в себя другие аспекты, такие как коэффициент отражения, для лазера, радара, звука, светового сигнала и т.д., чтобы предоставлять моделирование восприятия объектов посредством датчика.
[0029] База 104 данных может сохранять модель 110a машинного обучения. Модель 110a машинного обучения может обучаться с использованием моделей 106a-106c согласно способам, описанным в данном документе. Модель 110a машинного обучения может представлять собой глубокую нейронную сеть, байесовскую сеть или другой тип модели машинного обучения.
[0030] База 104 данных может сохранять статистическую модель 110b. Статистическая модель может задавать подход для обновления вероятности для прогнозного местоположения препятствия или занятости конкретной позиции за пределами транспортного средства. Ниже описываются примеры этих статистических моделей 110b относительно фиг. 5-11. Как также описано ниже, эти статистические модели могут оцениваться и модифицироваться посредством обработки моделированных выводов датчиков, которые моделируют восприятие сценария посредством датчиков модели 106b транспортного средства. Подходы, описанные ниже относительно фиг. 5-9, описываются и заявляются в формуле изобретения заявки (США) порядковый номер 15/346210, поданной 8 ноября 2016 года и озаглавленной "Object Tracking Using Sensor Fusion Within A Probabilistic Framework", и заявки (США) порядковый номер 15/363763, поданной 29 ноября 2016 года и озаглавленной "Multi-Sensor Probabilistic Object Detection and Automated Braking", обе из которых настоящим полностью содержатся в данном документе по ссылке.
[0031] Серверная система 102 может выполнять обучающий механизм 112 (подсистему). Обучающий механизм 112 может включать в себя модуль 114a подготовки сценариев. Модуль 114a подготовки сценариев может извлекать модели 106a-106c и формировать сценарий моделей транспортных средств, перемещающихся вдоль моделей дорог. Модуль 114a подготовки сценариев может формировать эти сценарии вручную или принимать человеческие вводы, указывающие начальные местоположения транспортных средств, скорости транспортных средств и т.д. В некоторых вариантах осуществления, сценарии могут моделироваться на основе видео или других измерений фактического местоположения, например, наблюдений местоположения, перемещений транспортных средств в местоположении, местоположения других объектов и т.д.
[0032] В некоторых вариантах осуществления модуль 114a подготовки сценариев может считывать файл, указывающий местоположения и/или ориентации для различных элементов сценария, и создавать модель сценария, имеющего модели элементов, позиционированных так, как инструктировано в файле. Таким образом, вручную или автоматически сформированные файлы могут использоваться, чтобы задавать широкий диапазон сценариев.
[0033] Обучающий механизм 112 может включать в себя модуль 114b моделирования датчиков. В частности, для сценария и транспортного средства, включенного в сценарий, включающий в себя данные 108d модели датчиков, восприятие сценария посредством датчиков может моделироваться посредством модуля 114b моделирования датчиков, как подробнее описано ниже.
[0034] Обучающий механизм 112 может включать в себя модуль 114c снабжения примечаниями. Моделированные выводы датчиков из модуля 114b моделирования датчиков могут быть снабжены примечаниями "экспериментально полученных проверочных данных" сценария, указывающего фактические местоположения препятствий в сценарии. Примечания также могут указывать диапазон местоположений или областей, занимаемых препятствиями, например, транспортных средств.
[0035] Обучающий механизм 112 может включать в себя модуль 114d машинного обучения. Модуль 114d машинного обучения может обучать модель 110a машинного обучения. Например, модель 110a машинного обучения может обучаться, чтобы идентифицировать местоположение препятствий посредством ввода моделированных выводов датчиков, а также местоположения препятствий в сценарии. В частности, выводы датчиков могут предоставляться в качестве входного набора данных, и относительное местоположение движущегося по разделительной полосе транспортного средства может предоставляться в качестве требуемого вывода для входного набора данных.
[0036] В некоторых вариантах осуществления обучающий механизм 112 может включать в себя модуль 114e проверки достоверности. Модуль 114e проверки достоверности обрабатывает моделированные выводы датчиков согласно статистической модели, к примеру, одной из статистических моделей, описанных ниже относительно фиг. 5-11. Модуль 114e проверки достоверности затем может характеризовать точность статистической модели по сравнению с примечаниями модуля 114c снабжения примечаниями. Например, если статистическая модель формирует вывод, указывающий высокую вероятность того, что препятствие находится в данном местоположении, это местоположение может сравниваться с примечаниями. Расстояние между этим местоположением и местоположением, указываемым в примечаниях, может сравниваться. Чем больше расстояние, тем ниже точность статистической модели.
[0037] Ссылаясь на фиг. 1B, модель 110a машинного обучения или статистическая модель 110b, прошедшая проверку достоверности или сформированная с использованием системы по фиг. 1A, может использоваться для того, чтобы выполнять обнаружение препятствий в проиллюстрированной системе 120, которая может быть включена в транспортное средство, к примеру, в автономное или управляемое человеком транспортное средство. Например, система 120 может включать в себя контроллер 122, размещенный в транспортном средстве. Транспортное средство может включать в себя любое транспортное средство, известное в данной области техники. Транспортное средство может иметь все конструкции и признаки любого транспортного средства, известного в данной области техники, включающие в себя колеса, приводную передачу, соединенную с колесами, двигатель, соединенный с приводной передачей, систему рулевого управления, тормозную систему и другие системы, известные в данной области техники как включенные в транспортное средство.
[0038] Как пояснено подробнее в данном документе, контроллер 122 может выполнять автономную навигацию и предотвращение столкновений с использованием данных датчиков. Альтернативно, контроллер 122 может идентифицировать препятствия и формировать воспринимаемые пользователем результаты с использованием данных датчиков. В частности, контроллер 122 может идентифицировать препятствия в данных датчиков с использованием модели машинного обучения или статистической модели, как описано ниже относительно фиг. 3A-11.
[0039] Контроллер 122 может принимать один или более потоков изображений из одного или более устройств 124 формирования изображений. Например, одна или более камер могут монтироваться на транспортном средстве и выводить потоки изображений, принимаемые посредством контроллера 122. Контроллер 122 может принимать один или более аудиопотоков из одного или более микрофонов 126. Например, один или более микрофонов или массивы микрофонов могут монтироваться на транспортном средстве и выводить аудиопотоки, принимаемые посредством контроллера 122. Микрофоны 126 могут включать в себя направленные микрофоны, имеющие чувствительность, которая меняется в зависимости от угла.
[0040] В некоторых вариантах осуществления система 120 может включать в себя другие датчики 128, соединенные с контроллером 122, такие как лидар (оптическое обнаружение и дальнометрия), радар (радиообнаружение и дальнометрия), сонар (определение местоположения и дальнометрия с помощью звука), ультразвуковой датчик и т.п. Местоположения и ориентации сенсорных устройств 124, 126, 128 могут соответствовать местоположениям и ориентациям, моделируемым в модели 108d датчиков, используемой для того, чтобы обучать модель 110a машинного обучения.
[0041] Контроллер 122 может выполнять модуль 130 предотвращения столкновений, который принимает выводы из некоторых или всех устройств 124 формирования изображений, микрофонов 126 и других датчиков 128. Модуль 130 предотвращения столкновений затем анализирует выводы, чтобы идентифицировать потенциальные препятствия.
[0042] Модуль 130 предотвращения столкновений может включать в себя модуль 132a идентификации препятствия, модуль 132b прогнозирования столкновений и решающий модуль 132c. Модуль 132a идентификации препятствий анализирует выводы сенсорных устройств 124, 126, 128 и идентифицирует потенциальные препятствия, включающие в себя людей, животных, транспортные средства, здания, бордюры и другие объекты и конструкции. В частности, модуль 132a идентификации препятствий может идентифицировать препятствия с использованием модели машинного обучения или статистической модели, как описано ниже относительно фиг. 3-11.
[0043] Модуль 132b прогнозирования столкновений прогнозирует то, какие изображения препятствия с большой вероятностью должны сталкиваться с транспортным средством, на основе его текущей траектории или текущего намеченного пути. Модуль 132b прогнозирования столкновений может оценивать вероятность столкновения с объектами, идентифицированными посредством модуля 132a идентификации препятствий, а также с препятствиями, обнаруженными с использованием модуля 132a машинного обучения. Решающий модуль 132c может принимать решение, чтобы останавливаться, ускоряться, поворачивать и т.д. для того, чтобы объезжать препятствия. Способ, которым модуль 132b прогнозирования столкновений прогнозирует потенциальные столкновения, и способ, которым решающий модуль 132c предпринимает действие для того, чтобы предотвращать потенциальные столкновения, могут осуществляться согласно любому способу или системе, известным в области техники автономных транспортных средств.
[0044] Решающий модуль 132c может управлять траекторией транспортного средства посредством приведения в действие одного или более актуаторов 136, управляющих направлением и скоростью транспортного средства. Например, актуаторы 136 могут включать в себя актуатор 138a рулевого управления, актуатор 138b акселератора и тормозной актуатор 138c. Конфигурация актуаторов 138a-138c может задаваться согласно любой реализации таких актуаторов, известных в области техники автономных транспортных средств.
[0045] Решающий модуль 132c дополнительно или альтернативно может активировать создание воспринимаемого водителем оповещения в ответ на обнаружение потенциального столкновения вместо активации автономного предотвращения столкновений.
[0046] Фиг. 2 является блок-схемой, иллюстрирующей примерное вычислительное устройство 200. Вычислительное устройство 200 может использоваться для того, чтобы выполнять различные процедуры, к примеру, процедуры, поясненные в данном документе. Серверная система 102 и контроллер 122 могут иметь часть или все атрибуты вычислительного устройства 200.
[0047] Вычислительное устройство 200 включает в себя один или более процессоров 202, одно или более запоминающих устройств 204, один или более интерфейсов 206, одно или более устройств 208 хранения данных большой емкости, одно или более устройств 210 ввода-вывода и устройство 230 отображения, все из которых соединяются с шиной 212. Процессоры 202 включают в себя один или более процессоров или контроллеров, которые выполняют инструкции, сохраненные в запоминающих устройствах 204 и/или в устройствах 208 хранения данных большой емкости. Процессоры 202 также могут включать в себя различные типы машиночитаемых носителей, таких как кэш-память.
[0048] Запоминающие устройства 204 включают в себя различные машиночитаемые носители, такие как энергозависимое запоминающее устройство (например, оперативное запоминающее устройство 214 (RAM)) и/или энергонезависимое запоминающее устройство (например, постоянное запоминающее устройство 216 (ROM)). Запоминающие устройства 204 также могут включать в себя перезаписываемое ROM, такое как флэш-память.
[0049] Устройства 208 хранения данных большой емкости включают в себя различные машиночитаемые носители, такие как магнитные ленты, магнитные диски, оптические диски, полупроводниковое запоминающее устройство (например, флэш-память) и т.д. Как показано на фиг. 2, конкретное устройство хранения данных большой емкости представляет собой жесткий диск 224. Различные приводы также могут быть включены в устройства 208 хранения данных большой емкости, чтобы предоставлять считывание из и/или запись в различные машиночитаемые носители. Устройства 208 хранения данных большой емкости включают в себя съемные носители 226 и/или стационарные носители.
[0050] Устройства 210 ввода-вывода включают в себя различные устройства, которые обеспечивают возможность ввода или извлечения данных и/или другой информации в/из вычислительного устройства 200. Примерные устройства 210 ввода-вывода включают в себя устройства управления курсором, клавиатуры, клавишные панели, микрофоны, мониторы или другие устройства отображения, динамики, принтеры, сетевые интерфейсные платы, модемы, линзы, CCD или другие устройства захвата изображений и т.п.
[0051] Устройство 230 отображения включает в себя любой тип устройства, способного к отображению информации одному или более пользователям вычислительного устройства 200. Примеры устройства 230 отображения включают в себя монитор, терминал отображения, видеопроекционное устройство и т.п.
[0052] Интерфейсы 206 включают в себя различные интерфейсы, которые обеспечивают возможность вычислительному устройству 200 взаимодействовать с другими системами, устройствами или вычислительными окружениями. Примерные интерфейсы 206 включают в себя любое число различных сетевых интерфейсов 220, таких как интерфейсы с локальными вычислительными сетями (LAN), глобальными вычислительными сетями (WAN), беспроводными сетями и Интернетом. Другие интерфейсы включают в себя пользовательский интерфейс 218 и интерфейс 222 периферийных устройств. Интерфейсы 206 также могут включать в себя один или более периферийных интерфейсов, таких как интерфейсы для принтеров, указательных устройств (мышей, сенсорных панелей и т.д.), клавиатур и т.п.
[0053] Шина 212 обеспечивает возможность процессорам 202, запоминающим устройствам 204, интерфейсам 206, устройствам 208 хранения данных большой емкости, устройствам 210 ввода-вывода и устройству 230 отображения обмениваться данными между собой, а также с другими устройствами или компонентами, соединенными с шиной 212. Шина 212 представляет одну или более из нескольких типов шинных структур, таких как системная шина, PCI-шина, IEEE1394-шина, USB-шина и т.д.
[0054] В целях иллюстрации программы и другие исполняемые программные компоненты показаны в данном документе в качестве дискретных блоков, хотя следует понимать, что такие программы и компоненты могут постоянно размещаться в различные моменты времени в различных компонентах хранения данных вычислительного устройства 200 и выполняются посредством процессоров 202. Альтернативно, системы и процедуры, описанные в данном документе, могут реализовываться в аппаратных средствах либо в комбинации аппаратных средств, программного обеспечения и/или микропрограммного обеспечения. Например, одна или более специализированных интегральных схем (ASIC) могут программироваться с возможностью осуществлять одну или более систем и процедур, описанных в данном документе.
[0055] Ссылаясь на фиг. 3A, проиллюстрированный способ 300a может осуществляться посредством серверной системы 102, чтобы оценивать статистическую модель 110b. Способ 300a может включать в себя задание 302 модели сценария. Например, как показано на фиг. 4A и 4B, модель окружения, включающая в себя дорогу 400, может комбинироваться с моделями транспортных средств 402, 404, размещенных внутри полос движения дороги 400 и имеющих скорости и ускорения, которые могут варьироваться в зависимости от временного шага в ходе распространения модели сценария.
[0056] Рассматриваемое транспортное средство 406 также может быть размещено в модели и может иметь скорость и ускорение, которые варьируются в зависимости от временного шага. Восприятие сценария посредством микрофонов, устройств формирования изображений и/или других датчиков может моделироваться с точки зрения рассматриваемого транспортного средства 406. В конкретных местоположениях и ориентациях устройств 124a-124d формирования изображений, микрофоны 126a, 126b и другие датчики 128 (например, лидар, радар, сонар) могут задаваться для рассматриваемого транспортного средства 406 в соответствии с моделью 108d датчиков.
[0057] Способ 300a может включать в себя воспроизведение 304 динамики модели сценария. В частности, каждое транспортное средство 402, 404, 406 в модели может иметь предварительно заданный профиль скорости или позиции, который задает то, как скорость и/или профиль должна изменяться во времени. Соответственно, воспроизведение 304 сценария может включать в себя моделирование множества дискретных временных шагов, при этом для каждого временного шага, каждое транспортное средство 402, 404, 406 перемещается в различную позицию в пределах модели согласно предварительно заданному профилю скорости или позиции.
[0058] Способ 300a дополнительно может включать в себя моделирование 306 восприятий датчиками сценария. Например, для каждого временного шага, состояние модели (например, позиции и скорости транспортных средств 402, 404, 406 на этом временном шаге) может захватываться с точки зрения конкретного датчика. В частности, позиция датчиков согласно модели 108d датчиков на рассматриваемом транспортном средстве 406 и рабочей производительности датчиков, заданной в модели 108d датчиков, может использоваться, чтобы моделировать вывод датчика.
[0059] Например, для каждого устройства формирования изображений, может формироваться рендеринг сценария с точки зрения устройства формирования изображений на рассматриваемом транспортном средстве 406. Для микрофона, может моделироваться звук, падающий на микрофон в течение временного шага, распространяемый из транспортных средств 402, 404, 406 в местоположение микрофона на рассматриваемом транспортном средстве. Моделирование звука может включать в себя просто моделирование времени прохождение из источника звука и любых доплеровских эффектов. Моделирование звука дополнительно может включать в себя моделирование отражений от транспортных средств, земли или зданий, которые могут поступать в местоположение микрофона.
[0060] Для лидарного датчика может моделироваться облако точек с точки зрения лидарного датчика, при этом точки облака точек представляют собой точки конструкций окружения или транспортных средств 402, 404, 406 сценария, которые находятся в поле зрения лидарного датчика. В некоторых лидарных системах измеренные точки могут включать в себя как трехмерную координату, так и значение коэффициента отражения. В некоторых вариантах осуществления модели 106a, 106b могут включать в себя значения коэффициента отражения для своих наружных поверхностей. Соответственно, для точек облака точек в поле зрения лидарной системы, может быть включено значение коэффициента отражения конструкции, включающей в себя каждую точку. Также может быть включено восприятие модели сценария посредством различных других датчиков. Для радарной или сонарной системы, отражения от объектов и транспортных средств сценария могут моделироваться для каждого временного шага.
[0061] В способе 300a этап 306 может включать в себя моделирование восприятия сценария посредством моделей датчиков таким образом, что шум присутствует в моделированных выводах датчиков. Соответственно, распространение звука может моделироваться, чтобы моделировать эхо-сигналы от зданий или других транспортных средств. Распространение радарных сигналов может моделироваться таким образом, что распространение электромагнитных волн моделируется с достаточной детализацией для того, чтобы захватывать несколько отражений, которые могут создавать "объекты-призраки" и другой шум в выводе радарного датчика. Аналогично, для лидара трассировка лучей может выполняться с достаточной детализацией для того, чтобы захватывать несколько отражений, и может моделировать атмосферное ослабление и рассеяние лазерного луча лидарного датчика.
[0062] Различные датчики могут иметь различные частоты кадров или сканирования относительно временного шага обновления модели сценария. Соответственно, большее или меньшее число выводов может формироваться по сравнению с числом временных шагов. Например, для звука, число выборок, требуемых для того, чтобы точно моделировать обнаружение звука, может превышать временной шаг. Соответственно, несколько выборок могут извлекаться для каждого временного шага. Например, временной шаг может подразделяться на меньшие временные шаги, и могут записываться моделированные выборки звука, распространяемого через модель сценария и падающего в местоположение микрофона. Аналогичным образом, изображения из устройства формирования изображений, облака точек из лидара, отражения от радара или сонара могут моделироваться в различных периодах, которые меньше или больше временного шага.
[0063] Результат моделирования восприятия датчиками на этапе 306 может представлять собой потоки выводов датчиков, например, последовательность изображений, аудиосигнал, набор точек облака, наборы отражений в различные моменты времени и т.д. Потоки выводов датчиков могут быть снабжены примечаниями 308 состояния сценария на временном шаге, на котором выводы датчиков приняты согласно моделированию сценария. Например, снабжение примечаниями 308 может включать в себя перечень местоположений и/или относительной скорости препятствий в сценарии на данном временном шаге, таких как транспортные средства, пешеходы, дорожные знаки, здания и т.п. Местоположения и скорость могут быть включены в примечание относительно позиции рассматриваемого транспортного средства 406.
[0064] Способ 300a дополнительно может включать в себя ввод 310 моделированных выводов датчиков в статистическую модель. Например, моделированные выводы датчиков могут вводиться в статистические модели, описанные ниже относительно фиг. 5-11.
[0065] Способ 300a дополнительно может включать в себя сравнение 312 вывода статистической модели с примечаниями. Как подробно поясняется ниже относительно фиг. 5-11, статистическая модель может формировать вывод, указывающий, что препятствие присутствует или присутствует в данном местоположении, когда вычисленная вероятность удовлетворяет пороговому условию. Соответственно, этап 312 может включать в себя сравнение таких выявленных данных статистической модели, что препятствие присутствует или не присутствует в данный момент времени, с примечаниями, которые указывают то, присутствует ли препятствие в сценарии в этот момент времени. Если статистическая модель предоставляет местоположение, имеющее вероятность, превышающую пороговую, в качестве местоположения препятствия, это местоположение может сравниваться с примечаниями, чтобы определять, включает ли в себя сценарий препятствие в этом местоположении. Сравнение этапа 312 может быть ручным или автоматизированным. Этап 312 может включать в себя настройку одного или более параметров модели вручную или автоматически на основе вывода сравнения.
[0066] Ссылаясь на фиг. 3B, в другом варианте осуществления, способ 300b включает в себя этапы 302-312, как описано выше относительно фиг. 3A. Тем не менее, этап 306 может не моделироваться с достаточной детализацией для того, чтобы создавать достаточный шум датчиков в моделированных выводах датчиков. Вместо этого, моделированные выводы датчиков могут модифицироваться на этапе 314, чтобы включать в себя шум. Шум, добавленный на этапе 314, может добавляться в качестве случайных сигналов, заданных согласно модели шума датчика, определенной экспериментально. Модифицированные моделированные выводы датчиков затем могут вводиться в статистическую модель на этапе 310 и обрабатываться так, как описано выше относительно фиг. 3A.
[0067] Ссылаясь на фиг. 3C, в другом варианте осуществления, способ 300c может включать в себя этапы 302-308, как описано выше относительно фиг. 3A. Этап 306 может включать в себя моделирование, выполненное с возможностью создавать шум в моделированных выводах датчиков, и дополнительно или альтернативно включать может в себя добавление шума, как описано для этапа 314 по фиг. 3B.
[0068] Способ 300b дополнительно может включать в себя ввод 318 снабженных примечаниями моделированных выводов датчиков в алгоритм машинного обучения и обучение 320 модели машинного обучения с использованием снабженных примечаниями моделированных выводов датчиков.
[0069] Например, для каждого временного шага, один или более выводов датчиков для каждого типа датчика, которые смоделированы для этого временного шага, могут вводиться 318 в алгоритм машинного обучения. Аналогично, позиция препятствия в сценарии на этом временном шаге может вводиться в модель, например, относительная позиция транспортного средства 404 в транспортное средство 406 в модели сценария на этом временном шаге. Для аудиосигналов временной шаг может быть слишком коротким для значимого анализа. Соответственно, выборки моделированного звука могут вводиться в модель на этапе 318 для нескольких предыдущих временных шагов и/или после каждого временного шага, т.е. в окно временных шагов, включающее в себя каждый временной шаг.
[0070] Модель 110a машинного обучения затем может обучаться 320 посредством обновления модели 110a для ввода 318 выводов датчиков для каждого временного шага и местоположений препятствий сценария на каждом временном шаге. Способ, которым алгоритм машинного обучения обучает модель 110a, может осуществляться согласно любому способу, известному в области техники машинного обучения. Аналогично, выводы датчиков могут вводиться в алгоритм машинного обучения непрерывно, а не в качестве дискретных наборов данных для отдельных временных шагов.
[0071] Результат способа 300c представляет собой модель 110a машинного обучения, которая обучается для вывода для входного потока выводов датчиков или местоположений препятствий, обнаруженных согласно выводам датчиков. Множество алгоритмов машинного обучения дополнительно выводят количественный показатель доверия, указывающий вероятность того, что вывод моделей является корректным. Соответственно, для соответствующего количественного показателя доверия также может выводиться посредством модели для каждым обнаруженным препятствием.
[0072] Модель машинного обучения, обученная согласно этапу 320, затем может загружаться в контроллер 122 транспортного средства, который затем вводит выводы датчиков в модель и выполняет объезд препятствия относительно препятствий, обнаруженных согласно выводам модели.
[0073] Фиг. 5 иллюстрирует примерный способ 500, который использует статистическую модель для того, чтобы обнаруживать препятствия. Соответственно, моделированные выводы датчиков согласно этапу 306 способов 300a, 300b могут обрабатываться на этапе 318 согласно способу 500. Местоположения препятствий, определенные согласно способу 500, затем могут сравниваться на этапе 312 с местоположением препятствия в сценарии, включенном в примечания в моделированные выводы датчиков из этапа 308.
[0074] Способ 500 предоставляет подход, в силу которого создаются и обновляются треклеты, которые представляют обнаруженные препятствия. Способ 500 может осуществляться посредством серверной системы 102 в контексте способов 300a, 300b или посредством контроллера 122 транспортного средства при использовании для фактического обнаружения препятствий.
[0075] Способ 500 может включать в себя прием 502 данных датчиков, которые представляют собой моделированные данные датчиков в контексте способов 300a, 300b или фактические данные датчиков при использовании в фактическом транспортном средстве. В дальнейшем в этом документе, следует понимать, что ссылки на "данные датчиков" и "датчики" означают фактические данные датчиков из датчиков 124, 126, 128, когда способ 500 осуществляется посредством контроллера 122 транспортного средства. Следует понимать, что "данные датчиков" и "датчики" означают моделированные данные датчиков и модели 108d датчиков, воспринимающих сценарий, в котором способ 500 осуществляется в контексте любого из способов 300a, 300b.
[0076] Прием 502 данных датчиков может включать в себя прием данных из отдельного датчика. Например, способ 500 может выполняться для каждого кадра данных, принимаемых из любого из датчиков. Альтернативно, кадры данных, принимаемых из нескольких датчиков, могут обрабатываться одновременно согласно способу 500. В некоторых вариантах осуществления датчики могут иметь различные частоты кадров, так что выполняется отдельная обработка.
[0077] Способ 500 может включать в себя идентификацию 504 признаков в данных датчиков. Этап 504 может включать в себя любую технологию для идентификации объектов в данных датчиков, известную в данной области техники. Этап 504 может включать в себя идентификацию признаков в данных датчиков, которые являются согласованными с присутствием таких объектов, как транспортные средства, люди, животные, дорожные знаки, здания или любой другой объект, который может присутствовать.
[0078] Вывод этапа 504 может представлять собой перечень объектов данных, которые представляют обнаруженный признак. Объекты данных могут включать в себя местоположение, например, координату центра, для признака, протяженность признака, суммарную площадь или обращенную область либо размер или местоположения вершин ограничительной рамки или куба, либо другие данные. Предусмотрены различные датчики, посредством которых обнаруживаются объекты, и каждый из них может задавать собственную систему координат. Соответственно, данные местоположения этапа 504 могут преобразовываться в пространстве из системы координат датчика, в котором обнаружен признак, в общую систему координат, к примеру, в систему координат одного из датчиков, которая обозначается как общая система координат. Преобразование в пространстве может определяться посредством этапа калибровки, на котором объекты в известных местоположениях обнаруживаются с использованием различных датчиков, и выводы датчиков оцениваются с возможностью преобразовывать выводы датчиков в общую систему координат.
[0079] Способ 500 может включать в себя оценку 506, назначен ли признак существующему треклету. Каждый треклет может представлять собой объект данных, который содержит часть или все данные признаков, идентифицированных на этапе 504, например, местоположение и протяженность. Треклет дополнительно может включать в себя траекторию. Соответственно, этап 506 может включать в себя определение, имеет ли признак местоположение и протяженность, соответствующие существующему треклету, например, в пределах некоторых значений допуска местоположения и протяженности для местоположения и протяженности существующего треклета. Треклет может включать в себя траекторию таким образом, что прогнозное местоположение объекта может определяться из траектории. Соответственно, этап 506 может включать в себя определение, соответствуют ли размер и протяженность признака протяженности и прогнозированному местоположению существующего треклета, например, в пределах некоторых допусков этих значений.
[0080] Если нет, то треклет может создаваться 508. В некоторых вариантах осуществления треклет создается для обнаруженного признака, только если удовлетворяются определенные условия, такие как повторное обнаружение признака для минимального числа кадров данных и/или поведение, согласованное с реальным объектом. Например, этап 508 может выполняться посредством осуществления способа 600 по фиг. 6, который может включать в себя отказ от создания треклета в некоторых обстоятельствах.
[0081] Если выявлено 506, что соответствующий треклет существует, то способ 500 может включать в себя обновление 510 этих треклетов. Например, местоположение и протяженность признака, идентифицированного на этапе 504, могут добавляться в треклет в качестве измеренного последнего местоположения и протяженности. Обновление 510 может включать в себя добавление данных из объекта данных этапа 504 в треклет и выполнение фильтрации Калмана относительно данных из этапа 504 и из этапа 504 для предыдущих итераций способа 500. Как известно в данной области техники, фильтрация Калмана может использоваться для отслеживания объектов с использованием различных выводов датчиков, чтобы удалять шум датчиков и предоставлять оценку траектории объекта.
[0082] Способ 500 может включать в себя обновление 512 вероятности треклета, который обновляется на этапе 510 или создается на этапе 508. В некоторых вариантах осуществления обновление 512 может включать в себя обработку признаков, идентифицированных на этапе 504 согласно байесовской статистической модели, при этом каждый вывод датчика обрабатывается для того, чтобы определять влияние на вероятность того, что существует объект, представленный посредством треклета. Для существующего треклета, этап 512 может включать в себя выполнение обновления байесовских вероятностей с использованием функции, идентифицированной на этапе 504.
[0083] В некоторых вариантах осуществления обновление 512 вероятности треклета может включать в себя обновление вероятности таким образом, что только число раз, когда идентифицируется объект, представленный посредством треклета, определяет вероятность. В других вариантах осуществления другие данные могут быть включены в статистическую модель, такие как дисперсия датчика, в котором идентифицирован признак этапа 504, варьирование данных местоположения относительно подвергнутой фильтрации Калмана траектории или других факторов. В некоторых вариантах осуществления расстояние до признака может представлять собой фактор в обновлении 512 вероятности таким образом, что вероятность увеличивается больше для признаков, которые ближе к транспортному средству 300a, по сравнению с признаками, которые дальше от транспортного средства 300a.
[0084] Этап 512 обновления вероятности предоставляет слияние выводов нескольких датчиков, так что каждый раз, когда объект, соответствующий треклету, обнаруживается посредством любого датчика, вероятность увеличивается. Соответственно, местоположение объекта может подтверждаться с использованием различных датчиков, имеющих различные модальности считывания, во избежание ложноположительных суждений вследствие шума в выводе одного датчика или типа датчика.
[0085] Если выявлено 512, что вероятность, обновленная на этапе 514, удовлетворяет некоторому пороговому доверительному уровню, то могут предприниматься одно или более действий. Например, объект в местоположении и имеющий траекторию, записанную в треклете, может добавляться 516 в набор потенциальных препятствий, и предотвращение столкновений может выполняться относительно этого набора препятствий.
[0086] В некоторых вариантах осуществления оповещение водителю может формироваться, если траектория транспортного средства 300a и объекта указывает, что столкновение должно возникать, при отсутствии изменения курса. Это является, в частности, полезным, если транспортное средство 300a не представляет собой автономное транспортное средство либо работает полуавтономно с возможностью вмешательства человека.
[0087] Ссылаясь на фиг. 6, проиллюстрированный способ 600 может осуществляться на этапе 508 способа 500, чтобы определять, следует ли создавать треклет для признака, обнаруженного в выводе одного или более датчиков.
[0088] Способ 600 может включать в себя идентификацию 602 свойств признака из данных датчиков, таких как его местоположение, протяженность, форма и т.п. Способ 600 дополнительно может включать в себя определение, представляет ли собой  признак N-ое вхождение этого признака в набор смежных кадров датчика N, где N является целым числом, к примеру, целым числом от 10 до 30, предпочтительно 20. Кадры датчика могут представлять набор данных, полученный из конкретного датчика. N кадров датчика могут представлять собой кадры датчика из идентичного датчика или из нескольких датчиков, имеющих различные модальности считывания. То, присутствует или нет признак в N смежных кадрах, может включать в себя определение того, что признак, имеющий свойства этапа 602 (протяженность, местоположение, форму и т.д.), присутствует в N смежных кадрах.
[0089] Способ 600 дополнительно может включать в себя оценку 604, является ли варьирование местоположения признака в N смежных кадрах согласованным с реальным объектом. Объект может быть подвижным, соответственно, то, включают ли в себя N смежных кадров признаки, вероятно соответствующие идентичному объекту, может включать в себя определение 606 того, что признаки, имеющие согласованное местоположение и/или форму, присутствуют в N кадров и демонстрируют изменение местоположения между кадрами, которое является согласованным с реальной траекторией, например, имеют скорость, ускорение, радиус поворота и т.д., соответствующие реальному объекту.
[0090] Если выявлено, что условия этапов 604 и 606 удовлетворяются, может создаваться 608 треклет, который включает в себя данные или значения, извлекаемые из данных, включенных в признаки N смежных кадров. Если нет, способ 600 может завершаться без создания треклета для признака. Треклет может создаваться в последующих итерациях способа 600 при условии, что условия одного или обоих из этапов 604 и 606 впоследствии удовлетворяются.
[0091] Ссылаясь на фиг. 7, проиллюстрированная схема иллюстрирует изменение треклета во времени. Признаки 700a-700c представляют признаки, обнаруженные в выводе одного датчика, признаки 702a, 702b представляют признаки, обнаруженные в выводе второго датчика, и признак 704 представляет признак, обнаруженный в выводе третьего датчика. Первый, второй и третий датчики могут представлять собой различные типы датчиков с различными модальностями считывания, например, линзовую камеру, лидарный датчик, радарный датчик, ультразвуковой датчик и т.п.
[0092] При обнаружении признака 700a треклет может создаваться, к примеру, в ответ на осуществление способа 600. Вычисляется начальная вероятность P(0), указывающая доверие в отношении того, что объект фактически существует, на основе нахождения признака 700a в выводе датчика.
[0093] В следующий момент времени признаки 700b и 702a обнаруживаются и определяются как принадлежащие треклету, идентичному треклету признака 700a, к примеру, вследствие расположения на траектории 706a для признака 700a, наличия расстояния в пределах допуска до признака 700a, наличия протяженности и/или формы, идентичной протяженности и/или формы признака 700a, или некоторых других критериев.
[0094] Обновленная траектория 706b для треклета может вычисляться на основе признака 700a и более новых признаков 700b, 702a. Как отмечено выше, траектория 706b может вычисляться посредством фильтрации Калмана этих признаков 700a, 700b, 702a.
[0095] Вычисляется обновленная вероятность P(1), которая указывает доверие относительно того, что треклет представляет реальный объект с учетом признаков 700a, 700b и 702a. Как отмечено выше, это может включать в себя выполнение обновления байесовских вероятностей на основе признаков 700b, 702a.
[0096] Позднее признаки 700c, 702b и 704 обнаруживаются и ассоциируются с треклетом. Другая обновленная траектория 706c вычисляется так, как описано выше, и обновленная вероятность P(2) вычисляется на основе последних признаков 700c, 702b, 704. В какой-то момент вероятность P(2) того, что объект определяется как реальный, становится достаточно большой. Соответственно, контроллер транспортного средства 102 может выполнять объезд препятствий относительно объекта.
[0097] В примере по фиг. 7, когда объект сначала обнаруживается на большом расстоянии, существует небольшое число признаков, соответствующих объекту. По мере того, как объект приближается, все большее число признаков обнаруживаются и используются для того, чтобы обновлять треклет. Следовательно, вероятность агрегирует эффект этих признаков во времени таким образом, что по мере того, как объект становится потенциально опасным, вероятность превышает пороговое значение, и может выполняться объезд препятствий.
[0098] Напротив, признаки, которые не ассоциированы с треклетом, наряду со многими признаками во времени из нескольких датчиков не превышают пороговое значение и игнорируются. Они включают в себя признаки, соответствующие объектам, которые не приближаются к транспортному средству 300a, и обнаруженные признаки, которые являются результатом шума датчиков, а не фактического объекта.
[0099] Как очевидно из фиг. 5-7, показанный статистический способ пытается отслеживать местоположение и возможно скорость отдельных объектов. Соответственно, примечания этапа 308 для способов 300a, 300b могут включать в себя примечание c фактическим местоположением препятствий в сценарии. Эти местоположения затем могут сравниваться с местоположениями треклета, чтобы определять, соответствует треклет препятствию в сценарии или является ложноположительным суждением, и что препятствие не обнаружено вообще, т.е. ложноотрицательным суждением.
[00100] Как описано выше, статистическая модель используется на этапе 512, чтобы обновлять вероятность треклета. Эта модель может регулироваться на основе сравнения этапа 312 способов 300a, 300b. Например, для конкретного датчика статистическая модель может включать в себя функцию, задающую величину, на которую вероятность увеличивается в ответ на обнаружение. Параметры, задающие эту функцию, могут регулироваться, чтобы уменьшать ложноположительные суждения и ложноотрицательные суждения. Например, для идентичного набора моделированных выводов датчиков, способы фиг. 5-6 могут многократно осуществляться с регулированием параметров функций обновления вероятностей для различных датчиков, при каждой итерации, чтобы сокращать число ложноположительных суждений и ложноотрицательных суждений.
[00101] Фиг. 8 иллюстрирует другой сценарий, в котором транспортное средство 800, размещающее контроллер 122, может иметь обращенные против движения датчики 128a, 128b, к примеру, лидарные, радарные, ультразвуковые или другие датчики. Транспортное средство 800 дополнительно может включать в себя обращенные против движения камеры 124a, 124b. Обращенные против движения камеры 124a, 124b могут реализовывать бинокулярное зрение таким образом, что трехмерное местоположение объектов может определяться из выводов камер 124a, 124b. Выводы датчиков 128a, 128b также могут иметь форму трехмерных данных, к примеру, в форме облака точек, при этом каждая точка указывает местоположение точки, в котором обнаружен материал. Другие датчики 128c, 128d могут обнаруживать объекты в поперечных областях, и датчики 128e, 128f могут обнаруживать препятствия в областях спереди транспортного средства 800. Обращенные по ходу движения камеры 124c, 124d также могут быть использоваться для обнаружения препятствия спереди. Хотя системы и способы, раскрытые в данном документе, являются, в частности, полезными для повышения уровня безопасности при движении задним ходом, они также могут применяться к движению передним ходом с обращенными по ходу движения камерами и другими датчиками.
[00102] Для способов 300a, 300b сценарий, проиллюстрированный на фиг. 8, может моделироваться с заменой транспортного средства 800 и его соответствующих датчиков на модели и восприятие сценария, моделированного согласно моделям сценария. В дальнейшем в этом документе, следует понимать, что ссылки на транспортное средство 800 и восприятие посредством датчиков 124a-124d, 128a-128e означают модели этих компонентов при выполнении в контексте способов 300a, 300b.
[00103] Способы, раскрытые в данном документе, в частности, относятся к интересующей зоне 802 позади транспортного средства 800. Как очевидно, интересующая зона 802 идет продольно сзади транспортного средства 800 и также может идти поперечно по обе стороны от транспортного средства 800. По меньшей мере некоторые устройства 124a-124d формирования изображений и, по меньшей мере, некоторые из других датчиков 128a-128f имеют, по меньшей мере, эту интересующую зону 802 в полях зрения. В некоторых вариантах осуществления поля зрения устройств 124a, 124b формирования изображений и других обращенных против движения датчиков 128a, 128b могут проходить дальше этой интересующей зоны 802. В таких вариантах осуществления признаки в выводах датчиков, указывающие местоположение за пределами интересующей зоны 802, могут игнорироваться или иметь уменьшенное влияние на вероятность того, что объект расположен в интересующей зоне 802, по сравнению с признаками, расположенными в интересующей зоне 302.
[00104] Объекты 804a, 804b, расположенные в интересующей зоне 802, обнаруживаются посредством устройств 124a, 124b формирования изображений и других датчиков 128a, 128b, и торможение транспортного средства 800 может активироваться. Ниже описывается способ, посредством которого обнаруживаются объекты 804a, 804b, относительно фиг. 9.
[00105] Ссылаясь на фиг. 9, проиллюстрированный способ 900 может включать в себя прием выводов устройств 124a, 124b формирования изображений и других датчиков 126a, 126b. Способ 900 может осуществляться посредством серверной системы 102 в контексте способов 300a, 300b или посредством контроллера 122 транспортного средства при использовании для фактического обнаружения препятствий. Способ 900 может осуществляться для выводов из всех устройств 124a, 124b формирования изображений и других датчиков 126a, 126b таким образом, что любой признак в выводе любого датчика может способствовать увеличению вероятности того, что объект присутствует в интересующей зоне 802. В частности, один показатель вероятности может обновляться на основе обнаружения различных объектов посредством различных датчиков.
[00106] Способ 900 может включать в себя прием 902 данных датчиков. Способ 900 может осуществляться относительно каждого кадра данных датчиков, принимаемых из устройств 124a, 124b формирования изображений и других датчиков 126a, 126b (в дальнейшем "сенсорных устройств"). Способ 900 может обрабатывать кадры данных датчиков из нескольких сенсорных устройств отдельно или одновременно. Если способ 900 осуществляется в контексте способов 300a, 300b, "сенсорные устройства" должны означать модели сенсорных устройств, и данные датчиков или выводы датчиков должны означать моделированные выводы датчиков, моделирующие восприятие сценария.
[00107] Способ 900 может включать в себя оценку 904, обнаруживается ли объект в выводе датчика, который может представлять собой пару бинокулярных изображений, облако точек, обнаруженные радарные или ультразвуковые отражения либо любой другой вывод датчика. Способ, которым объекты обнаруживаются в этих выводах, может включать в себя использование любого способа, известного в данной области техники для обнаружения объектов с использованием бинокулярного зрения, радарного датчика, лидарного датчика, ультразвукового датчика или другого типа датчика для обнаружения окружения транспортного средства. Обнаружение 904 объекта может быть точным или может быть не точным, поскольку датчики могут иметь ложноположительные суждения. Соответственно, обнаружение 904 объекта может включать в себя обнаружение признака в выводе сенсорного устройства, который указывает потенциальную преграду. Соответственно, ссылки на обнаруженные объекты в данном документе ниже означают обработку указывающих преграду признаков в выводах датчиков.
[00108] Если объект обнаруживается 904, то оставшиеся элементы способа 900 могут выполняться. Это может включать в себя определение 906 расстояния до обнаруженного объекта. Это может включать в себя любой способ, известный в данной области техники для обнаружения местоположения объектов с использованием бинокулярного зрения, радарного датчика, лидарного датчика, ультразвукового датчика или другого типа датчика для обнаружения окружения транспортного средства. В некоторых вариантах осуществления обнаружение 904 объекта, по сути, может включать в себя определение его местоположения таким образом, что этап 906 не включает в себя другой этап.
[00109] Сенсорные устройства могут предоставлять местоположение объекта в различных системах координат или различных формах, к примеру, в форме времени до удара. Соответственно, этап 906 может включать в себя преобразование в пространстве местоположений в общие системы координат или общий показатель расстояния, например, в продольное расстояние позади транспортного средства 800 или поперечное расстояние от продольной центральной линии транспортного средства 800.
[00110] Каждое из сенсорных устройств может иметь дисперсию, указывающую неопределенность в одном или обоих из расстояния до объекта, определенного из вывода датчика, и того, присутствует ли объект фактически, когда признак в выводе датчика указывает, что объект присутствует.
[00111] В некоторых случаях эта дисперсия может быть направленной, т.е. датчик может более точно считывать продольное местоположение объекта, чем поперечное местоположение объекта, или наоборот. Соответственно, датчик может иметь продольную дисперсию и поперечную дисперсию. Если выявлено 908, что датчик, из которого принят вывод этапа 902, имеет направленно зависимую дисперсию, способ 900 может включать в себя обновление 910 направленных вероятностей.
[00112] В частности, для каждого вывода, для которого выявлено 904, что он указывает присутствие объекта, вероятность может обновляться таким образом, что вероятность увеличивается каждый раз, когда сенсорные устройства считывают объект. В некоторых вариантах осуществления вероятность обновляется согласно функции, которая увеличивается как с числом раз, когда вывод указывает, что объект присутствует, так и с расстоянием до считываемого объекта, указываемым посредством этого вывода. В некоторых вариантах осуществления вероятность может обновляться согласно функции всех из следующих параметров: (a) число раз, когда выводы датчиков указывают объекты, (b) расстояние до считываемых объектов, и (c) дисперсия датчика, которая указывает присутствие считываемых объектов. В частности, величина, на которую вероятность увеличивается в ответ на обнаружение 904 объекта, является больше с меньшим расстоянием до объекта и с меньшей дисперсией в датчике, который обнаруживает объект.
[00113] Если вероятность является нулевой, т.е. объекты ранее не обнаружены, вероятность может вычисляться на основе этих параметров с использованием функции байесовской вероятности. Если вероятность является ненулевой, вероятность может обновляться в ответ на каждое обнаружение 904 объекта согласно этим параметрам с использованием технологии обновления байесовских вероятностей.
[00114] В случае направленно зависимой дисперсии направленные вероятности, например, продольная вероятность и поперечная вероятность, могут обновляться 910 или первоначально вычисляться, при этом продольная вероятность вычисляется согласно расстоянию и продольной дисперсии сенсорного устройства, а поперечная вероятность вычисляется согласно расстоянию и поперечной дисперсии сенсорного устройства.
[00115] Если сенсорное устройство, из которого приняты данные датчиков этапа 902, не имеет направленной зависимости, одна общая вероятность может обновляться 912 с использованием идентичных параметров и таким же образом, как для направленных вероятностей. Альтернативно, этап 912 может включать в себя обновление 912 направленных вероятностей с использованием направленно независимой дисперсии сенсорного устройства 104a, 104b, 106a, 106b, чтобы обновлять обе направленных вероятности.
[00116] Способ 900 может включать в себя оценку 914, удовлетворено ли пороговое значение вероятности. Это может включать в себя оценку того, что одно или более из общей вероятности или направленных вероятностей превышает некоторое пороговое значение доверия, например, по меньшей мере, в 70%, 80%, 90% или некоторую другую минимальную процентную долю достоверности.
[00117] Если да, то действие может предприниматься 916 посредством контроллера, такое как автоматическая активация тормозов, уменьшение или прекращение ускорения, создание воспринимаемого оповещения для водителя, осуществление автономной навигации транспортного средства 300 вокруг обнаруженных 904 объектов либо любую другую операцию, чтобы предотвращать или уменьшать вред, вызываемый посредством удара.
[00118] На практике способ 900 приводит к увеличению вероятности для считываемых объектов, которые находятся на большом расстоянии от транспортного средства. Вероятность увеличивается быстро по мере того, как приближается объект, и поскольку (a) расстояние является фактором в вычислении вероятности, и оно становится меньшим, (b) большее число датчиков должны обнаруживать объект, и (c) объект должен обнаруживаться постоянно растущее число времен по мере того, как он приближается к транспортному средству, и вероятность увеличивается каждый раз, когда обнаруживается объект. Вероятность может вычисляться таким образом, что присутствие объекта в интересующей зоне 802 имеет достаточно большое влияние на вероятность того, что пороговое значение этапа 916 удовлетворяется.
[00119] В некоторых вариантах осуществления вероятность (общая и направленная) может ослабевать 918 в отсутствие обнаружения 904 объекта в выводе датчика. Например, если объекты не обнаруживаются в выводах датчиков для одного или более кадров данных, вероятность может ослабевать 918, к примеру, согласно затухающей экспоненциальной функции либо согласно обновлению байесовских вероятностей, при этом дополнительная информация представляет собой отсутствие данных, подтверждающих вероятность, указываемую посредством статистической модели. Величина ослабевания может увеличиваться с количеством времени, которое проходит между кадром данных любого датчика, который указывает объект, и текущим временем, в которое осуществляется способ 900.
[00120] Во многих случаях объекты могут временно присутствовать в/около интересующей зоны 302. Аналогично, шум датчиков может приводить к неустановившемуся восприятию объектов в выводе сенсорного устройства 104a, 104b. Соответственно, не все воспринимаемые объекты должны требовать выполнения торможения или других операций. Ослабевание 918 вероятности может уменьшать влияние этих переходных обнаружений.
[00121] В некоторых вариантах осуществления влияние переходных обнаружений дополнительно может уменьшаться, и влияние увеличения вероятности может усиливаться посредством усиления 920 трендов в вероятности (общей или направленной). Например, если вероятность ослабевает во времени, могут указываться параметры настройки, и вероятность может принудительно ослабевать в большей степени согласно функции темпа ослабевания вероятности и параметрам настройки.
[00122] Аналогично, усиление 920 трендов может включать в себя увеличение вероятности в качестве функции параметров настройки и темпа увеличения вероятности во времени, т.е. в ответ на обнаружение 904 объектов для двух или более итераций способа 900. Таким образом, влияние объектов, которые являются непереходными и вызывают увеличение вероятности (общей или направленной), увеличивается, что обеспечивает то, что вероятность должна быстро достигать порогового значения, которое активирует операцию, такую как активация 916 тормозов.
[00123] Если способ 900 осуществляется в контексте моделирования согласно способам 300a, 300b, этап 916 может опускаться или заменяться моделированным торможением, т.е. моделированием торможения модели транспортного средства 800 в сценарии. Поскольку вывод способа 900 представляет собой определение того, что интересующая зона 802 занята, примечания этапа 308 в силу этого могут включать в себя, для данного временного шага, то, занята ли интересующая зона 802 в сценарии. Соответственно, определение этапа 914 может сравниваться с примечаниями, чтобы идентифицировать ложноположительные суждения (зона не занята в сценарии, но выявлено 914, что пороговое значение удовлетворяется), и ложноотрицательные суждения (зона занята, но не выявлено 914, что пороговое значение удовлетворяется).
[00124] Что касается других вариантов осуществления, раскрытых в данном документе, могут регулироваться параметры, задающие функции обновления вероятностей этапов 912, 910 либо усиление 920 и ослабевание 918 вероятностей. Например, идентичные выводы датчиков могут многократно обрабатываться с регулированием параметров на каждой итерации, чтобы сокращать число ложноположительных суждений и ложноотрицательных суждений.
[00125] Ссылаясь на фиг. 10, проиллюстрированный способ 1000 предоставляет подход на основе сетки для идентификации препятствия. Способ 1000 может осуществляться посредством серверной системы 102 в контексте способов 300a, 300b или посредством контроллера 122 транспортного средства при использовании для фактического обнаружения препятствий. Способ 1000 описывается ниже относительно примерного сценария по фиг. 8.
[00126] Способ 1000 может включать в себя инициализацию сетки. Как показано на фиг. 11, область, окружающая транспортное средство, может разделяться на квадраты сетки, имеющие ассоциированную вероятность занятости. При отсутствие данных датчиков, сетка может быть инициализирована 1002 таким образом, что вероятность занятости каждого квадрата сетки составляет 50%.
[00127] Способ 1000 может включать в себя прием 1004 данных датчиков, которые представляют собой моделированные данные датчиков в контексте способов 300a, 300b или фактические данные датчиков при использовании в фактическом транспортном средстве. В дальнейшем в этом документе, следует понимать, что ссылки на "данные датчиков" и "датчики" означают фактические данные датчиков из датчиков 124a-14d, 1128a-128f, когда способ 500 осуществляется посредством контроллера 122 транспортного средства. Следует понимать, что "данные датчиков" и "датчики" означают моделированные данные датчиков и модели датчиков, воспринимающих сценарий, в котором способ 500 осуществляется в контексте любого из способов 300a, 300b.
[00128] Способ 1000 дополнительно может включать в себя обновление 1006 динамики 1006 транспортного средства. Это может включать в себя прием данных из датчиков транспортного средства и одного или более акселерометров, чтобы определять скорость транспортного средства и возможно другие значения, такие как скорость относительно вертикальной оси, угол поворота руля, угол поворота ходовых колес при рулении и т.п. Способ, которым динамика транспортного средства определяется из данных датчика и/или акселерометра, может задаваться согласно любому способу, известному в данной области техники.
[00129] Способ 1000 дополнительно может включать в себя обновление 1008 сетки вероятностей согласно одному или обоим из данных датчиков из этапа 1004 и динамики транспортного средства из этапа 1006. Некоторые данные датчиков предоставляют трехмерное облако точек, к примеру, лидарные данные или данные, полученные из бинокулярного зрения. Соответственно, квадрат сетки, перекрывающий одну или более координат, соответствующих твердому объекту, может обновляться на этапе 1008. В частности, вероятность занятости может увеличиваться каждый раз, когда координата, соответствующая твердому объекту, перекрывает квадрат сетки.
[00130] В некоторых вариантах осуществления датчик может иметь ассоциированную дисперсию. Соответственно, квадраты сетки, которые не перекрывают координату, соответствующую твердому объекту, также могут обновляться таким образом, что их вероятность увеличивается на основе этой дисперсии. Например, для координаты x0, y0, может задаваться функция f(x-x0, y-y0) распределения, которая указывает вероятное фактическое местоположение объекта, обнаруженного в точке x0, y0. Соответственно, если эта функция является ненулевой или выше порогового значения для значений x и y в пределах квадрата сетки, вероятность этого квадрата сетки может обновляться.
[00131] В некоторых вариантах осуществления датчик имеет поле зрения и может указывать присутствие объекта в этом поле зрения, но не предоставляет координату. Соответственно, функция f(R,theta) может указывать вероятность присутствия объекта при данном радиусе и углу относительно датчика, когда датчик указывает, что объект обнаруживается. Соответственно, для вывода датчика, указывающего занятость поля зрения датчика, квадраты сетки, перекрывающие это поле зрения, могут иметь свою вероятность занятости, увеличенную в качестве функции значения f(R, theta), где R и theta соответствуют этому местоположению квадрата сетки.
[00132] Обновление 1008 вероятности квадратов сетки дополнительно может включать в себя ослабевание вероятностей одного или более квадратов сетки, которые не увеличиваются вследствие вывода датчика, как описано выше. Например, для каждого временного шага, в котором вероятность квадрата сетки не увеличивается, его вероятность может снижаться согласно функции ослабевания.
[00133] Фиг. 11 показывает результирующую сетку согласно восприятию сценария по фиг. 8. Затенение каждого квадрата сетки указывает вероятность занятости этого квадрата сетки. Соответственно, квадраты сетки, перекрывающие и/или окружающие местоположения препятствий 804a, 804b, показаны как затененные и имеющие ненулевые вероятности.
[00134] Способ 1000 дополнительно может включать в себя обновление 1010 интересующей зоны 802. В частности, чем быстрее перемещается транспортное средство 800, тем больше зона 802, поскольку увеличивается время реакции, требуемое для того, чтобы останавливаться или изменять направление. В некоторых вариантах осуществления зона 802 может быть дугообразной, указывающей дугообразный путь транспортного средства, определенный посредством части или всех из скорости относительно вертикальной оси, угла поворота руля и угла поворота ходовых колес при рулении. Соответственно, зона 802 может модифицироваться на этапе 1010, чтобы соответствовать текущим значениям части или всех из скорости относительно вертикальной оси, угла поворота руля и угла поворота ходовых колес при рулении.
[00135] Способ 1000 дополнительно может включать в себя оценку 1012, превышают ли вероятности какого-либо из квадратов сетки в интересующей зоне 802 пороговую вероятность. Как показано на фиг. 11, например, восприятие сценария по фиг. 8 приводит к тому, что квадраты, соответствующие местоположениям препятствий 804a, 804b, имеют вероятности, превышающие пороговое значение.
[00136] Если по меньшей мере один квадрат сетки в интересующей зоне имеет вероятность, превышающую пороговое условие, могут осуществляться одна или более операций, таких как торможение 1014, создание звукового или видеооповещения либо руление таким образом, чтобы объезжать препятствие.
[00137] Если способ 1000 осуществляется в контексте способов 300a, 300b, примечания этапа 308 могут указывать фактическую занятость каждого квадрата сетки. Соответственно, вероятности квадратов сетки, вычисленные согласно моделированным выводам датчиков, могут сравниваться с примечаниями. Квадраты сетки, имеющие вышеуказанную пороговую вероятность на данном временном шаге, для которого они не снабжаются примечаниями как занятые для этого временного шага, являются ложноположительными суждениями. Квадраты сетки, имеющие ниже пороговой вероятности для временного шага, для которого они снабжаются примечаниями как занятые, в качестве ложноположительных суждений.
[00138] Различные параметры могут экспериментально регулироваться для того, чтобы сокращать число ложноположительных суждений и ложноотрицательных суждений. В частности, вероятностные функции датчиков и функции обновления вероятностей, используемые на этапе 1008 для данного значения вероятностной функции для данного квадрата сетки, могут регулироваться для того, чтобы сокращать число ложноположительных суждений и ложноотрицательных суждений.
[00139] В вышеприведенном описании ссылка была сделана на сопровождающие чертежи, которые формируют его часть, и на которых показаны в качестве иллюстрации конкретные реализации, в которых изобретение может быть применено на практике. Следует понимать, что могут использоваться другие реализации, и могут вноситься структурные изменения без отступления от объема настоящего раскрытия сущности. Ссылки в спецификации на "один вариант осуществления", "вариант осуществления", "примерный вариант осуществления" и т.д. указывают, что описанный вариант осуществления может включать в себя конкретный признак, структуру или характеристику, но каждый вариант осуществления может необязательно включать в себя конкретный признак, структуру или характеристику. Кроме того, такие фразы необязательно ссылаются на один и тот же вариант осуществления. Дополнительно, когда конкретный признак, структура или характеристика описывается в соединении с вариантом осуществления, представляется, что он находится в рамках знания специалистов в родственной области(ях) техники, чтобы реализовывать такой признак, структуру или характеристику в соединении с другими вариантами осуществления, явно или неявно описанными.
[00140] Реализации систем, устройств и способов, раскрытых в данном документе, могут содержать или использовать специализированный компьютер или компьютер общего назначения, включающий в себя аппаратные средства компьютера, такие как, например, один или более процессоров и системная память, которые обсуждаются в данном документе. Реализации в области применения настоящего изобретения могут также включать в себя физические или другие компьютерно-читаемые носители для передачи или хранения компьютерно-исполняемых инструкций и/или структур данных. Такими компьютерно-читаемыми носителями могу быть любые доступные носители, к которым можно осуществлять доступ посредством компьютерной системы общего назначения или специализированной компьютерной системы. Компьютерно-читаемые носители, которые хранят компьютерно-исполняемые инструкции, являются компьютерными носителями (устройствами) хранения. Компьютерно-читаемые носители, которые переносят компьютерно-исполняемые инструкции, являются средой передачи. Таким образом, в качестве примера, но не ограничения, реализации изобретения могут содержать, по меньшей мере, два определенно разных вида компьютерно-читаемых носителей: компьютерные носители (устройства) хранения и среду передачи.
[00141] Компьютерные носители (устройства) хранения включают в себя RAM, ROM, EEPROM, CD-ROM, твердотельные накопители ("SSD") (например, на основе RAM), флэш-память, память с фазовым переходом ("PCM"), другие типы памяти, другой накопитель на оптическом диске, накопитель на магнитном диске или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться, чтобы хранить желаемое средство кодирования программы в форме компьютерно-исполняемых инструкций или структур данных, и к которому может обращаться компьютер общего назначения или специализированный компьютер.
[00142] Реализация устройств, систем и способов, раскрытых в данном документе, может передаваться через компьютерную сеть. "Сеть" определена как одна или более линий передачи данных, которые предоставляют возможность передачи электронных данных между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация передается или предоставляется по сети или другому коммуникационному соединению (либо проводному, беспроводному, либо комбинации проводного или беспроводного) в компьютер, компьютер надлежащим образом рассматривает соединение как среду передачи. Среда передачи может включать в себя сеть и/или линии передачи данных, которые могут использоваться, чтобы переносить желаемое средство кодирования программы в форме компьютерно-исполняемых инструкций или структур данных, и к которым может обращаться компьютер общего назначения или специализированный компьютер. Комбинации вышеперечисленного также следует включить в число компьютерно-читаемых носителей.
[00143] Компьютерно-исполняемые инструкции содержат, например, инструкции и данные, которые, когда выполняются в процессоре, инструктируют компьютеру общего назначения, специализированному компьютеру или специализированному устройству обработки выполнять определенную функцию или группу функций. Компьютерно-исполняемые инструкции могут быть, например, двоичным кодом, инструкциями промежуточного формата, такими как на языке ассемблера, или даже исходным кодом. Хотя предмет изобретения описан на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что предмет изобретения, заданный в прилагаемой формуле изобретения, не обязательно ограничен характерными признаками или действиями, описанными выше. Скорее, описанные признаки и действия раскрыты как примерные формы реализации формулы изобретения.
[00144] Специалисты в данной области техники поймут, что изобретение может быть применено на практике в сетевых вычислительных окружениях со многими типами конфигураций компьютерной системы, включающими в себя бортовой компьютер транспортного средства, персональные компьютеры, настольные компьютеры, портативные компьютеры, процессоры для обработки сообщений, карманные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронную аппаратуру, сетевые ПК, миникомпьютеры, мейнфреймы, мобильные телефоны, PDA, планшеты, пейджеры, маршрутизаторы, коммутаторы, различные запоминающие устройства и т.п. Изобретение также может быть применено на практике в распределенных системных окружениях, где локальная и удаленная компьютерные системы, которые связаны (либо проводными линиями передачи данных, беспроводными линиями передачи данных, либо комбинацией проводных и беспроводных линий передачи данных) через сеть, обе выполняют задачи. В распределенном системном окружении программные модули могут размещаться как на локальных, так и на вытесненных запоминающих устройствах.
[00145] Дополнительно, когда это целесообразно, функции, описанные в данном документе, могут быть выполнены в одном или более из следующего: аппаратные средства, программное обеспечение, программно-аппаратные средства, цифровые компоненты или аналоговые компоненты. Например, одна или более специализированных интегральных микросхем (ASIC) могут быть запрограммированы, чтобы выполнять одну или более из систем и процедур, описанных в данном документе. Некоторые термины используются по всему последующему описанию и в формуле изобретения, чтобы ссылаться на конкретные компоненты системы. Как поймет специалист в области техники, компоненты могут называться различными названиями. Этот документ не предназначен, чтобы делать различие между компонентами, которые отличаются по названию, но не по функции.
[00146] Следует отметить, что варианты осуществления датчиков, обсужденные выше, могут содержать компьютерные аппаратные средства, программное обеспечение, программно-аппаратные средства или любую комбинацию их, чтобы выполнять, по меньшей мере, часть их функций. Например, датчик может включать в себя компьютерный код, сконфигурированный, чтобы исполняться в одном или более процессорах, и может включать в себя аппаратную логику/электрические схемы, управляемые посредством компьютерного кода. Эти примерные устройства предоставляются в данном документе в целях иллюстрации и не предназначены быть ограничивающими. Варианты осуществления настоящего изобретения могут быть реализованы в дополнительных типах устройств, которые будут известны специалистам в соответствующей области(ях) техники.
[00147] По меньшей мере, некоторые варианты осуществления изобретения были направлены на компьютерные программные продукты, содержащие такую логику (например, в форме программного обеспечения), сохраненные на любом компьютерно-используемом носителе. Такое программное обеспечение, когда исполняется в одном или более устройствах обработки данных, инструктирует устройству работать, как описано в данном документе.
[00148] В то время как разные варианты осуществления настоящего изобретения были описаны выше, должно быть понятно, что они были представлены только в качестве примера, а не в ограничении. Специалистам в соответствующей области техники будет ясно, что различные изменения в форме и деталях могут быть сделаны здесь без отступления от духа и цели изобретения. Таким образом, широта и рамки настоящего изобретения не должны ограничиваться любым из вышеописанных примерных вариантов осуществления, но должны быть определены только в соответствии с последующей формулой изобретения и ее эквивалентами. Вышеприведенное описание представлено для целей иллюстрации и описания. Оно не предназначено для того, чтобы быть полным или чтобы ограничивать раскрытие сущности точной раскрытой формой. Множество модификаций и разновидностей возможно в свете вышеуказанных принципов. Дополнительно, следует отметить, что любые из вышеуказанных альтернативных реализаций могут использоваться в любой комбинации, требуемой для того, чтобы формировать дополнительные гибридные реализации раскрытия сущности.