سرویس تشخیص کاراکتر نوری محرمانه با کیپ

کیپ اخیراً یک سرویس تشخیص کاراکتر نوری محرمانه (OCR) را مستقر کرده است. هرکسی می تواند پس از ثبت نام از طریق وب سایت کیپ، آن را از طریق رابط کاربری Cape امتحان کند. همچنین می توانید سرویس OCR محرمانه را با استفاده از SDK های cape-js و pycape با برنامه خود ادغام کنید. در این پست وبلاگ، از این مثال خدمات OCR استفاده خواهیم کرد تا نشان دهیم که چگونه می توانید از خدمات یادگیری ماشینی بهره مند شوید و در عین حال محرمانه بودن داده های کاربران را حفظ کنید.
خدمات OCR در صنایع مختلف، از خدمات مالی گرفته تا مراقبت های بهداشتی، زمانی که نیاز به پردازش تعداد زیادی از اسناد به دلایل زیر دارید، به طور فزاینده ای محبوب می شوند:
- کارایی: نیاز به ورود دستی داده ها را از بین ببرید و فرآیند مدیریت اسناد را ساده کنید.
- دقت: کاهش احتمال خطا هنگام استخراج دستی داده ها از اسناد.
- قابل جستجو: OCR می تواند یک سند اسکن شده را به متن تبدیل کند و به فرد امکان می دهد اطلاعات خاصی را در سند جستجو کند.
- صرفه جویی در هزینه: به سازمان ها کمک می کند تا با کاهش زمان و تلاش مورد نیاز برای پردازش اسناد، در هزینه خود صرفه جویی کنند.
اگرچه مزایای این نوع خدمات یادگیری ماشینی واضح است، اما اغلب شامل حساسترین اطلاعات ما از امتیازات اعتباری، حسابهای بانکی، صورتهای مالی، سوابق پزشکی و غیره میشود. به عنوان مصرفکننده، میتوانیم به خدمات تجاری OCR مانند Google Vision API دسترسی داشته باشیم. یا متن آمازون با این حال، حتی اگر از شیوههای امنیتی قوی استفاده کنند، مانند رمزگذاری دادهها «در حال انتقال» و «در حالت استراحت»، اغلب محرمانه بودن این دادهها را در طول کل فرآیند تضمین نمیکنند. به عنوان مثال، داده ها در حین پردازش توسط سرویس یادگیری ماشین رمزگشایی می شوند، بنابراین داده های محرمانه کاربران در معرض دید قرار می گیرند. آنها همچنین اغلب از این داده ها برای آموزش مدل یادگیری ماشین خود برای بهبود دقت خدمات خود استفاده می کنند.
به عنوان یک استارتاپ که با کسب و کارها کار می کند، یکی از سوالاتی که مشتریان شما همیشه از شما خواهند پرسید این است: “چگونه امنیت داده های ما را تضمین می کنید؟” اگر از یکی از برنامه های تجاری استفاده می کنید، رسیدگی به نگرانی های مشتریان خود چالش برانگیز خواهد بود، زیرا نمی توانید امنیت و محرمانه بودن این داده ها را در طول کل فرآیند کنترل کنید.
Cape چگونه از محرمانه بودن داده ها محافظت می کند؟
برای حفظ محرمانه بودن داده ها، کیپ از ترکیب دو فناوری استفاده می کند: رمزگذاری و محصور امن. با Cape، وقتی با سرویس OCR تماس می گیرید، داده های شما بلافاصله به صورت محلی رمزگذاری می شوند. هنگامی که داده ها رمزگذاری شدند، فقط می توانند در یک محصور امن پردازش شوند، که یک VM ایزوله است. محصور هیچ فضای ذخیرهسازی، شبکه و دسترسی تعاملی کاربر ندارد. هیچ کس نمی تواند ببیند که این منطقه در حال پردازش چه چیزی است. این یک جعبه سیاه است فقط بخش امن به کلیدهای رمزگشایی خصوصی شما برای پردازش داده های شما دسترسی دارد. شما برای ارسال ورودی ها و دریافت نتایج، یک اتصال رمزگذاری شده مستقیم و سرتاسر با محفظه دارید. و هنگامی که محوطه محاصره به پایان می رسد، برای همیشه از بین می رود و هیچ اثری در حافظه باقی نمی گذارد.
مدل OCR
کیپ برای سرویس OCR خود از کتابخانه عالی پایتون docTR استفاده می کند. برخی از مزایای حیاتی docTR سهولت استفاده، انعطاف پذیری و عملکرد مطابق با پیشرفته ترین آن است. مدل OCR شامل دو مرحله است: تشخیص متن و تشخیص متن. Cape از معماری DB Resnet50 از پیش آموزش دیده برای تشخیص استفاده می کند و برای شناسایی، از معماری MobileNetV3 Small استفاده می کند. برای کسب اطلاعات بیشتر در مورد میزان دقت OCR که می توانید برای سند خود انتظار داشته باشید، می توانید از این معیارهای ارائه شده توسط docTR استفاده کنید. همانطور که خواهید دید، عملکرد مدل در مقایسه با سایر خدمات تجاری بسیار رقابتی است.
سرویس OCR را با cape-js فراخوانی کنید
در این پست وبلاگ، ما بر فراخوانی سرویس OCR تمرکز می کنیم. با این حال، اگر میخواهید نحوه استقرار مدل یادگیری ماشین خود را با Cape یاد بگیرید، میتوانید این مثال را بررسی کنید، جایی که ما یک مدل طبقهبندی تصویر را با زمان اجرا ONNX اجرا میکنیم.
خوب، بیایید سرویس OCR محرمانه را در یک PDF فراخوانی کنیم. قبل از فراخوانی سرویس، ابتدا باید با Cape از وب سایت کیپ ثبت نام کنید. سپس برای احراز هویت با Cape از SDK ها، باید یک رمز دسترسی شخصی ایجاد کنید. میتوانید با رفتن به بخش «Token دسترسی شخصی» آن را از صفحه حساب خود ایجاد کنید. توجه داشته باشید که می توانید با استفاده از Cape’s CLI ثبت نام کرده و یک نشانه دسترسی شخصی ایجاد کنید.
هنگامی که رمز دسترسی خود را دریافت کردید، می توانید سرویس OCR را فراخوانی کنید. در اینجا یک قطعه کد به شما نشان می دهد که چگونه این کار را با cape-js انجام دهید.
import { Cape } from '@capeprivacy/cape-sdk'
import * as fs from 'fs'
import * as crypto from 'crypto'
import * as pkijs from 'pkijs'
// If you run this script from a node environment
// set the engine to "nodeEngine"
const name = 'nodeEngine'
pkijs.setEngine(
name,
new pkijs.CryptoEngine({
name,
crypto: crypto.webcrypto,
})
)
// Load your PDF
const pdf = fs.readFileSync('./path/to/some-file.pdf')
// Get a personal access token from the UI or the CLI with
// cape token create --name ocr
const authToken = '<YOUR TOKEN>'
// Instantiate a Cape object with your auth token and the URL
// "wss://xlarge.capeprivacy.com". Setting the URL to wss://xlarge.capeprivacy.com
// will guarantee the OCR model is deployed to larger instances with required
// dependencies.
const cape = new Cape({ authToken, enclaveUrl: 'wss://xlarge.capeprivacy.com' })
// Invoke the OCR service on your PDF by setting the function ID to
// 'capedocs/ocr-doctr-onnx-1.0'
const result = await cape.run({ id: 'capedocs/ocr-doctr-onnx-1.0', data: pdf })
// Print OCR transcript
console.log(JSON.parse(result).ocr_transcript)
همانطور که می بینید، فقط باید یک شی Cape را با توکن خود و آدرس Cape برای خدمات یادگیری ماشینی نمونه سازی کنید. سپس شما فقط باید تماس بگیرید cape.run
روی PDF خود با شناسه تنظیم شده روی capedocs/ocr-doctr-onnx-1.0
برای انتخاب سرویس OCR. پی دی اف شما بلافاصله در داخل محفظه امن در طول این فرآیند رمزگذاری و پردازش می شود. هیچ کس، حتی در کیپ، نمی تواند به PDF شما دسترسی داشته باشد. پس از تکمیل فرآیند OCR، سرویس یک رونوشت و کادرهای محدود کننده برای هر کلمه شناسایی شده در PDF را برمی گرداند. شما می توانید در مورد خروجی مدل در مستندات بیشتر بدانید.
با Cape، همچنین می توانید به راحتی داده های خود را رمزگذاری کنید و نتیجه رمزگذاری شده را در یک فایل برای استفاده بعدی ذخیره کنید. این می تواند بسیار مفید باشد، به عنوان مثال، زمانی که شما فایل های PDF را در سمت مشتری از مرورگر جمع آوری می کنید، سپس OCR را روی این PDF های رمزگذاری شده در سمت سرور اجرا می کنید. در اینجا یک قطعه کد نشان می دهد که چگونه می توانید داده های خود را رمزگذاری کنید و سپس سرویس OCR را فراخوانی کنید:
// Encrypt your PDF with cape.encrypt. When invoking this method, by default,
// the SDK will retrieve the public encryption key associated with
// your account
const encryptedPdf = await cape.encrypt(pdf)
// Invoke the OCR service on your encrypted PDF by setting the function ID to
// "capedocs/ocr-doctr-onnx-1.0"
const result = await client.run({ id:"capedocs/ocr-doctr-onnx-1.0", data: encryptedPdf });
// Print OCR transcript
console.log(JSON.parse(result).ocr_transcript);
برای رمزگذاری PDF خود فقط باید تماس بگیرید cape.encrypt
. پس از رمزگذاری PDF، تنها جایی که می توان آن را رمزگشایی کرد، داخل محفظه امن است. یکی از مزایای مهم Cape این است که شما نیازی به مدیریت کلیدها، انتخاب پروتکل های رمزگذاری یا صرف زمان برای اجرای آنها ندارید. این به هر توسعه دهنده اجازه می دهد تا برنامه های خود را ایمن کند. اگر میخواهید درباره رمزگذاری Cape اطلاعات بیشتری کسب کنید، میتوانید مستندات را بررسی کنید.
سرویس OCR را با pycape فراخوانی کنید
همچنین می توانید با استفاده از pycape با سرویس OCR از پایتون تماس بگیرید:
from pycape import Cape
# Load your PDF
with open('./path/to/some-file.pdf', "rb") as f:
pdf = f.read()
# Instantiate a Cape object with the URL "wss://xlarge.capeprivacy.com".
# Setting the URL to wss://xlarge.capeprivacy.com will guarantee the OCR model is
# deployed to larger instances with required dependencies.
cape = Cape(url="wss://xlarge.capeprivacy.com")
# Get a personal access token from the UI or the CLI with
# cape token create --name ocr
auth_token = "<YOUR TOKEN>"
t = cape.token(auth_token)
# Encrypt your PDF with cape.encrypt. When invoking this method, by default,
# the SDK will retrieve the public encryption key associated with
# your account
encrypted_pdf = cape.encrypt(pdf)
# Select the Cape function you would like to invoke.
# Since we want invoke the ocr service, set the function ID
# to "capedocs/ocr-doctr-onnx-1.0"
f = cape.function("capedocs/ocr-doctr-onnx-1.0")
# Invoke the OCR service
result = cape.run(f, t, encrypted_pdf)
# Print the transcript
print(f"OCR transcript: {json.loads(result)['ocr_transcript']}")
# Print the bounding boxes
print(f"OCR records: {json.loads(result)['ocr_records']}")
اگر نیازی به ذخیره PDF رمزگذاری شده ندارید، می توانید به سادگی سرویس OCR را روی PDF بارگذاری شده فراخوانی کنید. cape.run
.
نمونههای کد ارائهشده در این پست وبلاگ در مخزن نمونههای تابع کیپ هستند. و می توانید از مستندات بیشتر بیاموزید.
امیدوارم این نمونه سرویس OCR با استفاده از Cape نشان دهد که چگونه می توانید از خدمات یادگیری ماشینی بهره مند شوید و در عین حال حساس ترین داده های کاربران خود را محرمانه نگه دارید – حتی اگر تجربه ای در زمینه رمزنگاری نداشته باشید!
برای امتحان رایگان Cape، اسناد شروع به کار را بررسی کنید. ما دوست داریم نظر شما را بشنویم.