Способ и устройство для определения направления вращения целевого объекта, считываемый компьютером носитель и электронное устройство
METHOD AND DEVICE FOR DETERMINING DIRECTION OF ROTATION OF TARGET OBJECT, COMPUTER-READABLE MEDIA AND ELECTRONIC DEVICE

[0001] Настоящая заявка ссылается на приоритет заявки на патент CN 201710457547.8 под названием «Способ и устройство для определения направления вращения целевого объекта, зарегистрированной 16 июня 2017 г.
Область техники
[0002] Настоящее изобретение относится к области обработки видеоизображений, а в частности, к способу и устройству для определения направление вращения целевого объекта, считываемому компьютером носителю и электронному устройству.
Предпосылки создания изобретения
[0003] В приложениях «мобильный магазин» для демонстрации товара обычно используется образцовое изображение товара. Неудобство состоит в том, что оно всего одно, и товар можно видеть только в одной перспективе. Поэтому, в настоящее время на некоторых платформах электронной торговли используется образцовое видеоизображение товара, но неудобство этого способа состоит в том, что занимаемая ширина полосы оказывается слишком большой.
[0004] Поэтому, все еще имеется потребность в усовершенствовании в указанной области техники.
[0005] Следует отметить, что информация, раскрытая выше в разделе предпосылок создания изобретения, предназначена только для улучшения понимания уровня техники, предшествовавшего настоящему изобретению, и таким образом, может включать информацию, которая не составляет сам уровень техники, известный специалистам в данной области техники.
Сущность изобретения
[0006] Целью настоящего изобретения является создание способа и устройства для определения направления вращения целевого объекта, считываемого компьютером носителя и электронного устройства, призванных по меньшей мере частично устранить одну или большее количество проблем, связанных с ограничениями и недостатками известных технических решений.
[0007] Другие признаки и преимущества настоящего изобретения станут очевидны из последующего подробного описания или могут быть получены при практическом использовании настоящего изобретения.
[0008] Согласно одному их аспектов настоящего изобретения предложен способ определения направление вращения целевого объекта, включающий: ввод непрерывных видеокадров, содержащих вращающийся целевой объект; создание модели заднего плана согласно изображению на первом кадре; выполнение обнаружения переднего плана на каждом видеокадре кроме первого и определение центра оси вращения вращающегося целевого объекта с использованием модели заднего плана; получение распределения точек оптического потока, находящихся в пределах заданной области центра оси вращения, и определение направления вращения вращающегося целевого объекта согласно указанному распределению точек оптического потока в пределах заданной области.
[0009] В примере выполнения настоящего изобретения выполнение обнаружения переднего плана на каждом видеокадре кроме первого с использованием модели заднего плана и определение центра оси вращения вращающегося целевого объекта включает: хранение набора выборок для каждой точки заднего плана в изображении на первом кадре с помощью модели заднего плана для генерирования набора выборок заднего плана; определение местоположения точек переднего плана на каждом видеокадре кроме первого согласно указанному набору выборок заднего плана; выполнение статистического анализа точек переднего плана на каждом видеокадре кроме первого и определение области изображения переднего плана для вращающегося целевого объекта и взятие центральной точки области изображения переднего плана в качестве центра оси вращения вращающегося целевого объекта.
[0010] В данном примере выполнения настоящего изобретения выполнение статистического анализа точек переднего плана на каждом видеокадре кроме первого и определение области изображения переднего плана для вращающегося целевого объекта включает: при определении, что размер переднего плана в пределах заданного кадра достигает максимума согласно точкам переднего плана на каждом видеокадре кроме первого, взятие переднего плана в соответствующем видеокадре, когда размер переднего плана достигает максимума, в качестве области изображения переднего плана.
[0011] В примере выполнения настоящего изобретения распределение точек оптического потока, находящихся в пределах заданной области центра оси вращения, получают с использованием способа оптического потока, включая: отслеживание и запись точек оптического потока на вращающемся целевом объекте с использованием способа оптического потока; выбор точек оптического потока, находящихся в пределах заданной области центра оси вращения, согласно информации о координатах каждой точки оптического потока; и выполнение статистического анализа количества точек оптического потока в первом направлении и втором направлении в пределах заданной области центра оси вращения, соответственно.
[0012] В примере выполнения настоящего изобретения выбор точек оптического потока, находящихся в пределах заданной области центра оси вращения, согласно информации о координатах каждой точки оптического потока включает: вычисление абсолютной величины разности между координатой х центра оси вращения и координатой х каждой точки оптического потока; и когда эта абсолютная величина меньше заданного порога, выбор соответствующей точки оптического потока как находящейся внутри заданной области центра оси вращения.
[0013] В примере выполнения настоящего изобретения определение направления вращения вращающегося целевого объекта согласно распределению точек оптического потока в пределах заданной области включает: определение направления вращения вращающегося целевого объекта согласно количеству точек оптического потока в первом направлении и втором направлении.
[0014] В примере выполнения настоящего изобретения способ дополнительно включает: определение, являются ли входные видеокадры цветными изображениями; и когда видеокадры представляют собой цветные изображения, преобразование цветного изображения в полутоновые изображения.
[0015] Согласно другому аспекту настоящего изобретение, предложено устройство для определения направления вращения целевого объекта, содержащее: модуль ввода, сконфигурированный для непрерывного ввода видеокадров, содержащих вращающийся целевой объект; модуль моделирования заднего плана, сконфигурированный для создания модели заднего плана согласно первому кадру в видеокадрах; модуль обнаружения переднего плана, сконфигурированный для обнаружения переднего плана на каждом видеокадре кроме первого с использованием модели заднего плана и определения центра оси вращения вращающегося целевого объекта; модуль получения распределения точек оптического потока, сконфигурированный для получения распределения точек оптического потока, находящихся в пределах заданной области центра оси вращения,; и модуль определения направления вращения, сконфигурированный для определения направления вращения вращающегося целевого объекта согласно распределению точек оптического потока в пределах заданной области.
[0016] Согласно еще одному аспекту настоящего изобретения, предложен считываемый компьютером носитель, на котором хранится компьютерная программа. При выполнении программы процессором происходит реализация способа определения направления вращения целевого объекта согласно описанному выше варианту выполнения настоящего изобретения.
[0017] Согласно еще одному аспекту настоящего изобретения, предложено электронное устройство, содержащее: один или большее количество процессоров и запоминающее устройство, сконфигурированное для хранения одной или большего количества программ; при этом, когда эта одна или большее количество программ выполняются указанным одним или большим количеством процессоров, этот один или большее количество процессоров реализуют способ определения направления вращения целевого объекта в описанном выше варианте выполнения настоящего изобретения.
[0018] Благодаря определению центра оси вращения вращающегося целевого объекта в видеоизображении способом обнаружения переднего плана и определению направления вращения вращающегося целевого объекта с использованием способа оптического потока, способ и устройство для определения направления вращения целевого объекта, предлагаемые вариантами выполнения настоящего изобретения, оказываются простыми и эффективными и позволяют быстро вычислить и получить направление вращения вращающейся цели.
[0019] Очевидно, что данное выше общее описание и последующее подробное описание даны просто для примера и пояснения и не должны рассматриваться в качестве ограничения изобретения.
Краткое описание чертежей
[0020] Сопровождающие чертежи, которые включены в настоящее описание и составляют его неотъемлемую часть, иллюстрируют варианты выполнения настоящего изобретения, совместимые с настоящим изобретением, и, совместно с описанием, служат для пояснения принципов настоящего изобретения. Очевидно, что чертежи в последующем описании показывают только некоторые из вариантов выполнения настоящего изобретения, и специалисты в данной области техники могут создать по этим чертежам другие чертежи, не прикладывая творческих усилий.
[0021] На фиг. 1 схематично показана архитектура системы, в которой может быть применен способ определения направления вращения целевого объекта или устройство для определения направление вращения целевого объекта согласно настоящему изобретению.
[0022] На фиг. 2 показана последовательность операций для способа определения направления вращения целевого объекта в примере выполнения настоящего изобретения.
[0023] На фиг. 3 показана последовательность операций способа определения центра оси вращения вращающегося целевого объекта в примере выполнения настоящего изобретения.
[0024] На фиг. 4 показана последовательность операций способа получения распределения точек оптического потока, находящихся в пределах заданной области центра оси вращения, в примере выполнения настоящего изобретения.
[0025] На фиг. 5 показана блок-схема устройства для определения направление вращения целевого объекта в примере выполнения настоящего изобретения.
[0026] На фиг. 6 показана блок-схема электронного устройства в примере выполнения настоящего изобретения.
Подробное описание
[0027] Ниже примеры вариантов выполнения настоящего изобретения описаны более подробно со ссылками на сопровождающие чертежи. Однако варианты выполнения настоящего изобретения могут быть осуществлены во множестве форм и не ограничены показанными здесь примерами; эти варианты выполнения настоящего изобретения даны, чтобы описание было более полным и специалисты в данной области техники по представленным в качестве примера вариантам выполнения изобретения смогли полностью понять концепцию настоящего изобретения. Описанные признаки, структуры или характеристики могут быть скомбинированы в одном или большем количестве вариантов выполнения настоящего изобретения любым подходящим способом.
[0028] Кроме того, чертежи представляют собой просто схематические представления настоящего изобретения и не обязательно выполнены в масштабе. Одинаковыми позициями на чертежах обозначены одинаковые или сходные части и повторное их описание опущено. Некоторые из блок-схем, показанных на чертежах, представляют собой функциональные объекты и не обязательно соответствуют физическим или логическим обособленным объектам. Эти функциональные объекты могут быть реализованы с помощью программного обеспечения или осуществлены в одном или большем количестве модулей аппаратного обеспечения или на интегральных схемах, или осуществлены в различных сетях и/или процессорных устройствах и/или микроконтроллерных устройствах.
[0029] Для проблемы, сформулированной выше в разделе «Предпосылки создания изобретения» и заключающейся в том, что занимаемая ширина полосы является слишком большой, когда для демонстрации товара платформа электронной торговли использует видеоматериал с образцовым изображением этого товара, можно использовать для замены этого видеоматериала скриншоты, взятые из видеоматериала при повороте товара на 360 градусов, так чтобы, когда пользователь поворачивает мобильный телефон, он мог видеть товар с другой точки наблюдения. Например, когда мобильный телефон поворачивают налево, пользователь может видеть левую сторону товара; а когда мобильный телефон поворачивают направо, пользователь может видеть правую сторону товара. Требуется, чтобы направление вращения при повороте на 360 градусов совпадало с направлением движения часовой стрелки.
[0030] Однако в видеоматериале с образцовым изображением товара, загруженном некоторыми торговцами, вращение происходит против часовой стрелки и, чтобы поворот шел по часовой стрелке, требуется дополнительная обработка. В этом случае, прежде всего, необходимо обнаружить направление вращения товара в видеоматериале, загруженном торговцем на платформу электронной торговли, чтобы облегчить последующую обработку видеоматериала с кадрированием. В данной области техники необходимо использовать сложную конструкцию аппаратных средств, чтобы обнаружить направление поворота товара, и направление вращения товара не может быть обнаружено по видеоматериалу.
[0031] На фиг. 1 схематично показана архитектура системы, в которой может быть применен способ определения направления вращения целевого объекта или устройство для определения направление вращения целевого объекта согласно настоящему изобретению.
[0032] Как показано на фиг. 1, архитектура 100 системы может содержать терминальные устройства 101, 102, 103, сеть 104 и сервер 105. Сеть 104 сконфигурирована, чтобы обеспечить среду для линий связи между терминальными устройствами 101, 102, 103 и сервером 105. Сеть 104 может содержать различные типы соединений, такие как проводные, беспроводные линии связи, волоконно-оптические кабели и т.п.
[0033] Пользователь может взаимодействовать с сервером 105 через сеть 104 с использованием терминальных устройств 101, 102, 103, чтобы принимать или передавать сообщения и т.п. В терминальных устройствах 101, 102, и 103 могут быть установлены различные приложения-клиенты связи, такие как приложение шопинга, приложение web-браузера, поисковое приложение, инструмент мгновенной связи, клиент почтового ящика, программное обеспечение социальной платформы и т.п.
[0034] Терминальные устройства 101, 102, 103 могут быть различными электронными устройствами, имеющими экран дисплея и поддерживающими web-браузер, включая, но этим не ограничиваясь смартфоны, планшеты, портативные компьютеры, настольные компьютеры и т.п.
[0035] Сервер 105 может быть сервером, который оказывает различные услуги, таким как фоновый управляющий сервер, который поддерживает различные данные видеоизображения и т.п., предоставленные пользователем терминальных устройств 101, 102, 103. Фоновый управляющий сервер может выполнять обработку, такую как обнаружение направления вращения для принятых данных видеоизображения, и возвращать результат обработки (например, преобразуя вращение против часовой стрелки на видеоматериале, загруженном торговцем, во вращение по часовой стрелке, и выполняя видеокадрирование) в терминальное устройство.
[0036] Следует отметить, что способ определения направления вращения целевого объекта согласно данному варианту выполнения настоящего изобретения в общем случае реализуется сервером 105. Соответственно, устройство для определения направления вращения целевого объекта в общем случае расположено в сервере 105.
[0037] Очевидно, что количества терминальных устройств, сетей и серверов на фиг. 1 даны просто для иллюстрации. В зависимости от практических целей могут быть любые количества терминальных устройств, сетей, и серверов.
[0038] На фиг. 2 показана последовательность операций в способе определения направления вращения целевого объекта в примере выполнения настоящего изобретения.
[0039] Как показано на фиг. 2, способ определения направления вращения целевого объекта может включать следующие шаги.
[0040] На шаге S10 вводят непрерывные видеокадры, содержащие вращающийся целевой объект.
[0041] В этом варианте выполнения настоящего изобретения вращающийся целевой объект может быть предметом, объектом или товаром на видеокадре, но настоящее изобретение этим не ограничено.
[0042] В примере выполнения настоящего изобретения предложенный способ может дополнительно включать: определение, являются ли входные видеокадры цветными изображениями; и преобразование цветного отображения в полутоновые изображения, если видеокадры - цветные изображения.
[0043] В одном из вариантов выполнения настоящего изобретения входные непрерывные видеокадры могут быть полутоновыми изображениями. Когда входные видеокадры - цветные изображения, их можно преобразовать в полутоновые изображения с использованием следующей формулы:
[0044] Gray=0.299R+0.587G+0.114B
[0045] На шаге S20 устанавливают модель заднего плана согласно изображению на первом видеокадре в видеокадрах.
[0046] В вариантах выполнения настоящего изобретения создание модели заднего плана выполняют путем выявления и опознавания переднего плана и заднего плана на основании того, отличаются ли задний план и передний план с точки зрения движения, направления движения, цвета, и т.п.
[0047] В варианте выполнения настоящего изобретения создание модели заднего плана может быть завершено с использованием изображения на первом кадре. Для одного пикселя значения пикселей в соседних с ним точках выбирают случайным образом в качестве значений выборок для модели.
[0048]
[0049] В начальное время t=0, NG(x) представляет собой соседнюю точку. В общем случае, в качестве NG(x) можно взять область 3*3 вокруг пикселя х, а количество выборок может быть установлено 20, так чтобы модель заднего плана хранила набор выборок для каждой фоновой точки.
[0050] Следует отметить, что в качестве NG(x) взята вышеуказанная область 3*3 вокруг пикселя х, и количество выборок задано равным 20 только для иллюстрации и не ограничивает объем настоящего изобретения, эти значения могут быть выбраны на основе фактической ситуации.
[0051] На шаге S30 выполняют обнаружение переднего плана на каждом видеокадре кроме первого с использованием модели заднего плана, и определяют центр оси вращения вращающегося целевого объекта.
[0052] На фиг. 3 показана последовательность операций способа определения центра оси вращения вращающегося целевого объекта в примере выполнения настоящего изобретения. Как показано на фиг. 3, способ определения центра оси вращения вращающегося целевого объекта может включать следующие шаги.
[0053] На шаге S31, набор выборок сохраняют для каждой точки заднего плана на изображении первого кадра с использованием модели заднего плана, таким образом генерируя набор выборок заднего плана.
[0054] На шаге S32 согласно набору выборок заднего плана определяют местоположение точек переднего плана на каждом видеокадре кроме первого.
[0055] На шаге S33 выполняют статистический анализ на точках переднего плана на каждом видеокадре кроме первого и определяют область изображения переднего плана для вращающегося целевого объекта.
[0056] В одном из вариантов выполнения настоящего изобретения выполнение статистического анализа точек переднего плана на каждом видеокадре кроме первого и определение области изображения переднего плана для вращающегося целевого объекта включает: при определении, что размер переднего плана в пределах заданного кадра достигает максимума, согласно точкам переднего плана на каждом видеокадре кроме первого, взятие переднего плана на соответствующем видеокадре, когда размер переднего плана достигает максимума, в качестве области изображения переднего плана.
[0057] На шаге S34, центральную точку области изображения переднего плана берут в качестве центра оси вращения вращающейся цели.
[0058] В одном из вариантов выполнения настоящего изобретения модель заднего плана обновляют с использованием множества непрерывных последующих видеокадров (то есть, других непрерывных видеокадров кроме изображения первого кадра). Каждое новое значение пикселя сравнивают с набором выборок, чтобы определить, принадлежит ли этот пиксель к точке заднего плана. Может быть известно, что, если новое наблюдаемое значение принадлежит точке заднего плана, оно должно быть ближе к значению выборки в наборе выборок.
[0059] Например, предположим, что значение пикселя в точке с координатой х в текущем видеокадре равно v(x); М(х)={V1, V2… VN} представляет собой модель заднего плана для точки с координатой х, и параметр модели состоит из N значений (полученных путем сбора ретроспективных пикселей и соседних пикселей), и М(х) находится в состоянии постоянного изменения и обновления. Для значения v(x) пикселя для точки с координатой х в текущем видеокадре его вычисляют для N значений в М(х) следующим образом:
[0060] 1) вычисляют расстояние S между v(x) и каждым значением;
[0061] 2) записывают количество С расстояний S, которые меньше, чем заранее заданный радиус R (например, 50); и
[0062] 3) сравнивают С с заранее заданным порогом #min (например 2), при этом, если С больше чем порог #min, пиксель точки с координатой х считают относящимся у заднему плану и определяют как точку заднего плана, а в противном случае его определяют как точку переднего плана.
[0063] Предположим, что SR(v(x)) является областью с радиусом R и с центром в точке х. Для формализации вышеуказанного контента может использоваться пересечение, то есть, если M(x)[{SR(v(x))∩{Vl, V2,…, VN}}] больше, чем заданный порог #min, тогда считают, что точка х является точкой заднего плана, а в противном случае считают, что это точка переднего плана. В данном варианте выполнения настоящего изобретения это иллюстрируется взятием значения порога #min равным 2 и радиуса R равным 50, но настоящее изобретение этим не ограничено.
[0064] Затем производят статистический анализ на всех точках, которые определены как точки переднего плана: если нет никакого «действия расширения» на переднем плане в пределах Р (например, 100, но настоящее изобретение этим не ограничено) кадров, то область изображения переднего плана вращающегося объекта считается зафиксированной. В этот момент центральную точку области изображения переднего плана берут в качестве центра оси вращения.
[0065] В этом варианте выполнения настоящего изобретения определение, что нет никакого «процесса расширения» на переднем плане в пределах Р (здесь в качестве примера 100) кадров, может быть выполнено путем определения, что размер переднего плана в пределах 100 кадров больше не увеличивается. То есть, когда размер переднего плана в некотором видеокадре в пределах 100 кадров достигает максимума, передний план вращающегося объекта в видеокадре берут в качестве области изображения переднего плана вращающегося объекта. Это связано с тем, что форма вращающегося товара в видеоматериале, загруженном торговцем, обычно неправильная, и при этом товар не расположен в центре телевизионного кадра. Поэтому необходимо определить центр оси вращения товара. Когда товар вращается, размер переднего плана на предыдущем кадре может быть меньше. По мере вращения товара, размеры переднего плана на последовательных кадрах могут постепенно увеличиваться. После того, как достигнуто максимальное значение размера переднего плана, размер переднего плана постепенно уменьшается. Например, предположим, что торговцем загружен видеоматериал с вращением книги, при этом в начальный момент к пользователю обращен корешок (то есть, самая узкая область книги), и размер переднего плана, обнаруженный в текущем видеокадре, является минимальным. По мере того, как книга вращается против часовой стрелки или по часовой стрелке, размер переднего плана книги, обнаруженный в последовательных видеокадрах, будет постепенно увеличиваться, пока к пользователю не окажется обращена обложка книги. В этот момент размер переднего плана, обнаруженный в соответствующем видеокадре, является максимальным, и размер переднего плана на этом видеокадре может быть взят в качестве области изображения переднего плана книги.
[0066] На шаге S40 получают распределение точек оптического потока в заданной области центра оси вращения.
[0067] Оптический поток - это простое и практичное выражение для перемещения изображения, обычно определяемое как кажущееся движение яркостного рисунка в последовательности изображений, то есть выражение скорости движения точки на поверхности пространственного объекта на плоскости отображения оптического датчика.
[0068] На фиг. 4 показана последовательность операций способа получения распределения точек оптического потока, находящихся в пределах заданной области центра оси вращения, согласно примеру выполнения настоящего изобретения. Как показано на фиг. 4, способ получения распределения точек оптического потока, находящихся в пределах заданной области центра оси вращения, может включать следующие шаги.
[0069] На шаге S41 отслеживают и записывают точки оптического потока на вращающемся целевом объекте с использованием способа оптического потока.
[0070] На шаге S42 точки оптического потока, находящиеся в пределах заданной области центра оси вращения, выбирают согласно информации о координатах каждой точки оптического потока.
[0071] В одном из вариантов выполнения настоящего изобретения выбор точек оптического потока, находящихся в пределах заданной области центра оси вращения, согласно информации о координатах каждой точки оптического потока может включать: вычисление абсолютной величины разности между координатой х центра оси вращения и координатой х каждой точки оптического потока; и когда эта абсолютная величина меньше заданного порога, выбор соответствующей точки оптического потока как находящейся внутри заданной области центра оси вращения.
[0072] На шаге S43 подсчитывают количество точек оптического потока в первом направлении и втором направлении в пределах заданной области центра оси вращения, соответственно.
T
[0073] В вариантах выполнения настоящего изобретения оптический поток включает две главные концепции: поле движения и поле оптического потока. Предположим, что уровень яркости точки m=(x, Y) (где Т представляет набор значений времени) на изображении во время t равен I(х, у, t), а после временного интервала dt, уровень яркости соответствующей точки равен I(x+dx, y+dy, t+dt); когда dt→0, уровень яркости двух точек можно считать неизменным, то есть:
[0074] I(x+dx, y+dy, t+dt)=I(x, у, t).
[0075] Если яркость изображения медленно меняется с изменением х, у, t, можно левую часть этой формулы разложить в ряд Тейлора:
[0076]
[0077] где ε представляет второй порядок малости. Поскольку dt→0, ε пренебрегают и можно записать:
[0078]
[0079] Пусть  представляют оптические потоки в направлении х, у,  представляют частные производные от яркости изображения по х, у, t, тогда указанная выше формула может быть записана как:
х
y
t
[0080] Iμ+Iv+I=0.
[0081] Вышеуказанная формула представляет собой основное уравнение поля оптического потока, которое может быть записано в векторной форме, то есть:
[0082]
[0083] где  - градиент изображения в точке m, и Vm=(μ, v) представляет собой оптический поток в точке m.
[0084] Вышеупомянутую формулу называют уравнением ограничений оптического потока. Преимущество использования способа оптического потока в вариантах выполнения настоящего изобретения состоит в том, что точка оптического потока содержит информацию о движении, и положение двигающегося объекта можно вычислить, не зная информации об окружающей обстановке.
[0085] В этом варианте выполнения настоящего изобретения при вычислении области изображения переднего плана и центра оси вращения способ оптического потока может использоваться для отслеживания характерных точек (то есть, точек оптического потока) на вращающемся объекте, и можно записать его вектор направления и положение, например информацию о координатах.
[0086] На шаге S50 определяют направление вращения вращающегося целевого объекта согласно распределению точек оптического потока в пределах заданной области.
[0087] В еще одном примере выполнения настоящего изобретения определение направления вращения вращающегося целевого объекта согласно распределению точек оптического потока в пределах заданной области включает: определение направления вращения вращающегося целевого объекта согласно количеству точек оптического потока в первом направлении (таком как направление по часовой стрелке) и втором направлении (таком как направление против часовой стрелки).
[0088] В этом варианте выполнения настоящего изобретения, когда центр оси вращения определен, точку (точки) оптического потока, расположенную около центра оси вращения, выбирают согласно записанной информации о координатах всех точек оптического потока. Способ выбора может быть следующим:
[0089] |Рх - Сх|<dist,
[0090] где Рх - координата х точки оптического потока, Сх - координата х центра оси вращения и величина dist может быть взята по умолчанию равной 25, но настоящее изобретение этим не ограничено. После этого подсчитывают количество точек оптического потока в направлениях по часовой стрелке и против часовой стрелки вблизи центра оси вращения, и направление, в котором количество точек оптического потока больше, берут в качестве направления вращения вращающегося целевого объекта.
[0091] Следует отметить, что вышеуказанная формула для выбора точки оптического потока около центра оси вращения предполагает, что координата х центра оси вращения и координата х каждой точки оптического потока базируются на следующей системе координат изображения: то есть, в общем случае для изображения левый верхний угол помещен в начало координат, направление вертикально вниз от начала координат - это ось у, и направление горизонтально направо относительно начала координат - это ось х. В сценарии приложения для платформы электронной торговли товар обычно вращается по часовой стрелке или против часовой стрелки вдоль направления оси х, таким образом, координаты направления оси у не затронуты.
[0092] В способе определения направления вращения целевого объекта, предложенном в этом варианте выполнения настоящего изобретения, используется такой способ обнаружение переднего плана и оптического потока для определения направления вращения объекта по часовой стрелке в видеоматериале, который прост и эффективен и обеспечивает быстрое вычисление направления вращения объекта по часовой стрелке.
[0093] Следует отметить, что в варианте выполнения настоящего изобретения определение направления вращения объекта относится к тому, что направление вращения объекта по часовой стрелке определяют, когда объект, показанный на конкретном видеоматериале, выполняет вращение.
[0094] На фиг. 5 схематично показана блок-схема устройства для определения направление вращения целевого объекта в примере выполнения настоящего изобретения.
[0095] Как показано на фиг. 5, устройство 100 для определения направления вращения целевого объекта может содержать модуль 110 ввода, модуль 120 моделирования заднего плана, модуль 130 обнаружения переднего плана, модуль 140 получения распределения точек оптического потока и модуль 150 определения направления вращения.
[0096] Модуль 110 ввода может быть сконфигурирован для непрерывного ввода видеокадров, содержащих вращающийся целевой объект.
[0097] Модуль 120 моделирования заднего плана может быть сконфигурирован для создания модели заднего плана согласно изображению на первом видеокадре.
[0098] Модуль 130 обнаружения переднего плана может быть сконфигурирован для выполнения обнаружения переднего плана на каждом видеокадре кроме первого с использованием модели заднего плана и определения центра оси вращения вращающегося целевого объекта.
[0099] В примере выполнения настоящего изобретения модуль 130 обнаружения переднего плана может дополнительно содержать блок генерации набора выборок, блок определения местоположения точек переднего плана, блок определения области изображения переднего плана и блок получения центра оси вращения.
[00100] Блок генерации набора выборок может быть сконфигурирован для сохранения одного набора выборок для каждой точки заднего плана на изображении в первом кадре с помощью модели заднего плана, генерируя, таким образом, набор выборок заднего плана. Блок определения местоположения точек переднего плана может быть сконфигурирован для определения местоположения точек переднего плана на каждом видеокадре кроме первого согласно указанному набору выборок заднего плана. Блок определения области изображения переднего плана может быть сконфигурирован для выполнения статистического анализа точек переднего плана на каждом видеокадре кроме первого и определения области изображения переднего плана для вращающегося целевого объекта. Блок получения центра оси вращения может быть сконфигурирован для взятия центральной точки области изображения переднего плана в качестве центра оси вращения вращающегося целевого объекта.
[00101] В примере выполнения настоящего изобретения блок определения области изображения переднего плана может дополнительно содержать субблок определения области изображения переднего плана, а субблок определения области изображения переднего плана может быть сконфигурирован так, что, если определено, что размер переднего плана в пределах заданного кадра достигает максимума, согласно точке переднего плана на каждом видеокадре кроме первого, субблок определения области изображения переднего плана берет передний план в соответствующем видеокадре, когда размер переднего плана достигает максимума, в качестве области изображения переднего плана.
[00102] Модуль 140 получения распределения точек оптического потока может быть сконфигурирован для получения распределения точек оптического потока в заданной области центра оси вращения.
[00103] В примере выполнения настоящего изобретения модуль 140 получения распределения точек оптического потока может дополнительно содержать блок отслеживания и записи точек оптического потока, блок выбора точек оптического потока, и блок статистики точек оптического потока.
[00104] Блок отслеживания и записи точек оптического потока может быть сконфигурирован для отслеживания и записи точек оптического потока на вращающемся целевом объекте с использованием способа оптического потока. Блок выбора точек оптического потока может быть сконфигурирован для выбора точек оптического потока, находящихся в пределах заданной области центра оси вращения, согласно информации о координатах каждой точки оптического потока. Блок статистики точек оптического потока может быть сконфигурирован для выполнения статистического анализа по количеству точек оптического потока в первом направлении и втором направлении в заданной области центра оси вращения, соответственно.
[00105] В примере выполнения настоящего изобретения блок выбора точек оптического потока может дополнительно содержать субблок вычисления разности и субблок определения.
[00106] Субблок вычисления разности может быть сконфигурирован для вычисления абсолютной величины разности между координатой х центра оси вращения и координатой х каждой точки оптического потока. Субблок определения может быть сконфигурирован таким образом, что когда указанная абсолютная величина меньше заданного порога, он выбирает соответствующую точку оптического потока как находящуюся внутри заданной области центра оси вращения.
[00107] Модуль 150 определения направления вращения может быть сконфигурирован для определения направления вращения вращающегося целевого объекта согласно распределению точек оптического потока в заранее заданной области.
[00108] В еще одном примере выполнения настоящего изобретения модуль 150 определения направления вращения может дополнительно содержать блок определения направления вращения, а блок определения направления вращения сконфигурирован для определения направления вращения вращающегося целевого объекта согласно количеству точек оптического потока в первом направлении и втором направлении.
[00109] В еще одном примере выполнения настоящего изобретения устройство 100 для определения направления вращающегося целевого объекта может дополнительно содержать модуль определения и модуль преобразования.
[00110] Модуль определения может быть сконфигурирован для определения, является ли входной видеокадр цветным изображением. Модуль преобразования может быть сконфигурирован так, что он, когда видеокадр - цветное изображение, преобразует цветное изображение в полутоновое изображение.
[00111] Следует отметить, что конкретные детали каждого модульного блока в устройстве для определения направления вращения целевого объекта были описаны подробно при описании соответствующего способа определения направления вращения целевого объекта, и повторное описание этих деталей опущено.
[00112] Следует отметить, что, хотя выше описаны несколько модулей или блоков устройства для выполнения определенных действий, но такое деление необязательно. Фактически признаки и функции двух или большего количества модулей или блоков, описанных выше, могут быть воплощены в одном модуле или блоке в соответствии с вариантами выполнения настоящего изобретения. Альтернативно, признаки и функции одного модуля или блока, описанного выше, могут быть разделены на большее количество модулей или блоков.
[00113] Кроме того, хотя в данном описании различные шаги способа описаны на чертежах в определенном порядке, не требуется и не подразумевается, чтобы эти шаги выполнялись именно в этом порядке, или что для достижения желаемого результата должны быть выполнены все описанные шаги. Дополнительно или альтернативно, некоторые шаги могут быть опущены, несколько шагов можно объединить в один шаг и/или один шаг может быть разбит на множество шагов и так далее.
[00114] На фиг. 6 показана блок-схема электронного устройства 600 подходящего для осуществления вариантов выполнения настоящего изобретения. Электронное устройство, показанное на фиг. 6, является просто примером, и не накладывает ограничений на функции и объем вариантов выполнения настоящего изобретения.
[00115] Как показано на фиг. 6, электронное устройство 600 содержит центральный процессор (CPU) 601, который может выполнять различные действия и процессы в соответствии с программой, хранящейся в постоянной памяти (ROM) 602 или в программе, загруженной из хранилища 608 в память с произвольным доступом (RAM) 603. Кроме того, в RAM 603 хранятся различные программы и данные, необходимые для работы системы 600. Центральный процессор 601, ROM 602 и RAM 603 связаны друг с другом шиной 604. Интерфейс 605 ввода/вывода (I/O) также связан с шиной 604.
[00116] С интерфейсом 605 ввода/вывода связаны следующие компоненты: блок 606 ввода, содержащий клавиатуру, «мышь» и т.д.; блок 607 вывода, содержащий электронно-лучевую трубку (CRT), жидкокристаллический дисплей (LCD), громкоговоритель и т.п.; блок 608 хранения, содержащий жесткий диск и т.п.; и блок 609 связи, содержащий карту сетевого интерфейса, такую как карта LAN, модем и т.п. Блок 609 связи осуществляет связь через сеть, такую как Интернет. При необходимости с интерфейсом 605 ввода/вывода соединен дисковод 610. При необходимости в дисководе 610 установлен съемный носитель 611, например, магнитный диск, оптический диск, магнитооптический диск, полупроводниковая память и т.п., чтобы компьютерная программа, считанная оттуда, при необходимости была инсталлирована в хранилище 608.
[00117] Более конкретно, процессы, описанные выше в отношении последовательностей операций, могут быть осуществлены как компьютерное программное обеспечение в соответствии с вариантом выполнения настоящего изобретения. Например, один из вариантов выполнения настоящего изобретения включает компьютерный программный продукт, содержащий компьютерную программу, находящуюся на считываемом компьютером носителе, а компьютерная программа содержит программный код для выполнения способа, показанного в виде последовательности операций. В таком варианте выполнения настоящего изобретения компьютерная программа может быть загружена и установлена из сети через блок 609 связи и/или со съемных носителей 611. При выполнении компьютерной программы центральным процессором 601 происходит выполнение функций, определенных в системе согласно настоящему изобретению.
[00118] Последовательности операций и блок-схемы на чертежах иллюстрируют архитектуру, функции и работу возможной реализации устройств, способов и компьютерных программных продуктов в соответствии с различными вариантами выполнения настоящего изобретения. В этом отношении каждый блок последовательности операций или блок-схем может представлять модуль, сегмент программы или часть кода, который включает одну или большее количество выполняемых инструкций для осуществления заданных логических функций. Следует также отметить, что в некоторых альтернативных реализациях функции, присвоенные блокам, могут выполняться в другом порядке, нежели показано на чертежах. Например, два последовательно расположенных блока фактически могут выполняться по существу параллельно, и иногда они могут выполняться в обратном порядке, в зависимости от выполняемых функций. Кроме того, следует отметить, что каждый блок на блок-схеме или последовательности операций и комбинации блоков в блок-схемах или последовательностях операций может быть реализован специализированной аппаратной системой, которая выполняет указанную функцию или операцию, или может быть осуществлен с использованием комбинации специализированных технических средств и машинных команд.
[00119] Блоки, входящие в варианты выполнения настоящего изобретения, могут быть осуществлены программным обеспечением или техническими средствами. Описанные блоки могут также быть реализованы в процессоре. Например, может быть написано, что процессор содержит передающий блок, принимающий блок, блок определения и первое обрабатывающее устройство. В некоторых случаях названия этих блоков не накладывают ограничений на сами блоки. Например, передающий блок может также быть описан как «блок для посылки запроса на получение изображения в связанный сервер».
[00120] В еще одном аспекте настоящее изобретение предлагает считываемый компьютером носитель, который может быть включен в устройство, описанное выше в вариантах выполнения настоящего изобретения, или может присутствовать отдельно и не входить в состав этого устройства. Считываемый компьютером носитель содержит одну или большее количество программ, которые при выполнении их устройством, заставляют это устройство выполнять следующее: ввод непрерывных видеокадров, содержащих вращающийся целевой объект; создание модели заднего плана согласно изображению на первом кадре; выполнение обнаружения переднего плана на каждом видеокадре кроме первого и определение центра оси вращения вращающегося целевого объекта с использованием модели заднего плана; получение распределения точек оптического потока, находящихся в пределах заданной области центра оси вращения, и определение направления вращения вращающегося целевого объекта согласно указанному распределению точек оптического потока в пределах заданной области.
[00121] Специалистам в данной области техники после изучения настоящего описания и реализации изобретения на практике будут очевидны другие варианты выполнения настоящего изобретения. Предполагается, что изобретение охватывает любые вариации, применения или адаптации, выполненные в соответствии с общими принципами настоящего изобретения, и включает общепринятые знания или обычные технические средства, известные в данной области техники, которые не раскрыты в настоящем описании. Описание и варианты выполнения изобретения являются иллюстративными, и реальный объем настоящего изобретения определяется пунктами формулы изобретения.