From 84f1b0c95b7b3ec08f9957faf7b5fc19e2bcfb8d Mon Sep 17 00:00:00 2001
From: jianjiang <jianjiang@iflytek.com>
Date: Fri, 21 Apr 2023 15:19:39 +0800
Subject: [PATCH] ok

---
 .gitea/workflows/build.yaml |  48 ++++++++++++++++++++++++++++++++++++
 Dockerfile                  |  10 ++++++++
 app.py                      |  39 +++++++++++++++++++++++++++++
 handwritten.jpeg            | Bin 0 -> 4324 bytes
 requirements.txt            |   4 +++
 5 files changed, 101 insertions(+)
 create mode 100644 .gitea/workflows/build.yaml
 create mode 100644 Dockerfile
 create mode 100644 app.py
 create mode 100644 handwritten.jpeg
 create mode 100644 requirements.txt

diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml
new file mode 100644
index 0000000..1ed1ca9
--- /dev/null
+++ b/.gitea/workflows/build.yaml
@@ -0,0 +1,48 @@
+name: Build
+run-name: ${{ github.actor }} is upgrade release 🚀
+on: [push]
+env:
+  REPOSITORY: ${{ github.repository }}
+  COMMIT_ID: ${{ github.sha }}
+jobs:
+  Build-Deploy-Actions:
+    runs-on: ubuntu-latest
+    steps:
+      - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
+      - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
+      - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
+      - name: Check out repository code
+        uses: actions/checkout@v3
+      -
+        name: Setup Git LFS
+        run: |
+          git lfs install
+          git lfs fetch
+          git lfs checkout                              
+      - name: List files in the repository
+        run: |
+                                                                                ls ${{ github.workspace }}
+      -
+        name: Docker Image Info
+        id: image-info
+        run: |
+          echo "::set-output name=image_name::$(echo $REPOSITORY | tr '[:upper:]' '[:lower:]')"
+          echo "::set-output name=image_tag::${COMMIT_ID:0:10}"                              
+      -
+        name: Login to Docker Hub
+        uses: docker/login-action@v2
+        with:
+          registry: artifacts.iflytek.com
+          username: ${{ secrets.DOCKERHUB_USERNAME }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v2
+      -
+        name: Build and push
+        run: |
+          docker version
+          docker buildx build -t artifacts.iflytek.com/docker-private/atp/${{ steps.image-info.outputs.image_name }}:${{ steps.image-info.outputs.image_tag }} . --file ${{ github.workspace }}/Dockerfile --load
+          docker push artifacts.iflytek.com/docker-private/atp/${{ steps.image-info.outputs.image_name }}:${{ steps.image-info.outputs.image_tag }}
+          docker rmi artifacts.iflytek.com/docker-private/atp/${{ steps.image-info.outputs.image_name }}:${{ steps.image-info.outputs.image_tag }}                              
+      - run: echo "🍏 This job's status is ${{ job.status }}."
+
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..671699b
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,10 @@
+FROM python:3.8.13
+
+WORKDIR /app
+
+COPY . /app
+
+RUN pip config set global.index-url https://pypi.mirrors.ustc.edu.cn/simple 
+RUN pip install -r requirements.txt
+
+CMD ["python", "app.py"]
diff --git a/app.py b/app.py
new file mode 100644
index 0000000..8e46cca
--- /dev/null
+++ b/app.py
@@ -0,0 +1,39 @@
+from transformers import TrOCRProcessor, VisionEncoderDecoderModel
+from PIL import Image
+import requests
+import gradio as gr
+from gradio.themes.utils import sizes
+
+theme = gr.themes.Default(radius_size=sizes.radius_none).set(
+    block_label_text_color = '#4D63FF',
+    block_title_text_color = '#4D63FF',
+    button_primary_text_color = '#4D63FF',
+    button_primary_background_fill='#FFFFFF',
+    button_primary_border_color='#4D63FF',
+    button_primary_background_fill_hover='#EDEFFF',
+)
+
+
+processor = TrOCRProcessor.from_pretrained('microsoft/trocr-base-handwritten')
+model = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-base-handwritten')
+
+def ocr(image):
+    pixel_values = processor(images=image, return_tensors="pt").pixel_values
+    generated_ids = model.generate(pixel_values)
+    generated_text = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
+
+    return generated_text
+
+
+demo = gr.Interface(fn=ocr,
+                    inputs='image',
+                    outputs='text',
+                    title = "ocr",
+                    theme = theme,
+                    examples = ['handwritten.jpeg'])
+
+
+if __name__ == "__main__":
+#    demo.queue(concurrency_count=3).launch(server_name = "0.0.0.0", server_port = 7010)
+    demo.launch()
+
diff --git a/handwritten.jpeg b/handwritten.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..ccc96e50d12dd526437c76a794b5e9ebfcc40c37
GIT binary patch
literal 4324
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
KpB{u<j{h55Gr>jx

literal 0
HcmV?d00001

diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..c77de10
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,4 @@
+gradio
+transformers
+torch
+Pillow