Как использовать облачный текстовый распознаватель ML Kit для флаттера? - PullRequest
0 голосов
/ 17 апреля 2019

Я использую пакет 'firebase_ml_vision' в своем проекте для распознавания текста. Я могу читать латиноамериканские языки очень хорошо, однако я хочу читать китайские иероглифы. Я знаю, что существуют на устройстве и облачные версии текстового распознавателя. Тем не менее, я не могу узнать, как «включить» облачную версию в моем приложении. Я уже активировал облачные API в Firebase, как показано на следующем рисунке: Активированный облачный apis

Код, который я сейчас использую:

void _initializeVision() async{
final File imageFile = File(imagePath);
final FirebaseVisionImage visionImage = FirebaseVisionImage.fromFile(imageFile);


final TextRecognizer textRecognizer = FirebaseVision.instance.textRecognizer();
final VisionText visionText = await textRecognizer.processImage(visionImage);



for(TextBlock blocks in visionText.blocks){
  for(TextLine line in blocks.lines){
    print(line.text);
  }
}}

Изображение, которое я пытаюсь прочитать

Результаты:

I/flutter (10432): FamilyMart Collection
I/flutter (10432): 10
I/flutter (10432): Pocket facial tissue
I/flutter (10432): Without fluorescent virgin fber from wood puip
I/flutter (10432): pampers your skin

Может кто-нибудь объяснить мне, как использовать облачный распознаватель текста для Flutter?

1 Ответ

0 голосов
/ 20 мая 2019

Имеют ту же проблему, не думайте, что облачный OCR в настоящее время работает с ML-Package. Мне удалось заставить его работать через запрос POST. Вот все, что вам нужно: Сделать запрос API Vision

// Upload Image to Firebase and get
// 1. DownloadUrl or 
// 2. StorageBucket or
//
// 3. Convert Image to base64 with
// String base64Image = base64Encode(File(imagePath).readAsBytesSync());
// (does not work for me, if you use this way make sure your `body` is correct)

String body = """{
  'requests': [
    {
      'image': {
        'source': {
          'imageUri': '$downloadUrl'
        }
      },
      'features': [
        {
          'type': 'DOCUMENT_TEXT_DETECTION'
        }
      ]
    }
  ]
}""";

http.Response res = await http
  .post(
    "https://vision.googleapis.com/v1/images:annotate?key=$API_KEY",
    body: body
  );

print("${res.body}");
...