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