We’ve seen much better performance using scene-cooccurrence than panel-cooccurrence, which stands to reason; for instance, a long dialogue between two characters would imply that those characters are probably in the same group, but could give us a panel co-occurrence of zero (in the extreme case) if the panels alternately switch between characters to show the one speaking at that time.

The data from the annotation tool is run through a python script that goes through the comic panel by panel and calculates a co-occurrence matrix for the characters. Insignificant characters (by our definition, those appearing in less than two scenes) are discarded.

As you can probably tell, the clustering of the characters plays the primary role in the generation of the layout. The data from the annotation tool is run through a python script that goes through the comic panel by panel and calculates a co-occurrence matrix for the characters. Insignificant characters (by our definition, those appearing in less than two scenes) are discarded. We’ve seen much better performance using scene-cooccurrence than panel-cooccurrence, which stands to reason; for instance, a long dialogue between two characters would imply that those characters are probably in the same group, but could give us a panel co-occurrence of zero (in the extreme case) if the panels alternately switch between characters to show the one speaking at that time. The co-occurrence matrix is then normalized, converted to a distance matrix, and clustered with DBSCAN.

Generating the layout