СПОСОБ ПОСТРОЕНИЯ ФРОНТАЛЬНОЙ ПАНОРАМЫ СТЕЛЛАЖА ИЗ ПРОИЗВОЛЬНОЙ СЕРИИ КАДРОВ ПО 3D-МОДЕЛИ СТЕЛЛАЖА
METHOD FOR CONSTRUCTING RACK FRONT PANORAMA FROM AN ARBITRARY FRAME SERIES ACCORDING TO RACK 3D MODEL

Область техники
Настоящее изобретение относится к способам визуального представления изображений реальных стеллажей с товарами для анализа содержимого стеллажей.
Описание предшествующего уровня техники
В настоящее время сфера видеоаналитики товаров и торговых стеллажей находится в стадии активного развития. Конкуренция розничных сетей ведет к развитию новых подходов к привлечению покупателей. Вычислительные мощности быстро увеличиваются и дешевеют, а вместе с этим появляются новые возможности технологий, которые возможно использовать в том числе и в сфере торговли. Видеоаналитика торговых стеллажей помогает быстро проанализировать, где и какие товары на стеллажах заканчиваются, какие товары лежат не на своих местах, какие товары находятся в достаточном количестве. В гипермаркетах на стеллажах располагаются тысячи товаров, при этом согласно статистике, средняя посещаемость гипермаркетов колеблется от 16000 до 18000 человек в сутки, поэтому необходимы технологические решения, которые могут быстро анализировать состояния стеллажей и подсказывать сотрудникам, каких товаров нет в торговом зале, но они есть на складе магазина, какие товары необходимо добавить, а какие находятся на стеллажах в достаточном количестве.
Из уровня техники известны различные способы сканирования стеллажей с товарами в магазине. Например, камеры, снимающие стеллаж в реальном времени, могут располагаться на стеллаже, который расположен напротив снимаемого стеллажа. Также работник магазина может проходить вдоль стеллажа и снимать на камеру полки с помощью мобильного устройства. Могут использоваться роботизированные платформы, оборудованные камерами, платформы передвигаются между стеллажами, одновременно снимая на камеру стеллажи.
Для упрощения сравнения реального стеллажа с планограммой, которая обычно представляет собой фронтальное изображение стеллажа, необходимо, чтобы изображение расположения реального стеллажа совпадало с изображением на планограмме. То есть реальный стеллаж должен быть снят так, чтобы изображение получилось фронтальным и без искажений.
Из уровня техники известен документ US 10769582 B2 (дата публикации 08.09.2020), в котором раскрыта система с несколькими камерами для динамической инвентаризации. Система камер для инвентаризации содержит подвижное основание, поддерживающее множество камер. Эти множество камер направлены на стеллажи, чтобы сделать серию снимков вдоль прохода в розничном магазине или складе. Модуль обработки выполнен с возможностью построения карт инвентаризации товаров на стеллажах в реальном или близком к реальному времени. Эта информация может быть передана в удаленные точки, чтобы упростить и ускорить заказ продукции, а также помочь в поддержании соответствующих уровней запасов товаров. Недостатком известного решения является то, что подвижное основание не всегда может перемещаться точно параллельно полкам стеллажа (ввиду необходимости объезда препятствий или невозможности проезда по заданной траектории), то есть панорама полок будет искажена по сравнению с планограммой.
Из уровня техники известен документ US 10511768 B2 (дата публикации 17.12.2019), в котором раскрыты система и способ, которые позволяют захватывать серию изображений для создания единого линейного панорамного изображения. Решение заключается в захвате изображения, динамическом сравнении захваченного изображения с изображением предварительного просмотра на дисплее устройства захвата до тех пор, пока не будет удовлетворен заданный порог перекрытия изображений. Недостатком известного решения является то, что пользователь не может перемещать камеру точно параллельно полкам стеллажа, то есть панорама полок, получаемая с помощью классических алгоритмов компьютерного зрения, может искажаться по сравнению с планограммой.
Таким образом, необходимо создать систему, которая позволяет получать изображение реального стеллажа строго во фронтальной ориентации на основании съемки стеллажа при движении камеры по произвольной траектории вдоль стеллажа, например, используя съемку видео или серии кадров, чтобы упростить выполнение аналитической задачи совмещения изображение реальных полок стеллажа с планограммой полок стеллажа.
Сущность изобретения
Предлагается способ построения фронтальной панорамы стеллажа, содержащий этапы, на которых: захватывают, посредством по меньшей мере одного снимающего устройства, по меньшей мере два кадра цветных изображений стеллажа, причем каждый кадр цветного изображения стеллажа отображает стеллаж и содержимое стеллажа; определяют изменение положений снимающего устройства относительно начального положения снимающего устройства, занимаемого снимающим устройством в момент начала захвата кадров цветных изображений стеллажа; определяют траекторию перемещения снимающего устройства по изменению положений снимающего устройства; определяют глубину каждого полученного кадра цветного изображения стеллажа; реконструируют 3D-модель стеллажа в виде 3D-сетки по данным глубины и данным о положениях снимающего устройства для каждого кадра цветного изображения стеллажа, выбирают из 3D-сетки только грани, которые перпендикулярны горизонтальной плоскости, для которых выполняется следующее условие:
n*g<ε
y<ε,
где вектор n(x, y,z) - единичный вектор нормали к грани, а вектор g(0,1,0) - вектор направления гравитации, n*g - скалярное произведение упомянутых векторов, ε - пороговое значение отклонения вектора нормали, стремящееся к нулю; аппроксимируют траекторию перемещения снимающего устройства в первую аппроксимирующую прямую; проецируют упомянутую первую аппроксимирующую прямую на горизонтальную плоскость; на горизонтальной плоскости строят перпендикуляры к проекции первой аппроксимирующей прямой; выбирают ближайшие к проекции первой аппроксимирующей прямой вершины, которые при их проекции на горизонтальную плоскость попадают на упомянутые перпендикуляры; из упомянутых выбранных вершин выбирают только большинство вершин, проекции которых на горизонтальную плоскость можно аппроксимировать второй аппроксимирующей прямой; строят перпендикулярно горизонтальной плоскости плоскость проекции, проходящую через упомянутую вторую аппроксимирующую прямую; осуществляют сшивание кадров цветных изображений стеллажа путем проективного преобразования каждого кадра цветного изображения стеллажа на упомянутую плоскость проекции, получая фронтальную панораму стеллажа, отображающую стеллаж и содержимое стеллажа.
Захват кадров цветных изображений стеллажа может осуществляться посредством видеосъемки стеллажа. Захват кадров цветных изображений стеллажа может осуществляться посредством покадровой съемки стеллажа. Снимающее устройство может представлять собой движущуюся платформу, на которой установлены камеры для съемки. Положения снимающего устройства могут определяться с помощью трекинг-камеры.
Также предлагается электронное устройство, содержащее снимающее устройство, воспринимающее цвет и имеющее сенсор глубины, процессор и память, которые могут осуществлять каждый из предлагаемых способов. Электронное устройство может представлять собой смартфон. Электронное устройство может представлять собой камеру для съемки. Электронное устройство может представлять собой видеокамеру.
Краткое описание чертежей
Вышеописанные и другие признаки и преимущества настоящего изобретения поясняются в последующем описании, иллюстрируемом чертежами, на которых представлено следующее:
Фиг. 1 иллюстрирует, что при получении с помощью классических алгоритмов компьютерного зрения панорамного изображения первое изображение задает угол ориентации всего изображения.
Фиг. 2 иллюстрирует искаженное фронтальное изображение при использовании классических методов склейки изображений и произвольного движения камеры по сложной траектории.
Фиг. 3 (а) иллюстрирует 3D модель стеллажа, полученную согласно настоящему изобретению по данным с сенсора глубины камеры и данным о положении камеры, на фиг. 3 (b) показан увеличенный фрагмент 3D модели стеллажа.
Фиг. 4 иллюстрирует проекцию всех точек 3D реконструкции стеллажа на горизонтальную плоскость.
Фиг. 5 схематично иллюстрирует получение плоскости проекции.
Фиг. 6 иллюстрирует проекцию точек 3D реконструкции стеллажа после фильтрации по направлению нормали граней.
Фиг. 7 иллюстрирует проекцию на горизонтальную плоскость вершин граней после исключения вершин граней, расположенных в глубине стеллажа.
Фиг. 8 иллюстрирует плоскость проекции, проходящей вдоль переднего края стеллажа, показанную в виде проекции на горизонтальную плоскость.
Фиг. 9 - фронтальная панорама стеллажа, полученная с помощью предлагаемого способа.
Фиг. 10 иллюстрирует получение перекрывающихся изображений на плоскости проекции.
Подробное описание изобретения
В настоящем изобретении предлагаетсяспособ построения линейной панорамы стеллажа из произвольной серии кадров изображения стеллажа с использованием 3D-модели стеллажа. Предлагаемое изобретение обеспечивает получение фронтального изображения стеллажа без искажений при съемке стеллажа камерой под любым углом и движущейся по произвольной траектории.
Планограмма - внутренний документ супермаркета, содержащий информацию о том, как должны быть расставлены товары на стеллаже, этот документ представляет собой схему, показывающую план расстановки товаров на стеллаже. Заполнение реального стеллажа товарами, находящихся в магазине, должно соответствовать планограмме, поэтому производится сопоставление реального стеллажа с планограммой, например, во время инспекции и обновления товаров на стеллажах, которая обычно производится несколько раз в день.
Для сопоставления расстановки реальных товаров на реальном стеллаже в магазине с имеющейся планограммой получают панораму полки, например, путем фотографирования полки. При сопоставлении определяют правильность заполнения товарами реальных стеллажей, необходимость добавления товаров на стеллаж, необходимость перестановки товаров на стеллаже.
Панорама стеллажа должна быть представлена в том же виде, в котором изображена планограмма. Обычно для сопоставления с планограммой и соответствия планограмме, реальный стеллаж при сканировании (съемке) должен располагаться фронтально, чтобы при сопоставлении возможно было разметить все полки на стеллаже вертикальными и горизонтальными линиями.
Для проведения анализа совмещают изображение реального имеющего полки стеллажа с планограммой стеллажа. Также может использоваться информация о глубине реальной полки стеллажа, чтобы определить пустое место на реальной полке, то есть занятость полки. Оба известных метода требуют построения панорамного изображения реального стеллажа с полками во фронтальной ориентации, чтобы упростить выполнение аналитической задачи совмещения изображений полученного панорамного изображения с планограммой.
Для получения качественного панорамного изображения необходимо, чтобы изображения, полученные с соседних ракурсов, точно совмещались друг с другом по краю, то есть необходимо производить склейку (сшивание) изображений. При этом ориентация всего панорамного изображения будет зависеть от ориентации первого кадра изображения (кадр 1 на фиг. 1). Как показано на фиг. 1, если на кадре 1 изображения часть стеллажа снята под углом, то и последующие кадры изображения последующих частей стеллажа тоже должны быть сняты по тем же самым углом для возможности совмещения (наложения) краев изображений и получения полного неискаженного панорамного изображения реального стеллажа.
Из уровня техники известно, что для получения фронтального панорамного изображения стеллажа фотокамера должна перемещаться вдоль стеллажа строго параллельно стеллажу и строго на одинаковом расстоянии от стеллажа, иначе фронтальное панорамное изображение получится искаженным и несоответствующим действительности, как показано на фиг. 2, и не будет соответствовать изображению планограммы. В этом случае невозможно будет провести качественное сопоставление заранее заданной планограммы с реальным изображением стеллажа. Чтобы изображение стеллажа было не искажено, согласно известному уровню техники стеллаж с полками должен быть расположен параллельно камере. Также лучше всего производить съемку стеллажа таким образом, чтобы был снят весь стеллаж без обрезанной области, то есть, необходимо на одном изображении получить весь стеллаж целиком, чтобы избежать неправильного совмещения кадров изображения при сшивании.
В качестве альтернативы можно анализировать отдельные кадры изображения стеллажа, на которых стеллаж изображен частично. Но тогда возникает вероятность посчитать некоторые продукты повторно, если они попадут на несколько разных изображений стеллажа, а некоторые другие продукты могут вообще не попасть в кадры. Поэтому чаще всего анализируют стеллаж целиком, чтобы гарантированно учесть все продукты и предметы (товары), расположенные на полках стеллажа, за один раз. Причем в случае, когда стеллаж помещается в поле зрения камеры целиком, возможно использовать только один снимок изображения стеллажа, который сразу делают соответствующим планограмме для возможности быстрого и точного сравнения.
Благодаря предлагаемому изобретению нет необходимости соблюдать фронтальную ориентацию каждого кадра изображения стеллажа при съемке стеллажа, то есть в кадре вертикальные и горизонтальные линии реального стеллажа не обязательно должны быть параллельны границам изображения на кадре, чего необходимо придерживаться в известном уровне техники.
Для сравнения полученного фронтального изображения стеллажа с планограммой можно использовать метод ортопроекции, то есть наложение полученного фронтального изображения стеллажа на планограмму для обнаружения различий, таким образом будет легко обнаруживать несовпадения изображения реальных полок стеллажа с полками стеллажа на планограмме, поскольку реальное изображение стеллажа получится неискаженным. Ортопроекция, как известно, является средством представления трехмерных объектов в двух измерениях, т.к. ортопроекция - это форма параллельной проекции, в которой все линии проекции ортогональны плоскости проекции. Ортопроекция сохраняет все прямые реального изображения, в том числе их параллельное и перпендикулярное расположение. Для сравнения, в перспективной проекции изображения стеллажа, показанной на фиг. 1, свойство параллельности прямых не сохраняется для получения совмещенных кадров, а в случае других проекций, например, как показано на фиг. 2, прямые могут вообще искривляться. При использовании ортопроекции при сравнении панорамного снимка стеллажа с полками повышается скорость и качество сравнения реального стеллажа с планограммой.
Процесс создания линейной панорамы стеллажа происходит в два этапа - съемка (захват) кадров изображения стеллажа с содержимым стеллажа и последующая обработка кадров изображения. До начала обработки кадров изображения пользователь должен завершить съемку стеллажа с товарами целиком, анализ и обработка и сравнение проводятся после завершения съемки.
Согласно предлагаемому изобретению реальный стеллаж с содержимым стеллажа может быть отснят с произвольного ракурса камеры, причем можно использовать как кадры цветной видео съемки, так и покадровую цветную съемку стеллажа. Причем каждый кадр отображает стеллаж и содержимое стеллажа.
В среднем, при произвольной траектории движения камеры необходимо использовать по меньшей мере два изображения стеллажа с содержимым стеллажа, оптимально 100-500 изображений, в зависимости от размера стеллажа.
По отснятым кадрам изображения производится 3D реконструкция стеллажа с содержимым стеллажа, для этого можно использовать любой известный алгоритм 3D реконструкции по снятым кадрам изображения. Например, можно использовать известный алгоритм реконструкции KinectFusion, позволяющий в реальном времени восстанавливать 3D сцену на основе данных алгоритма. При этом на вход машинного алгоритма 3D реконструкции подаются данные с камеры в виде пар, представляющих данные о положении камеры и данные глубины с сенсора глубины. Камера для съемки стеллажа должна воспринимать цвет и иметь сенсор глубины, такие камеры известны в уровне техники, например, и не ограничиваясь перечисленными, это могут быть устройства Samsung Galaxy S10+5G, Note 10+, S20+ или S20 Ultra, Samsung Galaxy S20+, которые представляет собой смартфоны, имеющие камеру, воспринимающую цвет, и сенсор глубины, а также можно использовать, например, отдельную камеру Intel RealSense L515, D 415 и другие, а также Microsoft Azure Kinect и т.п. с сенсором глубины, но можно применять любые подходящие устройства.
https://developers.google.com/ar/develop/fundamentals#motion_tracking
Для съемки стеллажа согласно предлагаемому изобретению достаточно использовать одно снимающее устройство, например, камеру. В другом варианте возможно использовать несколько снимающих устройств, расположенных на движущейся платформе. Для получения панорамы стеллажа с содержимым, то есть фронтального изображения стеллажа, для каждого снимка необходимо оценить положение камеры из которого был сделан снимок, положение камеры может оцениваться с помощью алгоритма трекинга (SLAM) https://ru.wikipedia.org/wiki/SLAM_(%D0%BC%D0%B5%D1%82%D0%BE%D0%B4) Такие алгоритмы известны из уровня техники, например, для смартфона возможно использовать, например, приложение ARCore, которое позволяет получать траекторию движения снимающего устройства
В современных системах SLAM, таких как ARCore или трекинг камера Intel RealSense T265 используются данные с акселерометра и гироскопа и данные с камеры или нескольких камер. Определяют изменение положений снимающего устройства относительно начального положения снимающего устройства, занимаемого снимающим устройством в момент начала захвата кадров цветных изображений стеллажа. Далее определяют траекторию перемещения снимающего устройства по изменению положений снимающего устройства. Изменения положения камеры вычисляется относительно начального положения (момента включения) камеры.
Если для съемки стеллажа использовать движущуюся платформу с камерами, то возможно использовать любые подходящие средства для определения положения камеры, например, датчик положения или трекинг камеру Intel RealSense T256 https://www.intelrealsense.com/tracking-camera-t265/
Truncated Signed Distance Function
Согласно известной из уровня техники методики построения 3D модели изображения по снимкам изображения, в памяти вычислительного устройства, на котором проводятся вычисления, инициализируется виртуальный объем для реконструирования объекта (в нашем случае стеллажа). В этот объем проецируются все измерения глубины, то есть формируется карта глубины, формируется (Усеченные Поля Расстояний со Знаком).Такие методики широко известны из уровня техники, например, статья KinectFusion, раздел Volumetric Representation (Shahram Izadi, David Kim, Otmar Hilliges, David Molyneaux, Richard Newcombe, Pushmeet Kohli, Jamie Shotton, Steve Hodges, Dustin Freeman, Andrew Davison, and Andrew Fitzgibbon. 2011; KinectFusion: real-time 3D reconstruction and interaction using a moving depth camera. In Proceedings of the 24th annual ACM symposium on User interface software and technology (UIST '11), Association for Computing Machinery, New York, NY, USA, 559-568. DOI:https://doi.org/10.1145/2047196.2047270.
После того, как по полученной карте глубины все измерения глубины, полученные с сенсора глубины для всех снимков, проецируются в виртуальный объем, получают поле, которое задает 3D поверхность. Чтобы преобразовать это поле в непосредственно 3D модель, применяется известный из уровня техники алгоритм, например, алгоритм Marching Cubes для построения 3D-сетки (3D mesh) 3-х мерного объекта, а данном случае стеллажа. На этом этапе используются данные с сенсора глубины камеры и данные о положении камеры.
Алгоритм получения 3D модели стеллажа является стандартным алгоритмом, известным из уровня техники, на выходе алгоритма получают 3D-изображение в виде 3D-сетки, состоящей из треугольных граней, образованных сторонами и вершинами, причем 3D-сетка повторяет 3D (объемную) форму стеллажа, что является стандартным представлением 3D объектов на компьютере, описывающим геометрическую форму объекта, в данном случае - стеллажа. Необходимо заметить, что получаемая 3D модель ориентирована относительно горизонтальной плоскости именно так, как расположен реальный стеллаж относительно горизонтальной плоскости, причем направление гравитации может быть определено с помощью акселерометра во время оценки положения камеры при съемке каждого кадра. Поэтому во время трекинга (отслеживания положения камеры при съемке) используется акселерометр, причем система координат при трекинге выбрана таким образом, чтобы ось Y была направлена вдоль вектора гравитации, что осуществляется с помощью известных методик. В компьютерном зрении, как известно, система координат связана с камерой и ось Х направлена горизонтально, ось Y - вертикально вниз, а ось Z по направлению от наблюдателя. Необходимо отметить, что не важно где будет находиться начало координат и как оно будет выбрано, обычно за начало координат выбирается начальное положение камеры (снимающего устройства), в котором начинается съемка, но это не обязательно.
По серии отснятых кадров стеллажа с картами глубины, причем для каждого снимка известно положение камеры, строят 3D модель стеллажа, причем 3D модель реального стеллажа получается в виде 3D сетки. На фиг. 3 (а) показана компьютерная 3D модель стеллажа с содержимым стеллажа, полученная по данным с сенсора глубины камеры и данным о положении камеры. На фиг. 3 (b) показан увеличенный фрагмент 3D модели, отчетливо видна часть полки с содержимым в виде 3D модели, видны вершины и треугольные грани 3D сетки.
На фиг. 4 показана проекция всех точек 3D модели стеллажа на горизонтальную плоскость, выполненная посредством компьютера. Отчетливо видна основная черная часть, указывающая на расположение основной части стеллажа с содержимым, в этой части находится наибольшее число (большинство) точек 3D модели стеллажа. На фиг. 4 видны все части, выступающие из основной части стеллажа, то есть из самой насыщенной черной части. Выступающие части стеллажа с содержимым видны как размытые, прерывающиеся пятна, это могут быть выступающие с полок товары, а также попавшие в отснятые кадры изображения части пола перед стеллажом.
На следующем этапе виртуально строят плоскость проекции, проходящую по переднему краю 3D модели стеллажа, как схематично проиллюстрировано на фиг. 5.
Для этого
1) Задают условие, что
- стеллаж имеет «правильную форму», то есть имеет прямые углы и не имеет полок, выступающих ни вперед, ни в сторону, ни назад;
- стойки стеллажа (на которых стеллаж стоит) расположены вертикально, при этом полки стеллажа расположены параллельно горизонтальной плоскости.
2) С помощью анализа 3D модели стеллажа выбирают (посредством машинных алгоритмов) плоскость проекции, на которую будут ортографически проецироваться все кадры изображения стеллажа при построении панорамы стеллажа.
C помощью машинных алгоритмов производят фильтрацию по направлению нормали граней, то есть выбирают из реконструированной 3D модели стеллажа (фиг. 3 (а), (b)) только те грани, которые перпендикулярны горизонтальной плоскости. Для проверки этого условия берется скалярное произведение вектора гравитации и вектора нормали к стеллажу. Если эти вектора перпендикулярны друг другу, то скалярное произведение равно нулю, а если почти перпендикулярны, что больше подходит для реального случая, то будет стремиться к нулю. Выбирают пороговое значение (ε) отклонения вектора n(x,y,z) нормали к стеллажу, стремящееся к нулю, и считают, что если упомянутое скалярное произведение меньше этого порогового значения (ε), то вектор нормали перпендикулярен вектору гравитации g(0,1,0) (или параллелен горизонтальной плоскости). То есть, если вектор n(x, y,z) - единичный вектор нормали n(x,y,z) к грани, а вектор g(0,1,0) - вектор направления гравитации, ε - пороговое значение отклонения вектора нормали, стремящееся к нулю, то для грани, перпендикулярной горизонтальной плоскости, будет выполняться условие:
n*g<ε
y< ε ,
y - это координата, то есть координата y вектора n.
Такое условие позволяет отфильтровать (исключить) точки объекта, заведомо не принадлежащие граням 3D-модели стеллажа, перпендикулярным горизонтальной плоскости, например, попавшие в отснятые кадры изображения части пола перед стеллажом. Остаются только части стеллажа и его содержимого, которые имеют соответствующую ориентацию, то есть точки стеллажа, которые располагаются на плоскостях, перпендикулярных горизонтальной плоскости. Отфильтрованные таким образом проекции вершин выбранных граней 3D-модели стеллажа на горизонтальную плоскость проиллюстрированы на фиг. 6. На фиг. 6 отчетливо видна основная черная часть, состоящая из скопления наибольшего количества проекций вершин выбранных граней на горизонтальную плоскость.
На фиг. 6 видно, что некоторые проекции вершин выбранных граней расположены выше основного скопления большего количества проекций вершин выбранных граней, то есть в глубине стеллажа. А также видно, что некоторые проекции вершин выбранных граней расположены ниже основного скопления наибольшего количества (большинства) проекций вершин выбранных граней, то есть выходят за фронтальный край стеллажа.
Для наглядности, на фиг. 7 показаны проекции вершин граней на горизонтальную плоскость, оставшиеся после исключения вершин граней, предметов, расположенных в глубине стеллажа. Отчетливо видно основное скопление большинства проекций вершин, в виде прерывистой прямой, а также проекции частей (то есть вершин выбранных граней этих частей), выходящих за пределы фронтального края стеллажа. Из этих вершин машинный алгоритм проигнорирует меньшинство вершин, принадлежащих объектам, выступающим за фронтальный край стеллажа и выберет только большинство вершин, которое и будет соответствовать вершинам выбранных граней, принадлежащих фронтальному краю стеллажа, на фиг.8 такие проекции вершин соединены прямой линией. Таким образом остаются только вершины, принадлежащие основному скоплению большинства проекций вершин выбранных граней, поскольку при проекции на горизонтальную плоскость они лежат на одной прямой, то принадлежат одной плоскости, которая перпендикулярна горизонтальной плоскости. Через выбранные вершины виртуально строится искомая плоскость проекции, на фиг. 8 прямая, соединяющая выбранные проекции вершин выбранных граней является проекцией на горизонтальную плоскость найденной плоскости проекции. Машинный алгоритм принимает во внимание только большинство вершин основного скопления, таким образом исключая вершины, принадлежащие граням, расположенным в глубине стеллажа и исключая вершины, принадлежащие граням, выходящим наружу за фронтальный край стеллажа. Эти вершины отфильтровывают с помощью машинного алгоритма следующим образом: аппроксимируют траекторию перемещения снимающего устройства в первую аппроксимирующую прямую, затем проецируют первую аппроксимирующую прямую на горизонтальную плоскость. На горизонтальной плоскости строят перпендикуляры к проекции первой аппроксимирующей прямой, далее выбирают ближайшие к проекции первой аппроксимирующей прямой вершины, которые при их проекции на горизонтальную плоскость попадают на упомянутые перпендикуляры. Из упомянутых выбранных вершин выбирают только большинство вершин, проекции которых на горизонтальную плоскость можно аппроксимировать второй аппроксимирующей прямой. Затем строят перпендикулярно горизонтальной плоскости плоскость проекции, проходящую через упомянутую вторую аппроксимирующую прямую.
3) Далее выполняется стекинг (сшивание) кадров изображений, при котором используются уже отснятые кадры изображения стеллажа, которые использовались и на предыдущих этапах. Для этого находят проективное преобразование (известно из уровня техники) каждого кадра изображения на плоскость проекции, которую определили на предыдущем этапе, учитывая положение камеры для каждого снимка. То есть моделируется алгоритм, в котором цветные кадры изображения виртуально проецируются с места камеры, где она была расположена при съемке данного кадра, на найденную плоскость проекции, такие методики известны из уровня техники.
В результате того, что найденная плоскость проекции совпадает с фронтальным краем стеллажа (фронтальной плоскостью края стеллажа), все спроецированные со своих мест кадры цветного изображения стеллажа отображаются на эту плоскость проекции и в результате получают плоское фронтальное цветное изображение стеллажа с содержимым стеллажа, как показано на фиг. 9, общий вид которого совпадает с планограммой.
Отличия между содержимым стеллажа на планограмме и на полученном изображении стеллажа легко определяются с помощью известных способов. Например, с помощью известного алгоритма детекции продуктов можно сравнить продукты на планограмме и на полученной фронтальной панораме стеллажа. Или, обнаружив пустое место на полученной фронтальной панораме стеллажа с помощью планограммы, можно узнать, какой именно товар должен на этом месте находится. Поиск отличий между планограммой и полученной панорамой реального стеллажа не является предметом настоящего изобретения.
Хотя окончательное фронтальное изображение стеллажа строится с помощью машинного алгоритма, для наилучшего понимания сущности необходимо описать действия каким образом получаются изображения на найденной плоскости проекции (фиг. 10):
Например, делают два кадра изображения стеллажа с разных ракурсов. На фиг. 10 виртуальные проекторы расположены в точках съемки, то есть в положении 1 и в положении 2. Вместо переднего края стеллажа располагают виртуальный экран, который является плоскостью проекции. После того, как сделанные кадры изображения предварительно спроецированы на виртуальный экран, получают два перекрывающихся частичных изображения стеллажа, которые нужно объединить в общую панораму. Поскольку изображения перекрываются, необходимо найти разделительную линию между ними (см. фиг. 5) и определить для каждой перекрывающейся части правильную (нужную) часть изображения от каждого кадра. Такие действия являются стандартным известным способом для склейки панорамного изображения для получения финального панорамного изображение стеллажа, см., например, публикацию
https://yu-li.github.io/paper/eg13_stitching.pdf
Ориентация финального панорамного снимка гарантируется выбором найденной на этапе 2 плоскости проекции, поскольку выбранная плоскость проекции совпадает с фронтальным краем стеллажа и ориентирована перпендикулярно горизонтальной плоскости, что гарантирует одинаковую необходимую ориентацию снимков.
Итак, основными этапами создания панорамного изображения стеллажа являются:
1. Захват кадров изображений стеллажа.
Пользователь захватывает набор кадров изображений стеллажа. Данные о глубине могут быть получены с помощью датчика глубины или оценены по цветным изображениям с использованием известной техники SfM, описание такого алгоритма можно найти, например, в публикации
https://en.wikipedia.org/wiki/Structure_from_motion
Алгоритм трекинга (SLAM) используется для определения положения камеры, положения камеры отслеживаются относительно начального положения камеры, по изменению положений камеры определяют траекторию перемещения камеры.
2. Построение 3D-модели стеллажа.
Трехмерная модель стеллажа реконструируется путем объединения данных глубины с известными положениями камеры. Фронтальная плоскость стеллажа (передний край стеллажа) определяется на реконструированной 3D модели стеллажа.
3. Определение плоскости проекции, совпадающей с фронтальной плоскостью края стеллажа.
Из 3D модели стеллажа отфильтровывают все точки и оставляют только те, которые находятся на гранях 3D проекции, перпендикулярных горизонтальной плоскости.
Выбирают только те вершины граней, оставшиеся после упомянутого выбора граней, большинство которых при проекции на горизонтальную плоскость будут находится на минимальных расстояниях от проекции на горизонтальную плоскость первой аппроксимирующей прямой траектории перемещения снимающего устройства, строят плоскость проекции, проходящую через выбранные вершины граней и перпендикулярную горизонтальной плоскости.
4. Создание панорамы стеллажа (стекинг).
Выбранные кадры изображения стеллажа проецируются на плоскость проекции стеллажа с использованием проективного преобразования. Используя известные положения камеры, с которых производилась съемка, проецируют цветные изображения стеллажа на плоскость, которую нашли на предыдущем этапе с помощью проективного преобразования. При этом используют камеру/или камеры с теми же параметрами и с движением по той же траектории, которая использовалась при захвате кадров изображений стеллажа. Для построения проекции изображений используют известные параметры камер, такие как фокусное расстояние и т.п., способы построения проекций являются известными из уровня техники и не являются предметом настоящего изобретения. Таким образом получают фронтальную панораму стеллажа, которую можно легко и быстро сравнивать с планограммой.
Хотя изобретение описано с некоторыми иллюстративными вариантами осуществления, следует понимать, что сущность изобретения не ограничивается этими конкретными вариантами осуществления. Напротив, предполагается, что сущность изобретения включает в себя все альтернативы, коррекции и эквиваленты, которые могут быть включены в сущность и объем формулы изобретения.
Кроме того, изобретение включает в себя все эквиваленты заявляемого изобретения, даже если пункты формулы изобретения изменяются в процессе рассмотрения.