API رایگان OCR سوئیفت برای خواندن اعداد کارت‌های شناسایی و بانکی

کتابخانه منبع باز برتر تشخیص نوری کاراکتر (OCR) سوئیفت برای شناسایی و خواندن اعداد از کارت‌های شناسایی، کارت‌های بانکی، شماره‌های منزل و اسناد با API رایگان سوئیفت.

Evil چیست؟

برای توسعه‌دهندگان نرم‌افزار که بر روی پلتفرم‌های اپل می‌سازند، ادغام تشخیص نوری کاراکتر (OCR) در برنامه‌های iOS و macOS با کتابخانه منبع باز Evil به‌صورت ساده‌ای انجام می‌شود. این راه‌حل مبتنی بر سوئیفت از توانایی‌های داخلی چارچوب Vision اپل بهره می‌گیرد تا API سطح بالایی برای استخراج متن از تصاویر با کارایی شگفت‌انگیز فراهم کند. به‌عنوان ابزاری با تمرکز بر توسعه‌دهنده، Evil فرآیند پیچیده افزودن قابلیت‌های OCR قدرتمند را ساده می‌کند و به شما امکان می‌دهد به‌سرعت متن را از منابعی مانند کارت‌های بانکی، کارت‌های شناسایی یا شماره‌های درب مستقیماً در پروژه‌های سوئیفت خود شناسایی کنید.

کتابخانه Evil در استخراج داده‌های ساختاریافته با ترکیب عملکرد بومی سوئیفت و انعطاف‌پذیری استثنایی از طریق ادغام مدل Core ML (.mlmodel) برتری دارد. این معماری مبتنی بر مدل به توسعه‌دهندگان اجازه می‌دهد مدل‌های پیش‌آموزش‌دیده را برای استفاده فوری مستقر کنند یا مدل‌های سفارشی را برای وظایف شناسایی خاص آموزش داده و پیاده‌سازی کنند. با ارائه APIهای ساده همراه با استقرار مدل انعطاف‌پذیر، Evil تجربه OCR با عملکرد بالا و ساده‌سازی‌شده‌ای را ارائه می‌دهد که برای ایجاد ویژگی‌های پیشرفته استخراج متن در دستگاه در برنامه‌های موبایل و دسکتاپ شما برای iOS و macOS کاملاً مناسب است.

Previous Next

شروع کار با Evil

روش پیشنهادی برای نصب Evil استفاده از CocoaPods است. لطفاً برای نصب آسان از فرمان زیر استفاده کنید.

نصب کتابخانه Evil از طریق CocoaPods

 pod 'evil'

نصب کتابخانه Evil از طریق GitHub

 git clone https://github.com/getomni-ai/zerox.git 

شما می‌توانید به‌صورت دستی نیز نصب کنید؛ فایل‌های آخرین نسخه را مستقیماً از مخزن GitHub دانلود کنید.

تشخیص اعداد در تصاویر با API سوئیفت

به‌صورت کامل در سوئیفت ساخته شده، Evil از هر دو iOS (11.0+) و macOS (10.13+) پشتیبانی می‌کند و این باعث می‌شود برای توسعه بومی در اکوسیستم اپل بسیار انعطاف‌پذیر باشد. کتابخانه منبع باز Evil پشتیبانی کامل از شناسایی اعداد از داده‌های ساختاریافته داخل برنامه‌های سوئیفت را فراهم می‌کند. هدف اصلی کتابخانه Evil این است که شناسایی متن از تصاویر مانند کارت‌های بانکی، کارت‌های شناسایی یا حتی شماره‌های درب را برای توسعه‌دهندگان نرم‌افزار به‌ساده‌ترین شکل ممکن کند. پس از مقداردهی اولیه کتابخانه Evil، شناسایی متن از یک تصویر به‌سادگی فراخوانی متد recognize است؛ مثال زیر نحوه انجام این کار را نشان می‌دهد.

چگونه اعداد را از یک تصویر با API سوئیفت شناسایی کنیم؟

let image: Recognizable = // Your image (e.g., a UIImage or CGImage)
let result = evil?.recognize(image)
print(result)

// This returns the OCR result—typically the detected number or text as a string 

// Run OCR on Input Image

if let result = evil?.recognize(myImage) {
  print("Detected number: \(result)")
}

دستکاری پیشرفته حافظه

کتابخانه منبع باز OCR سوئیفت Evil به توسعه‌دهندگان نرم‌افزار امکان دسترسی مستقیم و دستکاری حافظه داخل برنامه‌های سوئیفت را می‌دهد. بنابراین برای دیباگ، هک بازی یا تست امنیتی مفید است. در زیر مثال مفیدی آورده شده که خواندن و نوشتن به یک مکان حافظه خاص را با دستورات سوئیفت نشان می‌دهد.

چگونه به یک مکان حافظه خاص بخوانیم و بنویسیم با API سوئیفت؟

#include 

int main() {
    uintptr_t address = 0x00400000; // Example memory address
    uint8_t value = evil_read_memory(address); // Read a byte
    evil_write_memory(address, 0x90); // Write a NOP (0x90) instruction
    return 0;
}

بارگذاری انعطاف‌پذیر مدل از طریق URL

کتابخانه منبع باز Evil روش‌های متعددی برای بارگذاری مدل‌های Core ML شما ارائه می‌دهد. می‌توانید آن‌ها را مستقیماً با برنامه‌تان باندل کنید یا برای کاهش حجم اولیه دانلود برنامه، کتابخانه را طوری تنظیم کنید که مدل‌ها را در زمان اجرا از سرور دوردست دریافت کند. برای کوچک نگه داشتن باندل برنامه، می‌توانید فایل .mlmodel خود را روی سرور میزبانی کنید و کتابخانه Evil آن را در زمان اجرا دانلود کند.

چگونه مدل را از یک URL دوردست با API سوئیفت دریافت کنیم؟

let downloadURL = URL(string: "https://your-server.com/ChineseIDCard.mlmodel")!
let chineseIDCard = Recognizer.custom(name: "ChineseIDCard", model: downloadURL, needComplie: true, processor: Recognizer.cropChineseIDCardNumberArea)
let evil = try? Evil(recognizer: chineseIDCard)
 فارسی