DPR-5gee / app.py
Rammohan0504's picture
Update app.py
7d8ec5e verified
raw
history blame
1.34 kB
import gradio as gr
from transformers import BlipProcessor, BlipForConditionalGeneration
from PIL import Image
from fpdf import FPDF
import os
from datetime import datetime
processor = BlipProcessor.from_pretrained("Salesforce/blip-image-captioning-base")
model = BlipForConditionalGeneration.from_pretrained("Salesforce/blip-image-captioning-base")
def analyze_image(image):
raw_image = Image.fromarray(image)
text = "Describe the construction site"
inputs = processor(raw_image, text, return_tensors="pt")
out = model.generate(**inputs)
caption = processor.decode(out[0], skip_special_tokens=True)
date_str = datetime.now().strftime("%Y-%m-%d")
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.multi_cell(0, 10, f"Daily Progress Report - {date_str}\n\nCaption: {caption}")
os.makedirs("reports", exist_ok=True)
file_path = f"reports/DPR_{date_str}.pdf"
pdf.output(file_path)
return caption, file_path
demo = gr.Interface(
fn=analyze_image,
inputs=gr.Image(type="numpy", label="Upload Site Photo"),
outputs=[gr.Textbox(label="Generated Caption"), gr.File(label="Download DPR PDF")],
title="Auto DPR Generator",
description="Upload a construction site image to generate a Daily Progress Report."
)
if __name__ == "__main__":
demo.launch()