OCR usermanual 20240111 v2
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Sheng, Lichang <lichangsheng1@noreply.gitea.eco.tsi-dev.otc-service.com> Co-committed-by: Sheng, Lichang <lichangsheng1@noreply.gitea.eco.tsi-dev.otc-service.com>
635
docs/ocr/umn/ALL_META.TXT.json
Normal file
317
docs/ocr/umn/CLASS.TXT.json
Normal file
3
docs/ocr/umn/PARAMETERS.txt
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version=""
|
||||||
|
language="en-us"
|
||||||
|
type=""
|
BIN
docs/ocr/umn/en-us_image_0000001707122028.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
docs/ocr/umn/en-us_image_0000001707228246.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/ocr/umn/en-us_image_0000001707396210.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
docs/ocr/umn/en-us_image_0000001707404882.png
Normal file
After Width: | Height: | Size: 47 KiB |
BIN
docs/ocr/umn/en-us_image_0000001707409654.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
docs/ocr/umn/en-us_image_0000001755213865.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
docs/ocr/umn/en-us_image_0000001755220149.png
Normal file
After Width: | Height: | Size: 22 KiB |
18
docs/ocr/umn/ocr_01_0002.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<a name="ocr_01_0002"></a><a name="ocr_01_0002"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">What Is OCR?</h1>
|
||||||
|
<div id="body39451090"><p id="ocr_01_0002__p17315121042612">Optical Character Recognition (OCR) detects and extracts text from images and converts the text into an editable JSON format.</p>
|
||||||
|
<p id="ocr_01_0002__p13315181018266">OCR provides open APIs, so you can use programming languages such as Python and Java to call OCR APIs to extract text from images. OCR allows you to automate the collection of key data. It helps you build an intelligent service system to improve efficiency. For details about how to obtain APIs, see <em id="ocr_01_0002__i1649311463518">Optical Character Recognition API Reference</em>.</p>
|
||||||
|
<div class="section" id="ocr_01_0002__section128491110112715"><h4 class="sectiontitle">Before You Start</h4><p id="ocr_01_0002__p17124194712712">You must have programming capabilities and be familiar with Java, Python, iOS, Android, and Node.js.</p>
|
||||||
|
<p id="ocr_01_0002__p1612464719274">To use OCR, call APIs to detect and extract text from images or scanned documents, convert the text into an editable JSON format, and enter the results into business systems by coding or save them in formats such as TXT or Excel.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0002__section37251930334"><h4 class="sectiontitle">OCR Capabilities</h4><ul id="ocr_01_0002__ul12323924352"><li id="ocr_01_0002__li10323225357">General OCR<p id="ocr_01_0002__p1049095193518"><a name="ocr_01_0002__li10323225357"></a><a name="li10323225357"></a>Detects and extracts text from images in any format, including tables and documents, and adapts to a range of different layouts and table formats.</p>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0002__section1556592243711"><h4 class="sectiontitle">Using OCR for the First Time</h4><p id="ocr_01_0002__p927414793720">If you are a first-time user, the following sections are a good place to start:</p>
|
||||||
|
<ul id="ocr_01_0002__ul3274204710372"><li id="ocr_01_0002__li13274194712371">Functions<p id="ocr_01_0002__p8486124414455"><a name="ocr_01_0002__li13274194712371"></a><a name="li13274194712371"></a>Going through this <a href="ocr_01_0028.html">Functions</a> section, you will be able to learn about a collection of OCR functions.</p>
|
||||||
|
</li><li id="ocr_01_0002__li1727418476374">Getting Started<p id="ocr_01_0002__p427494713712"><a name="ocr_01_0002__li1727418476374"></a><a name="li1727418476374"></a>OCR provides open APIs for you. For details about how to use OCR, see <a href="ocr_01_0153.html">Getting Started</a> and <em id="ocr_01_0002__i132998416893856">Optical Character Recognition API Reference</em>.</p>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
10
docs/ocr/umn/ocr_01_0006.html
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<a name="ocr_01_0006"></a><a name="ocr_01_0006"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Constraints and Limitations</h1>
|
||||||
|
<div id="body0000001751918129"><p id="ocr_01_0006__p552814518411">There are various factors, such as technology and cost, that limit the performance of OCR services. The system-level constraints are the most significant limitations that affect all sub-services. In addition to these system-level constraints, each sub-service also has its own independent limitations.</p>
|
||||||
|
<div class="section" id="ocr_01_0006__section1835213451444"><h4 class="sectiontitle">General Table OCR</h4><ul id="ocr_01_0006__ul45289459414"><li id="ocr_01_0006__li15528124513413">Only images in PNG, JPG, JPEG, BMP, or TIFF format can be recognized.</li><li id="ocr_01_0006__li052816457413">No side of the image can be smaller than 15 or larger than 8,192 pixels.</li><li id="ocr_01_0006__li252864513412">The area to be recognized must occupy more than 80% of the image. When scanning a table, ensure that the entire table and its surrounding area are included in the image.</li><li id="ocr_01_0006__li1052816459412">An image can be rotated to any angle.</li><li id="ocr_01_0006__li25285450419">Text in images with complex backgrounds (such as outdoor scenery or anti-counterfeit watermarks) or distorted table lines cannot be recognized.</li><li id="ocr_01_0006__li75282452041">English and Chinese are supported but support for traditional Chinese characters is limited.</li></ul>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0006__section1735714458418"><h4 class="sectiontitle">General Text OCR</h4><ul id="ocr_01_0006__ul1352874516418"><li id="ocr_01_0006__li352815456411">Only images in PNG, JPG, JPEG, BMP, GIF, TIFF, WebP, PCX, ICO, or PSD format can be recognized.</li><li id="ocr_01_0006__li17528164515418">No side of the image can be smaller than 15 or larger than 8,192 pixels.</li><li id="ocr_01_0006__li352814451247">The area to be recognized must occupy more than 80% of the image. When scanning a table, ensure that all text and its surrounding area are included in the image.</li><li id="ocr_01_0006__li452812456417">An image can be rotated to any angle.</li><li id="ocr_01_0006__li185284451744">Text in images with complex backgrounds (such as outdoor scenery or anti-counterfeit watermarks) or distorted text cannot be recognized.</li><li id="ocr_01_0006__li175288454412">Supported languages: Chinese, English, some traditional Chinese, Malay, Ukrainian, Hindi, Russian, Vietnamese, Indonesian, Thai, Arabic, German, Latin, French, Italian, Spanish, Portuguese, Romanian, Polish Amharic, Japanese, Korean, Turkish, Norwegian, Danish, and Swedish.</li></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
15
docs/ocr/umn/ocr_01_0015.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<a name="ocr_01_0015"></a><a name="ocr_01_0015"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">FAQ</h1>
|
||||||
|
<div id="body0000001703958934"></div>
|
||||||
|
<div>
|
||||||
|
<ul class="ullinks">
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0109.html">Token-based Authentication</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0046.html">APIs</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0076.html">Error Codes</a></strong><br>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
12
docs/ocr/umn/ocr_01_0017.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<a name="ocr_01_0017"></a><a name="ocr_01_0017"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Why Am I Unable to Call an OCR API?</h1>
|
||||||
|
<div id="body0000001705153382"><div class="section" id="ocr_01_0017__section1359315291436"><h4 class="sectiontitle">Fault Locating</h4><ol id="ocr_01_0017__ol126401529144310"><li id="ocr_01_0017__li1564072954314">Locate the cause based on the API calling result or error code.</li><li id="ocr_01_0017__li156401029144318">Check whether you have subscribed to the service.</li><li id="ocr_01_0017__li186401229184319">Check whether the token is correct or has expired.</li><li id="ocr_01_0017__li166411129104318">Check whether the API is correctly called.</li></ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
11
docs/ocr/umn/ocr_01_0024.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a name="ocr_01_0024"></a><a name="ocr_01_0024"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Related Services</h1>
|
||||||
|
<div id="body0000001751798341"><div class="section" id="ocr_01_0024__section113126276510"><h4 class="sectiontitle">IAM</h4><p id="ocr_01_0024__p143751227356">Identity and Access Management (IAM) lets you control user authentication and access to OCR.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0024__section733713273510"><h4 class="sectiontitle">OBS</h4><p id="ocr_01_0024__p12376827655">Object Storage Service (OBS) is a stable, secure, efficient, and easy-to-use cloud storage service. OCR APIs involve processing user data, which can be efficiently handled in batches using OBS.</p>
|
||||||
|
<p id="ocr_01_0024__p1237616278516">OCR APIs allow for data retrieval and processing from OBS through temporary or anonymous public authorization.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div></div>
|
||||||
|
|
13
docs/ocr/umn/ocr_01_0028.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<a name="ocr_01_0028"></a><a name="ocr_01_0028"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Functions</h1>
|
||||||
|
<div id="body0000001752569953"><div class="section" id="ocr_01_0028__section1138891517217"><h4 class="sectiontitle">Function Description</h4><ul id="ocr_01_0028__ul1694384719219"><li id="ocr_01_0028__li29431747428">General Table<p id="ocr_01_0028__p1094419474219"><a name="ocr_01_0028__li29431747428"></a><a name="li29431747428"></a>Detects and extracts text and their row and column locations from images of tables in various formats, as well as the text areas outside tables. It is used to store information on documents and reports as structured data.</p>
|
||||||
|
</li><li id="ocr_01_0028__li8944114716216">General Text<p id="ocr_01_0028__p9945144712217"><a name="ocr_01_0028__li8944114716216"></a><a name="li8944114716216"></a>Detects and extracts text and their locations from images and converts them into structured data.</p>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0028__section983663013214"><h4 class="sectiontitle">Use Cases</h4><ul id="ocr_01_0028__ul596658129"><li id="ocr_01_0028__li179665815210">Digitalizing paper documents<p id="ocr_01_0028__p18960584218"><a name="ocr_01_0028__li179665815210"></a><a name="li179665815210"></a>Automatically detects and extracts text, signatures, and seals from document images and converts them into structured data for faster review.</p>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div></div>
|
||||||
|
|
12
docs/ocr/umn/ocr_01_0031.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<a name="ocr_01_0031"></a><a name="ocr_01_0031"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error ModelArts.4204?</h1>
|
||||||
|
<div id="body0000001752953293"><p id="ocr_01_0031__p13512754205015">If ""error_code":"ModelArts.4204","error_msg":"Request api error! The API XXX is not subscribed." is displayed when you call an API, it indicates that you have not subscribed to the API. For details about how to subscribe to an API, see <a href="ocr_01_0153.html">Subscribing to a Service</a>.</p>
|
||||||
|
<p id="ocr_01_0031__p151315548502">If the service has been subscribed to, check whether the region (or account) where the service is subscribed to is the same as the region (or account) where the service is called. If they are the same, check whether the URL of the API is spelled correctly.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
16
docs/ocr/umn/ocr_01_0032.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<a name="ocr_01_0032"></a><a name="ocr_01_0032"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Can I Get the Base64 Encoding of an Image?</h1>
|
||||||
|
<div id="body0000001752942369"><p id="ocr_01_0032__p975312616332">To recognize an image, it must first be converted to its Base64 coding. This section provides an example using Python to explain how to convert a local image to Base64 code. You can also use an online conversion tool.</p>
|
||||||
|
<p id="ocr_01_0032__p1275311613316">Replace <strong id="ocr_01_0032__b126396295793854">d:\demo.jpg</strong> in the code with the actual image path.</p>
|
||||||
|
<pre class="screen" id="ocr_01_0032__screen147531468336">import base64
|
||||||
|
with open("d:\demo.jpg", "rb") as image_file:
|
||||||
|
encoded_string = base64.b64encode(image_file.read()).decode()
|
||||||
|
print(encoded_string)</pre>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
11
docs/ocr/umn/ocr_01_0033.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a name="ocr_01_0033"></a><a name="ocr_01_0033"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Is It Possible to Convert OCR Results into Word, TXT, or PDF Files?</h1>
|
||||||
|
<div id="body0000001752822149"><p id="ocr_01_0033__p13793193263215">OCR results are initially in JSON format, but they can be easily saved as Word, TXT, or PDF files.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
16
docs/ocr/umn/ocr_01_0040.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<a name="ocr_01_0040"></a><a name="ocr_01_0040"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Why Am I Experiencing Token Retrieval Failure When Calling an OCR API Using Postman?</h1>
|
||||||
|
<div id="body0000001752854341"><p id="ocr_01_0040__p157815146561">When obtaining a token, refer to the error message and select the appropriate solution.</p>
|
||||||
|
<ul id="ocr_01_0040__ul67816148567"><li id="ocr_01_0040__li67821435614">Check whether the service region in the body and the corresponding key value are correct.</li><li id="ocr_01_0040__li579191465616">If error message "The userInfo is wrong" is displayed, do the following:<p id="ocr_01_0040__p187911435613"><a name="ocr_01_0040__li579191465616"></a><a name="li579191465616"></a>Set <strong id="ocr_01_0040__b86356862793910">username</strong> and <strong id="ocr_01_0040__b101967349793910">domainname</strong> correctly. Typically, the value of <strong id="ocr_01_0040__b68463073493910">username</strong> is the same as that of <strong id="ocr_01_0040__b154591921893910">domainname</strong>. If you are not sure about the value, log in to the <strong id="ocr_01_0040__b82283276129">My Credentials</strong> page. If you use an IAM account to obtain the token, set the parameters as follows:</p>
|
||||||
|
<p id="ocr_01_0040__p87971412565"><strong id="ocr_01_0040__b135906937893910">username</strong>: IAM username (subaccount name)</p>
|
||||||
|
<p id="ocr_01_0040__p167918145565"><strong id="ocr_01_0040__b90484437693910">domainname</strong>: account name</p>
|
||||||
|
</li><li id="ocr_01_0040__li1793143568">If the error code "APIGW.0101" is displayed, perform the following operation:<p id="ocr_01_0040__p27981414562"><a name="ocr_01_0040__li1793143568"></a><a name="li1793143568"></a>Check whether the URL used to obtain the token is correct. </p>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0109.html">Token-based Authentication</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
13
docs/ocr/umn/ocr_01_0041.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<a name="ocr_01_0041"></a><a name="ocr_01_0041"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error APIG.0308?</h1>
|
||||||
|
<div id="body0000001752953289"><p id="ocr_01_0041__p48547188464">The error message "The throttling threshold has been reached: policy user over ratelimit,limit:XX,time:1 minute" and error code "APIG.0308" are displayed when you call an OCR API.</p>
|
||||||
|
<p id="ocr_01_0041__p12854618124616">Rectify the fault using either of the following methods:</p>
|
||||||
|
<ol id="ocr_01_0041__ol085491834610"><li id="ocr_01_0041__li785461854615">Use the retry mechanism to rectify the fault by checking the return value in the code and retrying the requests after a short period of time (for example, 2 to 5 seconds).</li><li id="ocr_01_0041__li1885416185461">You can also check whether the result of the previous request is returned at the backend. After the result of the previous request is returned, send the next request.</li></ol>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
11
docs/ocr/umn/ocr_01_0044.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a name="ocr_01_0044"></a><a name="ocr_01_0044"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Why Do I Receive a 401 Status Code Even After Successfully Obtaining a Token?</h1>
|
||||||
|
<div id="body0000001752734125"><p id="ocr_01_0044__p891515914555">If you receive a 401 status code when calling the OCR service using a token, it means that the token has expired. The token is valid for 24 hours, so it is recommended to obtain a new token to call the OCR service.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0109.html">Token-based Authentication</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
31
docs/ocr/umn/ocr_01_0046.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<a name="ocr_01_0046"></a><a name="ocr_01_0046"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">APIs</h1>
|
||||||
|
<div id="body0000001704718384"></div>
|
||||||
|
<div>
|
||||||
|
<ul class="ullinks">
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0056.html">How Do I View the API Usage?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0102.html">Can I Use an OCR API for a Different Function?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0093.html">Does OCR Support Batch Processing?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0033.html">Is It Possible to Convert OCR Results into Word, TXT, or PDF Files?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0032.html">How Can I Get the Base64 Encoding of an Image?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0078.html">Is It Possible to Call the OCR Service From a Different Region Than OBS Resources?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0122.html">How Can I Improve Recognition Accuracy?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0123.html">How Can I Improve Recognition Speed?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0125.html">How Do I Convert a PDF to an Image?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0015.html">FAQ</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
6
docs/ocr/umn/ocr_01_0050.html
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<a name="ocr_01_0050"></a><a name="ocr_01_0050"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Monitoring</h1>
|
||||||
|
<div id="body0000001751918133"><p id="ocr_01_0050__p62444616200">Log in to the OCR console and choose <strong id="ocr_01_0050__b119152220118">Service Monitoring</strong>. On the <strong id="ocr_01_0050__b1419314221019">Service Monitoring</strong> page displayed, view the total number of API calls, number of successful API calls, and number of failed API calls.</p>
|
||||||
|
</div>
|
||||||
|
|
11
docs/ocr/umn/ocr_01_0056.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a name="ocr_01_0056"></a><a name="ocr_01_0056"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I View the API Usage?</h1>
|
||||||
|
<div id="body0000001752822141"><p id="ocr_01_0056__p62444616200">Log in to the OCR console and choose <strong id="ocr_01_0056__b3203743912">Service Monitoring</strong>. On the <strong id="ocr_01_0056__b133767865393844">Service Monitoring</strong> page displayed, view the total number of API calls, number of successful API calls, and number of failed API calls.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
13
docs/ocr/umn/ocr_01_0062.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<a name="ocr_01_0062"></a><a name="ocr_01_0062"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">What Are the Username, Domain Name, and Project Name in the Token Message Body?</h1>
|
||||||
|
<div id="body0000001752854337"><p id="ocr_01_0062__p8501112114110"><em id="ocr_01_0062__i39881143193859">username</em> indicates the name of the user, and <em id="ocr_01_0062__i145021539893859">domainname</em> indicates the name of the account to which the user belongs.</p>
|
||||||
|
<ul id="ocr_01_0062__ul16640142910414"><li id="ocr_01_0062__li136401229134111">If the token is obtained by an account, <strong id="ocr_01_0062__b68231439993859">user name</strong> and <strong id="ocr_01_0062__b8663877693859">domain name</strong> are the same.</li><li id="ocr_01_0062__li196402290418">If the token is obtained by an IAM user (multiple IAM users can be created under an account), <strong id="ocr_01_0062__b48013757593859">user name</strong> is a real-world username and is different from <strong id="ocr_01_0062__b168265557493859">domain name</strong>.</li></ul>
|
||||||
|
<p id="ocr_01_0062__p578521620413"><em id="ocr_01_0062__i1752033714">project name</em> indicates the project name, for example, <strong id="ocr_01_0062__b5540161011712">eu-de</strong>. For details about how to obtain a project ID, see "Obtaining a Project ID" in <em id="ocr_01_0062__i138051113615">Optical Character Recognition API Reference</em>.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0109.html">Token-based Authentication</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
16
docs/ocr/umn/ocr_01_0063.html
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<a name="ocr_01_0063"></a><a name="ocr_01_0063"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error APIG.0301?</h1>
|
||||||
|
<div id="body0000001752953285"><p id="ocr_01_0063__p29355532438">If an error message and error code are returned when an API is called:</p>
|
||||||
|
<ul id="ocr_01_0063__ul1935195324319"><li id="ocr_01_0063__li1935105310432">If error message "Incorrect IAM authentication information: decrypt token fail" and error code "APIG.0301" are displayed, the token fails to decrypt.<p id="ocr_01_0063__p193575334312"><a name="ocr_01_0063__li1935105310432"></a><a name="li1935105310432"></a>Solution:</p>
|
||||||
|
<p id="ocr_01_0063__p1993514535433">(1) Check whether the token has expired.</p>
|
||||||
|
<p id="ocr_01_0063__p19935653124312">(2) Check whether the request body is correct and whether the token is correct and complete.</p>
|
||||||
|
<p id="ocr_01_0063__p593555315438">(3) Check whether the environment where the token is obtained is the same as that where the token is invoked.</p>
|
||||||
|
</li></ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
18
docs/ocr/umn/ocr_01_0064.html
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<a name="ocr_01_0064"></a><a name="ocr_01_0064"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error ModelArts.4603 or ModelArts.4704?</h1>
|
||||||
|
<div id="body0000001705153390"><div class="section" id="ocr_01_0064__section16304258194817"><h4 class="sectiontitle">"error_code":"ModelArts.4603","error_msg":"Obtaining the file from the URL failed."</h4><p id="ocr_01_0064__p491233214497">If "error_code":"ModelArts.4603","error_msg":"Obtaining the file from the URL failed." is displayed, it indicates that the image file fails to be obtained from the URL. To locate the fault, follow these steps:</p>
|
||||||
|
<p id="ocr_01_0064__p9898152013491">(1) Make sure that the provided URL supports the HTTP/HTTPS request protocol, which should be in the format of <strong id="ocr_01_0064__b14984201154513">http/https </strong><em id="ocr_01_0064__i1197618412459">URL</em>.</p>
|
||||||
|
<p id="ocr_01_0064__p56872434911">(2) Check if the server where the images are stored is stable and reliable, if the network connection is normal, and if it is publicly accessible.</p>
|
||||||
|
<p id="ocr_01_0064__p74409172498">(3) Check if the content-type of the downloaded images is a standard type, such as <strong id="ocr_01_0064__b249374415463">image/gif</strong>, <strong id="ocr_01_0064__b5498104820469">image/jpeg</strong>, <strong id="ocr_01_0064__b2474125394611">image/png</strong>, <strong id="ocr_01_0064__b1897515717461">image/tiff</strong>. It is recommended to use OBS URL for the request.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0064__section18751185915493"><h4 class="sectiontitle">"error_code":"ModelArts.4704","error_msg":"Obtaining the file from the OBS failed."</h4><p id="ocr_01_0064__p089442295017">If ""error_code":"ModelArts.4704","error_msg":"Obtaining the file from the OBS failed."" is displayed, it means that the image data fails to be obtained from OBS. Make sure that the OBS path where the images are stored exists and is accessible. If the path exists, make sure that the OBS bucket policy is set to public. </p>
|
||||||
|
<p id="ocr_01_0064__p139260715502">It is recommended not to use OBS paths across regions. If OBS and the deployment region of the service to be called are not in the same region, it is suggested to download the images locally and call the service using the image method.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
15
docs/ocr/umn/ocr_01_0065.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<a name="ocr_01_0065"></a><a name="ocr_01_0065"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error APIG.0201?</h1>
|
||||||
|
<div id="body0000001704993890"><p id="ocr_01_0065__p7341831204410">If error message "Backend timeout." and error code "APIG.0201" are displayed when you call an OCR API, the request timed out.</p>
|
||||||
|
<p id="ocr_01_0065__p934113164419">Perform the following steps to rectify the fault:</p>
|
||||||
|
<p id="ocr_01_0065__p334123111446">Use a tool, such as Postman, to call the service and check whether the call is successful. If the call is successful, the service API is normal. Perform the following steps to proceed:</p>
|
||||||
|
<ol id="ocr_01_0065__ol15341103116442"><li id="ocr_01_0065__li193411931154418">Check whether the original API call requests are excessively frequent. If so, check the return value in the code and resend the requests later (for example, 2 to 5 seconds later). You can also check whether the result of the previous request is returned at the backend. After the result of the previous request is returned, send the next request.</li><li id="ocr_01_0065__li183411131134417">Check whether the image is too large or the network delay is too long. If the image is too large, compress the image in proportion while ensuring the image definition. If the network delay is long, increase the network transmission speed.</li></ol>
|
||||||
|
<p id="ocr_01_0065__p2341153184416">If the fault persists, contact technical support.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
35
docs/ocr/umn/ocr_01_0076.html
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<a name="ocr_01_0076"></a><a name="ocr_01_0076"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Error Codes</h1>
|
||||||
|
<div id="body0000001704877876"></div>
|
||||||
|
<div>
|
||||||
|
<ul class="ullinks">
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0017.html">Why Am I Unable to Call an OCR API?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0063.html">How Do I Handle the Error APIG.0301?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0065.html">How Do I Handle the Error APIG.0201?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0121.html">How Do I Handle the Error APIG.0101?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0137.html">How Do I Handle the Error APIG.0106?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0041.html">How Do I Handle the Error APIG.0308?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0089.html">How Do I Handle the Error APIG.0307?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0103.html">How Do I Handle the Error ModelArts.0212?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0064.html">How Do I Handle the Error ModelArts.4603 or ModelArts.4704?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0031.html">How Do I Handle the Error ModelArts.4204?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0096.html">How Do I Handle Image Quality Errors?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0015.html">FAQ</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
12
docs/ocr/umn/ocr_01_0078.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<a name="ocr_01_0078"></a><a name="ocr_01_0078"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Is It Possible to Call the OCR Service From a Different Region Than OBS Resources?</h1>
|
||||||
|
<div id="body0000001704982986"><p id="ocr_01_0078__p158886233512">Cross-region OBS is not supported, and the OBS region must match the region of the service being called.</p>
|
||||||
|
<p id="ocr_01_0078__p98881427358">For OBS resources <a href="https://docs.otc.t-systems.com/object-storage-service/umn/obs_console_operation_guide/permission_control/configuring_a_bucket_policy/configuring_a_standard_bucket_policy.html#obs-03-0142" target="_blank" rel="noopener noreferrer">with public read authorization</a>, they can be accessed over the Internet and can support cross-region calls. Although this is convenient, there is a risk of sensitive information leakage, such as personal private data. It is recommended that you use OCR and OBS services in the same region to avoid this risk.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
13
docs/ocr/umn/ocr_01_0089.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<a name="ocr_01_0089"></a><a name="ocr_01_0089"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error APIG.0307?</h1>
|
||||||
|
<div id="body0000001704993894"><p id="ocr_01_0089__p69900714713">If error message "The token must be updated." and error code "APIG.0307" are displayed when you call an OCR API, the token has expired and needs to be updated.</p>
|
||||||
|
<p id="ocr_01_0089__p0990197124714">Perform the following steps to rectify the fault:</p>
|
||||||
|
<ul id="ocr_01_0089__ul499010794711"><li id="ocr_01_0089__li1699014713478">The validity period of a token is 24 hours. Obtain the token again to call the API.</li><li id="ocr_01_0089__li199012714476">Check whether the <a href="https://docs.otc.t-systems.com/additional/endpoints.html" target="_blank" rel="noopener noreferrer">endpoint</a> in the API URL is correct. Services deployed in different regions cannot be called across regions. If APIs in different regions are called, the token is invalid and error code APIG.0307 is displayed.</li></ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
11
docs/ocr/umn/ocr_01_0093.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a name="ocr_01_0093"></a><a name="ocr_01_0093"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Does OCR Support Batch Processing?</h1>
|
||||||
|
<div id="body0000001704982978"><p id="ocr_01_0093__p11806714203213">At present, the OCR API can only recognize one image per call. To process multiple images in batches, you would need to write additional code that allows for repeated calls to the OCR API.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
15
docs/ocr/umn/ocr_01_0096.html
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<a name="ocr_01_0096"></a><a name="ocr_01_0096"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle Image Quality Errors?</h1>
|
||||||
|
<div id="body0000001704993898"><div class="section" id="ocr_01_0096__section6308171415220"><h4 class="sectiontitle">Symptom</h4><p id="ocr_01_0096__p837151416521">When calling an OCR API, the following error codes may occur related to image quality:</p>
|
||||||
|
<ul id="ocr_01_0096__ul14372101414520"><li id="ocr_01_0096__li53721014145220">Error code AIS.0102: Unsupported image format.</li><li id="ocr_01_0096__li1137221411522">Error code AIS.0103: Image size does not meet requirements.</li><li id="ocr_01_0096__li9372414145220">Error code AIS.0104: Unsupported image type or poor image quality.</li></ul>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0096__section12314141415217"><h4 class="sectiontitle">Solution</h4><ul id="ocr_01_0096__ul837231410524"><li id="ocr_01_0096__li53721514175211">Check whether the image format and pixel meet the requirements by referring to <a href="ocr_01_0006.html">Constraints and Limitations</a> in <em id="ocr_01_0096__i1552318551011">Optical Character Recognition Service Overview</em>.</li><li id="ocr_01_0096__li2037215149524">Verify that the Base64 encoding of the image is complete.</li><li id="ocr_01_0096__li337281420525">Check the image quality to ensure that the text in the image is clear and legible to the naked eye.</li><li id="ocr_01_0096__li1237291413528">Verify that the API function matches the input image.</li></ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
11
docs/ocr/umn/ocr_01_0102.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a name="ocr_01_0102"></a><a name="ocr_01_0102"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Can I Use an OCR API for a Different Function?</h1>
|
||||||
|
<div id="body0000001705142466"><p id="ocr_01_0102__p58471555113116">No. It is not recommended to use one OCR API for a different function as each API has its own unique algorithms. Doing so may result in poor recognition results. For instance, using the General Text OCR API to recognize table images is not advised.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
12
docs/ocr/umn/ocr_01_0103.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<a name="ocr_01_0103"></a><a name="ocr_01_0103"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error ModelArts.0212?</h1>
|
||||||
|
<div id="body0000001752833089"><p id="ocr_01_0103__p1047719506476">If error message "Invalid Token header. The Token not contain project item." and error code "ModelArts.0212" are displayed when you call an OCR API, the token is invalid because the project information is missing.</p>
|
||||||
|
<p id="ocr_01_0103__p1647795034720">OCR is a project-level service. To obtain the token for calling an OCR API, you need to set <strong id="ocr_01_0103__b24307063293846">scope</strong> to <strong id="ocr_01_0103__b62000704293846">project</strong>.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
23
docs/ocr/umn/ocr_01_0109.html
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<a name="ocr_01_0109"></a><a name="ocr_01_0109"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Token-based Authentication</h1>
|
||||||
|
<div id="body0000001752717569"></div>
|
||||||
|
<div>
|
||||||
|
<ul class="ullinks">
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0062.html">What Are the Username, Domain Name, and Project Name in the Token Message Body?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0044.html">Why Do I Receive a 401 Status Code Even After Successfully Obtaining a Token?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0040.html">Why Am I Experiencing Token Retrieval Failure When Calling an OCR API Using Postman?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0120.html">Why Don't I Have Programming Access Permission?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
<li class="ulchildlink"><strong><a href="ocr_01_0133.html">Why Is the Header Overflowing When I Call an OCR API Using Postman?</a></strong><br>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0015.html">FAQ</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
13
docs/ocr/umn/ocr_01_0120.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<a name="ocr_01_0120"></a><a name="ocr_01_0120"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Why Don't I Have Programming Access Permission?</h1>
|
||||||
|
<div id="body0000001705054434"><p id="ocr_01_0120__p1330062613617">When calling an API, if you receive the error message "code":403,"message":"This user only supports console access, not programmatic access.", it means that you do not have the programming access permission.</p>
|
||||||
|
<p id="ocr_01_0120__p1330017261766">IAM users do not have programming access permissions. You need to contact the main account holder to adjust the permissions.</p>
|
||||||
|
<p id="ocr_01_0120__p7300142613610">The main account holder can log in to the IAM console, click <strong id="ocr_01_0120__b43574599093842">Security Settings</strong> in the <strong id="ocr_01_0120__b102407642893842">Operation</strong> column for the corresponding IAM user, and enter the settings page.</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0109.html">Token-based Authentication</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
13
docs/ocr/umn/ocr_01_0121.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<a name="ocr_01_0121"></a><a name="ocr_01_0121"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error APIG.0101?</h1>
|
||||||
|
<div id="body0000001752833085"><p id="ocr_01_0121__p1932617824517">The error message "The API does not exist or has not been published in the environment." is displayed.</p>
|
||||||
|
<ul id="ocr_01_0121__ul732616844510"><li id="ocr_01_0121__li1932688114516">Check whether the API URL is correct. For example, check whether the project ID is included in the URL.</li><li id="ocr_01_0121__li1632678154511">Check whether the region information in the URI is consistent with the endpoint for subscribing to the service.</li></ul>
|
||||||
|
<ul id="ocr_01_0121__ul1532619854514"><li id="ocr_01_0121__li143261588454">Check whether the HTTP request method (such as POST and GET) is correct.</li><li id="ocr_01_0121__li4326128104520">For details about the URI, see the corresponding API page.</li></ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
11
docs/ocr/umn/ocr_01_0122.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<a name="ocr_01_0122"></a><a name="ocr_01_0122"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Can I Improve Recognition Accuracy?</h1>
|
||||||
|
<div id="body0000001752822157"><ul id="ocr_01_0122__ul20202152117381"><li id="ocr_01_0122__li220212216380">Use high-quality images with clear text and no glare as much as possible. When collecting images, try to increase the proportion of the area with text to be recognized, reduce the proportion of irrelevant background, and keep the text in the image clear and recognizable to the human eye.</li><li id="ocr_01_0122__li2202192119388">If the image has a rotation angle, the algorithm supports automatic correction, and it is recommended not to excessively tilt the image.</li><li id="ocr_01_0122__li72021217381">Regarding image size, it is recommended that the longest side should not exceed 8192 pixels, the shortest side should not be less than 15 pixels, and the aspect ratio of the image should be within the common horizontal 5:1 (please refer to the API documentation of each service for specific requirements).</li></ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
31
docs/ocr/umn/ocr_01_0123.html
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
<a name="ocr_01_0123"></a><a name="ocr_01_0123"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Can I Improve Recognition Speed?</h1>
|
||||||
|
<div id="body0000001752942377"><p id="ocr_01_0123__p1223317461382">The recognition speed is related to the image size, which affects the time required for network transmission and image Base64 decoding. To speed up image processing by the OCR API, it is recommended that you compress the images while maintaining the required level of resolution before processing them. It is recommended to upload images in JPG format.</p>
|
||||||
|
<p id="ocr_01_0123__p1723312466381">Based on practical experience, it is generally recommended that small images of documents (with less text) should be below 1 MB, and large images of dense A4-sized documents should be below 2 MB.</p>
|
||||||
|
<p id="ocr_01_0123__p92331546123812">Refer to the following code for how to compress images:</p>
|
||||||
|
<pre class="screen" id="ocr_01_0123__screen723319469382">import cv2
|
||||||
|
def resize_image(image, max_size):
|
||||||
|
"""
|
||||||
|
This code is used to expand or downsize an image proportionally. It compares the long side of the image with the input parameter max_size. If the long side of the image exceeds max_size, the image is downsized proportionally. Otherwise, the original image is returned.
|
||||||
|
:param max_size: maximum length of the long side of an image. (Set this parameter based on site requirements. You are advised to set this parameter to a value as small as possible as long as the resolution requirement is met.)
|
||||||
|
:return: returns the downsized image or the original image.
|
||||||
|
"""
|
||||||
|
|
||||||
|
height, width = image.shape[:2]
|
||||||
|
max_side = max(height, width)
|
||||||
|
if max_side > max_size:
|
||||||
|
scale = max_size / max_side
|
||||||
|
image = cv2.resize(image, None, fx=scale, fy=scale)
|
||||||
|
|
||||||
|
return image
|
||||||
|
|
||||||
|
image = cv2.imread('test.png')
|
||||||
|
image = resize_image(image, max_size=1024)</pre>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
63
docs/ocr/umn/ocr_01_0125.html
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
<a name="ocr_01_0125"></a><a name="ocr_01_0125"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Convert a PDF to an Image?</h1>
|
||||||
|
<div id="body0000001705142482"><pre class="screen" id="ocr_01_0125__screen189571911163910"># -*- coding: utf-8 -*-
|
||||||
|
import os
|
||||||
|
import base64
|
||||||
|
import fitz
|
||||||
|
import io
|
||||||
|
from PIL import Image
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
class CovertPdfToJpg:
|
||||||
|
def __init__(self, file_path, save_root):
|
||||||
|
self.file_path = file_path
|
||||||
|
self.save_root = save_root
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def open_pdf(file):
|
||||||
|
return fitz.open(file)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_trans(doc, page, min_side=0, max_side=0, rotate=0.0):
|
||||||
|
""" Create a scale object. """
|
||||||
|
region = doc[page].rect
|
||||||
|
scale = 1
|
||||||
|
if max_side > min_side > 0:
|
||||||
|
scale = min_side / min(region.width, region.height)
|
||||||
|
if max(region.width, region.height) * scale > max_side:
|
||||||
|
scale = max_side / max(region.width, region.height)
|
||||||
|
trans = fitz.Matrix(scale, scale).preRotate(rotate)
|
||||||
|
return trans
|
||||||
|
|
||||||
|
def page2pix(self, doc, page, trans):
|
||||||
|
""" Parse the current page as image data based on given parameters."""
|
||||||
|
# Obtain the PDF format of a specified page. Note that page parameters need to be pre-parsed to avoid any issues.
|
||||||
|
return doc[page].getPixmap(matrix=trans, alpha=False)
|
||||||
|
|
||||||
|
def pdf_to_jpg(self, width=1024, height=1400):
|
||||||
|
doc = self.open_pdf(self.file_path)
|
||||||
|
save_dir = os.path.join(self.save_root)
|
||||||
|
if not os.path.exists(save_dir):
|
||||||
|
os.makedirs(save_dir)
|
||||||
|
print("document", len(doc), doc.pageCount)
|
||||||
|
for i in range(len(doc)):
|
||||||
|
trans = self.get_trans(doc, i, width, height, rotate=0)
|
||||||
|
try:
|
||||||
|
pdf = self.page2pix(doc, i, trans)
|
||||||
|
except:
|
||||||
|
continue
|
||||||
|
image = pdf.getPNGData()
|
||||||
|
image = Image.open(io.BytesIO(image))
|
||||||
|
print(os.path.join(
|
||||||
|
save_dir, os.path.basename(self.file_path).replace('.pdf', '') + '_' + str(i + 1) + '.jpg'))
|
||||||
|
image.save(
|
||||||
|
os.path.join(save_dir, os.path.basename(self.file_path).replace('.pdf', '') + '_' + str(i + 1) + '.jpg'))
|
||||||
|
return</pre>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0046.html">APIs</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
13
docs/ocr/umn/ocr_01_0133.html
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<a name="ocr_01_0133"></a><a name="ocr_01_0133"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Why Is the Header Overflowing When I Call an OCR API Using Postman?</h1>
|
||||||
|
<div id="body0000001704894950"><p id="ocr_01_0133__p11647816815">If the error message "Error: Header overflow" is displayed when calling an API using Postman to obtain an authentication token, it means that the header has exceeded its limit. To resolve this issue, follow these steps:</p>
|
||||||
|
<p id="ocr_01_0133__p4164984810">Modify the environment variables of the operating system. In Windows 10, right click <strong id="ocr_01_0133__b12652777693833">This PC</strong> and choose <strong id="ocr_01_0133__b171920965893833">Properties</strong>. Click <strong id="ocr_01_0133__b152318494293833">Advanced system settings</strong>. On the <strong id="ocr_01_0133__b123879299293833">Advanced</strong> tab, click <strong id="ocr_01_0133__b45764008393833">Environment Variables...</strong>. In the <strong id="ocr_01_0133__b90425180793833">Environment Variables</strong> dialog box, click <strong id="ocr_01_0133__b53793037693833">New...</strong> in the <strong id="ocr_01_0133__b151658772993833">System variables</strong> area. Configure <strong id="ocr_01_0133__b204300355093833">Variable name</strong> and <strong id="ocr_01_0133__b165198772093833">Variable value</strong> as follows:</p>
|
||||||
|
<ul id="ocr_01_0133__ul161643819810"><li id="ocr_01_0133__li15164198884"><strong id="ocr_01_0133__b42961356993833">Variable name</strong>: <strong id="ocr_01_0133__b117110331293833">NODE_OPTIONS</strong></li><li id="ocr_01_0133__li10164148687"><strong id="ocr_01_0133__b105265452693833">Variable value</strong>: <strong id="ocr_01_0133__b8410799693833">--max-http-header-size=16384</strong></li></ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0109.html">Token-based Authentication</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
14
docs/ocr/umn/ocr_01_0137.html
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<a name="ocr_01_0137"></a><a name="ocr_01_0137"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">How Do I Handle the Error APIG.0106?</h1>
|
||||||
|
<div id="body0000001705153386"><p id="ocr_01_0137__p451463616452">If error message and error code <strong id="ocr_01_0137__b1325069479398">"error_msg":"Orchestration error.","error_code":"APIG.0106"</strong> are returned when an API is called, check whether the frontend and backend parameters configured for the API are correct.</p>
|
||||||
|
<p id="ocr_01_0137__p135149366459">This error is reported when the verification rule configured for frontend parameters of APIs is not met during API calling.</p>
|
||||||
|
<p id="ocr_01_0137__p851413615457">Rectify the fault using either of the following methods:</p>
|
||||||
|
<ul id="ocr_01_0137__ul45142365453"><li id="ocr_01_0137__li1951414362456">Check whether all mandatory parameters are configured.</li><li id="ocr_01_0137__li551416368452">Check whether parameter configuration rules are met. For example, the parameter value must be a number.</li></ul>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="familylinks">
|
||||||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="ocr_01_0076.html">Error Codes</a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
76
docs/ocr/umn/ocr_01_0153.html
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
<a name="ocr_01_0153"></a><a name="ocr_01_0153"></a>
|
||||||
|
|
||||||
|
<h1 class="topictitle1">Getting Started</h1>
|
||||||
|
<div id="body0000001704118414"><p id="ocr_01_0153__p12763143822111">Use Postman to call the General Text OCR API.</p>
|
||||||
|
<p id="ocr_01_0153__p1298711255535">To call an OCR API, perform the following steps:</p>
|
||||||
|
<p id="ocr_01_0153__p3394175015315"><a href="#ocr_01_0153__section1471165201415">Step 1: Subscribing to a Service</a></p>
|
||||||
|
<p id="ocr_01_0153__p1441321118"><a href="#ocr_01_0153__section169054167464">Step 2: Configuring the Environment</a></p>
|
||||||
|
<p id="ocr_01_0153__p89181638172212"><a href="#ocr_01_0153__section92251373345">Step 3: Using a Token for Authentication</a></p>
|
||||||
|
<p id="ocr_01_0153__p91691491810"><a href="#ocr_01_0153__section26131714406">Step 4: Calling the Service</a></p>
|
||||||
|
<div class="section" id="ocr_01_0153__section1471165201415"><a name="ocr_01_0153__section1471165201415"></a><a name="section1471165201415"></a><h4 class="sectiontitle">Step 1: Subscribing to a Service</h4><ol id="ocr_01_0153__ol168583537176"><li id="ocr_01_0153__li1185819538178">Log in to the OCR management console.<p id="ocr_01_0153__p1880721511339"><a name="ocr_01_0153__li1185819538178"></a><a name="li1185819538178"></a>Select a region based on service requirements. For details about the region where each service is deployed, see <a href="https://docs.otc.t-systems.com/additional/endpoints.html" target="_blank" rel="noopener noreferrer">Regions and Endpoints</a>.</p>
|
||||||
|
</li><li id="ocr_01_0153__li107813841214">On the page displayed, select and subscribe to your desired APIs.<p id="ocr_01_0153__p1633017350389"><a name="ocr_01_0153__li107813841214"></a><a name="li107813841214"></a>For this example, subscribe to the General Text OCR API.</p>
|
||||||
|
</li></ol>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0153__section169054167464"><a name="ocr_01_0153__section169054167464"></a><a name="section169054167464"></a><h4 class="sectiontitle">Step 2: Configuring the Environment</h4><p id="ocr_01_0153__p45707591326">Download and install <a href="https://www.postman.com/downloads/" target="_blank" rel="noopener noreferrer">Postman</a>.</p>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0153__section92251373345"><a name="ocr_01_0153__section92251373345"></a><a name="section92251373345"></a><h4 class="sectiontitle">Step 3: Using a Token for Authentication</h4><p id="ocr_01_0153__p244821310212">Tokens are used for identity authentication and permission management when calling an OCR API.</p>
|
||||||
|
<p id="ocr_01_0153__p4614595913">Before calling an OCR API, you need first use the "Obtaining a Token" API to obtain the token value. Then, pass the token value into the request header parameter of the OCR API to authenticate the user's API request and enable the OCR service to verify their identity.</p>
|
||||||
|
<div class="note" id="ocr_01_0153__note187231041191017"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="ocr_01_0153__p11723164118107">The token is valid for 24 hours.</p>
|
||||||
|
</div></div>
|
||||||
|
<p id="ocr_01_0153__p12581722162614">To obtain the token, perform the following steps:</p>
|
||||||
|
<ol id="ocr_01_0153__ol17372193632613"><li id="ocr_01_0153__li0372173615268">Log in to the cloud, hover your cursor over the username in the upper right corner, and choose <strong id="ocr_01_0153__b75951281267">My Credentials</strong>. On the <strong id="ocr_01_0153__b0205175917714">API Credentials</strong> page displayed, obtain the username, domain name, and project ID.<p id="ocr_01_0153__p16612161852810"></p>
|
||||||
|
<div class="fignone" id="ocr_01_0153__fig6814049131116"><span class="figcap"><b>Figure 1 </b>Obtaining the username, domain name, and project ID</span><br><span><img id="ocr_01_0153__image981413497115" src="en-us_image_0000001707122028.png" height="109.066118" width="465.5" title="Click to enlarge" class="imgResize"></span></div>
|
||||||
|
</li><li id="ocr_01_0153__li156951408285">Start Postman and create a POST request. For example, to obtain a token in the <strong id="ocr_01_0153__b1621211287114">eu-de</strong> region, enter the following URL and request header parameter:<ul id="ocr_01_0153__ul9708173317550"><li id="ocr_01_0153__li187085330554">URL: <strong id="ocr_01_0153__b19539135641119">https://iam.eu-de.otc.t-systems.com/v3/auth/tokens</strong></li><li id="ocr_01_0153__li16708193395512">Request header parameter: <strong id="ocr_01_0153__b1739034919129">Content-Type</strong>; parameter value: <strong id="ocr_01_0153__b1024210681313">application/json</strong></li></ul>
|
||||||
|
<div class="fignone" id="ocr_01_0153__fig14230701316"><span class="figcap"><b>Figure 2 </b>Entering the URL and request header parameter</span><br><span><img id="ocr_01_0153__image123012018117" src="en-us_image_0000001755213865.png" height="114.371887" width="465.5" title="Click to enlarge" class="imgResize"></span></div>
|
||||||
|
</li><li id="ocr_01_0153__li1818162919503">Enter the request body of the API for obtaining a token. Click <strong id="ocr_01_0153__b129141548121613">Body</strong>, select <strong id="ocr_01_0153__b9131052171614">raw</strong>, copy and enter the following code by referring to <a href="#ocr_01_0153__fig127711342268">Figure 3</a>, and enter the username, domain name, and password.<pre class="screen" id="ocr_01_0153__screen12126163710119">{
|
||||||
|
"auth": {
|
||||||
|
"identity": {
|
||||||
|
"methods": [
|
||||||
|
"password"
|
||||||
|
],
|
||||||
|
"password": {
|
||||||
|
"user": {
|
||||||
|
"name": "<strong id="ocr_01_0153__b6382144419114"><em id="ocr_01_0153__i1338219441014">username</em></strong>", // IAM username
|
||||||
|
"password": "<strong id="ocr_01_0153__b173827441315"><em id="ocr_01_0153__i93827441615">********</em></strong>", // User password
|
||||||
|
"domain": {
|
||||||
|
"name": "<strong id="ocr_01_0153__b1738211442110"><em id="ocr_01_0153__i193829441314">domainname</em></strong>" // Domain name
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
<strong id="ocr_01_0153__b738212442018"> </strong>"scope": {
|
||||||
|
<strong id="ocr_01_0153__b1338213440116"> </strong>"project": {<strong id="ocr_01_0153__b1138212444118"> </strong>
|
||||||
|
<strong id="ocr_01_0153__b2382344918"> </strong> "name": "eu-de"
|
||||||
|
<strong id="ocr_01_0153__b1382144412114"> </strong>}
|
||||||
|
<strong id="ocr_01_0153__b143828441618"> </strong>}
|
||||||
|
}
|
||||||
|
}</pre>
|
||||||
|
<div class="fignone" id="ocr_01_0153__fig127711342268"><a name="ocr_01_0153__fig127711342268"></a><a name="fig127711342268"></a><span class="figcap"><b>Figure 3 </b>Request body</span><br><span><img id="ocr_01_0153__image187712424614" src="en-us_image_0000001755220149.png" height="241.55872300000001" width="465.5" title="Click to enlarge" class="imgResize"></span></div>
|
||||||
|
</li><li id="ocr_01_0153__li128498845718">Click <strong id="ocr_01_0153__b13491230993824">Send</strong> to send the request. If the status code <strong id="ocr_01_0153__b67191515215">201</strong> is returned, the API is successfully called. In this case, click <strong id="ocr_01_0153__b765112557249">Headers</strong>, find and copy the <strong id="ocr_01_0153__b1112018532514">X-Subject-Token</strong> value, which is the token.<div class="fignone" id="ocr_01_0153__fig173861228114918"><a name="ocr_01_0153__fig173861228114918"></a><a name="fig173861228114918"></a><span class="figcap"><b>Figure 4 </b>Obtaining a token</span><br><span><img id="ocr_01_0153__image14386132834914" src="en-us_image_0000001707404882.png" height="189.738199" width="465.5" title="Click to enlarge" class="imgResize"></span></div>
|
||||||
|
</li></ol>
|
||||||
|
</div>
|
||||||
|
<div class="section" id="ocr_01_0153__section26131714406"><a name="ocr_01_0153__section26131714406"></a><a name="section26131714406"></a><h4 class="sectiontitle">Step 4: Calling the Service</h4><ol id="ocr_01_0153__ol6493854191612"><li id="ocr_01_0153__li10493135451615">Create a POST request in Postman and enter the API request address. For details, see "APIs" in <em id="ocr_01_0153__i1957194825918">Optical Character Recognition API Reference</em>.<p id="ocr_01_0153__p1110205616185">Example: <strong id="ocr_01_0153__b5168184515284">https://ocr.eu-de.otc.t-systems.com/v2/{project_id}/ocr/general-text</strong></p>
|
||||||
|
</li><li id="ocr_01_0153__li14327195821617">Set two request header parameters by referring to <a href="#ocr_01_0153__fig14631357133312">Figure 5</a>.<ul id="ocr_01_0153__ul33891324121911"><li id="ocr_01_0153__li11389172491920"><strong id="ocr_01_0153__b8933181912589">KEY</strong>: <strong id="ocr_01_0153__b21813910296">Content-Type</strong>; <strong id="ocr_01_0153__b185271125195815">VALUE</strong>: <strong id="ocr_01_0153__b518212913295">application/json</strong></li><li id="ocr_01_0153__li10733129171910"><strong id="ocr_01_0153__b4571933175814">KEY</strong>: <strong id="ocr_01_0153__b1330114712291">X-Auth-Token</strong>; <strong id="ocr_01_0153__b1169133717585">VALUE</strong>: the token value obtained in <a href="#ocr_01_0153__fig173861228114918">Figure 4</a><div class="fignone" id="ocr_01_0153__fig14631357133312"><a name="ocr_01_0153__fig14631357133312"></a><a name="fig14631357133312"></a><span class="figcap"><b>Figure 5 </b>Request header</span><br><span><img id="ocr_01_0153__image963235763312" src="en-us_image_0000001707228246.png" height="148.6275" width="465.5" title="Click to enlarge" class="imgResize"></span></div>
|
||||||
|
</li></ul>
|
||||||
|
</li><li id="ocr_01_0153__li4316194621813">Click <strong id="ocr_01_0153__b95793218344">Body</strong>, select <strong id="ocr_01_0153__b758072183411">raw</strong>, copy and enter the following code by referring to <a href="#ocr_01_0153__fig0629142183912">Figure 6</a>, and enter the request body.<pre class="screen" id="ocr_01_0153__screen108523195379">{
|
||||||
|
"image":"/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAA...",
|
||||||
|
"detect_direction":false,
|
||||||
|
"quick_mode":false
|
||||||
|
}</pre>
|
||||||
|
<div class="fignone" id="ocr_01_0153__fig0629142183912"><a name="ocr_01_0153__fig0629142183912"></a><a name="fig0629142183912"></a><span class="figcap"><b>Figure 6 </b>Request body</span><br><span><img id="ocr_01_0153__image06301521398" src="en-us_image_0000001707396210.png" height="115.25926300000002" width="465.5" title="Click to enlarge" class="imgResize"></span></div>
|
||||||
|
</li><li id="ocr_01_0153__li98622226243">Click <strong id="ocr_01_0153__b126214175917">Send</strong> to send the request. If the status code <strong id="ocr_01_0153__b430212139352">200</strong> is returned, the API is successfully called and you can view the returned information in Postman.<div class="fignone" id="ocr_01_0153__fig4391951145912"><span class="figcap"><b>Figure 7 </b>Obtaining the calling result</span><br><span><img id="ocr_01_0153__image15398514596" src="en-us_image_0000001707409654.png" height="179.997678" width="465.5" title="Click to enlarge" class="imgResize"></span></div>
|
||||||
|
</li></ol>
|
||||||
|
<div class="p" id="ocr_01_0153__p0888147452"><div class="note" id="ocr_01_0153__note19993175733316"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><ul id="ocr_01_0153__ul1729623517319"><li id="ocr_01_0153__li4296193543120">If you encounter an error message in Postman while calling APIs that indicates an invalid SSL certificate, such as <strong id="ocr_01_0153__b7585195610426">self signed certificate</strong>, <strong id="ocr_01_0153__b61361111431">certificate has expired</strong>, or <strong id="ocr_01_0153__b15792152812437">unable to verify the first certificate</strong>, you can resolve the issue by disabling <strong id="ocr_01_0153__b168081957134317">SSL certificate verification</strong> in Postman's settings.</li><li id="ocr_01_0153__li127056391316">For details about the request and response parameters of OCR APIs, see <em id="ocr_01_0153__i69078371307">Optical Character API Reference</em>.</li></ul>
|
||||||
|
</div></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div></div>
|
||||||
|
|
||||||
|
|
||||||
|
<script language="JavaScript">
|
||||||
|
<!--
|
||||||
|
image_size('.imgResize');
|
||||||
|
var msg_imageMax = "view original image";
|
||||||
|
var msg_imageClose = "close";
|
||||||
|
//--></script>
|
BIN
docs/ocr/umn/public_sys-resources/caution_3.0-en-us.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
docs/ocr/umn/public_sys-resources/danger_3.0-en-us.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
docs/ocr/umn/public_sys-resources/delta.gif
Normal file
After Width: | Height: | Size: 836 B |
BIN
docs/ocr/umn/public_sys-resources/deltaend.gif
Normal file
After Width: | Height: | Size: 834 B |
BIN
docs/ocr/umn/public_sys-resources/icon-arrowdn.gif
Normal file
After Width: | Height: | Size: 1.8 KiB |