भिजन फ्रेमवर्क एप्पलले २०१७ मा WWDC मा iOS ११ को भागको रूपमा प्रस्तुत गरेको थियो। यसको सुरुवातले मेसिन भिजन र छवि विश्लेषणको विकासमा एक महत्वपूर्ण मोड लियो, जसले विकासकर्ताहरूलाई दृश्य सामग्री विश्लेषण गर्न र आवश्यकता अनुसार पछिको प्रशोधन गर्न नेटिभ उपकरणहरू प्रदान गर्यो। २०१७ मा, भिजनले प्रस्तुत गर्यो: पाठ पहिचान अनुहार पहिचान आयताकार आकारहरूको पहिचान बारकोड र QR कोड पहिचान आफ्नो सुरुवातदेखि नै, एप्पलले भिजन फ्रेमवर्कलाई निरन्तर बढाएको छ, जसले गर्दा यो आधुनिक आवश्यकताहरू पूरा गर्न विकसित भएको सुनिश्चित गर्दैछ। २०२४ को अन्त्यसम्ममा, iOS १८ को रिलीजसँगै, भिजनले अब निम्न प्रस्तावहरू प्रदान गर्दछ: धेरै भाषाहरूको समर्थनको साथ सुधारिएको पाठ पहिचान शुद्धता अनुहार र तिनका विशेषताहरूको पहिचान आन्दोलनहरूको विश्लेषण गर्ने क्षमता हातको स्थिति र मानव शरीरको मुख्य बिन्दुहरू सहित आसनहरू पहिचान गर्ने क्षमता भिडियोमा वस्तुहरू ट्र्याक गर्न समर्थन अनुकूलन मेसिन-लर्निङ मोडेलहरूसँग काम गर्नको लागि CoreML सँग सुधारिएको एकीकरण AVKit, ARKit जस्ता सम्बन्धित फ्रेमवर्कहरूसँग गहिरो एकीकरण भिजन फ्रेमवर्कको आगमनसँगै, विकासकर्ताहरूले तेस्रो-पक्ष समाधानहरूमा भर नपरिकन, उन्नत छवि र भिडियो विश्लेषण कार्यहरू नेटिभ रूपमा गर्ने क्षमता प्राप्त गरे। यी क्षमताहरूमा कागजातहरू स्क्यान गर्ने, पाठ पहिचान गर्ने, अनुहार र पोजहरू पहिचान गर्ने, डुप्लिकेट छविहरू पत्ता लगाउने, र व्यापार सञ्चालनलाई सुव्यवस्थित गर्ने विभिन्न प्रक्रियाहरूलाई स्वचालित गर्ने समावेश छ। यस लेखमा, हामी कोड उदाहरणहरू सहित भिजन प्रयोग गर्ने मुख्य परिदृश्यहरू हेर्नेछौं जसले तपाईंलाई यसको साथ कसरी काम गर्ने भनेर बुझ्न, यो गाह्रो छैन भनेर बुझ्न र तपाईंको अनुप्रयोगहरूमा यसलाई व्यवहारमा लागू गर्न सुरु गर्न मद्दत गर्नेछ। VNRequestName भिजनमा एउटा अमूर्त वर्ग छ जसले भिजनमा डेटा अनुरोध संरचनाहरू परिभाषित गर्दछ, र डिसेन्डेन्ट वर्गहरूले छविसँग विशिष्ट कार्यहरू गर्न विशिष्ट अनुरोधहरू लागू गर्दछ। VNRequest सबै उपवर्गहरूले वर्गबाट प्रारम्भिककर्ता प्राप्त गर्छन्। VNRequest public init(completionHandler: VNRequestCompletionHandler? = nil) जसले अनुरोध प्रशोधनको नतिजा फर्काउँछ। यो स्पष्ट पार्नु महत्त्वपूर्ण छ कि अनुरोधको नतिजा अनुरोध पठाइएको लाइनमा नै फर्काइनेछ। जहाँ एक प्रकार्य हो। VNRequestCompletionHandler public typealias VNRequestCompletionHandler = (VNRequest, (any Error)?) -> Void जसले अनुरोधको नतिजा सहितको फर्काउँछ वा यदि कुनै प्रणाली त्रुटि, गलत छवि, आदिका कारण अनुरोध कार्यान्वयन नभएको खण्डमा त्रुटि फर्काउँछ। VNRequest अमूर्त वर्गको वर्ग छविहरूमा पाठ पहिचान अनुरोधहरू ह्यान्डल गर्न डिजाइन गरिएको हो। VNRequest VNRecognizeTextRequest पाठ पहिचानको लागि अनुरोध कार्यान्वयन गर्ने उदाहरण: 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 वस्तुहरूको एरेको रूपमा पाठ पहिचान अनुरोधको नतिजा प्राप्त गर्नुहोस्। वस्तुमा समावेश छ: VNRecognizedTextObservation मान्यता प्राप्त पाठहरूको एरे (V ) NRecognizedText().string पहिचान शुद्धता ( ) VNRecognizedText().confidence छविमा पहिचान गरिएको पाठको निर्देशांक ( ) VNRecognizedText().boundingBox छवि प्रशोधनको लागि अनुरोध सिर्जना गर्नुहोस्, र पाठ पहिचानको लागि अनुरोध पठाउनुहोस्। कागजात पहिचानको लागि आफ्नै SDK विकास गर्दा कर पहिचान नम्बर र राहदानी नम्बरको पहिचान उदाहरण: VNDetectअक्षरआयतअनुरोध यो वर्गले छविमा अनुहारहरू फेला पार्छ र तिनीहरूको निर्देशांकहरू फर्काउँछ। अनुहार पहिचान अनुरोध कार्यान्वयन गर्ने उदाहरण: 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 अनबोर्डिङ हुन्छ जहाँ तपाईंले आफ्नो राहदानीसँग फोटो खिच्नुपर्छ; यस तरिकाले, तपाईंले यो वास्तविक व्यक्तिको अनुहार हो भनेर पुष्टि गर्न सक्नुहुन्छ। उदाहरण: VNDetectबारकोडअनुरोध यो वर्गले छविबाट बारकोड र 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 स्क्यानर। उदाहरण: यस शक्तिशाली उपकरणको साथ सुरु गर्न मद्दतको लागि हामीले भिजनमा ३ मुख्य प्रकारका प्रश्नहरू समेटेका छौं।