Чтобы расширить сказанное другими, вы можете разбить эту сложную задачу на несколько (все еще сложных) компонентов.
Определите квадрат пикселей, содержащих человека.
Определите квадрат пикселей, содержащий эталонный объект, размеры которого вам известны. (например, банка кокса, линейка и т. д.)
Определение трехмерного отношения между двумя объектами, чтобы вы могли переводить пиксели эталонного объекта в тот же масштаб, что и пиксели человека.
Рассчитать размеры человека по формуле:
human.real_height = human.pixel_height * reference.real_height / reference.pixel_height
Конечно, этот процесс далеко не надежен и все же довольно сложен, но он должен обеспечить разумное приближение. Я не слишком много играл с существующими наборами инструментов, но вы можете начать с OpenCV , с привязками Python. Кроме того, алгоритм SIFT - интересный метод, который может работать здесь, но я думаю, что есть только реализация на C #.
Третий шаг, вероятно, будет самым трудным, если вы используете только одно изображение. Люди извлекают данные трехмерных изображений с помощью стереоскопии (то есть мы используем изображения обоих наших глаз, чтобы «вывести» глубину), но даже в этом случае они не являются надежными, поскольку цвет и затенение могут отбросить нас. Я полагаю, что это можно сделать с помощью одного изображения, но, скорее всего, оно будет более подвержено ошибкам. Это область активных исследований, поэтому я бы посмотрел книги по компьютерному зрению, чтобы лучше понять, что в настоящее время практично.