Thanks for sharing this. The blog article on building your pipeline was a fun read! Your solution has a nice blend of heuristics and DL.
If you’re ever interested in revisiting this click project, you could check out DeepLabCut [0]. A blogpost highlighted a toy example of training a DLC model to recognize clock arms [1], which may or may not be more consistent than your Canny approach :)
[0] https://github.com/DeepLabCut/DeepLabCut
[1] https://guillermohidalgogadea.com/openlabnotebook/training-y...
Woah generalized pose estimation seems really useful and it's cool that the example is for reading a clock. Thanks for sharing!