Introducció a Firebase ML Kit
Firebase ML Kit és una biblioteca de machine learning (ML) que proporciona una sèrie d'APIs fàcils d'utilitzar per integrar capacitats de ML a les aplicacions mòbils. Aquestes APIs permeten als desenvolupadors afegir funcions com el reconeixement de text, la detecció de rostres, l'etiquetatge d'imatges i molt més, sense necessitat de tenir coneixements avançats en machine learning.
Característiques clau de Firebase ML Kit:
- APIs basades en el núvol i en el dispositiu: ML Kit ofereix APIs que funcionen tant en el núvol com en el dispositiu, permetent una major flexibilitat i rendiment.
- Facilitat d'ús: Les APIs estan dissenyades per ser fàcils d'integrar i utilitzar, amb una configuració mínima.
- Compatibilitat amb Android i iOS: ML Kit és compatible amb ambdues plataformes mòbils, facilitant el desenvolupament d'aplicacions multiplataforma.
Configuració de Firebase ML Kit
Pas 1: Afegir Firebase al teu projecte
Abans de començar a utilitzar ML Kit, has d'afegir Firebase al teu projecte. Si no ho has fet encara, segueix els passos del Mòdul 1: Configuració de Firebase.
Pas 2: Afegir les dependències de ML Kit
Afegeix les dependències necessàries al teu fitxer build.gradle
(per a Android) o al teu fitxer Podfile
(per a iOS).
Android
dependencies { // Altres dependències de Firebase implementation 'com.google.firebase:firebase-ml-vision:24.0.3' implementation 'com.google.firebase:firebase-ml-vision-image-label-model:20.0.2' }
iOS
Pas 3: Inicialitzar Firebase
Assegura't d'inicialitzar Firebase al teu projecte.
Android
import com.google.firebase.FirebaseApp; public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); FirebaseApp.initializeApp(this); } }
iOS
import Firebase @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() return true } }
Exemples Pràctics
Exemple 1: Reconeixement de Text
Android
import com.google.firebase.ml.vision.FirebaseVision; import com.google.firebase.ml.vision.common.FirebaseVisionImage; import com.google.firebase.ml.vision.text.FirebaseVisionText; import com.google.firebase.ml.vision.text.FirebaseVisionTextRecognizer; public void recognizeText(Bitmap bitmap) { FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap); FirebaseVisionTextRecognizer recognizer = FirebaseVision.getInstance().getOnDeviceTextRecognizer(); recognizer.processImage(image) .addOnSuccessListener(new OnSuccessListener<FirebaseVisionText>() { @Override public void onSuccess(FirebaseVisionText texts) { // Processar el text reconegut for (FirebaseVisionText.TextBlock block : texts.getTextBlocks()) { String text = block.getText(); Log.d("MLKit", "Text reconegut: " + text); } } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Manejar errors Log.e("MLKit", "Error en el reconeixement de text", e); } }); }
iOS
import FirebaseMLVision func recognizeText(image: UIImage) { let vision = Vision.vision() let textRecognizer = vision.onDeviceTextRecognizer() let visionImage = VisionImage(image: image) textRecognizer.process(visionImage) { result, error in guard error == nil, let result = result else { // Manejar errors print("Error en el reconeixement de text: \(error?.localizedDescription ?? "Unknown error")") return } // Processar el text reconegut for block in result.blocks { let text = block.text print("Text reconegut: \(text)") } } }
Exemple 2: Etiquetatge d'Imatges
Android
import com.google.firebase.ml.vision.FirebaseVision; import com.google.firebase.ml.vision.common.FirebaseVisionImage; import com.google.firebase.ml.vision.label.FirebaseVisionImageLabel; import com.google.firebase.ml.vision.label.FirebaseVisionImageLabeler; public void labelImage(Bitmap bitmap) { FirebaseVisionImage image = FirebaseVisionImage.fromBitmap(bitmap); FirebaseVisionImageLabeler labeler = FirebaseVision.getInstance().getOnDeviceImageLabeler(); labeler.processImage(image) .addOnSuccessListener(new OnSuccessListener<List<FirebaseVisionImageLabel>>() { @Override public void onSuccess(List<FirebaseVisionImageLabel> labels) { // Processar les etiquetes for (FirebaseVisionImageLabel label : labels) { String text = label.getText(); float confidence = label.getConfidence(); Log.d("MLKit", "Etiqueta: " + text + ", Confiança: " + confidence); } } }) .addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { // Manejar errors Log.e("MLKit", "Error en l'etiquetatge d'imatges", e); } }); }
iOS
import FirebaseMLVision func labelImage(image: UIImage) { let vision = Vision.vision() let labeler = vision.onDeviceImageLabeler() let visionImage = VisionImage(image: image) labeler.process(visionImage) { labels, error in guard error == nil, let labels = labels else { // Manejar errors print("Error en l'etiquetatge d'imatges: \(error?.localizedDescription ?? "Unknown error")") return } // Processar les etiquetes for label in labels { let text = label.text let confidence = label.confidence print("Etiqueta: \(text), Confiança: \(confidence)") } } }
Exercicis Pràctics
Exercici 1: Reconèixer Text en una Imatge
- Crea una aplicació que permeti als usuaris seleccionar una imatge de la seva galeria.
- Utilitza Firebase ML Kit per reconèixer el text a la imatge seleccionada.
- Mostra el text reconegut en un
TextView
(Android) oUILabel
(iOS).
Solució
- Segueix els exemples de codi proporcionats anteriorment per implementar el reconeixement de text.
- Afegeix un botó per seleccionar una imatge de la galeria i processa la imatge seleccionada.
Exercici 2: Etiquetar Imatges
- Crea una aplicació que permeti als usuaris fer una foto amb la càmera.
- Utilitza Firebase ML Kit per etiquetar la imatge capturada.
- Mostra les etiquetes i els seus nivells de confiança en una llista.
Solució
- Segueix els exemples de codi proporcionats anteriorment per implementar l'etiquetatge d'imatges.
- Afegeix un botó per capturar una imatge amb la càmera i processa la imatge capturada.
Conclusió
Firebase ML Kit facilita la integració de capacitats de machine learning a les aplicacions mòbils, oferint una sèrie d'APIs fàcils d'utilitzar per a tasques comunes com el reconeixement de text i l'etiquetatge d'imatges. Amb els exemples i exercicis proporcionats, hauríeu de ser capaços de començar a utilitzar ML Kit en les vostres pròpies aplicacions. En el següent tema, explorarem els enllaços dinàmics de Firebase.
Curs de Firebase
Mòdul 1: Introducció a Firebase
Mòdul 2: Autenticació de Firebase
- Introducció a l'autenticació de Firebase
- Autenticació amb correu electrònic i contrasenya
- Autenticació amb xarxes socials
- Gestió d'usuaris
Mòdul 3: Base de dades en temps real de Firebase
- Introducció a la base de dades en temps real
- Lectura i escriptura de dades
- Estructura de dades i regles de seguretat
- Capacitats fora de línia
Mòdul 4: Cloud Firestore
- Introducció a Cloud Firestore
- Model de dades de Firestore
- Operacions CRUD
- Consultes avançades
- Regles de seguretat
Mòdul 5: Emmagatzematge de Firebase
- Introducció a l'emmagatzematge de Firebase
- Carregar fitxers
- Descarregar fitxers
- Metadades de fitxers i seguretat
Mòdul 6: Missatgeria en el núvol de Firebase
- Introducció a la missatgeria en el núvol
- Enviar notificacions
- Gestionar notificacions
- Funcions avançades de missatgeria
Mòdul 7: Analítica de Firebase
Mòdul 8: Funcions de Firebase
Mòdul 9: Monitoratge del rendiment de Firebase
- Introducció al monitoratge del rendiment
- Configuració del monitoratge del rendiment
- Analitzar dades de rendiment