Я новичок в машинном обучении и Python. Я пытаюсь найти наиболее подходящие (похожие) изображения в каталоге для данного изображения.
Например, у меня есть 50 000 изображения монет в папке и пытаюсь найти 10 лучших изображений, наиболее соответствующих указанному пользователем изображению.
Вот мои примеры файлов. https://drive.google.com/drive/folders/ ... sp=sharing
Вот пример изображения для поиска https://drive.google.com/file/d/ 1cWTxLIjG2pKW4-1g-LYfdAbccG18sPnX/view?usp=sharing
Я также изменил данное изображение с помощью OpenCV, но ничего не изменилось, вот обрезанная версия https://drive.google.com/file/d/1AvZbPg ... sp=sharing
Ожидается, что файл 18206-f.jpg будет наиболее подходящим файлом согласно указанному образцу файла.
Я попробовал множество алгоритмов и предложил решения, подобные приведенному ниже, но не смог найти подходящего решения.
Я использовал пользовательская модель обучения с классификацией изображений, как указано здесь https://www.tensorflow.org/tutorials/im ... sification, но мне это не удалось. Я предполагаю, что у меня нет другого файла для конкретного образца, я также попробовал пользовательские данные механизм увеличения, но снова не удалось (не удалось = не удалось найти файлы, связанные с правами)
Я использовал https://github.com/TechyNilesh/DeepImageSearch, но не смог, я думаю, такое решение лучше всего подходит для семантического поиска, мне нужен поиск по изображениям, например сходство изображений, а не сходство ключевых слов/содержания и т. д.
Я использовал хеширование алгоритмы, такие как Ahash, Dhash и Phash, но не удалось, когда изображение находилось в разных условиях и т. д.
Я новичок в машинном обучении и Python. Я пытаюсь найти наиболее подходящие (похожие) изображения в каталоге для данного изображения. Например, у меня есть 50 000 изображения монет в папке и пытаюсь найти 10 лучших изображений, наиболее соответствующих указанному пользователем изображению. Вот мои примеры файлов. https://drive.google.com/drive/folders/1pxz4nuyWfSLcrzs0QZpvqWO77ZI3Vn6M?usp=sharing Вот пример изображения для поиска https://drive.google.com/file/d/ 1cWTxLIjG2pKW4-1g-LYfdAbccG18sPnX/view?usp=sharing Я также изменил данное изображение с помощью OpenCV, но ничего не изменилось, вот обрезанная версия https://drive.google.com/file/d/1AvZbPgZJvPwSBqNxVZ9N7t-DxTI_Xzsl/view?usp=sharing Ожидается, что файл 18206-f.jpg будет наиболее подходящим файлом согласно указанному образцу файла. Я попробовал множество алгоритмов и предложил решения, подобные приведенному ниже, но не смог найти подходящего решения. [list] [*]Я использовал пользовательская модель обучения с классификацией изображений, как указано здесь https://www.tensorflow.org/tutorials/images/classification, но мне это не удалось. Я предполагаю, что у меня нет другого файла для конкретного образца, я также попробовал пользовательские данные механизм увеличения, но снова не удалось (не удалось = не удалось найти файлы, связанные с правами)
[*]Я использовал https://github.com/TechyNilesh/DeepImageSearch, но не смог, я думаю, такое решение лучше всего подходит для семантического поиска, мне нужен поиск по изображениям, например сходство изображений, а не сходство ключевых слов/содержания и т. д.
[*]Я использовал хеширование алгоритмы, такие как Ahash, Dhash и Phash, но не удалось, когда изображение находилось в разных условиях и т. д.
[*]Я попробовал упомянутый здесь поиск KNN https://stackoverflow.com/a/ 56881718/6799182, но снова не удалось.
[/list] [code]import cv2 import os import numpy as np
from typing import Union
def read_img_from_dir(image_dir: str, query_shape: Union[list, tuple]) -> tuple[list, np.ndarray]: name_image = [] img_array = np.empty((0, np.prod(query_shape)), dtype=np.float32) for image_name in os.listdir(image_dir): name_image.append(image_name) image = cv2.imread(os.path.join(image_dir, image_name)) if not isinstance(image, np.ndarray): # if path is not image continue image = cv2.resize(image, query_shape[:2][::-1]) image = image.reshape(1, -1) / 255. img_array = np.concatenate((img_array, image)) return name_image, img_array