From 96adc6bef6c7f0af81c99b97ed669da16712a381 Mon Sep 17 00:00:00 2001 From: jianjiang Date: Fri, 21 Apr 2023 15:22:59 +0800 Subject: [PATCH] ok --- .gitea/workflows/build.yaml | 48 ++++++++++++++++++++++++++++++++++++ Dockerfile | 10 ++++++++ app.py | 37 +++++++++++++++++++++++++++ printed.jpg | Bin 0 -> 3792 bytes requirements.txt | 3 +++ 5 files changed, 98 insertions(+) create mode 100644 .gitea/workflows/build.yaml create mode 100644 Dockerfile create mode 100644 app.py create mode 100644 printed.jpg 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..d0b35f3 --- /dev/null +++ b/app.py @@ -0,0 +1,37 @@ +from transformers import TrOCRProcessor, VisionEncoderDecoderModel +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-printed') +model = VisionEncoderDecoderModel.from_pretrained('microsoft/trocr-base-printed') + +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 = ['printed.jpg']) + + +if __name__ == "__main__": + # demo.queue(concurrency_count=3) + #demo.launch(server_name = "0.0.0.0", server_port = 7011) + demo.launch() diff --git a/printed.jpg b/printed.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2fadd079e8929e148ca38cbe0f6bb42f788729c GIT binary patch literal 3792 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 literal 0 HcmV?d00001 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..f8e1863 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +gradio +transformers +torch