IPhone: วิธีใช้คุณสมบัติการตรวจจับข้อความ iOS

click fraud protection

Vision ใน iOS 11 มีทุกสิ่งที่คุณต้องการเพื่อสร้างแอปที่สามารถจดจำตัวอักษรที่มีการใช้งานพร้อมกันได้ คุณไม่จำเป็นต้องมีความรู้ด้านเทคนิคในการเขียนโค้ด – การนำทางคุณลักษณะนี้ค่อนข้างง่าย ยิ่งไปกว่านั้น การนำไปใช้งานนั้นราบรื่น

กรอบวิสัยทัศน์

กรอบวิสัยทัศน์ช่วยให้คุณสามารถใช้งานใดๆ ที่เกี่ยวข้องกับรายละเอียดของคอมพิวเตอร์ได้อย่างง่ายดาย โครงสร้างนี้ดำเนินการตรวจจับจุดสังเกตใบหน้าและใบหน้า การจดจำบาร์โค้ด การลงทะเบียนรูปภาพ การติดตามคุณสมบัติทั่วไป และการตรวจจับข้อความ Vision ยังให้คุณใช้โมเดล Core ML แบบกำหนดเองสำหรับงานต่างๆ เช่น การจำแนกประเภทหรือการตรวจจับวัตถุ

VN DetectTextRectanglesRequest

NS VN DetectTextRectanglesRequest เป็นคำขอวิเคราะห์ภาพที่ค้นหาขอบเขตของข้อความที่มองเห็นได้ในภาพ คุณลักษณะส่งกลับอักขระข้อความเป็นกล่องที่มีขอบเขตสี่เหลี่ยมที่มีจุดเริ่มต้นและขนาด

หากคุณคุ้นเคยกับการใช้สวิฟท์และเขียนโปรแกรมมาระยะหนึ่งแล้ว คุณอาจสงสัยว่าการใช้วิชั่นคืออะไร เมื่อมีฟีเจอร์อื่นๆ เช่น รูปภาพและ AVFoundation Vision นั้นแม่นยำและตรงไปตรงมามากกว่า คุณลักษณะนี้ยังมีอยู่ในหลากหลายแพลตฟอร์ม อย่างไรก็ตาม การใช้ Vision อาจต้องการพลังการประมวลผลและเวลาในการประมวลผลที่มากขึ้น

หากต้องการใช้ Vision สำหรับการตรวจจับข้อความ คุณจะต้องใช้ Xcode 9 และอุปกรณ์ที่ใช้ iOS 11

การสร้างกล้องด้วย AVcapture

ขั้นแรก คุณต้องสร้างกล้องด้วย AVCapture; นี่คือการเริ่มต้น AVcapturesession วัตถุหนึ่งรายการเพื่อทำการจับภาพแบบเรียลไทม์หรือออฟไลน์ หลังจากนั้นทำเซสชั่นเพื่อเชื่อมต่ออุปกรณ์

เพื่อช่วยให้คุณประหยัดเวลาจากการสร้าง UI ของแอป ให้ลองพิจารณามีโครงการเริ่มต้น ซึ่งจะช่วยให้คุณมีเวลามุ่งเน้นไปที่การเรียนรู้กรอบงาน Vision

  1. เปิดโครงการเริ่มต้นของคุณ มุมมองในกระดานเรื่องราวควรพร้อมและตั้งค่าสำหรับคุณ
  2. บน ViewController.swift, มองหาส่วนรหัสที่มีฟังก์ชันและช่องทางจำหน่าย
  3. ภายใต้เต้าเสียบ-ImageView, dประกาศเซสชั่นสำหรับ AVcapturesession – ใช้เมื่อใดก็ตามที่คุณต้องการดำเนินการตามสตรีมแบบสด
  4. ตั้งค่า AVcapturesession และ AVmediatype เป็นวิดีโอเนื่องจากคุณจะทำการถ่ายกล้องเพื่อให้ทำงานอย่างต่อเนื่อง
  5. กำหนดอุปกรณ์เอาท์พุตและอินพุต
  6. อินพุตคือสิ่งที่กล้องจะมองเห็น และเอาต์พุตคือวิดีโอในรูปแบบชุดของ KCVPixelFormatType_32GRA
  7. สุดท้ายเพิ่ม เลเยอร์ย่อย ที่มีวิดีโอถึง imageView และเริ่มเซสชั่น ฟังก์ชันนี้เรียกว่า inViewdidload. คุณต้องตั้งค่าเฟรมของเลเยอร์ด้วย

เรียกใช้ฟังก์ชันใน viewWillAppear กระบวนการ.

เนื่องจากขอบเขตยังไม่สิ้นสุด ให้แทนที่ viewDidLayoutการดูย่อย ( ) วิธีการอัปเดตเลเยอร์ที่ถูกผูกไว้

หลังจากการเปิดตัว iOS 10 จำเป็นต้องมีรายการเพิ่มเติมใน Info.plist ซึ่งเป็นเหตุผลในการใช้กล้อง คุณควรตั้งค่า Privacy-Camera Usage Description ด้วย

การตรวจจับข้อความ; กรอบวิสัยทัศน์ทำงานอย่างไร

การนำ Vision ไปใช้ในแอปมีสามขั้นตอน

  1. ตัวจัดการ – นี่คือเวลาที่คุณต้องการให้เฟรมเวิร์กทำงานหลังจากเรียกคำขอ
  2. ข้อสังเกต – นี่คือสิ่งที่คุณต้องการทำกับข้อมูลที่คุณให้มาโดยเริ่มจากคำขอเดียว
  3. คำขอ – นี่คือเมื่อคุณขอ Detect framework

