UNITAC Contract: Improving the photo upload experience & other tasks #635
Replies: 7 comments
-
|
Link to architecture / flow diagrams: https://gist.github.com/FeezyHendrix/db2805a985ab0ee36715960df1e3cea2 |
Beta Was this translation helpful? Give feedback.
-
|
The contract is coming to a close. Summary of what we achieved
Potential things to continue (outside the contract)Processing feedback and restart:
Detecting coverage gaps from the imagery uploaded: |
Beta Was this translation helpful? Give feedback.
-
|
Creating a test dataset:
exiftool -csv \
-FileName \
-DateTimeOriginal \
-GPSLatitude \
-GPSLongitude \
-AbsoluteAltitude \
-GimbalPitchDegree \
-CameraPitch \
-FlightYawDegree \
./ > image_metadata.csv
Note Errors like |
Beta Was this translation helpful? Give feedback.
-
Feedback 15-01-20251. Move the button to upload the modal #717The button should be more prominent.
2. What if the user aborts the process? ✅ (I think is isn't actually an issue)
3. Scenario when all images are dups #716
4. User error: can continue before batch processed #717
5. The map during task validation step should display all the images from all tasks, but does not. #715
(edit: perhaps the reason for this is because some of the images have invalid coordinates, and some are the other side of the planet. The map can't display those, so they should be filtered out before rending this map)
6. Logic to handle additional validation metricsI'll take a look at these:
7. Check the multipart pause and cancel is tested well
8. Conflicting popup message for user
|
Beta Was this translation helpful? Give feedback.
-
Feedback 16/01/2026Captured in issue #714 1. Issue with processing triggering - important!
2. How to view task processing status after closing dialog
|
Beta Was this translation helpful? Give feedback.
-
Feedback 18/01/20261. Display rejected images on the task review map #701We currently separate out 'rejected' images from task-assigned images:
|
Beta Was this translation helpful? Give feedback.
-
Uploader test on prodI conducted a pretty good test of new functionality using this test dataset The uploading of 1000 files went very smoothly (albeit on a good connection)
I switched down to lower upload speed connections during the process, to simulate connection speed fluctuations - 15Mbps (Wifi) --> 3 Mbps (4G) --> 1Mbps (3G). Nothing failed while doing this - the estimated time to complete just increased as expected 🙌 Image classification test on prodTBC |
Beta Was this translation helpful? Give feedback.







Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Overall milestone: https://github.com/hotosm/drone-tm/milestone/1
Pt1: improvements to the photo uploading process
Summary: refactors the current photo upload process making it more scalable, improves the user experience of photo uploads on bad internet connections.
#540
#553
#636
Current workflow
dtm-data/projects/{project_uuid}/{task_uuid}/images/{filename}.jpgProposed workflow
dtm-data/projects/{project_uuid}/user-uploads/{filename}.jpgimages.jsonfile. This definitely needs improvement, see Replaceimages.jsonapproach as it's not scalable, not transactional, and is fragile #636.user-uploadstodtm-data/projects/{project_uuid}/{determined_task_uuid}/{filename}.jpgNote
We could consider reading the EXIF info prior to upload using a js lib like https://github.com/mattiasw/ExifReader
But we would also need to do the photo geolocation / task intersection calculation - probably best handled on the backend.
This does provide a slight delay in the processing, but it simplifies the frontend, and makes it much easier to re-run sorting and debug from the server-side.
Implementation
Triggering the photo classification
/task_id/uploads/statusfor how many photos are remaining to be sorted / classified. The status could be displayed to the user on the task page.Pt2: better feedback for processing workflows
Summary: give a bit more feedback to users on the status of their processing, and also allow them to retry failed processing.
#603
#515
Pt3: filtering of bad imagery before processing
Summary: during photo classification step, add some logic to scan the imagery and remove 'bad' data, such as photos pointing to the sky / horizon, blurry photos, photos taken too and from the takeoff point (discard).
#541 (server side)
#511 (client side)
#599 (server side)
Note
All of this validation is done on the backend. If we host the backend and S3 in the same AWS zone, this shouldn't be a huge deal (we have to download the imagery to backend for checking).
However, it would be really nice to do some basic EXIF validation on the frontend (and perhaps in the QGIS plugin in the future).
GimbalPitchDegree,GimbalRollDegree, but other manufacturers may use other EXIF tags, so keep this in mind).This would reduce bandwidth from user --> server and be a bit more efficient.
Pt4: post-upload / processing workflows
Summary: display the processed task 'fast orthophoto' to the user, then allow the user to tag areas that are not well covered for a second flightplan and re-run either (1) all of the task (2) part of the task.
Manual: #512
Automated: #513
Beta Was this translation helpful? Give feedback.
All reactions