File size: 3,652 Bytes
c957723
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import streamlit as st
import os
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"

st.markdown("""

        <style>

               .block-container {

                    padding-top: 1rem;

                    padding-bottom: 1rem;

                    padding-left: 1rem;

                    padding-right: 2rem;

                }

        </style>

        """, unsafe_allow_html=True)

st.markdown('''#### :orange[OCR solutions comparator]''')
st.write("")
lib = "This application's tab allows you to compare, from a given image, the results of different solutions:  \n*EasyOcr, PaddleOCR, MMOCR, Tesseract*"
st.markdown(lib)

with st.expander("See details:"):
    st.markdown(''' The 1st step is to choose the language for the text recognition (not all solutions \

    support the same languages), and then choose the picture to consider. It is possible to upload a file, \

    to take a picture, or to use a demo file. \

    It is then possible to change the default values for the text area detection process, \

    before launching the detection task for each solution.\n

    The different results are then presented.



    The 2nd step is to choose one of these \

    detection results, in order to carry out the text recognition process there. It is also possible to change \

    the default settings for each solution.''')
    st.write("")
    st.markdown("###### The recognition results appear in 2 formats:")
    st.markdown(''' - a visual format resumes the initial image, replacing the detected areas with \

    the recognized text. The background is + or - strongly colored in green according to the \

    confidence level of the recognition.

        A slider allows you to change the font size, another \

    allows you to modify the confidence threshold above which the text color changes: if it is at \

    70% for example, then all the texts with a confidence threshold higher or equal to 70 will appear \

    in white, in black otherwise.''')
    st.markdown(" - a detailed format presents the results in a table, for each text box detected. \

    It is possible to download this results in a local csv file.")


st.markdown('-----')


lib = "But, :orange[before evaluating OCR solutions], you may want to verify that the image is \

       of sufficient quality for an OCR task. And if it isn't, you might want to be able to \

       improve its quality.\n This is what the application's tab 'Image processing' allows you to do."
st.markdown(lib)

st.markdown('''#### :orange[Image quality verification and improvement]''')
with st.expander("See details:", expanded=True):
    st.write('''Here, you can run a recognition test with basic PPOCR. This displays the text areas \

             detected in the image, along with their values and probabilities.''')
    st.markdown('The **Image Processing** tab offers several operations: resize, rotate, filtering, \

             morphological transformations, and thresholding.')
    st.write('Special care has been taken to document the various operations, including links to \

             documentation and explanatory pop-ups for the various parameters:')
    st.image("doc.png", width=500)
    st.markdown('For each operation, you can choose whether or not to apply the transformation \

                to the image being processed using the **"Apply"** toggle.')
    st.markdown('When the result is satisfactory, you can view a detailed list of the various \

                operations performed on the original image using the **"List of operations"** button.')
    st.markdown('Finally, you can download the resulting image.')