import gradio as gr import torch from PIL import Image import io import pandas as pd from model import RadarDetectionModel from feature_extraction import (calculate_amplitude, classify_amplitude, calculate_distribution_range, classify_distribution_range, calculate_attenuation_rate, classify_attenuation_rate, count_reflections, classify_reflections) from report_generation import generate_report from utils import plot_detection from database import save_report, get_report_history from report_generation import render_report model = RadarDetectionModel() def process_image(image): detection_result = model.detect(image) np_image = np.array(image) amplitude = calculate_amplitude(np_image) amplitude_class = classify_amplitude(amplitude) box = detection_result['boxes'][0].tolist() distribution_range = calculate_distribution_range(box) distribution_class = classify_distribution_range(distribution_range) attenuation_rate = calculate_attenuation_rate(np_image) attenuation_class = classify_attenuation_rate(attenuation_rate) reflection_count = count_reflections(np_image) reflection_class = classify_reflections(reflection_count) features = { "振幅": amplitude_class, "分布范围": distribution_class, "衰减速度": attenuation_class, "反射次数": reflection_class } report = generate_report(detection_result, image, features) detection_image = plot_detection(image, detection_result) save_report(report) return detection_image, report def analyze_radar_image(image): detection_image, report = process_image(image) report_html = render_report(report) return detection_image, report_html def display_history(): reports = get_report_history() history_html = "
报告ID: {report.report_id}
缺陷类型: {report.defect_type}
描述: {report.description}
创建时间: {report.created_at}