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

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

6
Pythonでウォーリーを見つけるにはどうすればよいですか?
恥知らずに時流に乗る:-) Mathematicaでウォーリーを見つける方法とフォローアップRでウォーリーを見つける方法に触発されました。新しいPythonユーザーとして、これがどのように行われるかを知りたいです。PythonはRよりもこれに適しているようで、MathematicaやMatlabのようにライセンスについて心配する必要はありません。 以下のような例では、明らかに単にストライプを使用するだけでは機能しません。このような難しい例で、単純なルールベースのアプローチを機能させることができれば興味深いでしょう。 正解は、元のスレッドでGregoryKlopperが提唱した制限付きボルツマンマシン(RBM)アプローチなど、ML手法を使用する必要があると思われるため、[machine-learning]タグを追加しました。Pythonで利用できるRBMコードがいくつかあり、開始するのに適している可能性がありますが、そのアプローチには明らかにトレーニングデータが必要です。 で、機械学習のための信号処理(MLSP 2009)2009 IEEE国際ワークショップ彼らは走ったのウォーリー:データ解析コンペの?。トレーニングデータはmatlab形式で提供されます。そのWebサイトのリンクは無効になっていますが、データ(Sean McLooneと同僚が採用したアプローチのソースはここにあります(SCMリンクを参照)に注意してください)。

2
画像内の複数の長方形を検出する
この画像でパイプの数を検出しようとしています。これには、OpenCVとPythonベースの検出を使用しています。同様の質問に対する既存の回答に基づいて、次の手順を思い付くことができました 画像を開く フィルターする エッジ検出を適用する 等高線を使用 カウントを確認する パイプの総数は〜909です我々はそれを手動でカウント与えるか、または4を取るとき。 フィルター適用後 import cv2 import matplotlib.pyplot as plt import numpy as np img = cv2.imread('images/input-rectpipe-1.jpg') blur_hor = cv2.filter2D(img[:, :, 0], cv2.CV_32F, kernel=np.ones((11,1,1), np.float32)/11.0, borderType=cv2.BORDER_CONSTANT) blur_vert = cv2.filter2D(img[:, :, 0], cv2.CV_32F, kernel=np.ones((1,11,1), np.float32)/11.0, borderType=cv2.BORDER_CONSTANT) mask = ((img[:,:,0]>blur_hor*1.2) | (img[:,:,0]>blur_vert*1.2)).astype(np.uint8)*255 このマスクされた画像が表示されます これは、表示される長方形の数の点でかなり正確に見えます。ただし、カウントして画像の上にバウンディングボックスをプロットしようとすると、多くの不要な領域も選択されます。円の場合、HoughCirclesには最大半径と最小半径を定義する方法があります。精度を向上させることができる長方形に似たものはありますか?また、私はこの問題への代替アプローチの提案を受け入れています。 ret,thresh = cv2.threshold(mask,127,255,0) contours,hierarchy …

3
OpenCVでテーブルゲームカードの画像からアートワークを抽出する
私はpythonで小さなスクリプトを書いて、アートワークのみを表すトランプの部分を抽出またはトリミングし、残りをすべて削除しようとしています。さまざまなしきい値処理方法を試しましたが、うまくいきませんでした。また、アートワークの位置は常に同じ位置またはサイズではなく、常にテキストと境界線のみの長方形の形であるので、アートワークの位置を手動で記録することはできません。 from matplotlib import pyplot as plt import cv2 img = cv2.imread(filename) gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) ret,binary = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU | cv2.THRESH_BINARY) binary = cv2.bitwise_not(binary) kernel = np.ones((15, 15), np.uint8) closing = cv2.morphologyEx(binary, cv2.MORPH_OPEN, kernel) plt.imshow(closing),plt.show() 現在の出力は私が得ることができる最も近いものです。私は正しい方法で、白い部分の周りに長方形を描くためにさらにラングリングを試すことができますが、それは持続可能な方法ではないと思います: 最後のメモとして、以下のカードを参照してください。すべてのフレームが正確に同じサイズまたは位置であるわけではありませんが、常にテキストと枠線のみのアートワークが存在します。厳密にカットする必要はありませんが、アートはカードの「領域」であり、テキストを含む他の領域に囲まれています。私の目標は、アートワークの領域をできるだけキャプチャすることです。

2
レイアウトが異なるPDFファイルからテキスト情報を抽出する-機械学習
現在作成しようとしているMLプロジェクトについてサポートが必要です。 多くの異なるサプライヤーから大量の請求書を受け取ります-すべて独自のレイアウトで。請求書から3つの重要な要素を抽出する必要があります。これらの3つの要素はすべて、すべての請求書のテーブル/ラインアイテムにあります。 3要素は次のとおりです。 1:関税番号(桁) 2:数量(常に数字) 3:合計明細金額(金額) 以下のスクリーンショットを参照してください。サンプルの請求書でこれらのフィールドにマークを付けています。 このプロジェクトは、正規表現に基づいたテンプレートアプローチから始めました。しかし、これはまったくスケーラブルではなく、大量の異なるルールになってしまいました。 ここで機械学習が役立つことを願っています-あるいは、ハイブリッドソリューションですか? 一般的な分母 では、すべての私の請求書の、異なるレイアウトのにもかかわらず、各ライン項目がします常に 1つので構成されて関税番号。この関税番号は常​​に8桁で、常に次のような方法でフォーマットされます。 xxxxxxxx xxxx.xxxx xx.xx.xx.xx (「x」は0から9までの数字です)。 さらに、請求書で確認できるように、1行あたりの単価と合計金額の両方があります。私が必要とする量は常に各行で最高です。 出力 上記のような各請求書について、各行の出力が必要です。これは、たとえば次のようなものになります。 { "line":"0", "tariff":"85444290", "quantity":"3", "amount":"258.93" }, { "line":"1", "tariff":"85444290", "quantity":"4", "amount":"548.32" }, { "line":"2", "tariff":"76109090", "quantity":"5", "amount":"412.30" } ここからどこへ行く? 私が何をしようとしているのかが機械学習に該当するかどうか、また該当する場合はどのカテゴリに該当するかわかりません。コンピュータビジョンですか?NLP?名前付きエンティティの認識? 私の最初の考えは: 請求書をテキストに変換します。(請求書はすべてpdftotextテキスト化可能なPDFであるため、正確なテキスト値を取得するようなものを使用できます) カスタム作成名前付きエンティティのためにquantity、tariffそしてamount 見つかったエンティティをエクスポートします。 でも、足りないものがあるようです。 誰かが正しい方向に私を助けることができますか? 編集: 請求書テーブルセクションがどのように表示されるかを示す他の例については、以下をご覧ください。 請求書の例2 請求書の例3 編集2: …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.