Интеллектуальные системы и технологии
УДК 004.931
В.Г. Шубников, С.Ю. Беляев
построение контуров стопы по фотографиям
Предложен алгоритм построения горизонтального контура стопы и контура ее подъема по трем фотографиям, содержащим, кроме самой стопы, стандартный лист бумаги. Благодаря учету перспективных и иных искажений, присутствующих на фотографиях, а также учету особенностей стопы, алгоритм строит искомые контуры с точностью порядка миллиметра. Указанная точность является достаточной для таких приложений, как виртуальная примерка и индивидуальный пошив обуви.
ОБРАБОТКА ИЗОБРАЖЕНИЙ; 3D РЕКОНСТРУКЦИЯ; ИЗМЕРЕНИЕ СТОПЫ ЧЕЛОВЕКА.
V.G. Shubnikov, S.Yu. Belyaev
foot contour detection using digital images
We have offered a special method of the foot contour detection using three digital images. In two images the foot is placed close to the standard A4 (or US Letter) paper sheet. The paper sheet (with known dimensions) is used like a size calibration object. Taking into account perspectives and other distortions the proposed algorithm builds the foot contour with the accuracy about 1 millimeter. The given high accuracy is enough for commercial applications like virtual shoe fitting or individual shoe manufacturing.
IMAGE PROCESSING; 3D RECONSTRUCTION; HUMAN FOOT MEASUREMENT.
Для выполнения виртуальной примерки обуви в интернет-магазине или для удаленного заказа пошива индивидуальной обуви клиент должен выполнить измерения характерных размеров своей стопы и передать их через on-line сервис в интернет-магазин или на фабрику пошива обуви. Профессиональные мастера по изготовлению обуви выполняют измерения стопы с помощью линейки и гибкого метра. К сожалению, обычный пользователь не может это сделать с достаточной (порядка миллиметра) точностью.
Более современный подход состоит в построении 3D модели стопы с помощью 3D сканера (см., например, [1, 2]). Этот метод обеспечивает высокую точность, но также не может использоваться для указанных целей по причине отсутствия у пользователя соответствующего оборудования.
В последнее время появилось программное обеспечение, выполняющее 3D
реконструкцию объекта по видео или множеству фотографий (см., например, [3]), но результаты этой реконструкции требуют обязательной «ручной» коррекции в 3Б редакторах, что неприемлемо в рамках рассматриваемой задачи. В работе [8] предложено частичное решение проблемы: измерение некоторых ключевых размеров стопы человека по фотографиям.
В настоящей статье для оценки размеров стопы предлагается использовать ее контуры, которые могут быть получены из трех фотографий. Данный подход идеально подходит для виртуальной примерки, т. к. удобен для пользователя, не требует наличия специального оборудования, программного обеспечения и пересылки большого объема данных.
Постановка задачи
Пусть заданы три фотографии, содержащие стандартный белый лист бумаги
...
■
Рис. 1. Пример исходных фотографий
Рис. 2. Контуры стопы: a — горизонтальный, б — подъем
формата A4 или Letter и правую стопу в темном носке. Первые две фотографии содержат внутренний и внешний контуры стопы соответственно, а третья — контур ее подъема. Пример таких фотографий приведен на рис. 1. Предполагается, что на первой и третьей фотографиях лист бумаги и стопа находятся в одном и том же положении, а также что на миллиметр представленной на фотографиях сцены приходится не менее двух пикселей. Например, для 5-мегапиксельной камеры это достигается, если длина листа бумаги на фотографии составляет не менее 1/3 длины фотографии.
Требуется с точностью порядка миллиметра определить контур 8 горизонтальной ортогональной проекции стопы и значения высот точек контура 83 подъема стопы (рис. 2).
Контур 8 может быть получен как объединение контуров 8: и 82, являющихся ортогональными проекциями контуров 8': и 8'2 внутренней и внешней частей стопы, путем совмещения их общих точек А и В (рис. 3). Контур 83 является результатом ортогонального проецирования контура 8'3, представляющего собой множество точек максимальной высоты в поперечно-вертикальных сечениях стопы.
Рис. 3. Подлежащие определению контуры 8. являются ортогональными
проекциями контуров 8'.
Рис. 4. Контуры листа бумаги и стопы, выделенные из заданных фотографий
Выделение контуров бумаги и стопы
Построение решения начинается с выделения из заданных фотографий контуров листа бумаги, внутренней части стопы внешней части стопы Ь2 и контура подъема стопы Ь3 (рис. 4), которые в дальнейшем будут преобразованы в искомые контуры 8.. Выделение контуров листа бумаги выполняется с помощью алгоритма Канни [4], а для построения контуров Ь. используется алгоритм, блок-схема которого приведена на рис. 5. Данный алгоритм последователь-
но применяется к каждой из фотографий.
В блоке 1 уменьшается уровень шума, содержащегося в фотографии. Это достигается методом, предложенным в работе [5]. Полученное изображение преобразуется блоком 2 в Edge Map с помощью алгоритма Канни. Результирующее изображение используется в блоке 3 для нахождения множества замкнутых контуров, из которого в блоке 4 выделяется контур одетого на ногу носка (рис. 6), путем проверки каждого элемента множества на соответствие определенным критериям.
Фото
Рис. 5. Блок-схема алгоритма выделения контуров из фотографий
Основным критерием при поиске контуров носка является наличие двух точек А и В, являющихся концами пятки и носка соответственно. При анализе контуров в системах координат ХУ, показанных на рис. 6, точка А обнаруживается как точка, в которой достигается первый локальный максимум У при обходе контура от точки с максимальной координатой X в направлении оси У. Точка В определяется как точка контура, наиболее удаленная от А в секторе с углом 60 градусов, направленном против оси У.
Дополнительными критериями являются следующие:
отрезок АВ не должен иметь внутренних пересечений с контуром;
длина отрезка АВ в пикселях должна находиться в пределах 0,5—1,2 длины листа бумаги.
Уточнение формы контура в блоке 5 выполняется с помощью алгоритма активного контура, описанного в работе [6]. В блоке 6 из построенных контуров носка выделяются искомые контуры Ь..
Построение приближенного решения
Приближенное решение строится на основе двух предположений: высотой контуров 8'1 и 8'2 можно пренебречь, то есть 8'1 = 81 и 8'2 = 82; контур 8'3 лежит в плоскости О, проходящей через точки А и В перпендикулярно к плоскости пола, то есть Б'з = (рис. 7).
Порядок ошибок, порождаемых этими предположениями, оценивается в следующей главе.
Для преобразования контуров Ь. в 8. определяются матрицы перспективных преобразований С (см., например, [7]), соответствующие заданным фотографиям. Вычисление этих матриц выполняется по трем изображениям листа бумаги известного размера, присутствующего на фотографиях, с помощью алгоритма, предложенного в [8]. Данный алгоритм строит искомые матрицы как произведение матрицы внутренней калибровки камеры К на матрицы внешней калибровки Б':
С = КБ', I = 1, 2, 3. (1)
Матрица К учитывает особенности камеры и, в частности, искажения, вносимые этими особенностями. Матрицы Б' определяют системы координат камер в системе координат сцены, связанной с листом бумаги.
Пусть матрица С — одна из матриц С'. Она отображает произвольную точку М из системы координат сцены, связанной с листом бумаги, в точку с координатами V в системе координат, связанной с фотографией, как показано на рис. 8. Используя однородные координаты М = (X, У, Д 1)т и V = (и, V, 1)т, данное преобразование можно записать в виде:
¿V = СМ, (2)
где £ — масштабирующий коэффициент.
Матричное уравнение (2) эквивалентно трем обычным уравнениям:
Ъи = с11Х + с12У + с132 + с14,
¿V = с21 X + с22У + с232 + с24, (3)
£ = сз1Х +
с32У + сзз^ + сз4 .
Исключение ъ из первых уравнений дает два соотношения, связывающие трехмерные координаты точки и двухмерные координаты ее проекции:
(X +
с32У + с33^ + с34 )и =
= си X + с12У + с13 ^ + с14,
Рис. 7. Конур лежит в плоскости О, проходящей через точки А, В перпендикулярно плоскости пола
(с31 X + с32У + с3^ + с34) =
= с21X + с22У + с23 ^ + с24 .
Рис. 8. Матрица перспективного проецирования отображает произвольную точку М
Точка О — позиция камеры
Эти соотношения позволяют по заданным координатам пикселя изображения (ы,у) определить соответствующую ему точку сцены, если известна одна из координат X, У или 2 Так, например, если известна координата Д значения X и У определяются из системы уравнений:
(аи - Сз1ы)Х + (012 - Сз2«)У =
= (С33 2 + С34)ы — (С132 + С14), (5)
(С21 - С31У)Х + (С22 - С32У)У = = (c33Z + С34)у - (c23Z + С24).
Согласно сделанному выше предположению, координаты 2 точек контуров
8'. (I = 1, 2) равны нулю. Следовательно, соотношения (5) могут использоваться для вычисления координат X и У контуров 8'. = 8. по заданным координатам (ы, V) контуров Ь.. После того как контуры 81 и 82 определены, они объединяются в искомый контур 8 путем совмещения общих точек А и В (рис. 9).
Точки А и В определяют уравнение плоскости О (рис. 7) параллельной оси 2:
X = кУ + /,
к = (Хв - ХА)/УА - Ув), (6)
/ = (ХаУВ - ХВУА)/(Уа - Ув),
Рис. 9. Контуры 81 и 82 объединяются в единый контур 8 путем совмещения общих точек А и В
где (ХА, УА), (Хв, Ув) - координаты точек А и В.
Подстановка уравнения (6) в соотношения (4) дает систему уравнений для вычисления координат контура 83:
(С31кы + С32Ы Сцк С12 )У + (С33Ы С13 —
= С11/ - С31/ы - С34Ы + С14 ,
(С31ку + с32у - С21к - С22)У + (с33у - с13)2 —
= С21/ - 03/ - С34У + С14,
(7)
где в качестве ы и V выступают координаты контура Ь3 (рис. 4), а е.. являются компонентами матрицы С3.
Оценка ошибки приближенного решения
При получении приближенного решения предполагалось, что высота контуров 8'. равна нулю. Ошибка, порождаемая этим предположением, может быть оценена следующим образом. Пусть камера позиционирована параллельно полу в точке О, находящейся на расстоянии Но от пола (рис. 10). Пусть точка Р' контура 8' имеет высоту 2 = Н и расположена на расстоянии Б от оси камеры ОО'. Искомая ошибка Д равна длине отрезка РР*:
А — НБ/(Но- Н) - НБ/Но. (8)
Как показали эксперименты, описанные в последнем главе, произведение НБ достигает максимума в области пятки (точка А), где оно имеет значение порядка
Рис. 10. Отрезок РР* определяет разницу между центральным и параллельным проецированием
Л-,
Рис. 11. Продольное и поперечное сечения стопы
37 см2 (Н~2,5 см, Б~15 см) для стопы длиной 30 см. Величина Но имеет порядок 100-150 см. Следовательно, величина абсолютной ошибки, порожденной первым упрощающим предположением, составляет порядка 3 мм для стопы длиной 30 см. С изменением длины стопы пропорционально изменяются все величины, входящие в формулу (8), так что порядок абсолютной ошибки не изменяется.
Второе предположение устанавливает, что точки контура 8'3 лежат в плоскости О. В действительности эти точки могут отклоняться от плоскости О на величину Д1, имеющую порядок 5 % ширины продольно-поперечного сечения стопы (рис. 11). Однако, как показали эксперименты, вычисленные значения координат контура 83, выполненные в рамках этого предположения, имеют точность порядка миллиметра. Это объясняется тем, что из-за гладкости контура продольно-поперечного сечения, отношение Д2/Д1 мало при малых Д1.
Таким образом, учитывая, что абсолютная ошибка в построении контуров не должна превышать миллиметра, для уточнения приближенного решения требуется отказаться только от первого предположения.
уточнение приближенного решения
Основой для построения уточненного решения является экспериментально установленная функциональная зависимость между значениями 2 контура 8' и высотой к контура 83 в центре стопы (рис. 12):
2 = к/(I), I — 1, 2, (9)
где t — параметр, определяющий положение
Зз
Рис. 12. Величина И определяет высоту контура 83 в центре стопы
точки на отрезке АВ; И — высота контура 83 в точке t = 0,5; /.(¿) — функции значений высот контуров 8'. ('' = 1, 2), приведенных к высоте контура 83 в точке t = 0,5.
Графики усредненных (по числу экспериментов) значений этих функций приведены на рис. 13.
Формула (9) используется для уточнения значений координат контуров 81 и 82 с помощью соотношений (5). В качестве величины И берется значение, полученное в приближенном решении, а значение параметра t вычисляется по формуле:
* = (7 - 7а)/(7в - ГА), (10)
где У, УА и УВ также берутся из приближенного решения. Результатом уточнения контуров 81 и 82 является, в частности, уточнение координат точек А и В. так как эти координаты использовались для построе-
ния контура S3, то он тоже должен быть уточнен.
Полный алгоритм уточнения приближенного решения является итерационным:
Пусть через S.1 обозначены контуры S., полученные в результате приближенного решения.
k = 0;
do {
к = к+1;
for (всех (u,v) е L, (i = 1, 2)){
Вычислить t по формуле (10), используя
s,k;
Вычислить h, используя S3k;
Вычислить Z по формуле (9);
Вычислить S.k+1 с помощью соотношений (5);
}
Вычислить коэффициенты к и f по формулам (6). Координаты точек A и B извлекаются из контура S1k+1;
for (всех (u,v) е L3)
Вычислить S3k+1 с помощью соотношений (7);
} while (max|Sk+1 — Sk |> 5 для всех i = 1, 2, 3) . .
Построить контур S путем объединения контуров S1k и S2k. Положить S3 = S3k.
Эксперименты и результаты
Проведенные эксперименты преследовали две цели: оценку абсолютной ошибки приближенного и уточненного решений и построение функциональных зависимостей между значениями Z контуров S'1, S'2 и высотой h контура S3 в центре стопы. В экс-
Рис. 13. Экспериментально установленная функциональная зависимость между значениями Z контура 8' и высотой И контура 83 в центре стопы: а — внутренняя часть стопы; б — внешняя часть стопы
периментах приняли участие 63 человека. Стопы каждого участника были отсканированы 3D сканером Artec MH-T, обеспечивающим точность построения 3D модели не ниже 0,1 мм.
С помощью созданных 3D моделей получены данные, использованные для оценки абсолютной ошибки приближенного решения, и построены графики усредненных значений функций f(t) = Z/h для внутреннего (i = 1) и внешнего (i = 2) контура стопы, приведенные на рис. 13. Отклонения измеренных значений функций от усредненных не превышали 19 %.
Для оценки размеров абсолютной погрешности, вызванной использованием усредненных значений функций f(t), провели расчеты, в которых эти функции заменялись на (1 ± 0,19)fi(t) соответственно. Расчеты показали, что оцениваемая абсолютная погрешность не превышает 0,55 мм.
С целью проверки алгоритма проведены расчеты по фотографиям стоп 63 участников экспериментов. Фотографирование выполнялось девятью различными камерами (три фотоаппарата и шесть смартфонов) с разрешением не ниже 5 мегапикселей. Полученные фотографии были приведены к единому разрешению, равному 5 мегапикселей. Результаты расчетов сравнивались с контурами, полученными из 3D моделей ступней путем параллельного проецирования. Значения полученных максимальных абсолютных погрешностей А, упорядоченные по возрастанию, приведены на графике, представленном на рис. 14.
Как видно из графика, средняя максимальная абсолютная погрешность метода, полученная по результатам 63 экспериментов, составляет 0,61 мм, а максимальная — 1,18 мм.
В качестве значения 5, входящего в условие окончания цикла алгоритма уточнения результатов расчета, была выбрана величина, равная 0,1 мм, что приводило к окончанию итерационного процесса после
Рис. 14. Значения максимальных абсолютных погрешностей для 63 экспериментов, упорядоченные по возрастанию
двух-трех итераций. Уменьшение величины 5, как правило, не приводило к уменьшению абсолютной погрешности. Последнее связано как с неточностью экспериментально установленных функций f(t), так и с неточностью исходных контуров L, полученных из дискретных фотографий.
Время, требуемое для построения контуров S и S3 по заданным контурам L. для одной стопы, составляет порядка 0,15 с на процессоре Intel® Core™ i7-2600 CPU 3.40 GHz. Указанная оценка может быть существенно улучшена за счет распараллеливания вычислений, например, на GPU, т. к. тела циклов for, в приведенном в статье алгоритме, могут выполняться параллельно на независимых наборах данных. Общее время, включающее время выделения контуров листа бумаги и Li из фотографий без распараллеливания вычислений, составляет величину порядка 0,3 с.
Разработан итерационный алгоритм построения контуров стопы по трем ее фотографиям, содержащим стандартный лист бумаги известного размера. Алгоритм учитывает присутствующие на фотографиях перспективные и радиальные искажения. При построении горизонтального контура учитываются высоты точек контура над уровнем пола. Для вычисления этих высот экспериментально установлена их функциональная зависимость от высоты стопы в ее центре. Экспериментально установлено, что точность построения искомых контуров составляет величину порядка миллиметра.
СПИСОК ЛИТЕРАТУРЫ
1. Lee Н., Lee K., Choi T. Development of a Cleveland. 2005. low cost foot-scanner for a custom shoe tailoring 2. Zhong S., Yang Y., Huang Y. Data Slicing
system // In 7th Symp. Footwear Biomechanics, Processing Method for RE/RP System Based on
Spatial Point Cloud Data // Computer-Aided Design & Applications. 2013. Vol. 11(1). Pp. 20-31.
3. AUTODESK '123D'^eKipoHHbffl ресурс] / URL: http://www.123dapp.com/catch
4. Canny J. A computational approach to edge detection // IEEE Trans. Pattern Analysis and Machine Intellegence. 1986. Vol. 8(6). Pp. 679-698.
5. Belyaev S., Shubnikov V. Edge Based Image Comparison and Noise Removal // The 23rd Internat. Conf. on Computer Graphics and Vision GRAPHICON'2013. Pp. 65-70.
6. Kass M., Witkin A., Terzopoulos D. Snakes: Active Contour Models // Internat.
1. Lee H., Lee K., Choi T. Development of a low cost foot-scanner for a custom shoe tailoring system, In 7th Symp. Footwear Biomechanics, Cleveland, 2005.
2. Zhong S., Yang Y., Huang Y. Data Slicing Processing Method for RE/RP System Based on Spatial Point Cloud Data, Computer-Aided Design & Applications, 2013, Vol. 11(1), Pp. 20-31.
3. AUTODESK '123D'. Available: http:// www.123dapp.com/catch
4. Canny J. A computational approach to edge detection, IEEE Trans. Pattern Analysis and Machine Intellegence, 1986, Vol. 8(6), Pp. 679-698.
5. Belyaev S., Shubnikov V. Edge Based Image Comparison and Noise Removal, The 23rd International Conference on Computer Graphics and Vision GRAPHICON'2013, Pp. 65-70.
J. of Computer Vision. 1987. Vol. 1. No. 4. Pp. 321-331.
7. Forsyth D., Ponce J. Computer Vision: A Modern Approach. 2nd ed. Pearson education Inc., 2011.
8. Zhang Z. A Flexible New Technique for Camera Calibration // IEEE Trans. Pattern Anal. Mach. Intell. 2000. Vol. 22(11). Pp. 1330-1334.
9. Шубников В.Г., Беляев С.Ю. Определение размеров стопы человека по фотографиям // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. СПб.: Изд-во СПбГПУ, 2014. № 2 (193). с. 23-30.
6. Kass M., Witkin A., Terzopoulos D.
Snakes: Active Contour Models, International Journal of Computer Vision, 1987, Vol. 1, No. 4, Pp. 321-331.
7. Forsyth D., Ponce J. Computer Vision: A Modern Approach, 2nd ed., Pearson education Inc., 2011.
8. Zhang Z. A Flexible New Technique for Camera Calibration, IEEE Trans. Pattern Anal. Mach. Intell., 2000, Vol. 22(11), Pp. 1330-1334.
9. Shubnikov V.G., Belyayev S.Yu. Opredelenie razmerov stopyi cheloveka po fotografiyam [Estimating a human foot size from images], Nauchno-tehnicheskie vedomosti SPbGPU. Informatika. Telekommunikatsii. Upravlenie, St. Petersburg: SPbGPU Publ., 2014, No. 2 (193), Pp. 23-30. (rus)
ШУБНИКОВ Владислав Германович - преподаватель кафедры прикладной математики Санкт-Петербургского государственного политехнического университета, кандидат технических наук. 195251, Россия, Санкт-Петербург, ул. Политехническая, д. 29. E-mail: [email protected]
SHUBNIKOV, Vladislav G. St. Petersburg Polytechnic University. 195251, Politekhnicheskaya Str. 29, St. Petersburg, Russia. E-mail: [email protected]
БЕЛЯЕВ Сергей Юрьевич - доцент кафедры прикладной математики Санкт-Петербургского государственного политехнического университета, кандидат физико-математических наук. 195251, Россия, Санкт-Петербург, ул. Политехническая, д. 29. E-mail: [email protected]
BELYAEV, Sergey Yu. St. Petersburg Polytechnic University. 195251, Politekhnicheskaya Str. 29, St. Petersburg, Russia. E-mail: [email protected]
© St. Petersburg State Polytechnical University, 2014