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
