Spaces:
Sleeping
Sleeping
File size: 1,343 Bytes
c4e3ea5 6b0a154 7d8ec5e c4e3ea5 a21c2eb c4e3ea5 7d8ec5e 6b0a154 7d8ec5e 6b0a154 7d8ec5e 6b0a154 7d8ec5e c4e3ea5 6b0a154 7d8ec5e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
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()
|