СПОСОБ, КОМПЬЮТЕРНАЯ ПРОГРАММА И УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ МЕСТА ЗАХВАТА
METHOD, COMPUTER PROGRAM AND APPARATUS FOR DETERMINING GRIPPING LOCATION

Настоящее изобретение относится к решению для манипулирования физическими объектами с помощью манипулятора и захватного приспособления. В частности, настоящее изобретение относится к способу определения места захвата для захвата объекта.
Уровень техники
Робототехнические системы широко используются во многих отраслях промышленности для выполнения повторяющихся задач, которые не требуют больших возможностей действительного визуального или когнитивного моделирования манипулируемых физических объектов или большого умения захвата и перемещения объектов. Роботы также могут быть созданы для работы в условиях окружающей среды, неблагоприятных для рабочих, или для работы с материалами, опасными для людей, например, токсичными или радиоактивными материалами, отходами или массивными объектами. Желательно создать такие робототехнические системы автономными, насколько это возможно, чтобы минимизировать долю необходимого участия человека.
Когда необходим манипулятор для манипулирования объектами, такой манипулятор, как правило, оснащается устройством, пригодным для захвата объектов, представляющих интерес. Такое устройство может, например, напоминать руку, тиски или зажим. В то время как программирование робота для выполнения повторяющихся задач является относительно легким, при автоматическом манипулировании объектами имеются сложные проблемы, связанные с распознаванием объектов в изменяющейся среде или среде, заполненной другими объектами, и с манипулированием какого-либо объекта, находящегося среди других объектов.
В робототехнических системах, используемых для манипулирования объектами, как правило, заранее требуется знать форму объектов, чтобы захватное приспособление манипулятора могло быть сконструировано для надежного захвата объектов. При захвате объектов в различных местах различной ориентации и геометрии из неструктурированной среды, например, при сортировке отходов, захватное приспособление не может быть сконструировано заранее для конкретного объекта, и должна использоваться более общая конструкция захватного приспособления.
Одним из недостатков известного уровня техники является то, что трудно разработать захватное приспособление, которое могло бы надежно захватывать объекты различных форм и размеров среди других мешающих объектов или препятствий.
Сущность изобретения
В соответствии с одним аспектом изобретения предлагается способ, включающий: получение по меньшей мере одного изображения, содержащего по меньшей мере один объект, анализ этого по меньшей мере одного изображения для определения по меньшей мере одного места захвата для захвата объекта, выбор места захвата из упомянутого по меньшей мере одного места захвата на основе заранее заданного критерия и выдачу по меньшей мере одной команды захватному приспособлению для захвата объекта в выбранном месте захвата.
В соответствии с другим аспектом изобретения предлагается компьютерная программа, содержащая программный код, который включает команды для осуществления способа.
В соответствии с еще одним аспектом изобретения предлагается устройство, содержащее средства для получения по меньшей мере одного изображения, содержащего объект, средства для анализа этого по меньшей мере одного изображения для определения по меньшей мере одного места захвата для захвата объекта, средства для выбора места захвата из упомянутого по меньшей мере одного места на основе заранее заданного критерия и средства для выдачи по меньшей мере одной команды захватному приспособлению для захвата объекта в выбранном месте захвата.
В одном варианте осуществления изобретения шаги анализа и выбора также включают: вычисление маски фона, которая является маской пикселей изображения, которые не являются частью какого-либо объекта в изображении, вычисление маски объекта, которая является маской пикселей изображения, которые являются частью объекта, подлежащего захвату, вычисление маски захватного приспособления, которая является маской пикселей изображения, соответствующих захватывающим частям захватного приспособления, вычисление маски области захвата, которая является маской пикселей изображения, которые помещаются в захватном приспособлении, наложение маски захватного приспособления на маску фона в по меньшей мере одном месте, вычисление перекрытия маски захватного приспособления и маски фона в упомянутом по меньшей мере одном месте, наложение маски области захвата на маску объекта в по меньшей мере одном месте, вычисление перекрытия маски области захвата и маски объекта в упомянутом по меньшей мере одном месте и выбор места захвата на основе вычислений перекрытий.
В одном варианте осуществления изобретения способ также включает назначение каждому пикселю в по меньшей мере одном изображении значения, соответствующего вероятности того, что данный пиксель принадлежит объекту.
В одном варианте осуществления изобретения способ также включает назначение первого показателя качества для перекрытия маски захватного приспособления и маски фона в упомянутом по меньшей мере одном месте на основе вычисления перекрытия маски захватного приспособления и маски фона в упомянутом по меньшем мере одном месте, назначение второго показателя качества для перекрытия маски области захвата и маски объекта на основе вычисления перекрытия маски области захвата и маски объекта в упомянутом по меньшей мере одном месте и выбор места захвата на основе первого и второго показателей качества.
В одном варианте осуществления изобретения выбор места захвата на основе первого и второго показателей качества также включает выбор места захвата, для которого произведение первого и второго показателей качества является наибольшим.
В одном варианте осуществления изобретения выбор места захвата на основе первого и второго показателей качества также включает установку минимального значения для первого показателя качества выбираемого места захвата.
В одном варианте осуществления изобретения способ также включает вычисление множества масок захватного приспособления и масок области захвата, которые соответствуют различным положениям захватного приспособления.
В одном варианте осуществления изобретения маску захвата и маску области захвата предварительно вычисляют для набора возможных положений захватного приспособления.
В одном варианте осуществления изобретения маску захвата и маску области захвата вычисляют для набора возможных положений захватного приспособления в реальном времени.
В одном варианте осуществления изобретения вычисление перекрытия масок также включает: разделение маски захватного приспособления на части маски захватного приспособления; вычисление перекрытия части маски захватного приспособления и маски фона; вычисление перекрытия для каждой из других частей маски захватного приспособления путем сдвига значений, вычисленных для первой части маски захватного приспособления, на величину смещения каждой другой части маски захватного приспособления относительно первой части маски захватного приспособления в маске захватного приспособления и вычисление перекрытия всей маски захватного приспособления и маски фона как суммы перекрытий, вычисленных для частей маски захватного приспособления.
В одном варианте осуществления изобретения вычисление перекрытия масок также включает: разделение маски области захвата на части маски области захвата; вычисление перекрытия части маски области захвата и маски объекта; вычисление перекрытия для каждой из других частей маски области захвата путем сдвига значений, вычисленных для первой части маски области захвата, на величину смещения каждой другой части маски области захвата относительно первой части маски области захвата в маске области захвата и вычисление перекрытия всей маски области захвата и маски объекта как суммы перекрытий, вычисленных для частей маски области захвата.
В одном варианте осуществления изобретения для вычисления перекрытий используют свертку с помощью быстрого преобразования Фурье (Fast Fourier Transform, FFT).
В одном варианте осуществления изобретения некоторые или все шаги осуществляют с помощью программируемых пользователем вентильных матриц (Field Programmable Gate Arrays, FPGA).
В одном варианте осуществления изобретения устройство содержит средства для реализации различных вариантов осуществления изобретения.
В одном варианте осуществления изобретения устройство содержит средства для вычисления маски фона, которая является маской пикселей изображения, которые не являются частью какого-либо объекта в изображении; вычисления маски объекта, которая является маской пикселей изображения, которые являются частью объекта, подлежащего захвату; вычисления маски захватного приспособления, которая является маской пикселей изображения, соответствующих захватывающим частям захватного приспособления; вычисления маски области захвата, которая является маской пикселей изображения, которые помещаются внутри захватного приспособления; наложения маски захватного приспособления на маску фона в по меньшей мере одном месте; вычисления перекрытия маски захватного приспособления и маски фона в упомянутом по меньшей мере одном месте; наложения маски области захвата на маску объекта в по меньшей мере одном месте; вычисления перекрытия маски области захвата и маски объекта в упомянутом по меньшей мере одном месте; при этом средства для выбора выполнены с возможностью выбора места захвата на основе вычислений перекрытий.
В одном варианте осуществления изобретения устройство содержит средства для назначения каждому пикселю в по меньшей мере одном изображении значения, соответствующему вероятности того, что этот пиксель принадлежит объекту.
В одном варианте осуществления изобретения устройство содержит средства для назначения первого показателя качества для перекрытия маски захватного приспособления и маски фона в по меньшей мере одном месте на основе вычисления перекрытия маски захватного приспособления и маски фона в упомянутом по меньшей мере одном месте и для назначения второго показателя качества для перекрытия маски области захвата и маски объекта на основе вычисления перекрытия маски области захвата и маски объекта в упомянутом по меньшей мере одном месте; при этом средства для выбора выполнены с возможностью выбора места захвата на основе первого и второго показателей качества.
В одном варианте осуществления изобретения средства для выбора выполнены с возможностью выбора места захвата, для которого произведение первого и второго показателей качества является наибольшим.
В одном варианте осуществления изобретения средства для выбора выполнены с возможностью установления минимального значения для первого показателя качества выбираемого места захвата.
В одном варианте осуществления изобретения средства для вычисления выполнены с возможностью вычисления множества масок захватного приспособления и масок области захвата, которые соответствуют различным положениям захватного приспособления.
В одном варианте осуществления изобретения средства для вычисления выполнены с возможностью разделения маски захватного приспособления на части маски захватного приспособления; вычисления перекрытия части маски захватного приспособления и маски фона; вычисления перекрытия для каждой из других частей маски захватного приспособления путем сдвига значений, вычисленных для первой части маски захватного приспособления, на величину смещения каждой другой части маски захватного приспособления относительно первой части маски захватного приспособления в маске захватного приспособления и вычисления перекрытия всей маски захватного приспособления и маски фона как суммы перекрытий, вычисленных для частей маски захватного приспособления.
В одном варианте осуществления изобретения средства для вычисления выполнены с возможностью разделения маски области захвата на части маски области захвата; вычисления перекрытия части маски области захвата и маски объекта; вычисления перекрытия для каждой другой части маски области захвата путем сдвига значений, вычисленных для первой части маски области захвата, на величину смещения каждой другой части маски области захвата относительно первой части маски области захвата в маске области захвата и вычисления перекрытия всей маски области захвата и маски объекта как суммы перекрытий, вычисленных для частей маски области захвата.
Настоящее изобретение раскрывает решение, где с помощью машинного зрения распознаются "ручки" на объектах. "Ручка" представляет часть объекта, за которую он может быть захвачен установленным захватным приспособлением. Преимущества по меньшей мере одного варианта осуществления изобретения заключаются в том, что объект, являющийся более крупным, чем раскрытие захватного приспособления, может все-таки быть захвачен, если он имеет меньшую выступающую часть, которая может использоваться в качестве ручки, за которую захватное приспособление осуществляет захват. Более того, в по меньшей мере одном варианте осуществления изобретения предлагается решение, в котором имеется возможность определять оптимальное место захвата для захвата объекта.
Краткое описание чертежей
Прилагаемые чертежи, необходимые для понимания изобретения, составляют часть настоящего описания и иллюстрируют варианты осуществления изобретения и вместе с описанием помогают объяснить принципы изобретения.
Фиг.1 иллюстрирует робототехническую систему в соответствии с вариантом осуществления изобретения.
Фиг.2 раскрывает блок-схему, иллюстрирующую способ в соответствии с вариантом осуществления изобретения.
Фиг.3 раскрывает решение для анализа по меньшей мере одного изображения для определения по меньшей мере одного места захвата для захвата объекта и для выбора места захвата из по меньшей мере одного места захвата на основе заранее заданного критерия в соответствии с вариантом осуществления изобретения.
Фиг.4A раскрывает пример возможной маски захватного приспособления.
Фиг.4B раскрывает другой пример возможной маски захватного приспособления.
Фиг.5A раскрывает маску, разделенную на части в соответствии с вариантом осуществления изобретения.
Фиг.5B иллюстрирует вычисление свертки части маски, изображенной на фиг.5A, в соответствии с вариантом осуществления изобретения.
Подробное описание изобретения
Далее будут подробно представлены варианты осуществления настоящего изобретения, примеры которого проиллюстрированы на приложенных чертежах.
Фиг.1 иллюстрирует робототехническую систему, выполняющую захват объектов в соответствии с вариантом осуществления изобретения. Робототехническая система 100 содержит робота 110, например, промышленного робота, имеющего манипулятор 116 робота. С манипулятором 116 робота соединено захватное приспособление 112, которое может быть зажимом или тисками. Манипулятор 116 робота способен перемещать захватное приспособление 112 в пределах рабочей области 102. Манипулятор 116 робота может содержать несколько двигателей, например серводвигателей, которые обеспечивают возможность контроля манипуляторов при вращении, подъеме и захвате объектов. Различные движения манипулятора 116 робота и захватного приспособления 112 запускаются, например, приводами. Приводы могут быть, например, электрическими, пневматическими или гидравлическими или любой их комбинацией. Приводы могут перемещать или вращать различные элементы робота 110. Может использоваться набор электрических драйверов для преобразования сигналов обработки данных, другими словами, команд от устройства 120, к соответствующим уровням напряжения или мощности для управления приводами манипулятора 116 робота. В ответ на сигналы управления от устройства 120, приводы выполняют различные механические действия, включая, но не ограничиваясь этим: позиционирование захватного приспособления 112 в конкретном месте в пределах рабочей области 102, опускание или поднимание захватного приспособления 112, а также закрытие и раскрытие захватного приспособления 112.
Робот 110 может содержать различные датчики. Например, датчики могут представлять собой различные датчики положения (не показаны), которые указывают положение манипулятора 116 робота и захватного приспособления 112, а также открытое/закрытое состояние захватного приспособления 112. Открытое/закрытое состояние захватного приспособления 112 не ограничивается простым битом "да/нет". В одном варианте осуществления изобретения захватное приспособление 112 может указывать мультибитовое открытое/закрытое состояние в отношении каждого из своих пальцев, в результате чего может быть получена индикация размера и/или формы объекта (объектов) в захватном приспособлении.
Кроме датчиков положения набор датчиков может включать тензодатчики, также известные как датчики деформации или датчики с силовой обратной связью, которые показывают деформацию, испытываемую различными элементами манипулятора 116 робота и захватного приспособления 112. В иллюстративном, но не ограничивающем изобретение примере датчики деформации представляют собой переменные сопротивления, которые изменяются в зависимости от прикладываемого к ним напряжения сжатия. Поскольку изменения сопротивления малы по сравнению с абсолютным значением сопротивления, измерение переменных сопротивлений производится, как правило, с помощью моста Уитстона.
В одном варианте осуществления изобретения с захватным приспособлением 112 или манипулятором 116 робота соединена камера 114, которая направлена таким образом, чтобы по меньшей мере частично иметь в поле зрения объекты, которые захватываются захватным приспособлением 112. На фиг.1 камера показана внутри захватного приспособления 112. Камера 114 может также быть расположена на отдельном стержне, соединенном с манипулятором 116 робота, таким образом, чтобы объекты, захватываемые захватным приспособлением 112, находились в поле зрения камеры 114. В другом варианте осуществления изобретения камера 114 может также размещаться в удаленном местоположении, независимо от захватного приспособления 112 или манипулятора 116 робота. В одном варианте осуществления изобретения робот 110 сортирует объекты, находящиеся в месте 102 действия, то есть в его рабочем пространстве. Место 102 действия включает объекты, такие как объекты 103, 104 и 105. На фиг.1 показано, что робот 110 выполнил операцию захвата целевого объекта 105 и удерживает его в захватном приспособлении 112.
Робот 110 соединен с устройством 120 обработки данных, для краткости, просто с устройством. Внутренние функции устройства 120 показаны в блоке 140. Устройство 120 содержит по меньшей мере один процессор 142, оперативное запоминающее устройство (Random Access Memory, RAM) 148 и жесткий диск 146 (Hard Disk, HD). Процессор 142 управляет манипулятором робота путем исполнения программных объектов 150, 152, 154 и 156. Устройство 120 содержит также по меньшей мере периферийный интерфейс 145 камеры и интерфейс (Interface, IF) 144 робота для управления роботом 110. Периферийный интерфейс 145 может быть шиной, например, универсальной последовательной шиной (Universal Serial Bus, USB). Устройство 120 может также быть соединено с терминалом 130, который содержит по меньшей мере дисплей и клавиатуру. Терминал 130 может быть переносным компьютером, соединенным с помощью локальной вычислительной сети с устройством 120. В другом варианте осуществления изобретения устройство 120 и терминал 120 выполнены в виде одного компьютера.
Для взаимодействия с внешними устройствами, такими как робот 110, устройство 120 содержит или использует внешние схемы приема/передачи, такие как интерфейс 144 робота, которые представляют собой схему передачи, схему приема и могут содержать внутреннюю или внешнюю антенну (не показана). Устройство 120 может использовать несколько различных технологий интерфейса для взаимодействия с физическим миром, который в настоящем примере осуществления изобретения включает робота 110, захватное приспособление 112 и камеру 114. Беспроводные локальные сети (wireless local-area network, WLAN) и беспроводные интерфейсы ближнего действия, такие как интерфейсы инфракрасной связи, радиоинтерфейсы или Bluetooth, являются иллюстративными и не ограничивающими изобретение примерами таких схем приема/передачи. Вместо таких технологий беспроводной связи или в дополнение к ним устройство обработки данных может использовать проводные соединения, такие как USB, любой параллельный или последовательный интерфейс или другие виды промышленных стандартных интерфейсов или собственных интерфейсов.
Кроме того, память 140 устройства 120 может содержать набор программ или, в общем, программных объектов, которые исполняются с помощью по меньшей мере одного процессора 142. Имеется логический объект 150 контроллера манипулятора, который выдает команды роботу 110 по интерфейсу 144 робота для управления вращением, поднятием и захватом манипулятора 116 робота и захватного приспособления 112. Логический объект 150 контроллера манипулятора может также принимать данные датчиков, относящиеся к измеренному вращению, поднятию и захвату манипулятора 116 робота и захватного приспособления 112. Логический объект 150 контроллера манипулятора может активировать манипулятор новыми командами, выданными на основе обратной связи, полученной устройством 120 по интерфейсу 144. Логический объект 150 контроллера манипулятора выполнен с возможностью выдачи команд роботу 110 для выполнения четко определенных операций высокого уровня. Примером операции высокого уровня является перемещение манипулятора робота в заданное положение. Логический объект 150 контроллера манипулятора может также использовать различные программные драйверы, процедуры или динамически подключаемые библиотеки для преобразования операции высокого уровня в последовательность операций низкого уровня, например, вывода соответствующей последовательности выходных сигналов посредством электрических драйверов к приводам робота 110.
Логический объект 152 контроллера камеры взаимодействует с камерой 114 с помощью интерфейса 145. Логический объект 152 контроллера камеры может обеспечить выполнения камерой 114 снимков в заданные интервалы времени, начиная с момента времени, указанного логическим объектом 152 контроллера камеры. В общем, логический объект 152 контроллера камеры может выдать команду камере 114 сделать снимок в любой момент времени. Логический объект 152 контроллера камеры получает снимки, сделанные камерой 114, через интерфейс 145 и сохраняет снимки в памяти 140. В другом варианте осуществления изобретения камера 114 выполнена с возможностью записи видеопотока, который обрабатывается устройством 120 для извлечения неподвижных изображений.
Логический объект 154 модуля извлечения объекта выполнен с возможностью извлечения целевого объекта, подлежащего захвату, из заранее заданного числа изображений источника.
Модуль 156 выбора места захвата, который может выполнять также анализ целевого объекта на основе различных визуальных характеристик целевого объекта, таких как форма, размер, цвет или текстура, определяет выбранное место захвата из набора возможных мест захвата на основе заранее заданного критерия. Функция выбора обсуждается подробно ниже.
В не ограничивающем изобретение примере местом 102 действия является конвейерная лента или часть конвейерной ленты, которая пересекает рабочее пространство робота 110. В одном варианте осуществления изобретения устройство 120 имеет мало или вообще не имеет априорной информации об объектах 103, 104 и 105 в пределах места 102 действия, такой как размер, форма и/или цвет объектов, представляющих интерес. В некоторых вариантах осуществления изобретения устройство 120 может иметь некоторую априорную информацию об объектах, представляющих интерес, или оно может получить информацию об объектах путем их изучения, однако по меньшей мере фон (другие объекты), положение и ориентация объектов, представляющих интерес, как правило, априорно неизвестны. То есть объекты 103, 104 и 105 могут иметь случайные положения и ориентации в месте 102 действия и могут перекрываться друг другом.
Когда по меньшей мере один процессор 142 выполняет функциональные объекты, связанные с изобретением, память 148 содержит логические объекты, такие как логический объект 150 контроллера манипулятора, логический объект 152 контроллера камеры, логический объект 154 модуля извлечения объекта и логический объект 156 модуля выбора места захвата. Функциональные объекты в устройстве 120, показанные на фиг.1, могут быть реализованы разными способами. Они могут быть реализованы в виде процессов, исполняемых собственной операционной системой сетевого узла. Объекты могут быть реализованы как отдельные процессы или нити, или таким образом, что несколько различных объектов осуществляются с помощью одного процесса или нити. Процессом или нитью может быть, например, программный блок, содержащий подпрограммы, то есть, например, процедуры и функции. Функциональные объекты могут быть реализованы в виде отдельных компьютерных программ или в виде одной компьютерной программы, содержащей несколько процедур или функций, реализующих эти объекты. Программные блоки хранятся на по меньшей мере одном машиночитаемом носителе, таком как, например, запоминающая схема, карта памяти, магнитный или оптический диск. Некоторые функциональные объекты могут быть реализованы в виде программных модулей, связанных с другим функциональным объектом. Функциональные объекты, показанные на фиг.1, могут также храниться в отдельных запоминающих устройствах и исполняться отдельными процессорами, которые взаимодействуют, например, по шине передачи сообщений или внутренней сети в пределах сетевого узла. Примером такой шины передачи сообщений является шина для подключения периферийных компонентов (Peripheral Component Interconnect, PCI).
В одном варианте осуществления изобретения программные объекты 150-156 могут быть реализованы в виде отдельных программных объектов, таких как, например, подпрограммы, процессы, нити, способы, объекты, модули и последовательности программных кодов. Они могут быть просто логическими функциями внутри программного обеспечения в устройстве 120, которые не были сгруппированы ни в какие конкретные отдельные подпрограммы, процессы, нити, способы, объекты, модули и последовательности программных кодов. Их функции могут быть распределены в пределах всего программного обеспечения устройства 120. Некоторые функции могут быть выполнены в операционной системе устройства 120.
Варианты осуществления изобретения, описанные в настоящем документе со ссылкой на фиг.1, могут быть использованы в любой комбинации друг с другом. Несколько вариантов осуществления изобретения могут быть объединены вместе и образовывать еще один вариант осуществления изобретения.
Фиг.2 раскрывает блок-схему, иллюстрирующую способ в соответствии с вариантом осуществления изобретения.
На шаге 200 получают по меньшей мере одно изображение, содержащее по меньшей мере один объект. Упомянутое по меньшей мере одно изображение может содержать один или множество объектов. Объекты могут также перекрываться друг с другом. Таким образом, в некоторых случаях объект может в действительности быть неотделим от другого объекта. Упомянутое по меньшей мере одно изображение анализируют на шаге 202 для определения по меньшей мере одного места захвата для захвата объекта. На основе анализа выбирают на шаге 204 место захвата из по меньшей мере одного места захвата на основе заранее заданного критерия. На шаге 206 выдают по меньшей мере одну команду захватному приспособлению для захвата объекта в выбранном месте захвата.
Фиг.3 раскрывает вариант осуществления изобретения для анализа по меньшей мере одного изображения для определения по меньшей мере одного места захвата для захвата объекта и для выбора места захвата из упомянутого по меньшей мере одного места захвата на основе заранее заданного критерия. Выполняют функции анализа и выбора, например с помощью модуля 154 извлечения объекта и/или модуля 156 выбора места захвата, показанных на фиг.1.
Как показано на фиг.1, используют одну или более камер для получения одного изображения рабочей области (300). Рабочая область может быть стационарной или переменной, например, в случае движущейся конвейерной ленты. Изображение может быть изначально неподвижным изображением, снятым камерой, или неподвижным изображением, извлеченным из видеопотока. В одном варианте осуществления изобретения изображение является двумерным изображением. В другом варианте осуществления изобретения изображение является трехмерным изображением. В одном варианте осуществления изобретения трехмерное изображение разделено на одну или более двумерных частей, которые затем обрабатывают.
Изображение обрабатывают для распознавания области в изображении, которая соответствует объекту, подлежащему захвату. В одном варианте осуществления изобретения каждому пикселю в исходном изображении назначают значение, которое соответствует вероятности того, что данный пиксель принадлежит или не принадлежит объекту. Для некоторых пикселей может оказаться неопределенным, являются ли эти пиксели частью объекта или нет, например для нечетких пикселей на границах объекта. Поэтому в одном варианте осуществления изобретения вычисляют две маски изображения. Первая маска изображения является маской (306) фона, а вторая маска изображения является маской (308) объекта.
Маска (306) фона является маской пикселей в исходном изображении, которые не являются частью каких-либо объектов или препятствий (часть с сеткой на фиг.3). Другими словами, маска пикселей представляет часть свободного пространства, в котором может работать захватное приспособление, показанное на фиг.1. Маска (308) объекта является маской пикселей в исходном изображении, которые являются частью объекта, подлежащего захвату (область объекта, показанная черным цветом на фиг.3).
Для того чтобы найти место захвата, в одном варианте осуществления изобретения формируют еще одну пару масок: маску (302) захватного приспособления и маску (304) области захвата. Маска (302) захватного приспособления является маской пикселей, соответствующих частям захватного приспособления. Маска (302) захватного приспособления представлена в настоящем варианте осуществления изобретения в виде трех отдельных «окончаний пальцев» трехпальцевого захватного приспособления, имеющего треугольную форму. В других вариантах осуществления изобретения маска (302) захватного приспособления может также принимать другие формы. Свободное пространство между верхними окончаниями пальцев и нижними окончаниями пальцев представляет максимальное расстояние захвата между окончаниями пальцев. Маска (304) области захвата является маской пикселей, которые помещаются внутри захватного приспособления. Меньший прямоугольник в маске (304) области захвата соответствует пространству внутри захватного приспособления, которое объект предпочтительно заполняет частично или полностью, когда этот объект захвачен. В одном варианте осуществления изобретения меньший прямоугольник в маске (304) области захвата представляет минимальную область/объем внутри захватного приспособления, которую должна заполнять захваченная часть объекта. В другом варианте осуществления изобретения может быть несколько отдельных масок области захвата, которые используют при определении места захвата. По меньшей мере некоторые из них могут, как и выше, представлять минимальную область/объем внутри захватного приспособления, которую должна заполнять захваченная часть объекта. Более того, в одном варианте осуществления изобретения несколько отдельных масок захватного приспособления могут использоваться одновременно для определения места захвата. В одном варианте осуществления изобретения место захвата, которое подлежит выбору, не обязательно должно заполнять всю маску (304) области захвата (меньший прямоугольник).
Для вычисления места захвата объекта, сначала маску (302) захватного приспособления накладывают на маску (306) фона в различных местах и вычисляют перекрытие двух масок в каждом месте отдельно. Места, где маска (302) захватного приспособления и маска (306) фона полностью не перекрываются, соответствуют положениям захвата, где захватное приспособление будет с чем-то сталкиваться. Следовательно, эти места не могут рассматриваться как потенциальные места для захвата объекта, и в одном варианте осуществления изобретения такие места захвата отвергаются.
Ссылочные позиции 310 и 312 представляют пример ситуации, когда области («окончания пальцев») на маске (302) захватного приспособления не полностью перекрываются с маской (306) фона, а маска (304) области захвата перекрывается с маской (308) объекта относительно хорошо. Следовательно, как и выше, данное место не рассматривается как возможное место для захвата объекта, и, таким образом, данное место захвата также отвергается.
Ссылочные позиции 314 и 316 представляют пример ситуации, когда области («окончания пальцев») на маске (302) захватного приспособления полностью перекрываются с маской (306) фона, но маска (304) области захвата перекрывается с маской (308) объекта только на маленьком участке. Следовательно, в одном варианте осуществления изобретения, как и выше, это место не рассматривается как возможное место для захвата объекта, и, таким образом, данное место захвата отвергается.
Ссылочные позиции 318 и 320 представляют пример ситуации, когда области («окончания пальцев») на маске (302) захватного приспособления полностью перекрываются с маской (306) фона, и также маска (304) области захвата полностью перекрывается с маской (308) объекта. Этот пример, таким образом, представляет единственное возможное место захвата.
Таким образом, маску (302) захватного приспособления накладывают на маску (306) фона в различных местах и вычисляют перекрытие масок. Места, для которых величина перекрытия высока, являются местами, где захват будет, в принципе, возможен. Аналогично, маску (304) области захвата накладывают на маску (308) объекта в различных местах и вычисляют перекрытие масок. Места, для которых величина перекрытия как между маской (302) захватного приспособления и маской (306) фона, так и между маской (304) области захвата и маской (308) объекта высока, являются местами, где захватное приспособление окружает значительную часть объекта, поэтому успешный захват более вероятен.
Таким образом, хорошим кандидатом на место захвата является место, для которого у захватного приспособления имеется достаточное пространство для работы вокруг объекта, и размер объекта в месте захвата соответствует захватному приспособлению. Для определения наилучшей ориентации для захвата отдельные маски (302) захватного приспособления и маски (304) области захвата, которые соответствуют различным положениям захватного приспособления, могут быть использованы для повторения процедуры, описанной выше, для каждой пары с последующим выбором места захвата и положения, которое дает наибольшее значение перекрытия. Эти маски могут быть предварительно вычисленными для набора возможных положений захватного приспособления или могут быть рассчитаны на лету.
В одном варианте осуществления изобретения обеим из вышеуказанных перекрытий дается числовой показатель качества. Место, для которого произведение показателей качества является наибольшим, выбирают в качестве наилучшего места захвата объекта. В одном варианте осуществления изобретения для по меньшей мере одного из показателей качества определяют минимальное значение. На практике это гарантирует, что захватное приспособление имеет достаточное пространство для перемещения к выбранному месту захвата.
Одним из возможных способов вычисления перекрытий является свертка масок. Свертка может эффективно вычисляться с помощью алгоритма быстрого преобразования Фурье (БПФ) (Fast Fourier Transform, FFT). В одном варианте осуществления изобретения для масок вычисляют дискретное преобразование Фурье. После этого производят вычисление перекрытия путем поэлементного умножения преобразованных масок. После умножения результат подвергают обратному БПФ, в результате чего получают свертку исходных масок.
Некоторые или все вычисления в описанном способе могут быть выполнены параллельно и, таким образом, хорошо подходят для реализации с использованием программируемых пользователем вентильных матриц (Field Programmable Gate Arrays, FPGA). Матрицы FPGA широко используются для задач, таких как БПФ и свертка, и с их помощью могут быть эффективно реализованы любая из частей описанного способа или способ в целом.
В другом варианте осуществления изобретения маску захватного приспособления разделяют на небольшие идентичные части. На фиг.5А показано, что маска захватного приспособления разделена на части. Следует отметить, что в этом варианте осуществления изобретения все части маски можно рассматривать как копии одной части (500), сдвинутые с некоторым смещением dx, dy. Вычисления затем производят с использованием этой части (500) в качестве маски, как показано на фиг.5B, путем вычисления перекрытия между основной маской и упомянутой частью в различных местах. Поскольку упомянутая часть маски меньше, чем вся маска, количество операций меньше, чем количество операций, необходимое для всей маски, и, соответственно, вычисление производится быстрее. Конечным результатом является массив значений, который соответствует вычисленному перекрытию упомянутой части и основной маски в различных местах относительно основной маски.
Эти значения, вычисленные для первой части, могут затем использоваться повторно в качестве значений для других частей. Вычисление для всей маски может накапливаться из значений, когда они сдвигаются перед суммированием на величину, соответствующую разности мест частей маски. Другими словами, свертка для всей маски будет суммой сверток для частей маски. Однако другие свертки будут таким же массивом, что и первая свертка, только сдвинутые на разность dx, dy относительно первой части. Таким образом, свертка для всей маски в каждой точке изображения является значением массива в этой точке + значение массива в (точке + смещение для второй части) + значение массива в (точке + смещение для третьей части) и т.д. для всех частей разделенной маски.
Вышеуказанная процедура является даже более эффективной, чем использование БПФ для вычисления свертки, так как вычисление БПФ и обратного БПФ является дорогостоящей операцией по сравнению с накоплением маски (одно суммирование для каждого пикселя в части маски). Другим преимуществом является то, что при вычислении перекрытия можно использовать также другие математические операции, кроме умножения, например нахождение минимального значения из значений пикселей в двух масках или другие функции, которые не могут быть выполнены эффективно с помощью БПФ.
На фиг.4А и 4B показаны два примера возможных масок захватного приспособления. В обоих примерах расстояние D, показанное стрелкой, может изменяться в зависимости от раскрытия захватного приспособления.
Варианты осуществления изобретения, описанные в настоящем документе, могут быть использованы в любой комбинации друг с другом. Несколько вариантов могут объединяться вместе для получения еще одного варианта осуществления изобретения.
Показанные в качестве примера варианты выполнения настоящего изобретения могут быть встроены в любое подходящее устройство, например, включая любые подходящие серверы, рабочие станции, персональные компьютеры, ноутбуки, персональные цифровые секретари, Интернет-приложения, портативные устройства, мобильные телефоны, беспроводные устройства, другие устройства и т.п., которые способны выполнять процессы, раскрытые в примерах выполнения настоящего изобретения, и могут осуществлять связь посредством одного или более механизмов интерфейса, включая, например, доступ в Интернет, телекоммуникации в любой подходящей форме (например, посредством голоса, с использованием модема и т.п.), среды беспроводной связи, одну или более сетей беспроводной связи, сотовые системы связи, системы связи 3G, системы связи 4G, телефонные коммутируемые сети общего назначения (Public Switched Telephone Network, PSTN), сети пакетной передачи данных (Packet Data Network, PDN), Интернет, интранет, их комбинацию и т.п.
Описанные выше варианты выполнения настоящего изобретения даны только для примера, и может использоваться множество различных вариантов конкретного аппаратного обеспечения, что очевидно специалистам. Например, функциональность одного или более компонентов в примерах выполнения настоящего изобретения может быть реализована с помощью одного или более аппаратных средств.
В примерах выполнения настоящего изобретения может осуществляться хранение информации, относящейся к различным процессам, описанным выше. Эта информация может храниться в одном или более запоминающих устройствах, таких как жесткий диск, оптический диск, магнитооптический диск, память RAM и т.п. Информация, используемая для реализации вариантов выполнения настоящего изобретения, может храниться в одной или более базах данных. Базы данных могут быть организованы с использованием структур данных (например, записей, таблиц, массивов, полей, диаграмм, деревьев, списков и т.п.), встроенных в одно или более устройств памяти или запоминающих устройств, перечисленных выше. Процессы, описанные в отношении примеров выполнения настоящего изобретения, могут включать соответствующие структуры данных для хранения данных, собранных и/или формируемых процессами в устройствах и подсистемах согласно вариантам выполнения настоящего изобретения, в одной или более базах данных.
Все или часть вариантов выполнения настоящего изобретения могут быть реализованы с использованием специализированных интегральных схем или путем объединения в подходящую сеть обычных схемных компонентов, что очевидно специалистам.
Как указано выше, компоненты вариантов выполнения настоящего изобретения могут содержать считываемый компьютером носитель или память согласно принципам настоящего изобретения для хранения структур, таблиц, записей и/или других данных, описанных выше. Считываемый компьютером носитель может включать любой подходящий носитель, который участвует в предоставлении инструкций в процессор для их исполнения. Такой носитель может быть выполнен в различных формах, включая, не ограничиваясь этим, энергонезависимые носители, энергозависимые носители, среды передачи и т.п. Энергонезависимые носители могут включать, например, оптические или магнитные диски, магнитооптические диски и т.п. Энергозависимые носители могут включать динамическую память и т.п. Среды передачи могут включать коаксиальные кабели, медные провода, оптическое волокно и т.п. Среды передачи также могут принимать форму акустических, оптических, электромагнитных волн и т.п., например, формируемых для радиочастотной (RF) связи, инфракрасной (IR) передачи данных и т.п. Стандартные формы считываемых компьютером носителей могут включать, например, дискету, гибкий диск, жесткий диск, магнитную ленту, любой другой подходящий магнитный носитель, CD-ROM, CDRW, DVD, любой другой подходящий оптический носитель, перфокарты, перфоленту, листы с оптическими метками, любой другой подходящий физический носитель с рисунком из отверстий или других оптически распознаваемых знаков, память с произвольным доступом (RAM), программируемое постоянное запоминающее устройство (PROM), стираемое программируемое постоянное запоминающее устройство (EPROM), FLASH-EPROM, любую другую подходящую микросхему или картридж памяти, несущую волну или любой другой подходящий носитель, с которого компьютер может производить считывание.
Хотя настоящее изобретение было описано на примере вариантов его выполнения и реализации, настоящее изобретение ими не ограничено и охватывает различные модификации и эквивалентные конструкции, которые находятся в пределах сущности формулы изобретения.
Специалистам очевидно, что с развитием технологий основная идея изобретения может быть реализована различными способами. Таким образом, изобретение и варианты его выполнения не ограничены примерами, описанными выше; напротив, варианты осуществления изобретения могут изменяться в рамках формулы изобретения.