{"id":66299,"date":"2024-01-10T09:57:04","date_gmt":"2024-01-10T12:57:04","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=66299&#038;preview=true&#038;preview_id=66299"},"modified":"2024-01-16T15:00:57","modified_gmt":"2024-01-16T18:00:57","slug":"python-ocr","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/","title":{"rendered":"Como Criar sua Pr\u00f3pria API OCR no Python"},"content":{"rendered":"<p>A extra\u00e7\u00e3o de texto de imagens tem sido um problema popular na engenharia de software h\u00e1 muito tempo. O reconhecimento \u00f3ptico de caracteres (OCR) foi uma tecnologia pioneira amplamente utilizada para resolver esse problema. Com sua capacidade de transformar imagens contendo texto em dados leg\u00edveis por m\u00e1quina, o OCR revolucionou v\u00e1rios setores, desde a automa\u00e7\u00e3o do processamento de documentos at\u00e9 a tradu\u00e7\u00e3o de idiomas.<\/p>\n<p>Embora existam solu\u00e7\u00f5es comerciais de OCR, a cria\u00e7\u00e3o de sua pr\u00f3pria API OCR no Python, uma linguagem de programa\u00e7\u00e3o vers\u00e1til e avan\u00e7ada, oferece v\u00e1rias vantagens, incluindo personaliza\u00e7\u00e3o, controle sobre a privacidade dos dados e a possibilidade de economia de custos.<\/p>\n<p>Este guia orientar\u00e1 voc\u00ea na cria\u00e7\u00e3o da sua pr\u00f3pria API OCR usando Python. Ele explora as bibliotecas, t\u00e9cnicas e considera\u00e7\u00f5es necess\u00e1rias para o desenvolvimento de uma API OCR eficaz, permitindo que voc\u00ea aproveite o poder do OCR em seus aplicativos.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Pr\u00e9-requisitos<\/h2>\n<p>Para acompanhar, voc\u00ea precisa ter um entendimento b\u00e1sico de Python e Flask, al\u00e9m de uma c\u00f3pia local do Python instalada em seu sistema.<\/p>\n<h2>Como criar a API OCR<\/h2>\n<p>Neste guia, voc\u00ea aprender\u00e1 a criar um aplicativo Flask que permite que os usu\u00e1rios carreguem imagens por meio de um endpoint POST, que \u00e9 carregado usando o <a href=\"https:\/\/pypi.org\/project\/Pillow\/\" target=\"_blank\" rel=\"noopener noreferrer\">Pillow<\/a> e processado usando o wrapper <a href=\"https:\/\/github.com\/madmaze\/pytesseract\" target=\"_blank\" rel=\"noopener noreferrer\">PyTesseract<\/a> (para o mecanismo de OCR do <a href=\"https:\/\/github.com\/tesseract-ocr\/tesseract\" target=\"_blank\" rel=\"noopener noreferrer\">Tesseract<\/a>). Por fim, ele retorna o texto extra\u00eddo como resposta \u00e0 solicita\u00e7\u00e3o.<\/p>\n<p>Voc\u00ea pode personalizar ainda mais essa API para oferecer op\u00e7\u00f5es como classifica\u00e7\u00e3o baseada em modelo (extra\u00e7\u00e3o de itens de linha de faturas, entradas em formul\u00e1rios de impostos, etc.) ou op\u00e7\u00f5es de mecanismo de OCR (voc\u00ea pode encontrar mais mecanismos de OCR <a href=\"https:\/\/github.com\/kba\/awesome-ocr#ocr-engines\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a>).<\/p>\n<p>Para come\u00e7ar, crie um novo diret\u00f3rio para o seu projeto. Em seguida, configure um novo ambiente virtual na pasta, executando os seguintes comandos:<\/p>\n<pre><code class=\"\u201dlanguage-bash\u201d\">python3 -m venv env\nsource env\/bin\/activate<\/code><\/pre>\n<p>Em seguida, instale o Flask, o PyTesseract, o Gunicorn e o Pillow executando o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">pip3 install pytesseract flask pillow gunicorn<\/code><\/pre>\n<p>Depois de instalados, voc\u00ea precisa instalar o mecanismo de OCR do Tesseract no computador host. As instru\u00e7\u00f5es de instala\u00e7\u00e3o do Tesseract variam de acordo com o sistema operacional do seu host. Voc\u00ea pode encontrar as instru\u00e7\u00f5es apropriadas <a href=\"https:\/\/tesseract-ocr.github.io\/tessdoc\/Installation.html\" target=\"_blank\" rel=\"noopener noreferrer\">aqui<\/a>.<\/p>\n<p>Por exemplo, no MacOS, voc\u00ea pode instalar o Tesseract usando o <a href=\"https:\/\/brew.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\">Homebrew<\/a>, executando o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">brew install tesseract<\/code><\/pre>\n<p>Quando isso for feito, o wrapper do PyTesseract poder\u00e1 se comunicar com o mecanismo de OCR e processar solicita\u00e7\u00f5es de OCR.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Isso funciona somente no ambiente de desenvolvimento. Ao implantar o aplicativo em uma plataforma de hospedagem remota, como a Kinsta, voc\u00ea precisar\u00e1 fazer isso novamente (embora de uma maneira diferente, conforme exigido pela plataforma de hospedagem &#8211; voc\u00ea entender\u00e1 isso mais tarde).<\/p>\n<\/aside>\n\n<p>Agora, voc\u00ea est\u00e1 pronto para escrever o aplicativo Flask. Crie um novo diret\u00f3rio chamado <strong>ocrapi<\/strong> e um novo arquivo nesse diret\u00f3rio com o nome <strong>main.py. <\/strong>Salve o seguinte conte\u00fado nele:<\/p>\n<pre><code class=\"language-python\">from flask import Flask, request, jsonify\nfrom PIL import Image\nimport pytesseract\n\napp = Flask(__name__)\n\n@app.route('\/ocr', methods=['POST'])\ndef ocr_process():\n    if request.method == 'POST':\n        image_file = request.files['image']\n        image_data = Image.open(image_file)\n\n        # Perform OCR using PyTesseract\n        text = pytesseract.image_to_string(image_data)\n\n        response = {\n            'status': 'success',\n            'text': text\n        }\n\n        return jsonify(response)<\/code><\/pre>\n<p>O c\u00f3digo acima cria um aplicativo b\u00e1sico do Flask que tem um endpoint\u2014<code>\/ocr<\/code>. Quando voc\u00ea envia uma solicita\u00e7\u00e3o POST para esse endpoint com um arquivo de imagem, ele extrai o arquivo, usa o wrapper <code>pytesseract<\/code> para executar o OCR usando seu m\u00e9todo <code>code_to_string()<\/code> e envia de volta o texto extra\u00eddo como parte da resposta.<\/p>\n<p>Crie um arquivo <strong>wsgi.py<\/strong> no mesmo diret\u00f3rio <strong>ocrapi<\/strong> e salve o seguinte conte\u00fado nele:<\/p>\n<pre><code class=\"language-python\">from ocrapi.main import app as application\n\nif __name__ == \"__main__\":\n    application.run()\n<\/code><\/pre>\n<p>Agora voc\u00ea pode executar o aplicativo usando o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">gunicorn ocrapi.wsgi<\/code><\/pre>\n<p>Sua API b\u00e1sica de OCR est\u00e1 pronta e \u00e9 hora de voc\u00ea test\u00e1-la!<\/p>\n<h2>Testando a API OCR localmente<\/h2>\n<p>Voc\u00ea pode usar a CLI cURL integrada para enviar solicita\u00e7\u00f5es \u00e0 sua API ou mudar para uma ferramenta de teste de API detalhada, como o Postman. Para testar a API, voc\u00ea precisar\u00e1 fazer download de uma imagem de amostra que contenha algum texto. Voc\u00ea pode usar esta imagem <a href=\"https:\/\/imgur.com\/F8AsB1W\" target=\"_blank\" rel=\"noopener noreferrer\">simples<\/a> ou <a href=\"https:\/\/imgur.com\/oybKK06\" target=\"_blank\" rel=\"noopener noreferrer\">esta imagem escrita \u00e0 m\u00e3o<\/a> por enquanto.<\/p>\n<p>Fa\u00e7a o download de qualquer uma delas para o diret\u00f3rio do projeto e d\u00ea a ela um nome simples, como <strong>simple-image.png<\/strong> ou <strong>scribbled-image.png, <\/strong>dependendo da imagem que voc\u00ea escolher.<\/p>\n<p>Em seguida, abra o terminal e navegue at\u00e9 o diret\u00f3rio do projeto. Execute o seguinte comando para testar a API:<\/p>\n<pre><code class=\"language-bash\">curl -X POST -F \u201cimage=@scribbled-image.png\u201d localhost:5000\/ocr<\/code><\/pre>\n<p>Isso envia uma solicita\u00e7\u00e3o \u00e0 sua API de OCR e retorna uma resposta semelhante:<\/p>\n<pre><code class=\"language-bash\">{\n  \"status\": \"success\",\n  \"text\": \"This looks like it was written in a hucrynn\"\n}<\/code><\/pre>\n<p>Isso confirma que sua API OCR foi configurada corretamente. Voc\u00ea tamb\u00e9m pode tentar com a imagem simples, e aqui est\u00e1 a apar\u00eancia da resposta:<\/p>\n<pre><code class=\"language-bash\">{\n  \"status\": \"success\",\n  \"text\": \"This looks like it was written with a steady handnn\"\n}<\/code><\/pre>\n<p>Isso tamb\u00e9m demonstra a precis\u00e3o do mecanismo de OCR do Tesseract. Agora voc\u00ea pode continuar a hospedar sua API OCR na Hospedagem de Aplicativos da Kinsta, possibilitando o seu acesso on-line.<\/p>\n<h2>Implanta\u00e7\u00e3o da API OCR<\/h2>\n<p>Para implantar seu aplicativo na Kinsta, primeiro voc\u00ea precisa enviar o c\u00f3digo do projeto para um provedor Git <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">(Bitbucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> ou <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>).<\/p>\n<p>Antes de enviar seu c\u00f3digo, voc\u00ea precisa configurar o Tesseract separadamente em seu sistema host para poder usar o wrapper PyTesseract com ele. Para poder usar o wrapper na plataforma de aplicativos Kinsta (ou em qualquer outro ambiente, em geral), voc\u00ea precisar\u00e1 configur\u00e1-lo l\u00e1 tamb\u00e9m.<\/p>\n<p>Se voc\u00ea estiver trabalhando com inst\u00e2ncias de computa\u00e7\u00e3o remotas (como o AWS EC2), poder\u00e1 fazer o SSH na inst\u00e2ncia de computa\u00e7\u00e3o e executar o comando apropriado para instalar o pacote nela.<\/p>\n<p>No entanto, as plataformas de aplicativos n\u00e3o fornecem a voc\u00ea acesso direto ao host. Voc\u00ea precisar\u00e1 usar uma solu\u00e7\u00e3o como <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/nixpacks\">Nixpacks<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/build-options\/buildpacks\">Buildpacks<\/a> ou <a href=\"https:\/\/docs.sevalla.com\/applications\/deploymentsDockerfiles\">Dockerfiles<\/a> para configurar os requisitos iniciais dos ambientes do seu aplicativo (o que incluir\u00e1 a configura\u00e7\u00e3o do pacote Tesseract localmente) e, em seguida, instalar o aplicativo.<\/p>\n<p>Adicione um arquivo <strong>nixpacks.toml<\/strong> no diret\u00f3rio do seu projeto com o seguinte conte\u00fado:<\/p>\n<pre><code class=\"language-toml\"># nixpacks.toml\n\nproviders = [\"python\"]\n\n[phases.setup]\nnixPkgs = [\"...\", \"tesseract\"]\n\n[phases.build]\ncmds = [\"echo building!\", \"pip install -r requirements.txt\", \"...\"]\n\n[start]\ncmd = \"gunicorn ocrapi.wsgi\"<\/code><\/pre>\n<p>Isso instruir\u00e1 a plataforma de build a:<\/p>\n<ol start=\"1\">\n<li>Usar o tempo de execu\u00e7\u00e3o do Python para construir e executar seu aplicativo<\/li>\n<li>Configurar o pacote Tesseract no cont\u00eainer do seu aplicativo.<\/li>\n<li>Iniciar o aplicativo usando <code>gunicorn<\/code>.<\/li>\n<\/ol>\n<p>Al\u00e9m disso, execute o seguinte comando para gerar um arquivo <strong>requirements.txt<\/strong> que a plataforma do aplicativo pode usar para instalar os pacotes Python necess\u00e1rios durante a build:<\/p>\n<pre><code class=\"language-bash\">pip3 freeze &gt; requirements.txt<\/code><\/pre>\n<p>Quando seu reposit\u00f3rio Git estiver pronto, siga estas etapas para implantar sua API OCR na Kinsta:<\/p>\n<ol start=\"1\">\n<li>Fa\u00e7a login ou crie uma conta para visualizar seu painel <a href=\"https:\/\/my.kinsta.com\/?lang=pt\" target=\"_blank\" rel=\"noopener noreferrer\">MyKinsta<\/a>.<\/li>\n<li>Autorize a Kinsta no seu provedor Git.<\/li>\n<li>Na barra lateral esquerda, clique em <strong>Aplicativos<\/strong> e, em seguida, clique em <strong>Adicionar aplicativo<\/strong>.<\/li>\n<li>Selecione o reposit\u00f3rio e a branch a partir da qual voc\u00ea deseja implantar.<\/li>\n<li>Selecione um dos 27 locais de centros de dados dispon\u00edveis na lista de op\u00e7\u00f5es. A Kinsta detecta automaticamente as configura\u00e7\u00f5es de build de seus aplicativos por meio do arquivo Nixpack &#8211; portanto, deixe o campo de comando start em branco.<\/li>\n<li>Escolha os recursos do seu aplicativo, como RAM e espa\u00e7o em disco.<\/li>\n<li>Clique em <strong>Criar aplicativo<\/strong>.<\/li>\n<\/ol>\n<p>Quando a implanta\u00e7\u00e3o estiver conclu\u00edda, copie o link do aplicativo implantado e execute o seguinte comando em sua CLI:<\/p>\n<pre><code class=\"\u201dlanguage-bash\u201d\">curl -x POST -F \u201cimage=@simple-image.png\u201d &lt;your-deployed-app-link&gt;\/ocr<\/code><\/pre>\n<p>Isso deve retornar a mesma resposta que voc\u00ea recebeu localmente:<\/p>\n<pre><code class=\"language-bash\">{\"status\":\"success\",\"text\":\"This looks like it was written with a steady handnn\"}<\/code><\/pre>\n<p>Voc\u00ea tamb\u00e9m pode usar o Postman para testar a API.<\/p>\n<figure id=\"attachment_172438\" aria-describedby=\"caption-attachment-172438\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-172438 size-large\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/trying-app-in-postman-1024x573.png\" alt=\"Experimentando o aplicativo no Postman.\" width=\"1024\" height=\"573\"><figcaption id=\"caption-attachment-172438\" class=\"wp-caption-text\">Experimentando o aplicativo no Postman.<\/figcaption><\/figure>\n<p>Com isso, voc\u00ea conclui o desenvolvimento de uma API b\u00e1sica de OCR. Voc\u00ea pode acessar o <a href=\"https:\/\/github.com\/krharsh17\/ocr-api\" target=\"_blank\" rel=\"noopener noreferrer\">c\u00f3digo completo deste projeto no GitHub<\/a>.<\/p>\n<h2>Resumo<\/h2>\n<p>Agora voc\u00ea tem uma API OCR auto-hospedada em funcionamento que pode personalizar conforme desejar! Essa API pode extrair texto de imagens, fornecendo uma ferramenta valiosa para extra\u00e7\u00e3o de dados, digitaliza\u00e7\u00e3o de documentos e outros aplicativos.<\/p>\n<p>\u00c0 medida que voc\u00ea continuar a desenvolver e refinar sua API OCR, considere explorar recursos avan\u00e7ados, como suporte a v\u00e1rios idiomas, t\u00e9cnicas de pr\u00e9-processamento de imagens e integra\u00e7\u00e3o com servi\u00e7os de armazenamento em nuvem para armazenar e acessar imagens.<\/p>\n<p><em>Que recurso voc\u00ea acha indispens\u00e1vel para uma API OCR auto-hospedada? Compartilhe sua opini\u00e3o nos coment\u00e1rios abaixo!<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A extra\u00e7\u00e3o de texto de imagens tem sido um problema popular na engenharia de software h\u00e1 muito tempo. O reconhecimento \u00f3ptico de caracteres (OCR) foi uma &#8230;<\/p>\n","protected":false},"author":238,"featured_media":66300,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1001],"class_list":["post-66299","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como Criar sua Pr\u00f3pria API OCR no Python - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como Criar sua Pr\u00f3pria API OCR no Python\" \/>\n<meta property=\"og:description\" content=\"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-10T12:57:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-16T18:00:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Kumar Harsh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kumar Harsh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/\"},\"author\":{\"name\":\"Kumar Harsh\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9\"},\"headline\":\"Como Criar sua Pr\u00f3pria API OCR no Python\",\"datePublished\":\"2024-01-10T12:57:04+00:00\",\"dateModified\":\"2024-01-16T18:00:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/\"},\"wordCount\":1344,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/\",\"name\":\"Como Criar sua Pr\u00f3pria API OCR no Python - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg\",\"datePublished\":\"2024-01-10T12:57:04+00:00\",\"dateModified\":\"2024-01-16T18:00:57+00:00\",\"description\":\"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/python\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Como Criar sua Pr\u00f3pria API OCR no Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9\",\"name\":\"Kumar Harsh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g\",\"caption\":\"Kumar Harsh\"},\"description\":\"Kumar is a software developer and a technical author based in India. He specializes in JavaScript and DevOps. You can learn more about his work on his website.\",\"sameAs\":[\"https:\/\/kumarharsh.me\"],\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/kumarharsh\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como Criar sua Pr\u00f3pria API OCR no Python - Kinsta\u00ae","description":"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/","og_locale":"pt_PT","og_type":"article","og_title":"Como Criar sua Pr\u00f3pria API OCR no Python","og_description":"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.","og_url":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2024-01-10T12:57:04+00:00","article_modified_time":"2024-01-16T18:00:57+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg","type":"image\/jpeg"}],"author":"Kumar Harsh","twitter_card":"summary_large_image","twitter_description":"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg","twitter_creator":"@kinsta_pt","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Kumar Harsh","Tempo estimado de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/"},"author":{"name":"Kumar Harsh","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9"},"headline":"Como Criar sua Pr\u00f3pria API OCR no Python","datePublished":"2024-01-10T12:57:04+00:00","dateModified":"2024-01-16T18:00:57+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/"},"wordCount":1344,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/","url":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/","name":"Como Criar sua Pr\u00f3pria API OCR no Python - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg","datePublished":"2024-01-10T12:57:04+00:00","dateModified":"2024-01-16T18:00:57+00:00","description":"Aprenda as t\u00e9cnicas essenciais, desde o processamento de imagens at\u00e9 a extra\u00e7\u00e3o de textos, e libere o potencial da tecnologia OCR.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/python-ocr\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2024\/01\/python-ocr.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/python-ocr\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Python","item":"https:\/\/kinsta.com\/pt\/topicos\/python\/"},{"@type":"ListItem","position":3,"name":"Como Criar sua Pr\u00f3pria API OCR no Python"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/3a80efffa9cbb0333cc9c22b754415d9","name":"Kumar Harsh","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/de2d8d6273bdcc3dfa2f8270428f95b2?s=96&d=mm&r=g","caption":"Kumar Harsh"},"description":"Kumar is a software developer and a technical author based in India. He specializes in JavaScript and DevOps. You can learn more about his work on his website.","sameAs":["https:\/\/kumarharsh.me"],"url":"https:\/\/kinsta.com\/pt\/blog\/author\/kumarharsh\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/238"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=66299"}],"version-history":[{"count":7,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66299\/revisions"}],"predecessor-version":[{"id":66449,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66299\/revisions\/66449"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/translations\/es"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66299\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/66300"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=66299"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=66299"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=66299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}