狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

一個免費開源可完全離線的OCR工具Umi-OCR(本文附帶封裝教程DEMO源碼)

admin
2024年7月24日 15:39 本文熱度 2786

在《Easy-OCR》一文中,我們詳細描述了OCR的應(yīng)用場景和Easy-OCR的使用,后續(xù)有同學(xué)反饋,Easy-OCR的安裝相對較為麻煩,還需要下載模型包,在使用上也以Python命令為主,對新手同事不是太友好。也有同學(xué)反饋為什么不用飛漿Paddle,本質(zhì)上paddle場景主要面向視覺分析,深度學(xué)習(xí)場景,而且在安裝使用上的難度也不是太低。

所以,今天給大家介紹的是一個不同于Easy-OCR和飛漿Paddle,而是一個無論在部署安裝,還是使用上更加簡單的OCR軟件-Umi-OCR。為了說明這幾個OCR區(qū)別,整理了一份對比表如下:

對比項Umi-OCREasy-OCRPaddleOCR
設(shè)備要求主要Windows操作系統(tǒng),Linux(測試中)支持多種操作系統(tǒng)支持多種操作系統(tǒng)
定位OCR設(shè)別軟件,底層依賴OCR識別引擎OCR識別引擎OCR識別引擎
易用性圖形化界面,適合非專業(yè)用戶,也提供命令行和API接口適合具有一定編程基礎(chǔ)的開發(fā)者使用適合具有一定編程基礎(chǔ)的開發(fā)者使用
性能性能優(yōu)化好,底層可采用Paddle引擎,電腦性能足夠情況下速度快效率一般,但是可利用GPU加速性能優(yōu)化好,支持多種硬件加速
學(xué)習(xí)難度較低,圖形化界面易于上手中等,需要編程基礎(chǔ),但API接口簡潔中等,需要編程基礎(chǔ),對比其他Python庫可能存在學(xué)習(xí)曲線
安裝部署無需安裝,下載解壓即可使用通過pip安裝,可能需要下載預(yù)訓(xùn)練模型通過pip安裝PaddlePaddle,再安裝PaddleOCR或使用PaddleHub集成
多語言支持支持支持
應(yīng)用場景截圖OCR、批量OCR、二維碼識別等 文檔數(shù)字化、名片信息提取、車牌識別等圖像識別、自然語言處理、推薦系統(tǒng)等 
批量處理支持批量導(dǎo)入圖片進行文字識別,支持多種輸出格式支持批量處理,具體實現(xiàn)需結(jié)合API使用支持批量預(yù)測,可通過編程實現(xiàn)復(fù)雜批處理
離線使用是,完全離線使用是,但需預(yù)先下載模型文件是,支持離線


01 
— 
 Umi-OCR 介紹 

一個開源、免費的離線OCR軟件。簡單、易用,開放API。支持截屏/批量導(dǎo)入圖片,PDF文檔識別,排除水印/頁眉頁腳,掃描/生成二維碼。內(nèi)置多國語言庫。

🏠  項目信息

#Github地址https://github.com/hiroi-sora/Umi-OCR

🚀功能特性

  • 免費:本項目所有代碼開源,完全免費。

  • 方便:解壓即用,離線運行,無需網(wǎng)絡(luò)。

  • 高效:自帶高效率的離線OCR引擎,內(nèi)置多種語言識別庫。

  • 靈活:支持命令行、HTTP接口等外部調(diào)用方式。

  • 功能:截圖OCR / 批量OCR / PDF識別 / 二維碼 / 公式識別



02
 Umi-OCR 使用 

Umi-OCR提供了多種下載方式,可以安裝網(wǎng)絡(luò)環(huán)境自行選擇。下載后,直接解壓使用即可:

# 藍奏云 (國內(nèi)推薦,免注冊/無限速)https://hiroi-sora.lanzoul.com/s/umi-ocr# Github releasehttps://github.com/hiroi-sora/Umi-OCR/releases/latest# Source Forgehttps://sourceforge.net/projects/umi-ocr
  • 截圖(圖片)OCR

支持屏幕截圖,粘貼圖片,快捷轉(zhuǎn)文字,支持識別欄編輯文字,允許劃選多個記錄復(fù)制。

支持設(shè)別后文本后處理,整理OCR結(jié)果的排版和順序,使文本更適合閱讀和使用。

  • 批量OCR

對批量導(dǎo)入本地圖片進行識別,支持與截圖OCR一樣的文本后處理功能,可一次性導(dǎo)入幾百張圖片進行任務(wù)。

OCR文本后處理支持忽略區(qū)域,適用于排除圖片中的不想要的文字。

  • 文檔識別

支持pdf, xps, epub, mobi, fb2, cbz 等格式文檔批量識別,支持設(shè)定忽略區(qū)域,可用于排除頁眉頁腳的文字。

  • 二維碼識別

截圖/粘貼/拖入本地圖片,讀取其中的二維碼、條形碼,支持19種協(xié)議。


03
 Umi-OCR 頁面封裝 

Umi-OCR同時提供了本地命令行和HTTP接口。本次我們主要基于的Umi-OCR接口,將其封裝為一個簡單的B/S架構(gòu)WEB應(yīng)用。

# Umi-OCR http接口說明文檔https://github.com/hiroi-sora/Umi-OCR/blob/main/docs/http/README.md

