Vision+Core MLでリアルタイム物体検出

すっかり機械学習のビッグウェーブ(?)に乗り遅れているのですが、Core MLで少しは機械学習をかじった気になろうという企み。

Appleのサイトで紹介されている公式サンプルと機械学習モデルを参考に、アレンジを加えたアプリを試作してみました。

公式サンプルは、カメラを起動して撮影した写真 or 写真ライブラリから選択した写真、つまり静止画像を対象に物体検出を行うものでした。これに対して、試作アプリではカメラからリアルタイムに画像を取り込んで、その都度、物体検出を行うといったものです。

具体的には、1/10フレームごとにカメラから画像を取り込んで(AVFoundatioin)、画像の中に存在する物体の名称と信頼度を取得し(Core ML+Vision)、信頼度が50%以上の場合のみ、物体の名称等を表示するように実装しています。わりと照明の影響を受けたり、検出できなかったときは前に検出した物体の名称が残ってしまったりと、課題もいろいろ出ました。

あと、今回のリアルタイム画像取り込みはAVFoundationで実装しましたが、そこをARKitで実装すると、物体の位置や名称等の情報を物体の近くに表示したりなんてこともできるみたいで、その方が見た目にも楽しそうです。

試作後の感想としては、結局のところ機械学習をかじったというほどでもなく、肝心なのは機械学習モデルを作ったり、用意したりすることなのだということを再認識した次第です。

Comments