Dal codice che leggo potresti risolvere creando 2 livelli uno per il canvas, che nasconderai o visualizzerari, e l'altro per l'immagine. Anche xche credo difficilmente sia possibile tramite canvas assegnare un id ad ogni linea o poligono. Cosa credo succeda cn svg.
Mi considero alle prime armi, quindi...