2017-07-04 7 views
3

iOSで最近導入されたCore MLを試して、画像を認識して分類しました。問題は、送信された画像に適切な結果を与えていないことです。コアML iOS 11で画像が正しく認識されない

地球の画像(グローブ)を送ると、クラスが私に泡として与えられます。以下は、私が使用したコード、

  let model = Resnet50() 

      let pixelBuffer: CVPixelBuffer = (modelImg.pixelBuffer())! 

      if let prediction = try? model.prediction(image: pixelBuffer) { 
       print("Found it!! It is a/an \(prediction.classLabel)") 
      } 

が、それは、既存のコアMLモデルの上にカスタムユースケースでモデルを訓練することは可能ですがありますか?(例について。Resnet50)MLにのみ使用することができ

+1

さらに、受け入れられた答えに加えて、心に留めておくべきもう1つのことがあります.CoreMLでは、訓練されたモデルはアプリのアップデートなしでは更新できません。私はCoreML *が何ではないかについてのブログへのリンクを失ってしまいましたが、CoreMLツールを使ってこのレポのREADMEを入手するのに良いリソースを見つけました:https://github.com/hollance/YOLO-CoreML-MPSNNGraph/ blob/master/README.markdown – dfd

答えて

3

コア既に訓練されたモデルと推論する。以前にモデルを訓練してからCore ML Toolsを使用してCore MLに変換するには、他のツールを使用する必要があります。あなたは、ドキュメントでサポートされているサードパーティ機械学習ツールとフォーマットを見つけることができます。

https://developer.apple.com/documentation/coreml/converting_trained_models_to_core_ml

+0

したがって、既存のMLモデルを訓練する方法はありませんか? – yaali

+0

Core MLを使用していません。コアMLは既存のトレーニングされたモデルのみを使用できます。これは、デバイス推論のための高速フレームワークとしての意味です。 –

+0

ありがとうございます。承認されたものとしてマーキングする。 – yaali

5

を画像分類ネットワークを使用しているときにのみ、クラスそれの一つで結果を取り戻すことができ、Matusalemの答えに展開するにはは訓練された。このケースでは、Apple has made available for downloadがあらかじめ用意されたResNet50 Core MLモデルを使用しているようです。

ImageNetは、ImageNetまたはILSVRC2012と一般に呼ばれるImageNet Large Scale Visual Recognition Challenge 2012データセットで訓練されています。そのデータセットは、2012年の競技の後に畳み込みニューラルネットワークの設計のベンチマークとなりました。それは、ラベルhereの完全なリストで、画像で識別することができるものの1000のカテゴリを持っています。 「地球儀」はそれらの中にはないので、ネットワークは訓練されたものに最も近い一致するカテゴリを提供します。

グローブを以前に見たことがない、あるいは「グローブ」という言葉にさらされたことがないと、あなたはそのグローブを識別できますか?これらのネットワークは、驚くほど一般化することができますが、分類したいカテゴリのカテゴリがない場合でも、必要な結果を提供することはできません。

ImageNetデータセットは興味深い出発点ですが、おそらく実際の使用には最適ではありません。それは犬の200の品種のような何かで、しかし人間のないクラスの奇妙な分布を持っています。ネットワークを事前にトレーニングしてから、そのネットワークを特定のデータセットに絞り込むためにトランスファーラーニングを使用しても、独自のアプリケーション固有のネットワークを訓練する必要があります。それはまったく別の話題です。

+0

ブラッド、あなたの答えは何らかの理由でいつも私の顔に笑顔を浮かべます! –

関連する問題