Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from inference import Inference | |
| import os | |
| from huggingface_hub import snapshot_download | |
| # 下载模型 | |
| model_path = snapshot_download(repo_id='Hongyang-Li/SuperRetinaDemo') | |
| inference_engine = Inference(model_path=model_path) | |
| def main(source_image, target_image): | |
| # 只有当两个图像都存在时才执行推理 | |
| if source_image is not None and target_image is not None: | |
| merged, match_show = inference_engine.inference(source_image, target_image) | |
| return merged, match_show | |
| else: | |
| # 如果任何一个图像为空,则返回空结果 | |
| return None, None | |
| with gr.Blocks() as demo: | |
| gr.Markdown("# SuperRetina CFP Registration Demo") | |
| with gr.Row(): | |
| with gr.Column(): | |
| gr.Markdown("Input Images") | |
| source_image_input = gr.Image( | |
| type="numpy", | |
| label="Source Image", | |
| height=300 # 固定高度 | |
| ) | |
| target_image_input = gr.Image( | |
| type="numpy", | |
| label="Target Image", | |
| height=300 # 固定高度 | |
| ) | |
| # 添加推理按钮 | |
| infer_button = gr.Button("Registration", variant="primary") | |
| with gr.Column(): | |
| gr.Markdown("Result") | |
| output_image = gr.Image( | |
| type="numpy", | |
| label="Registration Result", | |
| height=300 # 固定高度 | |
| ) | |
| gr.Markdown("Keypoints Matching") | |
| match_show_image = gr.Image( | |
| type="numpy", | |
| label="Keypoints Matching", | |
| height=300 # 固定高度 | |
| ) | |
| # 只有当按钮被点击时才触发推理 | |
| infer_button.click( | |
| fn=main, | |
| inputs=[source_image_input, target_image_input], | |
| outputs=[output_image, match_show_image] | |
| ) | |
| # 可选:添加清除按钮 | |
| clear_button = gr.Button("Clean all") | |
| def clear_all(): | |
| return None, None, None, None | |
| clear_button.click( | |
| fn=clear_all, | |
| inputs=[], | |
| outputs=[source_image_input, target_image_input, output_image, match_show_image] | |
| ) | |
| demo.launch() |