Как определить размер объекта на фото при помощи python?
Смотри в сторону OpenCV. Какой конкретно метод - зависит от искомого объекта: один ли он в кадре, насколько он контрастен по отношению к фону, насколько много на нём контрастных деталей, и т.д.
Есть template matching для случаев, когда видимый размер и ориентация известны. Работает для нескольких объектов.
Есть feature matching, для случаев, когда объект только один и имеет контрастные, узнаваемые элементы, но может быть разного размера и ориентации. 
Есть каскады Хаара (или тут) для поиска множества объектов известной ориентации, но с варьируемым размером.
Есть backprojection, если объектов несколько, но они имеют характерный, узнаваемый набор цветов.
Копай, разбирайся, выбирай.

Если же вопрос в том, чтобы определить масштаб снимка, то тут самый простой способ - использовать шахматный шаблон с заранее известным размером ячейки и числом строк/столбцов. Тогда можно будет оценить расстояние между углами шаблона в пикселах, и сопоставить его с размером объекта в том же кадре. Заодно можно будет попробовать исправить перспективные искажения (попробовать переделать снимок в "вид строго сверху").
В криминалистике обычно для определения размеров объекта на фото, с ним рядом кладут что-то имеющее известный размер. Коробок спичек. Линейку. Или монету. В таком случае наверное можно сопоставить размеры.

В географии в углу карты обычно рисуют маленькую линейку масштаба. По ней тоже можно что-то определить.

В военных биноклях или оптических приборах тоже рисуют такую-себе условную шкалу по которой можно определить либо расстояние до объекта либо высоту самого объекта. Например если объект - это взрослый человек в полный рост.

В остальных случаях нужно иметь наверное представление о самом объекте. Если это камень природной формы - то чорт его знает какие у него размеры. И в данной задаче это наверное будет главное ограничение.