У меня есть небольшая база данных, содержащая изображения баз Clash of Clans. Я хочу загрузить базу Clash of Clans в систему, и система должна выполнить поиск по изображениям базы данных и вернуть несколько похожих баз на основе входного изображения. Очень простое сопоставление с искусственным интеллектом.
Я использую Django и модель с открытым исходным кодом под названием «Глубокий поиск изображений» из этого репозитория: https://github.com/TechyNilesh/DeepImageSearch.git
его фрагмент кода следующий:
из пути импорта pathlib из DeepImageSearch импортировать Load_Data, Search_Setup импортировать ОС image_list = Load_Data().from_folder(['media/images/']) ST = Search_Setup(image_list=image_list, model_name='vgg19', pretrained=True, image_count=100) ST.run_index() метаданные = ST.get_image_metadata_file() Модель загружается в настройках, поэтому мне не нужно загружать ее при каждом запросе.
Я использую эту модель следующим образом:
класс CheckLink(APIView): Permission_classes = (AllowAny,) def post(сам, запрос): fs = FileSystemStorage(location=settings.MEDIA_ROOT, base_url=settings.MEDIA_URL) файл_изображения = запрос.ФАЙЛЫ['изображение'] сохраненное_изображение = fs.save(файл_изображения.имя, файл_изображения) images = settings.ST.get_similar_images(os.getcwd()+fs.url(saved_image), Number_of_images=3) файлы = [] для изображения в изображениях: image_ = StrategySerializer(Strategy.objects.get(picture__icontains=image)).data["картинка"] files.append("localhost:8000/"+image_) # image = StrategySerializer(image).data вернуть ответ (файлы) Это возвращает ссылку на похожие изображения, найденные в папке базы данных.
Проблема в том, что это совсем неточно. Я не знаю, правильно ли я его использую или нет. Ниже приведено изображение в моей базе данных:

Это изображение, которое я загрузил в систему:

Эти два изображения очень похожи, но модель возвращает другие изображения в базе данных.
Кто-нибудь знает, какой тип модели мне следует использовать, чтобы соответствовать этим типам изображений? Есть приложение, которое делает это безупречно, оно называется burnbase.
Буду признателен за любую помощь...
Мобильная версия