You only look once (YOLO、見るのは一度だけ) は最先端のリアルタイム物体検出システムです。
作成者のWebサイトから:
これまでの検出システムでは、検出の実行に分類器やローカライザが使用されてきました。これらのシステムでは、複数の場所やスケールでモデルをイメージに適用し、イメージの高スコア領域が検出と見なされます。しかしわれわれはまったく異なるアプローチを用い、単一のニューラルネットワークをイメージ全体に適用します。このネットワークはイメージを領域に分割し、その領域それぞれについて境界ボックスと確率を予測します。これらの境界ボックスは予測された確率によって重みづけされます。
上記翻訳文は日本語として理解が難しいと思われます(元の英語もかなり専門的です)。「オブジェクト検出 YOLO」や「【論文紹介】YOLOの論文を読んだので要点をまとめてみた」を読まれると理解の助けになるかもしれません。
この実装のほとんどはModelDepotにもとづいています。
目次
シンタックス
ml5.YOLO();
ml5.YOLO(video);
ml5.YOLO(video, ?options, ?callback)
ml5.YOLO(?options, ?callback)
パラメータ
video – オプション。HTMLのvideo要素かp5のvideo要素。
options – オプション。モデルの精度とパフォーマンスを表すオブジェクト。MobileNetの場合には以下になる。
{
filterBoxesThreshold: 0.01,
IOUThreshold: 0.4,
classProbThreshold: 0.4
}
callback – オプション。モデルが読み込まれたときに実行される関数。callbackが与えられない場合には、モデルが読み込まれたときに解決されるPromiseを返す。
プロパティ
.isPredicting – モデルが現在推測中かどうかを調べるためのブール値。
.modelReady – モデルが読み込まれたかどうかを調べるためのブール値。
メソッド
.detect(input, ?callback)
.detect(?callback)
与えられたイメージやビデオについて、クラス名と境界ボックス、確率を含むオブジェクトの配列を返す。
input – HTMLのvideo要素かimage要素。またはp5のimage要素かvideo要素。inputが与えられない場合には、コンストラクタで与えられたビデオがデフォルトで使用される。
callback – モデルの推測が終わったときに実行される関数。callbackが与えられない場合には、モデルの推測が終わったときに解決されるPromiseを返す。