У меня есть Flask API, предназначенный для прогнозирования принадлежности загруженного рентгеновского изображения грудной клетки к классу НОРМАЛЬНЫЙ или ПНЕВМОНИЯ. когда я вызываю API из PHP-скрипта, прогноз всегда ПНЕВМОНИЯ (100,00%), независимо от входного изображения.
Вот моя настройка:
Код API Flask
Когда я использую Python в Colab и тестирую модель с теми же изображениями, прогнозы точны (НОРМАЛЬНАЯ или ПНЕВМОНИЯ).
Когда изображение отправляется с помощью PHP-скрипта, API всегда прогнозирует ПНЕВМОНИЮ (100,00 %). ) для каждого изображения, даже для изображений, которые правильно классифицируются как НОРМАЛЬНО при тестировании в совместной лаборатории.
Шаги, которые я пробовал:
Проверено, что Flask API корректно работает со сценариями Python.
Зарегистрирован объект request.files['image'] в Flask, чтобы подтвердить, что изображение передается полученный из PHP-скрипта. Кажется, файл получен правильно.
Подтверждено, что файл загружается и передается в CURLFile в PHP.
Убедился, что сценарий PHP использует правильная кодировка данных multipart/form для запроса.
Изменены размеры и нормализованы изображения в Flask API.
Что может пойти не так?
Повреждается ли файл во время загрузки или передачи в сценарии PHP?
Не удается ли CURLFile в PHP отправить файл в правильном формате ?
Существует ли несоответствие в обработке данных изображения при получении через PHP и Python?
API Flask должен возвращать точные прогнозы (НОРМАЛЬНЫЕ или ПНЕВМОНИЯ) независимо от того, того, загружено ли изображение через скрипт PHP или скрипт Python.
Почему Flask API всегда возвращает PNEUMONIA (100,00%), когда запрос поступает от PHP?
Как можно Я гарантирую, что сценарий PHP правильно отправляет файл изображения так же, как это делают сценарии Python?
Будем очень признательны за любые идеи и предложения. Спасибо!
У меня есть Flask API, предназначенный для прогнозирования принадлежности загруженного рентгеновского изображения грудной клетки к классу НОРМАЛЬНЫЙ или ПНЕВМОНИЯ. когда я вызываю API из PHP-скрипта, прогноз всегда ПНЕВМОНИЯ (100,00%), независимо от входного изображения. Вот моя настройка: Код API Flask [code]from flask import Flask, request, jsonify from tensorflow.keras.models import load_model from PIL import Image import numpy as np import os
app = Flask(__name__)
# Load the pre-trained model model = load_model('../doctor/NU_detection_notverygood.keras')
# Class names for predictions class_names = ['NORMAL', 'PNEUMONIA']
@app.route('/') def home(): return "PNEUMONIA Detection API is running!"
@app.route('/predict', methods=['POST']) def predict(): if 'image' not in request.files: return jsonify({'error': 'No image file provided'}), 400
if ($response === false) { echo "Error in prediction!"; } else { $result = json_decode($response, true); $prediction = $result['prediction'] ?? 'No result'; $probability = $result['probability'] ?? 'No probability data'; echo "Prediction: $prediction, Probability: $probability"; } } else { echo "Failed to upload the file."; } } } [/code] Проблема: [list] [*]Когда я использую Python в Colab и тестирую модель с теми же изображениями, прогнозы точны (НОРМАЛЬНАЯ или ПНЕВМОНИЯ).
[*]Когда изображение отправляется с помощью PHP-скрипта, API всегда прогнозирует ПНЕВМОНИЮ (100,00 %). ) для каждого изображения, даже для изображений, которые правильно классифицируются как НОРМАЛЬНО при тестировании в совместной лаборатории.
[/list] Шаги, которые я пробовал: [list] [*]Проверено, что Flask API корректно работает со сценариями Python. [*]Зарегистрирован объект request.files['image'] в Flask, чтобы подтвердить, что изображение передается полученный из PHP-скрипта. Кажется, файл получен правильно. [*]Подтверждено, что файл загружается и передается в CURLFile в PHP. [*]Убедился, что сценарий PHP использует правильная кодировка данных multipart/form для запроса. [*]Изменены размеры и нормализованы изображения в Flask API. [/list] Что может пойти не так? [list] [*]Повреждается ли файл во время загрузки или передачи в сценарии PHP? [*]Не удается ли CURLFile в PHP отправить файл в правильном формате ? [*]Существует ли несоответствие в обработке данных изображения при получении через PHP и Python? [/list] API Flask должен возвращать точные прогнозы (НОРМАЛЬНЫЕ или ПНЕВМОНИЯ) независимо от того, того, загружено ли изображение через скрипт PHP или скрипт Python. Почему Flask API всегда возвращает PNEUMONIA (100,00%), когда запрос поступает от PHP? Как можно Я гарантирую, что сценарий PHP правильно отправляет файл изображения так же, как это делают сценарии Python? Будем очень признательны за любые идеи и предложения. Спасибо!