Difference between PyODM and WebODM

Hi Guys,

It has been quite sometime since using WebODM. The UI is quite user-friendly. I can upload the photos and get the results on time. All are downloadable. Big kudos to the team :partying_face:.

Recenlty, I have been trying to automate the things and got to know about the PyODM.
Being familiar with Python, I felt it is the right path for the automation. I have achieved the automation part as well.

But there is huge time difference between the processing time and I feel that I might be doing something wrong.

WebODM
Using WebODM is quite startforward.

PyODM
I have followed the instructions from Welcome to PyODM’s documentation! — PyODM documentation

Both of them uses NodeODM container, so according to my understanding both should have the same processing time.

I used 1k images and I was monitoring the logs of NodeODM.

WebODM
info: About to run: /code/run.sh --min-num-features 24000 --mesh-size 250000 --crop 0.01 --auto-boundary --pc-filter 0 --pc-geometric --dtm --dsm --dem-resolution 1 --orthophoto-resolution 1 --rolling-shutter --pc-ept --cog --project-path /var/www/data 06e05a1c-9014-4be9-a0f0-d0b7223162aa

First of all, I did not use --pc-ept and --cog parameter here, but I guess it was set by default.

PyODM
info: About to run: /code/run.sh --min-num-features 24000 --max-concurrency 36 --mesh-size 250000 --crop 0.01 --auto-boundary --pc-las --pc-filter 0 --pc-geometric --dtm --dsm --dem-resolution 1 --orthophoto-resolution 1 --rolling-shutter --rolling-shutter-readout 0 --project-path /var/www/data 8716522a-d656-4045-852c-dcea50fa107b

Here extra parameter which I have used is --max-concurrency because I thought, the default value would be 4 only as indicated in the official documentation. But both the VMs had same configuration and total it has 36 vCPUs only. Also, I used --pc-las as an extra parameter.

PyODM process is still running and it has been more than 17 hours. I feel there is something fundamentally wrong with my approach. I tested with few other smaller datasets as well and found the same observation only.

  1. Has someone experienced the same?
  2. What could be the next course of action to debug further?

Edit: Processing through PyODM took 22 hours 36 minutes (Almost 4 times).

WebODM might be resizing your images (is it?), that would explain the difference in processing times.

To make a fair comparison, ask WebODM not to resize your images prior to processing.

2 Likes

My bad. I should have noticed it. I will give a shot.

I am thinking to do it other way because after resizing as well, I get a decent quality.

resize-to is termed as a Legacy option. So, should I manually resize it?

1 Like

:+1:

2 Likes