次の機能を備えたiOSアプリを作成する必要があります。
それを行うオンラインAPIはありますか(Google、Yahooなどから)?たとえば、画像をアップロードして画像のURLを取得し、その後、新しい画像と既存の画像を比較するためのURLをリクエストできますか?
次の2つのAPIを試してください。
OpenCV ライブラリ( for iPhone )には多くのアルゴリズムが含まれています。画像のカラーヒストグラムを比較するか、より複雑なものを使用できます。どういうマッチングですか?重複を見つけるか、画像の類似性の測度を計算していますか?
オブジェクトを見つけるためにいくつかの単純なテンプレートを一致させたい場合は、Viola&Jonesアルゴリズム、およびいわゆるHaarカスケードを試してください。 OpenCVは、たとえば顔を検出するために、XMLファイルのテンプレートのコレクションをトレーニングしました。 OpenCVにはトレーニング用のユーティリティが含まれているため、他の種類のオブジェクトのカスケードを生成できます
Moodstocks もご覧ください。アプリに画像認識を数分で実装するための優れたAPIとiOS SDKを提供します。
リストを拡張するだけです:
IQEnginesを見つけました。
ディープニューラルネットワークの登場により、画像認識の分野全体が変化しました。ただし、独自のニューラルネットをトレーニングするには、強力なマシンが必要です。 vize.it を使用することもできます-これは使いやすいオンラインアプリで、 http APIを使用してタスクを実行し、画像を分類します。
免責事項:私はvize.itチームのメンバーである人工知能の博士課程の学生です。
Pastec は、すでに述べたサービスのオープンソース(LGPL)の代替です。
シンプルなHTTP APIを使用すると、インデックス内の一致する画像を簡単に追加、削除、検索できます。これはOpenCVに基づいており、特許のないORB記述子を使用します。
私は Moodstocks を調査しました。彼は、月額課金サービスを備えた画像認識システムを完成させたようです。彼らは素晴らしいシステムを持っています(私は自分で使用するためにテストしましたが、それは素晴らしいです)しかし、それは私にとって非常に高価なので、私はそれを使用していません。これを書いている時点では、「最大100,000」のイメージサービスは年間約12,000ドルです。私のプロジェクトでは、照合する必要がある画像が400万枚近くあります。うわぁ。
何ヶ月にもわたって調査を重ねた結果、数千枚以上の画像(私の場合は100万以上)と比較する場合は、画像の比較を行う必要があるという結論に達しましたデバイスのオフ。ユーザーのモバイルデバイスには、この種の作業を行うために大量の計算を実行するスペース、速度、およびパワーがありません。
それが実際に意味することは、高性能マシン上に画像認識サーバーをセットアップし、それをアプリに公開する必要があるということです。アプリで、ユーザーにオブジェクトの写真を撮らせ(またはカメラのビデオからフレームを取得できます)、サーバーに送信して比較させ、一致が見つかったら結果をアプリに報告します。
たとえば、 Accord.NET または EmguCV のようなフレームワークを使用して、Windows Serverボックスで実行されるC#デスクトップアプリケーションまたはサービスを作成できます。
Amazon iOSアプリが私が推測できることから画像認識のために何をしているのかは、SURFポイントをリアルタイムで見つけ、画像全体ではなくスキャン中にサーバーにデータを送信するように見えることです。私の推測では、デバイスでOpenCVを使用してこれを行っています。ただし、サーバーソフトウェアを使用して、一致した製品のSKUを送り返します。
これは、.NETで画像マッチングを実行したいと思った男による素晴らしいブログ投稿です。彼は、その動作方法、実行方法を含むすべてのステップを説明し、サンプルアプリケーションですべてのコードを提供します。すばらしい投稿: https://sbrakl.wordpress.com/2015/01/30/love-affair-with-cbir-part-3/comment-page-1/
私が学んだことから、LoCATeアルゴリズムは大量の画像で最高かつ最速で実行されますが、大量のインデックスを作成するには数時間、数日、場合によっては数週間かかることもあります(画像の数によって異なります)。探す。イメージマッチングに関しては、ソリッドインデックスを作成する速度はクエリから一致を見つける速度と関係があると思いました。