УДК 004.932
С.Ю. Беляев, В.Г. Шубников ОПРЕДЕЛЕНИЕ РАЗМЕРОВ СТОПЫ ЧЕЛОВЕКА ПО ФОТОГРАФИЯМ
S.Yu. Belyaev, V.G. Shubnikov ESTIMATING A HUMAN FOOT SIZE FROM IMAGES
Интернет-магазины обуви заинтересованы в снижении процента отказов от покупки (по причине несоответствия размера) после доставки обуви клиенту. Этого можно достичь с помощью виртуальной примерки. Для ее выполнения клиент (частное лицо, не владеющее специальным измерительным оборудованием) должен выполнить измерения характерных размеров своей стопы и передать их через on-line сервис в интернет-магазин.
Недостатком такого подхода является недостаточная точность измерений с помощью доступных клиенту измерительных инструментов. Использование фотографий стопы для определения ее характерных размеров решает эту проблему.
Предложен метод, восстанавливающий по трем фотографиям горизонтальный и вертикальный контуры стопы и определяющий их физические размеры с достаточной для указанного применения точностью.
ИЗМЕРЕНИЕ СТОПЫ ЧЕЛОВЕКА; ОБРАБОТКА ИЗОБРАЖЕНИЙ; РАСПОЗНАВАНИЕ ОБРАЗОВ; ПОДБОР ОБУВНЫХ ИЗДЕЛИЙ; ОЦЕНКА УДОБСТВА НОШЕНИЯ ОБУВНЫХ ИЗДЕЛИЙ.
Most of the internet shoe shops are interested in selling rate increasing. Main problem is inside too high percentage of delivery returns due to wrong shoe fit. Minimization of wrong shoe size selection can be achieved using virtual shoe fitting. In this scheme customer (private person without specific measuring equipment) should perform a measurement of some important (non-trivial) dimensions of his(her) feet and pass them through on-line service to the online store.
The disadvantage of this approach is the lack of accuracy of measurements with the measuring instruments available to the client. Using digital foot images it is possible to detect characteristic foot sizes automatically, with enough high level of accuracy.
This paper proposes a method for horizontal and vertical foot contours restoration from digital images, and detection physical foot size with sufficient accuracy for shoe fitting applications.
HUMAN FOOT MEASUREMENT; IMAGE PROCESSING; IMAGE RECOGNITION; SHOE FIT; SHOE COMFORT ESTIMATION.
Для оценки размеров стопы на сегодняшний день не существует простых и одновременно надежных методов. Обычно используется старый метод, которым великолепно владеют профессиональные мастера по изготовлению обуви. С помощью линейки и гибкого метра мастер замеряет стопу клиента [1] и на основании мерок либо подбирает подходящее обувное изделие, либо создает индивидуальную обувную колодку, которая будет использоваться при фабричном или индивидуальном изготовлении обувного изделия для конкретного клиента. К сожалению, этот метод не может применяться
в виртуальной примерочной (рассчитанной на обыкновенного потребителя), т. к. выполнить такие измерения с достаточной точностью могут только опытные мастера. Какая точность измерений является «достаточной» для изготовления подходящего обувного изделия? На этот вопрос нет однозначного ответа, однако известно, что стопа в свободном и нагруженном состоянии отличается по длине приблизительно на 5 мм. При изготовлении обувных изделий многие мастера закладывают порядка 10 мм, чтобы компенсировать увеличение длины стопы, связанное с ходьбой.
4
Более современный подход состоит в построении 3D модели стопы с помощью 3D сканера (например, этот метод описан в [2]). Результат работы 3D сканера обеспечивает высокую точность (менее 3 мм), но он также не может применяться для виртуальной примерки по причине отсутствия у обыкновенного потребителя (клиента) соответствующего оборудования.
Недавно был предложен способ детектирования силуэта человека путем вычисления «особенных» точек (feature points) и применения цепных кодов для поиска совпадения с искомыми формами [3]. Подобная техника имеет высокий научный потенциал, т. к. существует множество способов вычисления этих самых особенных точек, однако на практике такой прием может привести к большим затратам на производительность из-за высокой вычислительной сложности. Один из широко известных подходов к вычислению особенных точек приведен в [4]. Работа [5] посвящена идентификации походки по изображениям силуэта человека. Авторы предложили разделить контур человека на шесть частей и в каждой применить трансформацию Хофа для выявления линий на сгибах и, тем самым, определения характерных точек. Далее предлагается использовать метод опорных векторов (SVM) [6] для разделения пространства характерных точек и идентификации частей тела. В [7] поставлена задача извлечения из изображения геометрических размеров ладони человека, что, по сути, напоминает задачу, поставленную в нашем исследовании. Авторы предложили провести цветовую сегментацию, а затем бинаризацию изображения ладони. Далее по двухцветному изображению предложено рассчитать некоторые статистические характеристики, такие как среднюю ширину, среднюю высоту, центроид, расстояние до центроида от центра системы координат. По статистическим характеристикам предлагается классифицировать изображение ладони в одном из 24 возможных положений ладони. В очень известной работе [8] предложено использовать гистограммы ориентированных градиентов в качестве описателей
свойств изображения для поиска контуров людей в изображении.
В большинстве существующих подходов перед применением алгоритмов распознавания используются различные методы предварительной обработки изображения, цель которых — улучшение визуального качества изображения и уменьшение влияния шумовых помех. Существует огромное количество способов предобработки изображения, мы используем [9] модификацию двустороннего фильтра для уменьшения шумовых помех с целью улучшения качества выделения реберной карты на последующих этапах.
Постановка задачи
Пусть заданы три фотографии, снятые в соответствии с перечисленными ниже требованиями. Первые две фотографии содержат стандартный белый лист бумаги формата A4 (размер которой 210 * 297 мм) и правую стопу в черном носке. На одной из этих фотографий видна внутренняя часть стопы, а на другой — внешняя. Будем называть внутренней часть стопы, направленную к противоположной ноге, когда человек стоит прямо. Эти фотографии сняты камерой в положении «вид сверху». В этом положении плоскость линзы параллельна полу. В дизайнерских пакетах трехмерной графики (например, 3D Studio Max) для описания ориентации камеры используют термины «вид сверху», «вид слева» и т. д. Мы будем придерживаться той же терминологии. Третья фотография содержит внутреннюю сторону ступни, снятую камерой в положении «вид сбоку». Один из краев листа бумаги и ступня должны быть ориентированы параллельно верхнему краю фотографий.
Пример таких фотографий приведен на рис. 1. Далее в тексте эти фотографии будут обозначены «фото 1», «фото 2», «фото 3». Требуется построить горизонтальный и вертикальный контуры стопы и определить ее длину. Почему именно три фотографии, а не две или одна? Если пытаться решить задачу поиска физических размеров стопы только по фото 1, то у нас не будет никакой информации о виде стопы «сбоку».
Рис. 1. Пример исходных фотографий. Слева направо — фото 1, 2, 3
Этот вид нам обеспечивает фото 3. Фото 2 необходимо для более точного распознавания внешнего контура стопы, т. к. на фото 1 этот внешний контур частично загорожен ногой и не может быть точно описан.
Пример результирующих контуров приведен на рис. 2.
Функциональная схема метода
Функциональная схема метода построения контуров стопы и определения ее размеров показана на рис. 3.
В соответствии с рис. 3 первые две фотографии обрабатываются в блоках 1, 2 и 4. Блок 1 служит для выделения контура листа бумаги, присутствующего на фотографиях. Эти контуры используются в блоке 3 для вычисления линейных размеров пикселей в рассматриваемых фотографиях по известным линейным размерам листа бумаги. Знание линейных размеров пикселей используется для выделения внутреннего и внешнего контуров стопы в блоках 2 и 4. Эти контуры объединяются в единый контур в блоке 6. В этом же блоке с помощью одного из контуров листа бумаги вычисляется физическая длина горизонтального контура стопы, которая используется в бло-
Рис. 2. Пример построенных контуров стопы
ке 7 для определения физических размеров вертикального контура стопы, выделенного в блоке 5 из фото 3.
Алгоритм построения контуров
Блок-схема алгоритма построения контуров приведена на рис. 4.
В блоке 8 с помощью алгоритма Кан-ни [10] строится реберная карта (edge map). Параметры алгоритма выбираются так, чтобы гарантировать сохранение значимых деталей. Значимыми деталями являются, собственно, части контура стопы. Из-за различных условий освещения, при которых могут быть получены исходные три фотографии, на изображениях разные части стопы могут иметь разный контраст с полом. В результате вычисления градиентов изображения напрямую мы получим не одинаковые по значению градиенты для разных частей стоп (важных для нас в конечном итоге). С другой стороны, выполняя простейшую бинаризацию реберной карты с небольшим порогом, мы получим избыточные ребра. Данная проблема частично решается алгоритмом Канни за счет применения рекурсивного обхода соседних пикселей. Следствием такой стратегии (не потерять никаких важных деталей) является порождение большого количества коротких ребер и шумовой информации, удаление которой выполняется в блоке 9 с помощью следующей морфологической операции. Каждый пиксель изображения окружается прямоугольником, и для всех пикселей периметра прямоугольника сравниваются их значения с нулем. Если все пиксели периметра имеют нулевое значение, то внутри такого прямоугольника нет пикселей,
4
Рис. 3. Функциональная схема метода
относящихся к значимым деталям изображения, и всем внутренним пикселям прямоугольника могут быть присвоены нулевые значения. Более подробно различные морфологические операции для обработки изображений описаны в [11].
Цель специального масштабирования изображения, которое выполняется в блоке 10, — исключение разрывов в искомых контурах. Это достигается путем замены каждого окна размером 8^8 исходного изображения одним пикселем со значением, равным максимальному значению среди пикселей внутри этого окна. Результирую-
щее изображение используется в блоке 11 для нахождения множества замкнутых контуров, из которого в блоке 12 выделяется искомый контур путем проверки каждого элемента множества на соответствие определенным критериям. Эти критерии зависят от формы искомого контура.
При поиске контура листа бумаги (блок 1) применяются следующие критерии:
• контур должен иметь форму четырехугольника;
• длина наибольшей стороны должна превышать % высоты фотографии;
Фото
Рис. 4. Блок-схема алгоритма построения контуров
Рис. 5. Обозначения, используемые при распознавании контуров
• пропорции четырехугольника приблизительно соответствуют пропорциям листа бумаги.
Основным критерием при поиске контуров стопы является наличие двух точек А и В, являющихся концами пятки и носка соответственно (рис. 5).
При анализе контуров в системах координат ХУ, показанных на рисунке, точка А обнаруживается как точка, в которой достигается первый локальный максимум при обходе верхней половины контура против часовой стрелки. Точка В определяется как точка контура, наиболее удаленная от А в секторе с углом приблизительно 60° (рассматривается небольшой диапазон углов), направленном против оси У Дополнительными критериями являются следующие:
• отрезок АВ не должен иметь внутренних пересечений с контуром;
• длина отрезка АВ должна находиться в пределах возможных длин стоп.
Для проверки последнего критерия длина отрезка АВ в пикселях переводится в миллиметры путем умножения на масштаб, вычисленный в блоке 3.
Уточнение формы контура в блоке 13 выполняется с помощью алгоритма активного контура [12]. В соответствии с этим алгоритмом контур приблизительно описывается многоугольником и переносится на реберную карту, полученную в блоке 10. Многоугольник расширяется путем перемещения каждой вершины по направлению ее внешней нормали, пока не будет детектировано пересечение одного из отрезков, связанного с вершиной, с ребром в реберной карте. Для обеспечения гладкости результирующего контура в процессе расширения многоугольника могут порождаться новые вершины, если угол между соседними отрезками меньше заданного барьера.
Формальное описание алгоритма приведено ниже:
Создать вписанный в контур многоугольник;
While (хоть одна вершина многоугольника перемещена)
{
For (все вершины) {
While (нет пересечения с ребрами edge map)
Переместить вершину; If (угол между связанными с вершиной отрезками меньше барьера)
Создать новые вершины в многоугольнике; }
}
Построение горизонтального контура стопы в блоке 6 выполняется путем объединения внешнего и внутреннего контуров в соответствии со следующим алгоритмом:
1. Выполнить масштабирование внешнего контура так, чтобы длина отреза AB этого контура совпала с длиной такого же отрезка на внутреннем контуре.
2. Совместить эти отрезки.
3. Минимизировать скачки производных в точках совмещения контуров путем вращения внешнего контура относительно центра отрезка AB.
4. Удалить часть внешнего контура, расположенную выше точек совмещения.
5. Удалить часть внутреннего контура, расположенную ниже точек совмещения.
Определение длины стопы
Физические размеры контуров определяются масштабами их изображений. Для определения масштаба горизонтального контура в блоке 6 используется контур ли-
4
ста бумаги, полученный из первой фотографии. Длина горизонтального контура стопы Ь вычисляется по формуле:
|ЛВ|
Ь = V --!-, (1)
|СБ|*со8(а)
где V — ширина листа бумаги, мм; а — угол между отрезками ЛВ и СБ (показаны на рис. 6),
|ЛВ| и |СБ| длины отрезков ЛВ и СБ соответственно в пикселях. Если контур листа бумаги имеет прямоугольную форму, то СБ — нижний отрезок этого контура (рис. 6, слева). Если конур не имеет прямоугольной формы (вследствие перспективных искажений, которые возникают, если камера позиционирована не строго горизонтально), то СБ — это отрезок прямой, проходящей через точку 01 (рис. 6, справа) и центр отрезка ЛВ, заключенный между прямыми, являющимися продолжением боковых ребер листа бумаги. Масштаб изображения т дается соотношением:
т=
Ь
|ЛВ|
(2)
Данная формула используется также в блоке 7 для определения масштаба вертикального контура. Значение Ь передается в этот блок из блока 6, а значение |ЛВ| из блока 5.
Если в процессе фотосъемки требования по позиционированию камеры не
выдержаны, то возникают перспективные искажения контура стопы. Формула (1) учитывает такие искажения при определении длины стопы, однако сам контур остается искаженным. Это порождает ошибки при вычислении ширины и высоты контура. Величина максимальной относительной ошибки 5 может быть вычислена по следующей приблизительной формуле:
5 = 1 — со8ф, (3)
где ф — угол отклонения камеры от требуемого положения.
Максимальная абсолютная ошибка, например, для стопы шириной 100 мм при наклоне камеры в 10° составляет 1,5 мм. Это значение получается при подстановке значения ф, равного 10°, в формулу (3) и дальнейшего умножения результата на 100.
Абсолютные ошибки, связанные с дискретностью фотографий, составляют менее 1 мм при разрешении фотокамеры более двух мегапикселей. При таком разрешении фотокамеры длина фотографии в пикселях будет составлять не мене 1200 ед. Лист бумаги на фотографии занимает не менее % длины. Длина листа бумаги 295 мм. Следовательно, на 1 мм приходится не менее 1200/4/295 = 1 пиксель.
Представленный метод позволяет измерять стопу человека с весьма жесткими требованиями к погрешности измерения (1,5 мм). Тесты проводились с исполь-
01
02
Рис. 6. Обозначения, используемые при вычислении масштабов контуров
зованием бытовых портативных фотокамер и фотокамер, встроенных в современные смартфоны. Показаны серьезные перспективы для исследования проблемы надежного получения размеров стопы по
фотографиям. Следующие научные поиски могут быть посвящены снятию многочисленных ограничений, предъявляемых к фотографиям, которые были приняты в данной работе.
СПИСОК ЛИТЕРАТУРЫ
1. Леденева И.Н. Индивидуальное изготовление и ремонт обуви. М.: Изд. центр «Академия», 2004.
2. Lee H., Lee K., Choi T. Development of a low cost foot-scanner for a custom shoe tailoring system. South Korea: Seoul National University, 2007.
3. Ling Y-L. Automatic Feature Extraction from Front and Side Images // Industrial Engineering and Engineering Management. 2008.
4. Lowe D.G. Distinctive Image Features from Scale-Invariant Keypoints. 2004.
5. Ng H., Tong H-L., Tan W-H., Yap T., Chong P-F., Abdulah J. Human Identification Based on Extracted Gait Features // Internat. J. of New Computer Architectures and Their Applications. 2011.
6. Bulges C. A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery. 1998.
7. Mohammed F., Mohhamed W., Kayes A.S.M.,
Hasan J. Geometrical Feature Extraction of Human Hand // Internat. J. of Computer and Information Technology. 2013.
8. Dalal N., Triggs B. Histogram of Oriented Gradients for Human Detection, Computer Vision and Pattern Recognition. 2005.
9. Шубников В.Г., Беляев С.Ю. Подавление шума и оценка различий в изображениях // Научно-технические ведомости СПбГПУ. Информатика. Телекоммуникации. Управление. СПб.: Изд-во СПбГПУ, 2013. № 3(174). С. 58-66.
10. Canny J. A computational approach to edge detection // IEEE Trans. Pattern Analysis and Machine Intellegence. 1986. Vol. 8(6). Pp. 679-698.
11. Gonsalez R., Woods R. Digital Image Processing. Prentice Hall, 2007.
12. Kass M., Witkin A., Terzopoulos D. Snakes: Active Contour Models // Internat. J. of Computer Vision. 1988.
REFERENCES
1. Ledeneva I.N. Individual manufacturing and shoe repairing, Moscow: Academia Publ., 2004. (rus)
2. Lee H., Lee K., Choi T. Development of a low cost foot-scanner for a custom shoe tailoring system, Seoul National University, South Korea, 2007.
3. Ling Y-L. Automatic Feature Extraction from Front and Side Images, Industrial Engineering and Engineering Management, 2008.
4. Lowe D.G. Distinctive Image Features from Scale-Invariant Keypoints, 2004.
5. Ng H., Tong H-L., Tan W-H., Yap T., Chong P-F., Abdulah J. Human Identification Based on Extracted Gait Features, International Journal of New Computer Architectures and Their Applications, 2011.
6. Burges C. A Tutorial on Support Vector Machines for Pattern Recognition, Data Mining and Knowledge Discovery, 1998.
7. Mohammed F., Mohhamed W., Kayes A.S.M., Hasan J. Geometrical Feature Extraction
of Human Hand, International Journal of Computer and Information Technology, 2013.
8. Dalal N., Triggs B. Histogram of Oriented Gradients for Human Detection, Computer Vision and Pattern Recognition, 2005.
9. Shubnikov V.G., Belyayev S.Yu. Podavlenie shuma i otsenka razlichiy v izobrazheniyah [Noise removal and difference estimation in images], Nauchno-tehnicheskie vedomosti SPbGPU. Informatika. Telekommunikatsii. Upravlenie, St. Petersburg: SPbGPU Publ., 2013, No. 3(174), Pp. 58-66. (rus)
10. Canny J. A computational approach to edge detection, IEEE Trans. Pattern Analysis and Machine Intellegence, 1986, Vol. 8(6), Pp. 679-698.
11. Gonsalez R., Woods R. Digital Image Processing, Prentice Hall, 2007.
12. Kass M., Witkin A., Terzopoulos D. Snakes: Active Contour Models, International Journal of Computer Vision, 1988.
БЕЛЯЕВ Сергей Юрьевич — профессор кафедры прикладной математики Института прикладной математики и механики Санкт-Петербургского политехнического университета. 195251, Россия, Санкт-Петербург, ул. Политехническая, д. 29. E-mail: [email protected]
BELYAEV, Sergey Yu. St. Petersburg State Polytechnical University. 195251, Politekhnicheskaya Str. 29, St. Petersburg, Russia. E-mail: [email protected]
ШУБНИКОВ Владислав Германович — доцент кафедры прикладной математики Института прикладной математики и механики Санкт-Петербургского политехнического университета. 195251, Россия, Санкт-Петербург, ул. Политехническая, д. 29. E-mail: [email protected]
SHUBNIKOV, Vladislav G. St. Petersburg State Polytechnical University. 195251, Politekhnicheskaya Str. 29, St. Petersburg, Russia. E-mail: [email protected]
© Санкт-Петербургский государственный политехнический университет, 2014