ក្របខ័ណ្ឌ Vision ត្រូវបានណែនាំដោយ Apple ក្នុងឆ្នាំ 2017 នៅ WWDC ដែលជាផ្នែកមួយនៃប្រព័ន្ធប្រតិបត្តិការ iOS 11 ។ ការបើកដំណើរការរបស់វាបានសម្គាល់ចំណុចរបត់មួយក្នុងការវិវត្តន៍នៃចក្ខុវិស័យម៉ាស៊ីន និងការវិភាគរូបភាព ដោយផ្តល់ឱ្យអ្នកអភិវឌ្ឍន៍នូវឧបករណ៍ដើមដើម្បីវិភាគមាតិកាដែលមើលឃើញ និងដំណើរការជាបន្តបន្ទាប់តាមតម្រូវការ។ នៅឆ្នាំ ២០១៧ ចក្ខុវិស័យបានណែនាំ៖ ការទទួលស្គាល់អត្ថបទ ការសម្គាល់មុខ ការរកឃើញរាងចតុកោណ ការស្គាល់លេខកូដ QR និងបាកូដ ចាប់តាំងពីការបង្ហាញខ្លួនលើកដំបូង Apple បានបន្តពង្រឹងក្របខ័ណ្ឌ Vision ដោយធានាថាវាវិវឌ្ឍទៅតាមតម្រូវការទំនើប។ នៅចុងឆ្នាំ 2024 ជាមួយនឹងការចេញផ្សាយ iOS 18 ឥឡូវនេះ Vision ផ្តល់ជូន៖ ធ្វើឱ្យប្រសើរឡើងនូវភាពត្រឹមត្រូវនៃការទទួលស្គាល់អត្ថបទដោយមានការគាំទ្រសម្រាប់ភាសាមួយចំនួនធំ ការរកឃើញមុខនិងលក្ខណៈពិសេសរបស់ពួកគេ។ សមត្ថភាពក្នុងការវិភាគចលនា សមត្ថភាពក្នុងការទទួលស្គាល់ទីតាំង រួមទាំងទីតាំងដៃ និងចំណុចសំខាន់ៗនៃរាងកាយមនុស្ស ការគាំទ្រសម្រាប់ការតាមដានវត្ថុនៅក្នុងវីដេអូ ការធ្វើសមាហរណកម្មប្រសើរឡើងជាមួយ CoreML សម្រាប់ធ្វើការជាមួយម៉ូដែលការរៀនតាមម៉ាស៊ីនផ្ទាល់ខ្លួន ការរួមបញ្ចូលយ៉ាងស៊ីជម្រៅជាមួយក្របខ័ណ្ឌដែលពាក់ព័ន្ធដូចជា AVKit, ARKit ជាមួយនឹងការមកដល់នៃក្របខ័ណ្ឌ Vision អ្នកអភិវឌ្ឍន៍ទទួលបានសមត្ថភាពក្នុងការអនុវត្តភារកិច្ចវិភាគរូបភាព និងវីដេអូកម្រិតខ្ពស់ពីដើម ដោយមិនពឹងផ្អែកលើដំណោះស្រាយភាគីទីបី។ សមត្ថភាពទាំងនេះរួមមានការស្កែនឯកសារ សម្គាល់អត្ថបទ កំណត់អត្តសញ្ញាណមុខ និងទីតាំង រកឃើញរូបភាពស្ទួន និងដំណើរការស្វ័យប្រវត្តិកម្មផ្សេងៗដែលសម្រួលប្រតិបត្តិការអាជីវកម្ម។ នៅក្នុងអត្ថបទនេះ យើងនឹងពិនិត្យមើលសេណារីយ៉ូសំខាន់ៗនៃការប្រើប្រាស់ Vision ជាមួយនឹងឧទាហរណ៍កូដដែលនឹងជួយអ្នកឱ្យយល់ពីរបៀបធ្វើការជាមួយវា យល់ថាវាមិនពិបាកទេ ហើយចាប់ផ្តើមអនុវត្តវានៅក្នុងការអនុវត្តនៅក្នុងកម្មវិធីរបស់អ្នក។ សំណើរ VNR Vision មាន ថ្នាក់អរូបីដែលកំណត់រចនាសម្ព័ន្ធសំណើទិន្នន័យនៅក្នុង Vision ហើយថ្នាក់បន្តបន្ទាប់អនុវត្តសំណើជាក់លាក់ដើម្បីអនុវត្តកិច្ចការជាក់លាក់ជាមួយរូបភាព។ VNRequest ថ្នាក់រងទាំងអស់ទទួលមរតកកម្មវិធីចាប់ផ្តើមពីថ្នាក់ ។ VNRequest public init(completionHandler: VNRequestCompletionHandler? = nil) ដែលត្រឡប់លទ្ធផលនៃការដំណើរការសំណើ។ វាចាំបាច់ក្នុងការបញ្ជាក់ឱ្យច្បាស់ថាលទ្ធផលនៃសំណើនឹងត្រូវបានបញ្ជូនត្រឡប់មកវិញក្នុងជួរដូចគ្នាដែលសំណើត្រូវបានផ្ញើ។ កន្លែងដែល គឺជាប្រភេទវាយអក្សរ។ VNRequestCompletionHandler public typealias VNRequestCompletionHandler = (VNRequest, (any Error)?) -> Void ដែលផ្តល់លទ្ធផល ជាមួយនឹងលទ្ធផលនៃសំណើ ឬកំហុស ប្រសិនបើសំណើមិនត្រូវបានប្រតិបត្តិដោយសារបញ្ហាប្រព័ន្ធមួយចំនួន រូបភាពមិនត្រឹមត្រូវ។ល។ VNRequest ថ្នាក់ ពីថ្នាក់ អរូបីត្រូវបានរចនាឡើងដើម្បីដោះស្រាយសំណើការទទួលស្គាល់អត្ថបទក្នុងរូបភាព។ VNRecognizeTextRequest VNRequest ឧទាហរណ៍នៃការអនុវត្តសំណើសម្រាប់ការទទួលស្គាល់អត្ថបទ៖ import Vision import UIKit func recognizeText(from image: UIImage) { guard let cgImage = image.cgImage else { return } let request = VNRecognizeTextRequest { request, error in // 1 guard let observations = request.results as? [VNRecognizedTextObservation] else { return } // 2 for observation in observations { if let topCandidate = observation.topCandidates(1).first { print("Recognized text: \(topCandidate.string)") print("Text boundingBox: \(observation.boundingBox)") print("Accuracy: \(topCandidate.confidence)") } } } request.recognitionLevel = .accurate request.usesLanguageCorrection = true let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) // 3 try? handler.perform([request]) // 3 } បង្កើត សម្រាប់ការទទួលស្គាល់អត្ថបទ។ VNRecognizeTextRequest ទទួលលទ្ធផលនៃសំណើការទទួលស្គាល់អត្ថបទជាអារេនៃវត្ថុ VNRecognizedTextObservation ។ វត្ថុ មាន៖ VNRrecognizedTextObservation អារេនៃអត្ថបទដែលទទួលស្គាល់ (V ) NRecognizedText().string ភាពត្រឹមត្រូវនៃការទទួលស្គាល់ ( ) VNRecognizedText()ទំនុកចិត្ត សំរបសំរួលនៃអត្ថបទដែលបានទទួលស្គាល់នៅលើរូបភាព ( ) VNRecognizedText()boundingBox បង្កើតសំណើសម្រាប់ដំណើរការរូបភាព និងផ្ញើសំណើសម្រាប់ការទទួលស្គាល់អត្ថបទ។ ការទទួលស្គាល់លេខអត្តសញ្ញាណពន្ធ និងលេខលិខិតឆ្លងដែន នៅពេលបង្កើត SDK ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ការទទួលស្គាល់ឯកសារ ឧទាហរណ៍៖ VNDetectFaceRectanglesRequest ថ្នាក់នេះរកឃើញមុខនៅក្នុងរូបភាពមួយ ហើយត្រឡប់កូអរដោនេរបស់ពួកគេ។ ឧទាហរណ៍នៃការអនុវត្តសំណើសម្គាល់មុខ៖ import Vision import UIKit func detectFaces(from image: UIImage) { guard let cgImage = image.cgImage else { return } let request = VNDetectFaceRectanglesRequest { request, error in // 1 guard let results = request.results as? [VNFaceObservation] else { return } // 2 for face in results { print("Face detected: \(face.boundingBox)") } } let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) // 3 try? handler.perform([request]) // 3 } បង្កើត សម្រាប់ការសម្គាល់មុខនៅក្នុងរូបភាពមួយ។ VNDetectFaceRectanglesRequest ទទួលលទ្ធផលនៃសំណើការទទួលស្គាល់អត្ថបទជាអារេនៃវត្ថុ ។ VNFaceObservation វត្ថុ មាន៖ VNFaceObservation កូអរដោនេនៃមុខ VNFaceObservation().boundingBox ដែលទទួលស្គាល់។ បង្កើតសំណើសម្រាប់ដំណើរការរូបភាព និងផ្ញើសំណើសម្រាប់ការសម្គាល់មុខ។ នៅក្នុងធនាគារ មាន KYC onboarding ដែលអ្នកត្រូវថតរូបជាមួយលិខិតឆ្លងដែនរបស់អ្នក។ វិធីនេះ អ្នកអាចបញ្ជាក់បានថា នេះជាមុខមនុស្សពិត។ ឧទាហរណ៍៖ VNDetectBarcodesសំណើ ថ្នាក់នេះស្គាល់ និងអានបាកូដ និងកូដ QR ពីរូបភាព។ ឧទាហរណ៍នៃការអនុវត្តសំណើសម្រាប់ការទទួលស្គាល់ និងអានលេខកូដ និង QR កូដ៖ import Vision import UIKit func detectBarcodes(from image: UIImage) { guard let cgImage = image.cgImage else { return } let request = VNDetectBarcodesRequest { request, error in // 1 guard let results = request.results as? [VNBarcodeObservation] else { return } // 2 for qrcode in results { print("qr code was found: \(qrcode.payloadStringValue ?? "not data")") } } let handler = VNImageRequestHandler(cgImage: cgImage, options: [:]) // 3 try? handler.perform([request]) // 3 } បង្កើត សម្រាប់ការទទួលស្គាល់។ VNDetectBarcodesRequest ទទួលបានលទ្ធផលនៃសំណើអារេវត្ថុ ។ VNBarcodeObservation វត្ថុ មានលក្ខណៈសម្បត្តិជាច្រើន រួមទាំង៖ VNBarcodeObservation - តម្លៃខ្សែអក្សរនៃបាកូដ ឬកូដ QR ។ VNFaceObservation().payloadStringValue បង្កើតសំណើសម្រាប់ដំណើរការរូបភាព និងផ្ញើសំណើសម្រាប់ការសម្គាល់មុខ។ ម៉ាស៊ីនស្កេន QR សម្រាប់អានលេខកូដ QR សម្រាប់ការទូទាត់។ ឧទាហរណ៍៖ យើងបានគ្របដណ្តប់សំណួរ 3 ប្រភេទសំខាន់ៗនៅក្នុង Vision ដើម្បីជួយអ្នកចាប់ផ្តើមជាមួយឧបករណ៍ដ៏មានឥទ្ធិពលនេះ។