指で書いた数字を認識する機能の実装が必要になりました。 以下の記事を読んだことがあり、collinhundley/Swift-AIでできそうだということがわかっていたので、まずはExamplesから必要な部分だけを取り出してみました。

Swiftで書かれた人工知能・機械学習ライブラリ「Swift-AI」をiOSで動かしてみる - Over&Out その後

以下のファイルをプロジェクトにコピーして、Info.plistにフォント関連の記述を追加したら動きました。

  • APBorderView.swift
  • APConstraints.swift
  • APMath.swift
  • APMultilineLabel.swift
  • APSpringButton.swift
  • Colors.swift
  • FFNN+Storage.swift
  • FFNN.swift
  • Fonts.swift
  • HandwritingView.swift
  • HandwritingViewController.swift
  • OpenSans-Bold.ttf
  • OpenSans-Italic.ttf
  • OpenSans-Light.ttf
  • OpenSans-LightItalic.ttf
  • OpenSans-Semibold.ttf
  • OpenSans.ttf
  • Storage.swift
  • handwriting-ffnn
  • white.imageset
  <key>UIAppFonts</key>
  <array>
    <string>OpenSans.ttf</string>
    <string>OpenSans-Bold.ttf</string>
    <string>OpenSans-Semibold.ttf</string>
    <string>OpenSans-Light.ttf</string>
    <string>OpenSans-Italic.ttf</string>
    <string>OpenSans-LightItalic.ttf</string>
  </array>

今回はSwift-AIでやってみましたが、TensorSwiftでも手軽にできそうだったので、機会があればこちらも使ってみようと思います。

iOS 10以降であれば、MPSCNNHelloWorldを参考に標準機能だけでできそうなのですが、Metalはシミュレータで動作せず実機での開発になるため、今回は遠慮しておきました。

参考

ソースコード

https://github.com/tnantoka/swift-a-week/tree/gh-pages/works/SwiftAIHandwriting