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