Just wanted to add a reference: Fully Convolutional Networks for Semantic Segmentation. I think you are better off going this route than a purely unsupervised route (at this point in time).
Maybe you can find a pretrained convolutional segmentation network and use that to start building a hand-labelled image set? More specifically:
- Find or train a conv net for semantic segmentation. I'm not sure how big those elephant photos are, but the one you posted seems very hi-res. You would definitely need to downsample the images if you plan on training from scratch. Maybe you could contact the authors of the aforementioned paper and see if they shared their code or are aware of open source implementations of their model.
- Next you can label a certain portion of these properly tusk segmented images by hand? You will have to do some of your own "data-munging" here and use a convolutional segmentation network to build a training set for your specific task.
I am imagining the following pipeline, just throwing it out there:
Raw Image -> Segmentation model -> Hand labelling of which segment is a tusk and the approximate length of the tusk (as the segmentation model might return many different segments and some images may not have the tusk captured) -> Train a network which 1) identifies tusks and then 2) predicts the length of the tusk.
It's not impossible, but it may be difficult to find the right architecture and tune everything. You can have a multistage classification pipeline, maybe sequentially stacking two different supervised networks together. But I do think you need to generate some sort of labels. The labels here are much more complex and richer than class labels as they require a "spatial label" like here is the tusk, and then a float label, this is the approximate length.
Maybe you could contact the article's co-authors and get their opinion? They seem to be experts on using deep learning methods for these types of tasks.