Можно сделать с помощью нейронной сети
Это делается так, берем обученную, например, на имэджнэте глубокую сверточную сеть, отбрасываем у нее последние 2-3 слоя, так как они являются классификаторами и нам не нужны
То, что сталось - это слои, которые выделяют признаки
И потом прогоняем одну картинку через НС, вторую, если активированные на выходе нейроны практически одинаковы, значит и картинки похожи