Update app.py
Browse files
    	
        app.py
    CHANGED
    
    | @@ -1,22 +1,19 @@ | |
| 1 | 
             
            from fastapi import FastAPI, UploadFile, File
         | 
| 2 | 
             
            from transformers import TrOCRProcessor, VisionEncoderDecoderModel
         | 
| 3 | 
             
            from PIL import Image
         | 
| 4 | 
            -
            import torch
         | 
| 5 |  | 
| 6 | 
             
            app = FastAPI()
         | 
| 7 |  | 
| 8 | 
            -
             | 
| 9 | 
            -
            processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-stage1")
         | 
| 10 | 
            -
            model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-stage1")
         | 
|  | |
|  | |
| 11 |  | 
| 12 | 
             
            @app.post("/predict")
         | 
| 13 | 
             
            async def predict(file: UploadFile = File(...)):
         | 
| 14 | 
            -
                # open uploaded image
         | 
| 15 | 
             
                image = Image.open(file.file).convert("RGB")
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                # run OCR
         | 
| 18 | 
             
                pixel_values = processor(image, return_tensors="pt").pixel_values
         | 
| 19 | 
             
                generated_ids = model.generate(pixel_values)
         | 
| 20 | 
             
                text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
         | 
| 21 | 
            -
             | 
| 22 | 
             
                return {"text": text}
         | 
|  | |
| 1 | 
             
            from fastapi import FastAPI, UploadFile, File
         | 
| 2 | 
             
            from transformers import TrOCRProcessor, VisionEncoderDecoderModel
         | 
| 3 | 
             
            from PIL import Image
         | 
|  | |
| 4 |  | 
| 5 | 
             
            app = FastAPI()
         | 
| 6 |  | 
| 7 | 
            +
            try:
         | 
| 8 | 
            +
                processor = TrOCRProcessor.from_pretrained("microsoft/trocr-base-stage1")
         | 
| 9 | 
            +
                model = VisionEncoderDecoderModel.from_pretrained("microsoft/trocr-base-stage1")
         | 
| 10 | 
            +
            except Exception as e:
         | 
| 11 | 
            +
                print("Model load failed:", e)
         | 
| 12 |  | 
| 13 | 
             
            @app.post("/predict")
         | 
| 14 | 
             
            async def predict(file: UploadFile = File(...)):
         | 
|  | |
| 15 | 
             
                image = Image.open(file.file).convert("RGB")
         | 
|  | |
|  | |
| 16 | 
             
                pixel_values = processor(image, return_tensors="pt").pixel_values
         | 
| 17 | 
             
                generated_ids = model.generate(pixel_values)
         | 
| 18 | 
             
                text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
         | 
|  | |
| 19 | 
             
                return {"text": text}
         |