Как распознать фотографию?
Подготовка данных (для скорости манипулирования):
1. Контурная кластеризация. Чтобы были линии и белый фон; вычисление угла поворота в 2D-плоскости: (например) максимальное кол-во точек (образующих контур) от центра изображения до любого края по прямой должно быть сориентировано в левый верхний угол;
затем - "общий пиксель":  матрица-1: 64x64.
2. Цветовая кластеризация. Чтобы были усредненные цвета областей (сетки) исходного изображения. Сначала вращаем на угол из п.1 и затем вычисляем средний общий цвет пикселей на секторе (если разбить длины исходного изображения по вертикали и горизонтали на 64 равных отрезка и соединить точки линиями, образующими мнимую сетку, и взять одну такую ячейку-прямоугольник) и получаем матрицу-2: 64x64.
Сравнение матриц или хешей матриц.
Если нейросеть - обучение:
3. Обучение сети по 2-м матрицам.
и поиск....
PS: при нулевом результате во время поиска можно использовать искажения 2D плоскости искомого изображения.. рекомендуемые отклонения: не более 5-7% от изначального.
учи нейросеть, вот пример для нахождения автомабиля www.ab-log.ru/smart-house/neural-network/photo-analysis