يتناول هذا المستند الخطوات التي عليك اتّخاذها لنقل مشاريعك من Google Mobile Vision (GMV) إلى ML Kit على نظام التشغيل iOS.
المتطلبات الأساسية
قبل البدء في نقل الرمز، تأكَّد من استيفاء المتطلبات التالية:
- تتوافق حزمة ML Kit مع الإصدار 13.2.1 من Xcode أو الإصدارات الأحدث.
- تتوافق حزمة ML Kit مع الإصدار 15.5 من نظام التشغيل iOS أو الإصدارات الأحدث.
- لا تتوافق حزمة تعلُّم الآلة مع بنى 32 بت (i386 وarmv7). تتوافق حزمة تعلُّم الآلة (ML Kit) مع بنى 64 بت (x86_64 وarm64).
تعديل cocoapods
عدِّل الاعتمادات الخاصة بـ cocoapods في ML Kit iOS في ملف Podfile الخاص بتطبيقك:
واجهة برمجة التطبيقات | كبسولة قيمة المتاجرة الإجمالية | حزمة ML Kit |
---|---|---|
المسح الضوئي للرموز الشريطية | GoogleMobileVision/BarcodeDetector |
GoogleMLKit/BarcodeScanning |
التعرّف على الوجوه | GoogleMobileVision/FaceDetector |
GoogleMLKit/FaceDetection |
التعرّف على النص | GoogleMobileVision/TextDetector |
GoogleMLKit/TextRecognition |
التغييرات العامة في واجهة برمجة التطبيقات
تنطبق هذه التغييرات على جميع واجهات برمجة التطبيقات:
- تتلقّى واجهات برمجة التطبيقات للاستدلال في "خرائط Google"
UIImage
أوCMSampleBufferRef
كمدخلات. تغلّف حزمة تعلُّم الآلة هذه القيم داخلMLKVisionImage
وتستخدمها كمدخلات. - تستخدم GMV
NSDictionary
لتمرير خيارات مختلفة للكاشف. يستخدم ML Kit فئات خيارات مخصّصة لهذا الغرض. - تمرِّر GMV نوع أداة الرصد إلى فئة
GMVDetector
الفردية عند إنشاء أداة رصد. يستخدم ML Kit فئات مخصّصة لإنشاء مثيلات منفصلة لأدوات الرصد والماسحات الضوئية وأدوات التعرّف. - تتيح واجهات برمجة التطبيقات في "إعلانات الفيديو على الأجهزة الجوّالة من Google" رصد الإعلانات بشكل متزامن فقط. يمكن استدعاء واجهات برمجة التطبيقات للاستدلال في ML Kit بشكل متزامن وغير متزامن.
- توسّع GMV نطاق
AVCaptureVideoDataOutput
وتوفّر إطار عمل متعدد الكاشفات لإجراء عمليات رصد متعددة في الوقت نفسه. لا توفّر حزمة ML Kit آليات من هذا النوع، ولكن يمكن للمطوّر تنفيذ الوظيفة نفسها إذا أراد ذلك.
التغييرات الخاصة بواجهة برمجة التطبيقات
يوضّح هذا القسم فئات وأساليب GMV وML Kit المقابلة لكل Vision API، ويوضّح كيفية إعداد واجهة برمجة التطبيقات.
FaceDetector
أعِد ترميز عملية التهيئة كما هو موضّح في هذا المثال:
GMV
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:));
غيِّر الفئات والطُرق والأسماء التالية:
BarcodeDetector
أعِد ترميز عملية التهيئة كما هو موضّح في هذا المثال:
GMV
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:));
غيِّر الفئات والطُرق والأسماء التالية:
TextRecognition
أعِد ترميز عملية التهيئة كما هو موضّح في هذا المثال:
GMV
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:));
غيِّر الفئات والطُرق والأسماء التالية:
GMV | حزمة تعلّم الآلة |
---|---|
GMVDetectorImageOrientation
|
MLKVisionImage.orientation
|
GMVTextBlockFeature
|
MLKTextBlock
|
GMVTextElementFeature
|
MLKTextElement
|
GMVTextLineFeature
|
MLKTextLine
|
الحصول على المساعدة
إذا واجهت أي مشاكل، يُرجى الاطّلاع على صفحة المنتدى حيث نوضّح القنوات المتاحة للتواصل معنا.