Хабрахабр

Мысли про порог входа в технологии в 2018, пример простого мобильного приложения и не только

Когда-то я учился в 5-ом классе и сейчас мне почему-то кажется, что между мной тогдашним и ребятами, которые сейчас ходят в 5-ый класс, огромная пропасть с точки зрения доступа к технологиям. А так как технологии развиваются все быстрее и быстрее, интересно, что будет происходить, когда ребята, которые сейчас ходят в 5-ый класс, станут моими ровесниками.

В этой короткой статье я на примере простого мобильного приложения для iPhone хочу показать, насколько доступны технологии.

Немного лирики

Прошло около 20 лет с момента, когда мои глаза расширились до предела при виде анимированной скрепки на экране компьютера, которая предлагала мне помочь. Скрепка тогда казалась всемогущей, между тем, что могла она и магией для меня не было большой разницы.

Компьютер. Всего 13 лет назад я впервые подержал в руках КПК (это карманный персональный компьютер). C Windows. Карманный. Без провода и карточки «Вэб Плас». Работает не от сети 220 В., а от батарейки, имеет доступ в Интернет. В тот самый Интернет, 5 минутный доступ в который получила в подарок за большие заслуги наша группа компьютерного кружка. Доступ в Интернет. Вся группа долго обсуждала — какой именно это будет сайт. Нам было разрешено посетить 1 сайт (модем на 33 Кбит). Голосование, дебаты.

Перенесемся в май 2018 года

В Калифорнии проходит конференция Google I/O 2018, в числе десятков прочих анонсов: в сервис Firebase добавили ML Kit — инструмент, дающий возможность на смартфоне или в облаке распознавать содержимое картинок, лица, текст и много другого разного, даже свои модели TensorFlow. Эка невидаль? Что мы не знаем про машинное обучение и нейронные сети?

Создаем Podfile куда пишем код ниже и устанавливаем: Ладно, а давайте сделаем приложение, чтобы текст распознавало.
Открываем Xcode — создаем новый проект.

pod 'Firebase/Core' pod 'Firebase/MLVision' pod 'Firebase/MLVisionTextModel'

Интерфейс простой:

  • один UIImageView, куда выведем картину с камеры,
  • две UIButton, первая запустит камеру, вторая запустит чтение

Чтобы iPhone дал доступ к камере, добавим в Info.plist

<key>NSCameraUsageDescription</key>
<string>Предоставьте приложению доступ к камере</string>

Создадим контроллер, подключим к нему UIImageView и нажатия наших двух UIButton.
А пусть нам ещё то, что удалось распознать, смартфон произнесет голосом.

import UIKit
import Firebase
import AVKit
import AVFoundation class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate //подключаем UIImageView @IBOutlet weak var imagePicked: UIImageView! //включаем камеру после нажатия на кнопку @IBAction func openCamera(_ sender: Any) { if UIImagePickerController.isSourceTypeAvailable(.camera) { var imagePicker = UIImagePickerController() imagePicker.delegate = self imagePicker.sourceType = .camera imagePicker.allowsEditing = false self.present(imagePicker, animated: true, completion: nil) } } //после нажатия на кнопку текст нужно распознать и произнести @IBAction func getText(_ sender: Any) { if let image = imagePicked.image as? UIImage { let visionImage = VisionImage(image: image) textDetector?.detect(in: visionImage, completion: { [weak self] (visionTextItems, error) in if error != nil { print("произошла ошибка \(error)") return } if let foundItems = visionTextItems { if foundItems.count > 0 { for item in foundItems { print("распознан текст: \(item.text)") let utterance = AVSpeechUtterance(string: item.text) utterance.rate = 0.4 utterance.voice = AVSpeechSynthesisVoice(language: "en-US") self?.synthesizer.speak(utterance) } } else { print("no images found") } } })
} } //переносим фотографию с камеры в UIImageView func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { let image = info[UIImagePickerControllerOriginalImage] as! UIImage imagePicked.image = image dismiss(animated:true, completion: nil) }
}

Запускаем, пишем ручкой на листике (с печатным текстом совсем неинтересно), фотографируем

и смотрим в консоль:

Все это работает в авиарежиме, то есть без доступа к Интернету. Ах да! И распознавание рукописного текста, и синтез речи.

Инструменты, методы и задачи, которые казались очень сложными ещё вчера, сегодня доступны быстро и бесплатно прямо «из коробки». А что будет дальше, лет так через 20, а через 50?

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть