タグ付けされた質問 「computer-vision」

このタグは、コンピュータービジョン(コンピューターがカメラを使用して環境を認識、理解、反応できるようにするソフトウェアのあらゆる側面)に関する質問に使用します。画像のフィルタリングと定量化に関する質問については、代わりに[image-processing]タグを使用してください。

9
画像比較-高速アルゴリズム
私は画像のベーステーブルを作成し、新しい画像とそれを比較して、新しい画像がベースの正確な(または近い)複製であるかどうかを判断します。 たとえば、同じ画像の保存を数百回減らしたい場合は、その画像のコピーを1つ保存し、その画像への参照リンクを提供できます。新しい画像が入力されたら、既存の画像と比較して、重複していないことを確認したい...アイデアですか? 私のアイデアの1つは、小さなサムネイルに縮小してから、ランダムに100ピクセルの場所を選択して比較することでした。

10
クリスマスツリーを検出するには?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 昨年休業。 次の画像に表示されるクリスマスツリーを検出するアプリケーションを実装するために使用できる画像処理技術はどれですか。 これらすべての画像で機能するソリューションを探しています。したがって、ハールカスケード分類器またはテンプレートマッチングのトレーニングを必要とするアプローチは、それほど興味深いものではありません。 オープンソーステクノロジーのみを使用している限り、任意のプログラミング言語で記述できるものを探しています。ソリューションは、この質問で共有されている画像でテストする必要があります。あり6枚の入力画像は、その答えは、それらのそれぞれの処理結果を表示する必要があります。最後に、各出力画像には、検出されたツリーを囲むように赤い線が描画されている必要があります。 これらの画像に含まれる木をプログラムでどのように検出しますか?

3
OpenCV-Pythonのシンプルな数字認識OCR
OpenCV-Python(cv2)で「数字認識OCR」を実装しようとしています。それは単に学習目的のためです。OpenCVのKNearest機能とSVM機能の両方について学びたいと思います。 各桁のサンプル(画像)が100個あります。一緒にトレーニングしたいです。 letter_recog.pyOpenCVサンプルに付属するサンプルがあります。しかし、それをどうやって使うのかまだ分かりませんでした。サンプルやレスポンスなどがわかりません。また、最初はtxtファイルが読み込まれましたが、最初はわかりませんでした。 後で少し検索すると、cppサンプルにletter_recognition.dataが見つかりました。私はそれを使用し、letter_recog.pyのモデルでcv2.KNearestのコードを作成しました(テスト用のみ): import numpy as np import cv2 fn = 'letter-recognition.data' a = np.loadtxt(fn, np.float32, delimiter=',', converters={ 0 : lambda ch : ord(ch)-ord('A') }) samples, responses = a[:,1:], a[:,0] model = cv2.KNearest() retval = model.train(samples,responses) retval, results, neigh_resp, dists = model.find_nearest(samples, k = 10) print results.ravel() それは私にサイズ20000の配列を与えました、私はそれが何であるかわかりません。 質問: …

7
画像の類似性を比較するためのシンプルで高速な方法
2つの画像の類似性を比較する簡単で高速な方法が必要です。つまり、まったく同じものが含まれていても、背景がわずかに異なり、数ピクセルずつ移動/サイズ変更されている可能性がある場合は、高い値を取得します。 (それが重要な場合、より具体的には:1つの画像がアイコンであり、他の画像がスクリーンショットのサブエリアであり、そのサブエリアが正確にアイコンであるかどうか知りたい。) 私はOpenCVを手元に持っていますが、まだ慣れていません。 これまでに考えた1つの可能性:両方の画像を10x10のセルに分割し、それらの100個のセルのそれぞれについて、カラーヒストグラムを比較します。次に、いくつかの構成されたしきい値を設定できます。取得した値がそのしきい値を超えている場合、それらは類似していると想定します。 まだ十分に機能していないので、まだ試していませんが、これで十分でしょう。画像はすでに(私の使用例では)かなり似ているので、かなり高いしきい値を使用できます。 これには他にも何十もの解決策があり、多かれ少なかれ機能すると思います(本当に非常に類似している場合にのみ類似性を検出したいので、タスク自体は非常に単純なので)。何を提案しますか? 画像から署名/指紋/ハッシュを取得することに関して、非常に関連する/類似した質問がいくつかあります。 OpenCV / SURF記述子から画像ハッシュ/フィンガープリント/署名を生成する方法は? 多くの画像の類似性を比較するための画像指紋 ほぼ重複する画像の検出 OpenCV:指紋画像とデータベースとの比較。 もっと、もっと、もっと、もっと、もっと、もっと、もっと また、フィンガープリントを取得するための機能を備えたこれらの実装に遭遇しました。 pHash imgSeek(GitHub repo)(GPL)は紙の高速マルチ解像度画像クエリに基づいています 画像一致。私が探していたものとよく似ています。あらゆる種類の画像の画像署名、ゴールドバーグらに基づくpHashに似ています。PythonとElasticsearchを使用します。 iqdb ImageHash。pHashをサポートします。 イメージ重複排除機能(imagededup)。CNN、PHash、DHash、WHash、AHashをサポートします。 知覚的画像ハッシュに関するいくつかの議論:ここ 少し問題:オーディオ指紋を作成する方法はたくさんあります。MusicBrainzは、曲の指紋ベースの検索を提供するWebサービスであり、wikiに概要があります。現在、AcoustIDを使用しています。これは、正確な(またはほぼ完全な)一致を見つけるためのものです。同様の一致を見つけるには(または一部のスニペットまたはノイズが多い場合)、Echoprintを参照してください。関連するSOの質問はこちらです。したがって、これはオーディオについては解決されているようです。これらのソリューションはすべて非常に優れています。 ファジー検索全般についてのもう少し一般的な質問はこちらです。たとえば、局所性に敏感なハッシュと最近傍探索があります。

6
数独の正方形の凸状欠陥を取り除く方法は?
私は楽しいプロジェクトをしていた:OpenCVを使用して(Googleゴーグルなどのように)入力画像から数独を解く。そして、私はタスクを完了しましたが、最後に私がここに来た小さな問題を見つけました。 OpenCV 2.3.1のPython APIを使用してプログラミングを行いました。 以下は私がやったことです: 画像を読む 輪郭を見つける 最大の面積を持つものを選択します(また、正方形と多少同等です)。 コーナーポイントを見つけます。 たとえば、以下のとおりです。 (緑の線が数独の真の境界と正確に一致しているため、数独を正しく歪めることができます。次の画像を確認してください) 画像を完全な正方形にワープします 例:画像: OCRを実行します(OpenCV-PythonのSimple Digit Recognition OCRで指定した方法を使用しました) そして、方法はうまくいきました。 問題: この画像をチェックしてください。 この画像に対して手順4を実行すると、以下の結果が得られます。 描かれた赤い線は、数独境界の真の輪郭である元の輪郭です。 描かれた緑の線は近似された輪郭であり、ワープされた画像の輪郭になります。 もちろん、数独の上端で緑の線と赤の線に違いがあります。したがって、ワープしている間、私は数独の元の境界を取得していません。 私の質問 : 数独の正しい境界、つまり赤い線で画像を歪めるにはどうすればよいですか、またはどのように赤い線と緑の線の違いを取り除くことができますか?OpenCVでこれを行う方法はありますか?

6
OpenCV C ++ / Obj-C:1枚の紙の検出/ Square検出
OpenCVの正方形検出の例をテストアプリケーションに正常に実装しましたが、出力がかなり乱雑なので、フィルター処理する必要があります。または、コードが間違っていますか? 私は(のようなスキュー低減のために紙の4つの隅の点に興味があること)、さらに処理... 入出力: 元の画像: クリック コード: double angle( cv::Point pt1, cv::Point pt2, cv::Point pt0 ) { double dx1 = pt1.x - pt0.x; double dy1 = pt1.y - pt0.y; double dx2 = pt2.x - pt0.x; double dy2 = pt2.y - pt0.y; return (dx1*dx2 + dy1*dy2)/sqrt((dx1*dx1 + dy1*dy1)*(dx2*dx2 + dy2*dy2) + 1e-10); …

11
顔認識ライブラリ[終了]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善してみませんか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する 大学のプロジェクト用の無料の顔認識ライブラリを探しています。顔検出は探していません。実際の認識を探しています。つまり、特定の顔を含む画像、または特定の顔間の距離を計算するライブラリを検索します。 私は現在、顔の検出にOpenCVを使用しており、認識には大まかなEigenfaceアルゴリズムを使用しています。しかし、私は、自己記述型のEigenfaceアルゴリズムよりも優れたパフォーマンスを持つものがあるはずだと考えました。パフォーマンスとしての速度についてではなく、単純なEigenfaceアプローチよりも優れた結果をもたらすライブラリを探しています。 私はFaintを調べましたが、このライブラリは自分のアプリケーションではあまり再利用できないようです。 Python、Java、C ++、Cなどのライブラリに満足しています。現時点では、Windows専用の外部コードに依存しているため、Windowsマシンで実行できるのが最善です。

7
CuDNNのインストールを確認する方法は?
私は多くの場所を検索しましたが、私が得るすべてはそれをインストールする方法であり、それがインストールされていることを確認する方法ではありません。NVIDIAドライバーがインストールされ、CUDAがインストールされていることを確認できますが、CuDNNがインストールされていることを確認する方法がわかりません。助けてくれてありがとう、ありがとう! PS。 これはカフェの実装用です。現在、CuDNNを有効にせずにすべてが機能しています。

7
ビジュアル入力を使用してDiablo 2を再生するように人工ニューラルネットワークをトレーニングする方法
私は現在、ANNにビデオゲームをプレイしてもらうことを目指しています。ここのすばらしいコミュニティから助けを借りたいと思っていました。 私はディアブロ2に落ち着きました。したがって、ゲームのプレイはリアルタイムで、アイソメトリックの観点から、プレーヤーはカメラの中心にある1つのアバターを制御します。 物事を具体的にするために、タスクは、ヘルスを0に落とさずにキャラクターx経験値を取得することです。この場合、経験値はモンスターを倒すことによって獲得されます。これはゲームプレイの例です: 今、私はネットを画面上のピクセルから取得した情報のみに基づいて動作させたいので、効率的に再生するためには非常に豊かな表現を学習する必要があります。ゲームの世界をオブジェクトに分割し、それらと対話する方法。 そして、これらすべての情報はどういうわけかネットに教えられなければなりません。私の人生では、これをどのように訓練するかを考えることはできません。私の唯一のアイデアは、画面からゲームの本質的に良い/悪いもの(健康、ゴールド、経験など)を視覚的に抽出し、その統計を強化学習手順で使用する別のプログラムを用意することです。それは答えの一部になると思いますが、それで十分だとは思いません。生の視覚的入力から目標指向の動作までの抽象化のレベルが多すぎて、私の生涯でネットを訓練するにはそのような限られたフィードバックがありません。 だから、私の質問:このタスクの少なくとも一部を実行するようにネットをトレーニングするには、他にどのような方法が考えられますか?何千ものラベル付けされた例を作成せずに。 もう少し方向付けをします。この設定で有用な情報を抽出するために、強化学習の他のソースや、監視されていない方法を探しています。または、手動でラベル付けする必要なしに、ゲームの世界からラベル付けされたデータを取得する方法を考えることができる場合は、監視付きアルゴリズム。 更新(12/04/27): 不思議なことに、私はまだこれに取り組んでおり、進歩しているようです。ANNコントローラを機能させる最大の秘訣は、タスクに適した最新のANNアーキテクチャを使用することです。したがって、時間差の逆伝播(つまり、標準の強化学習)で微調整する前に、教師なしで(ゲームをプレイしているビデオで)訓練した因数分解された制限付きボルツマンマシンで構成される深い信念ネットを使用してきましたフィードフォワードANN)。 ただし、特にリアルタイムでのアクション選択の問題と、ANN処理用にカラー画像をエンコードする方法について、さらに価値のある入力を探しています:-) 更新(10/21/15): 私がこの質問を過去にしたことを思い出しただけで、これはもうおかしな考えではないことを述べておかなければならないと思いました。前回の更新以降、DeepMindは、ニューラルネットワークで視覚入力からAtariゲームをプレイできるようにするためのネイチャーペーパーを公開しました。確かに、私が彼らのアーキテクチャを使用してDiablo 2の限られたサブセットをプレイするのを妨げている唯一のことは、基礎となるゲームエンジンへのアクセスの欠如です。画面にレンダリングしてからネットワークにリダイレクトするのは、適度な時間でトレーニングするには遅すぎるだけです。したがって、おそらくこのようなボットがディアブロ2をプレイするのはすぐにはわかりませんが、それは、オープンソースまたはレンダリングターゲットへのAPIアクセスで何かをプレイするためです。(おそらく地震?)

8
RGBをグレースケール/強度に変換する
RGBからグレースケールに変換する場合、チャネルR、G、Bに特定の重みを適用する必要があると言われています。これらの重みは、0.2989、0.5870、0.1140です。 その理由は、これらの3つの色に対する人間の知覚/感受性が異なるためだと言われています。これらはNTSC信号の計算に使用される値であるとも言われます。 しかし、ウェブ上でこれについての適切なリファレンスは見つかりませんでした。これらの値のソースは何ですか? これらの以前の質問も参照してください:こことここ。


3
「セグメンテーション」や「シーンラベリング」と比較した「セマンティックセグメンテーション」とは何ですか?
セマンティックセグメンテーションは単なるPleonasmですか、それとも「セマンティックセグメンテーション」と「セグメンテーション」の間に違いがありますか?「シーンのラベル付け」または「シーンの解析」に違いはありますか? ピクセルレベルのセグメンテーションとピクセル単位のセグメンテーションの違いは何ですか? (サイド質問:この種のピクセル単位のアノテーションがある場合、オブジェクト検出を無料で取得しますか、それともまだ何かする必要がありますか?) 定義の出典を教えてください。 「セマンティックセグメンテーション」を使用するソース ジョナサンロング、エヴァンシェルハマー、トレヴァーダレル:セマンティックセグメンテーションのための完全たたみ込みネットワーク。CVPR、2015およびPAMI、2016 ホン、スンフン、ヒョンウ、ハンヒョンウ:「半教師付きセマンティックセグメンテーションのための分離されたディープニューラルネットワーク」。arXivプレプリントarXiv:1506.04924、2015。 V. Lempitsky、A。Vedaldi、およびA. Zisserman:セマンティックセグメンテーションのパイロンモデル。神経情報処理システムの進歩、2011年。 「シーンラベリング」を使用するソース Clement Farabet、Camille Couprie、Laurent Najman、Yann LeCun:シーンのラベル付けの階層的機能の学習。パターン分析および機械知能、2013年。 「ピクセルレベル」を使用するソース Pinheiro、Pedro O.、Ronan Collobert:「畳み込みネットワークによる画像レベルからピクセルレベルのラベリングへ」コンピュータビジョンとパターン認識に関するIEEE会議の議事録、2015年(http://arxiv.org/abs/1411.6228を参照) 「pixelwise」を使用するソース Li、Hongsheng、Rui Zhao、Xiaogang Wang:「ピクセルごとの分類のための畳み込みニューラルネットワークの非常に効率的な前方および後方伝播」arXivプレプリントarXiv:1412.4526、2014。 Google Ngram 「セマンティックセグメンテーション」は、「シーンのラベル付け」よりも最近使用されているようです。

4
TesseractとOpenCVのどちらを選択するのですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して質問を更新し、事実と引用で回答できるようにします。 昨年休業。 この質問を改善する 最近、TesseractとOpenCVに出会いました。Tesseractは本格的なOCRエンジンであり、OpenCVをOCRアプリケーション/サービスを作成するためのフレームワークとして使用できるようです。 一部の画像でTesseractを使用してみましたが、その精度はまともです。後で、OpenCVを使用してPythonを使用してOCRを実行する方法に関する非常に簡単なチュートリアルに出会い、感銘を受けました。数分で、システムのトレーニングが終了し、その精度は良好でした。しかし、もちろん、このアプローチを取るには、大規模なトレーニングセットを使用してシステムを広範囲にトレーニングする必要があることを意味します。 私の具体的な質問は次のとおりです。 TesseractとOpenCVを使用してカスタムOCRアプリを作成する方法をどのように選択しますか? Tesseractで使用できるさまざまな言語のトレーニングデータセットがあります。OpenCVにも同様のものがあるので、OCRを達成するために最初からやり直す必要はありませんか? 商用アプリケーションになりたい方はどちらが良いですか? 助言がありますか?


6
Viola-Jonesの顔検出は180kの機能を主張します
私はViola-Jonesの顔検出アルゴリズムの適応を実装してきました。この手法は、画像内に24x24ピクセルのサブフレームを配置し、その後、可能な限りすべてのサイズですべての位置に長方形のフィーチャを配置することに依存しています。 これらの機能は、2つ、3つ、または4つの長方形で構成できます。次の例を示します。 彼らは、網羅的なセットが180kを超えると主張しています(セクション2)。 検出器の基本解像度が24x24であることを考えると、長方形の特徴の網羅的なセットは非常に大きく、180,000を超えます。Haarベースとは異なり、長方形フィーチャのセットは不完全であることに注意してください。 以下の記述は本書に明示的に記載されていないため、私の側の仮定です。 2つの長方形のフィーチャが2つ、3つの長方形のフィーチャが2つ、4つの長方形のフィーチャが1つだけあります。この背後にある論理は、強調表示された長方形間の違いを観察しているということです。色や輝度などを明示的に観察しているわけではありません。 フィーチャタイプAを1x1ピクセルブロックとして定義することはできません。少なくとも1x2ピクセルである必要があります。また、タイプDは少なくとも2x2ピクセルである必要があり、このルールは他の機能にも適用されます。 中央のピクセルは分割できないため、フィーチャタイプAを1x3ピクセルブロックとして定義することはできません。それ自体からそれを差し引くことは、1x2ピクセルブロックと同じです。このフィーチャタイプは、偶数の幅に対してのみ定義されます。また、フィーチャタイプCの幅は3で割り切れる必要があり、このルールは他のフィーチャにも適用されます。 幅や高さが0のフィーチャを定義することはできません。したがって、xとyを24からフィーチャのサイズを引いた値まで繰り返します。 これらの仮定に基づいて、私は網羅的なセットを数えました: const int frameSize = 24; const int features = 5; // All five feature types: const int feature[features][2] = {{2,1}, {1,2}, {3,1}, {1,3}, {2,2}}; int count = 0; // Each feature: for (int i = 0; i < features; i++) …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.