в основном вы можете сделать следующее
обучить сеть с автоматическим кодированием на изображениях (конечно, используя CNN) после достижения достаточной точности, используйте часть сети с кодером, чтобы получить вектор, представляющий изображение
вы можете использовать любой метод сходства между векторами, чтобы получить первые n ближайших векторов
о вашем втором замечании о разных размерах, вам придется нормализовать изображения до одного общего размера или использовать2 разные сети, для A и B
, если вы хотите использовать только одну сеть, это означает, что вам нужно снабдить ее изображениями, соответствующими тусклому входному слою, поэтому вам придется сдуть инфляцию пикселей изображения.Чтобы изменить размер изображения до выбранного размера, есть несколько способов сделать это, и у каждого есть свои плюсы и минусы (большинство из них касаются потери данных)
например, вы можете объединить каждый блок 2X2 в 1Пиксель, вы можете обрезать изображение до нужного размера (теряя данные) и так далее ... мое предложениеСначала нужно использовать API изменения размера вашей библиотеки изображений и после достижения стабильного решения, а при настройке сети поэкспериментировать с другими методами изменения размера
Есть много примеров авто-кодировщиков, зависит отрамки, которые вы используете ... вот простой в керасе