เป็นการดีที่คุณสร้างคำขอข้อความหนึ่งเป็น VNdetecttextrectanglesrequest. นี่คือชนิดของ VNrequest ที่ล้อมรอบข้อความ หลังจากกรอบงานเสร็จสิ้นแอปพลิเคชัน คุณดำเนินการเรียก ตัวจัดการ Dettext การทำงาน. คุณจะต้องการทราบเฟรมที่แน่นอนที่รู้จัก ตั้งค่าเป็น กล่องอักขระรายงาน=จริง.

หลังจากนั้นให้กำหนดข้อสังเกตที่มีผลลัพธ์ทั้งหมดของ VNdetecttextrectanglesrequestอย่าลืมเพิ่ม Vision ให้กับกล้องเอาต์พุต เนื่องจาก Vision เปิดเผย API ระดับสูง การทำงานกับ API นั้นจึงปลอดภัย

ฟังก์ชันตรวจสอบว่า cmsamplebuffer มีอยู่และ PutOut AVcaptureoutput. จากนั้นคุณควรดำเนินการสร้างตัวแปรหนึ่งตัว คำขอตัวเลือก เป็น 1 ประเภทพจนานุกรม VNimageoption. NS VNmage option เป็นโครงสร้างประเภทหนึ่งที่มีคุณสมบัติและข้อมูลจากกล้อง จากนั้นคุณควรสร้าง VNimagerequesthandler และดำเนินการตามคำขอข้อความ

การวาดเส้นขอบรอบข้อความที่ตรวจพบ

คุณสามารถเริ่มต้นด้วยการมีกรอบงานเพื่อวาดกล่องสองกล่อง กล่องหนึ่งสำหรับทุกตัวอักษรที่ตรวจพบ และอีกกล่องหนึ่งสำหรับทุกคำ ตารางคือการรวมกันของกล่องอักขระทั้งหมดที่คำขอของคุณจะค้นหา

  • กำหนดประเด็นในมุมมองของคุณเพื่อช่วยคุณจัดตำแหน่งกล่อง
  • หลังจากนั้น ให้สร้าง a คาลาเยNS; ใช้ VNสี่เหลี่ยมผืนผ้าสังเกต เพื่อกำหนดข้อจำกัดของคุณ ทำให้กระบวนการร่างกรอบง่ายขึ้น

ตอนนี้คุณมีหน้าที่ทั้งหมดของคุณแล้ว

ในการเชื่อมต่อจุดของคุณ ให้เริ่มโดยให้โค้ดของคุณทำงานแบบอะซิงโครนัส จากนั้นคุณควรตรวจสอบเพื่อดูว่ามีภูมิภาคอยู่ในผลลัพธ์ของคุณจาก VNTextสังเกต.

ตอนนี้คุณสามารถเรียกใช้ฟังก์ชันของคุณ ซึ่งจะวาดกล่องภายในพื้นที่ ตรวจดูว่ามีกล่องอักขระภายในพื้นที่หรือไม่ จากนั้นเรียกใช้บริการที่ใส่กล่องรอบๆ ตัวอักษรแต่ละตัว

หลังจากนั้นให้สร้างตัวแปร ขอตัวเลือก ตอนนี้คุณสามารถสร้าง VNImageRequestHandler วัตถุและดำเนินการตามคำขอข้อความที่คุณสร้างขึ้น

สุดท้าย ขั้นตอนสุดท้ายคือการรันโค้ดวิชั่นของคุณด้วยสตรีมแบบสด คุณจะต้องเอาเอาท์พุตวิดีโอและแปลงเป็น ซม.บัฟเฟอร์ตัวอย่าง

คำแนะนำเพิ่มเติม

  1. พยายามครอบตัดรูปภาพและประมวลผลเฉพาะส่วนที่คุณต้องการเสมอ ซึ่งจะช่วยลดเวลาในการประมวลผลและรอยเท้าของหน่วยความจำ
  2. เปิดการแก้ไขภาษาเมื่อจัดการกับอักขระที่ไม่ใช่ตัวเลข จากนั้นปิดเมื่อจัดการกับอักขระตัวเลข
  3. รวมการตรวจสอบสตริงตัวเลขที่รู้จักเพื่อยืนยันความถูกต้องและขจัดการแสดงค่าเท็จต่อผู้ใช้
  4. ตัวควบคุมกล้องเอกสารเป็นคู่หูที่ดีที่สุดสำหรับการจดจำข้อความ เนื่องจากคุณภาพของภาพมีบทบาทสำคัญในการจดจำข้อความ
  5. พิจารณากำหนดความสูงของข้อความขั้นต่ำเพื่อเพิ่มประสิทธิภาพ

ด้วย Vision คุณมีทุกสิ่งที่จำเป็นสำหรับการจดจำข้อความ เนื่องจาก Vision นั้นใช้งานง่ายและใช้เวลาไม่นานในการติดตั้ง การใช้งานนั้นแทบจะเทียบเท่ากับการเล่นกับ Legos ลองทดสอบแอปของคุณกับวัตถุ แบบอักษร แสง และขนาดต่างๆ คุณยังสามารถสร้างความประทับใจให้ตัวเองได้ด้วยการรวม Vision กับ Core ML