一、開放HTTP接口地址

在全局設(shè)置頁中勾選高級設(shè)置,允許HTTP服務(wù)才能使用HTTP接口,將主機切換到任何可用地址。

二、WEB封裝設(shè)計說明

  • 后端:采用Flask 負責處理文件上傳、調(diào)用Umi-OCR設(shè)別以及對設(shè)別后的進行數(shù)據(jù)格式化。

  • 前端:頁面使用 Bootstrap 進行樣式設(shè)計,并通過 AJAX 實現(xiàn)異步數(shù)據(jù)提交和更新,允許用戶上傳圖片并進行 OCR 識別,用戶可以在頁面地獲取到Umi-OCR識別結(jié)果。

三、具體代碼實現(xiàn)

  • 后端 Flask 應(yīng)用 (umi-ocr.py)代碼:

from flask import Flask, request, render_template, jsonifyimport requestsimport base64import osfrom werkzeug.utils import secure_filenameimport json
app = Flask(__name__)app.config['UPLOAD_FOLDER'] = 'uploads/'  # 確保這個文件夾存在
def format_result(data):    formatted_results = []    for item in data:        result = {            'text': item.get('text', ''),            'score': item.get('score', 0),            'bounding_box': item.get('box', [])        }        formatted_results.append(result)    return formatted_results
@app.route('/', methods=['GET'])def index():    return render_template('index.html')
@app.route('/upload', methods=['POST'])def upload_file():    if request.method == 'POST':        # 獲取上傳的圖片        image_file = request.files['image']        if image_file:            filename = secure_filename(image_file.filename)            image_file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))            # 讀取圖片內(nèi)容并轉(zhuǎn)換為base64編碼            with open(os.path.join(app.config['UPLOAD_FOLDER'], filename), "rb") as image_file:                encoded_image = base64.b64encode(image_file.read()).decode('utf-8')            # 調(diào)用OCR接口            response = requests.post('http://xxx.xxx.xxx.xxx:1224/api/ocr', json={'base64': encoded_image})            # URL換成運行umi-ocr的服務(wù)器地址,解析響應(yīng)            if response.status_code == 200:                result = response.json()                result['data'] = format_result(result['data'])  # 格式化數(shù)據(jù)                return jsonify(result)            else:                return jsonify({'error': 'Failed to connect to OCR service'})    return jsonify({'error': 'No image provided'})
if __name__ == '__main__':    app.run(debug=True, host='0.0.0.0')
  • 前端 HTML頁面(index.html)應(yīng)用:

<!DOCTYPE html><html lang="zh-CN"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>OCR識別結(jié)果展示</title>    <!-- 引入Bootstrap CSS -->    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">    <style>        #results {            margin-top: 20px;        }        .result-text {            font-size: 16px;            color: #333;        }</style></head><body>    <div class="container mt-4">        <h2>OCR識別結(jié)果</h2>        <form id="uploadForm" method="post" enctype="multipart/form-data">            <div class="form-group">                <input type="file" class="form-control" name="image" required>            </div>            <button type="submit" class="btn btn-primary">上傳圖片</button>        </form>        <div id="results" class="result-text"></div>    </div>
   <!-- 引入jQuery和Bootstrap JS -->    <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>    <script>        $(document).ready(function() {            $('#uploadForm').submit(function(e) {                e.preventDefault();                var formData = new FormData(this);
               $.ajax({                    url: '/upload',                    type: 'post',                    data: formData,                    contentType: false,                    processData: false,                    success: function(data) {                        if (data.error) {                            $('#results').text(data.error);                        } else if (data.code === 100) {                            // 將所有文本結(jié)果拼接并顯示                            var allText = data.data.map(function(item) {                                return item.text;                            }).join('\n');                            $('#results').text(allText);                        } else {                            $('#results').text('識別失敗或未檢測到文本。');                        }                    },                    error: function(xhr, status, error) {                        $('#results').text('請求出錯:' + error);                    }                });            });        });</script></body></html>

四、部署運行
  • 環(huán)境要求

#需要python3環(huán)境,確保環(huán)境中安裝了Flaskpip install Flask easyocr -i https://mirrors.aliyun.com/pypi/simple/
  • 運行程序

# 創(chuàng)建運行目錄mkdir -p /opt/Umi-OCR/uploadsmkdir -p /opt/Umi-OCR/templates# 將umi-ocr.py文件復(fù)制至 Umi-OCR目錄mv umi-ocr.py /opt/Umi-OCR/# 將index.html文件復(fù)制至Umi-OCR/templates目錄mv index.html /opt/Umi-OCR/templates# 運行程序python umi-ocr.py
 * Running on http://xxx.xxx.xxx.xxx:5000/ (Press CTRL+C to quit) * Restarting with stat * Debugger is active! * Debugger PIN: 379-609-535
  • 訪問 http://hostip:5000,打開頁面

四、使用測試

在頁面上傳圖片,查看識別效果


04
 最后 

當然,上述只是一個簡單的教程,感興趣的同學(xué)可以在DEMO之上擴展批量識別等功能。雖然Umi-OCR在使用上主要面向非專業(yè)用戶,但是在設(shè)計上提供了詳細的API接口和命令行。方便專業(yè)的開發(fā)人員可以按照需要的場景和應(yīng)用自行擴展和集成。


該文章在 2024/7/24 15:49:36 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved