يتناول هذا المستند الخطوات التي يجب اتّباعها لترحيل مشاريعك من Google Mobile Vision (GMV) إلى ML Kit على iOS.
المتطلبات الأساسية
قبل البدء في ترحيل شفرتك، تأكد من تلبية المتطلبات التالية:
- يتوافق ML Kit مع Xcode 13.2.1 أو الإصدارات الأحدث.
- تتوافق مجموعة أدوات تعلّم الآلة مع الإصدار 10 من نظام التشغيل iOS أو الإصدارات الأحدث.
- لا تدعم ML Kit بنيات 32 بت (i386 وarv7). تدعم ML Kit بنيات 64 بت (x86_64 وar64).
تحديث cocoapods
عدِّل تبعيات حزمة ML Kit iOS في ملف Podfile لتطبيقك:
واجهة برمجة التطبيقات | لوحة GMV | مجموعة أدوات تعلّم الآلة |
---|---|---|
مسح الرمز الشريطي ضوئيًا | GoogleMobileVision/BarcodeDetector |
GoogleMLKit/BarcodeScanning |
التعرّف على الوجوه | GoogleMobileVision/FaceDetector |
GoogleMLKit/FaceDetection |
التعرّف على النص | GoogleMobileVision/TextDetector |
GoogleMLKit/TextRecognition |
التغييرات العامة لواجهة برمجة التطبيقات
تنطبق هذه التغييرات على جميع واجهات برمجة التطبيقات:
- تستنِد واجهات برمجة التطبيقات الخاصة باستنتاج GMV القيمة
UIImage
أوCMSampleBufferRef
كإدخال. وتُلفها حزمة ML Kit داخلMLKVisionImage
وتأخذها كإدخال. - تستخدم GMV
NSDictionary
لاجتياز خيارات متعددة لأداة الرصد. وتستخدم ML Kit فئات الخيارات المخصّصة لهذا الغرض. - تنقل GMV نوع أداة الرصد إلى فئة
GMVDetector
المفردة عند إنشاء أداة رصد. تستخدم مجموعة أدوات تعلّم الآلة صفوفًا مخصّصة لإنشاء مثيلَيْن منفصلَين لأداة الرصد والماسح الضوئي وأجهزة التعرّف على الكلام. - تدعم واجهات برمجة تطبيقات GMV الاكتشاف المتزامن فقط. يمكن استدعاء واجهات برمجة التطبيقات التي يتم استنباطها من ML Kit بشكل متزامن وغير متزامن.
- تعمل GMV على توسيع
AVCaptureVideoDataOutput
وتقديم إطار عمل لأدوات الرصد المتعددة لتنفيذ عمليات رصد متعددة في الوقت نفسه. لا توفّر ML Kit هذه الآليات، ولكن يمكن لمطوّر البرامج تنفيذ الوظائف نفسها إذا لزم الأمر.
التغييرات الخاصة بواجهة برمجة التطبيقات
يصف هذا القسم الفئات المقابلة لـ GMV وML Kit وأساليبها لكل واجهة برمجة تطبيقات في Vision، ويعرض كيفية تهيئة واجهة برمجة التطبيقات.
مكتشف الوجه
أعد ترميز التهيئة كما هو موضح في المثال التالي:
قيمة المتاجرة الإجمالية
NSDictionary *options = @{ GMVDetectorFaceMode : @(GMVDetectorFaceAccurateMode), GMVDetectorFaceClassificationType : @(GMVDetectorFaceClassificationAll), GMVDetectorFaceLandmarkType : @(GMVDetectorFaceLandmarkAll) }; GMVDetector *faceDetector = [GMVDetector detectorOfType:GMVDetectorTypeFace options:options];
حزمة تعلّم الآلة
MLKFaceDetectorOptions *options = [[MLKFaceDetectorOptions alloc] init]; options.performanceMode = MLKFaceDetectorPerformanceModeAccurate; options.classificationMode = MLKFaceDetectorClassificationModeAll; options.landmarkMode = MLKFaceDetectorLandmarkModeAll; MLKFaceDetector *faceDetector = [MLKFaceDetector faceDetectorWithOptions:options];
GMVDetector
له
واجهات برمجة تطبيقات مختلفة للكشف. كلاهما عمليات متزامنة:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
استبدل GMVDetector
بـ MLKFaceDetector
.
يمكن استدعاء واجهة برمجة التطبيقات الاستدلالية بشكل متزامن أو غير متزامن.
متزامن
- (nullable NSArray<MLKFace *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
غير متزامن
- (void)processImage:(MLKVisionImage *)image Completion: (MLKFaceDetectionCallback)completion NS_SWIFT_NAME(process(_:completion:));
غيّر الفئات والطرق والأسماء التالية:
أداة رصد الرمز الشريطي
أعد ترميز التهيئة كما هو موضح في المثال التالي:
قيمة المتاجرة الإجمالية
NSDictionary *options = @{ GMVDetectorBarcodeFormats : @(GMVDetectorBarcodeFormatCode128 | GMVDetectorBarcodeFormatQRCode) }; GMVDetector *barcodeDetector = [GMVDetector detectorOfType:GMVDetectorTypeBarcode options:options];
حزمة تعلّم الآلة
MLKBarcodeScannerOptions *options = [[MLKBarcodeScannerOptions alloc] init]; options.formats = MLKBarcodeFormatCode128 | MLKBarcodeFormatQRCode; MLKBarcodeScanner *barcodeScanner = [MLKBarcodeScanner barcodeScannerWithOptions:options];
يحتوي GMVDetector
على واجهة برمجة تطبيقات مختلفة للكشف. كلاهما عمليات متزامنة:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
استبدِل GMVDetector
بـ
MLKBarcodeScanner
.
يمكن استدعاء واجهة برمجة التطبيقات الاستدلالية بشكل متزامن أو غير متزامن.
متزامن
- (nullable NSArray<MLKBarcode *> *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
غير متزامن
- (void)processImage:(MLKVisionImage *)image Completion: (MLKBarcodeScanningCallback)completion NS_SWIFT_NAME(process(_:completion:));
غيّر الفئات والطرق والأسماء التالية:
التعرّف على النص
أعد ترميز التهيئة كما هو موضح في المثال التالي:
قيمة المتاجرة الإجمالية
GMVDetector *textDetector = [GMVDetector detectorOfType:GMVDetectorTypeText options:nil];
حزمة تعلّم الآلة
MLKTextRecognizer *textRecognizer = [MLKTextRecognizer textRecognizer];
GMVDetector
له
واجهات برمجة تطبيقات مختلفة للكشف. كلاهما عمليات متزامنة:
- (nullable NSArray<__kindof GMVFeature *> *) featuresInImage:(UIImage *)image options:(nullable NSDictionary *)options; - (nullable NSArray<__kindof GMVFeature *> *) featuresInBuffer:(CMSampleBufferRef)sampleBuffer options:(nullable NSDictionary *)options;
استبدِل GMVDetector
بـ
MLKTextRecognizer
.
يمكن استدعاء واجهة برمجة التطبيقات الاستدلالية بشكل متزامن أو غير متزامن.
متزامن
- (nullable MLKText *) resultsInImage:(MLKVisionImage *)image error:(NSError **)error;
غير متزامن
- (void)processImage:(MLKVisionImage *)image Completion: (MLKTextRecognitionCallback)completion NS_SWIFT_NAME(process(_:completion:));
غيّر الفئات والطرق والأسماء التالية:
قيمة المتاجرة الإجمالية | حزمة تعلّم الآلة |
---|---|
GMVDetectorImageOrientation
|
MLKVisionImage.orientation
|
GMVTextBlockFeature
|
MLKTextBlock
|
GMVTextElementFeature
|
MLKTextElement
|
GMVTextLineFeature
|
MLKTextLine
|
الحصول على المساعدة
إذا واجهت أي مشاكل، فراجع صفحة المنتدى التي نحدد فيها القنوات المتاحة للتواصل معنا.