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 :)