信号処理

信号、画像およびビデオ処理の芸術および科学の実務家のためのQ&A

3
離散フーリエ変換対称性
私はLyonsの本の離散フーリエ変換に関する章を読んでいました-デジタル信号処理について-対称性に関する最後の段落を理解できませんでした。 この時点で言及するに値するDFTの追加の対称特性があります。実際には、入力インデックスが正と負の両方の値に対して定義されている実際の入力関数のDFTを決定する必要がある場合があります。その実数入力関数が偶数の場合、X (m )は常に実数かつ偶数になります。つまり、実数x (n )= x (− n )の場合、X 実数(m )は一般に非ゼロであり、X imag(m )nnnX(m)X(m)X(m)x(n)=x(−n)x(n)=x(−n)x(n) = x(−n)Xreal(m)Xreal(m)X_{\textrm{real}}(m)Ximag(m)Ximag(m)X_{\textrm{imag}}(m)ゼロです。逆に、実入力関数が奇数の場合、場合、X real(m )は常にゼロであり、X imag(m )は一般に非ゼロです。x(n)=−x(−n)x(n)=−x(−n)x(n) = −x(−n)Xreal(m)Xreal(m)X_{\textrm{real}}(m)Ximag(m)Ximag(m)X_{\textrm{imag}}(m) 注:X(m)=Xreal(m)+jXimag(m)X(m)=Xreal(m)+jXimag(m)X(m) = X_{\textrm{real}}(m) + jX_{\textrm{imag}}(m) まず、「奇数」と「偶数」とはどういう意味ですか?入力信号のサンプル数だと思いますが、それが2つ目の質問です。 偶数の実数入力関数ではゼロであり、奇数の実数入力関数ではX X real(m )ゼロおよびX imag(m )は一般にゼロではないのはなぜですか?Ximag(m)Ximag(m)X_{\textrm{imag}}(m)Xreal(m)Xreal(m)X_{\textrm{real}}(m)Ximag(m)Ximag(m)X_{\textrm{imag}}(m)

3
エイリアス周波数の式
私のMSc Computer Scienceでマルチメディアシステムクラスを受講しています。エイリアス周波数の式を理解するのに問題があります。これは、エイリアス信号の誤解に起因する可能性があります。 エイリアス信号についての私の理解は、入力信号をアンダーサンプリングする場合(つまり、最大周波数の2倍未満のレートでサンプリングする場合)、高周波の詳細をキャプチャするのに十分な頻度でサンプリングしていないため、エイリアシングが発生する可能性があるということです。エイリアシング信号は、これらのサンプル値を取得し、それらを滑らかな曲線で結合した結果です。 したがって、生成される信号の周波数はサンプリング周波数の半分になります。これは、純粋な正弦波が1振動あたり2つのサンプルを必要とするためです(各分岐点に1つ)。これは、エイリアス周波数がサンプリング周波数の関数になることを意味します。 エイリアス周波数の式は、信号周波数とサンプリング周波数の最も近い整数倍の絶対差です-誰かがこれを私に説明できますか?前もって感謝します!

2
制限された(埋め込み)プロセッサに適した顔認識(認識ではない)アルゴリズムにはどのようなものがありますか?
監視クラスのアプリケーション用のハードウェアベースのプラットフォームを探しています。シーンに登場する人物の顔を特定したい。 顔認識を実際に適用するつもりはありません(それ以降)。また、面の向きは、実際的な目的のためにまっすぐであると想定できます。一度検出された顔は、それ以上の処理は必要ありません。 ライブビデオソースから顔を検出するための高速(効率的な)アルゴリズムはありますか?

1
線形予測コーディング(LPC)の背後にある理論
LPCの背後にある理論は何ですか? LPCの特定の実装が、他の圧縮音声符号化方式よりも伝送または符号化エラーの量子化に対してより耐性があると言われているのはなぜですか? LPCメソッドは、カルマンフィルターメソッドの使用と同様に、平滑化または短期の "予測"にも使用できますか? LPCの使用はどのような条件または制約の下で有効ですか?

5
線形システムが正弦波の忠実度を示すのはなぜですか?
正弦波の忠実度の証明を探しています。DSPでは、線形システムについて多くのことを研究しています。線形システムは同種であり、付加的です。それが満たすもう1つの条件は、信号が正弦波または余弦波の場合、出力は位相または振幅のみを変更することです。どうして?正弦波が入力として与えられたとき、なぜ出力はまったく異なる出力にならないのですか?

2
MATLABで画像の境界線と交差するオブジェクトの数を数える
さまざまな兆候のあるRGB画像があります。私の主な目標は、画像の境界線と接触している標識を数えることです。 取り組みと課題 画像をロードすることから始めました。1]、次にそれをグレースケールに変換し、メジアンフィルターを適用してノイズを取り除きます[図1]。2]。次に、しきい値を0.2にして2値化しました。その結果、図3が得られました。この時点で2値化された画像を取得しましたが、問題は、同じ標識に属する一部が1つだけではなく、さまざまな領域に表示されていることです。私の目標は、同じオブジェクトに属する領域をマージすることです。そのためbwlabel、画像にある標識の数を数えimclearborder、境界線にある標識を取り除くために使用bwlabelし、両者の違いを取得するためにもう一度使用することができます二つ。 私のアプローチは、使用していたbwmorph、Dilateオブジェクトを拡張し、その後でそれらを埋めるためにしようとimfill、holes。しかし問題は、それらを少量拡張すると、4]、imfillそれらを大きく拡張すると[]はそれらを埋めるようには見えません[図5]すべてのオブジェクトがマージし始めます:( コード img=im2double(imread('image.png')); figure, imshow(img) img_gray=rgb2gray(img); imshow(img_gray); img_mediana=medfilt2(img_gray, [3 3]); figure, imshow(img_mediana); img_bin=im2bw(img_mediana, 0.2); imshow(img_bin) img_dilate=bwmorph(img_bin, 'Dilate', 10); imshow(img_dilate) img_fill=imfill(img_dilate, 'Holes'); figure, imshow(img_fill) 図 図1: 図1 http://dl.dropbox.com/u/5272012/1.png 図2: イチジク2 http://dl.dropbox.com/u/5272012/2.png 図3: 図3 http://dl.dropbox.com/u/5272012/3.png 図4: イチジク4 http://dl.dropbox.com/u/5272012/4.png 図5: イチジク5 http://dl.dropbox.com/u/5272012/5.png

2
自己相関の「品質」を評価する最良の方法は?
これは、いびきアプリからの片道です。 オーディオ信号の自己相関を生成するときに、いびき/呼吸と「相関」するかどうかを確認するために、ひび割れがありました。私は単純なアルゴリズムを実行しています(1.0を0番目の要素として生成します。これは良い兆候です)が、自己相関が強いかどうかを判断するために結果を評価する方法と、おそらくそれを使用して分離する方法について疑問に思っていますさまざまな音源。 質問1:自己相関のRMS(要素をスキップする)は、「品質」の測定基準と同じくらい良いですか、それとももっと良いものがありますか? 詳しく説明します。 数値の方法(チャートを「見る」のではなく)で、自己相関の高い信号と自己相関の低い信号を区別します。 (私は他にどんな質問をするべきかを知るのに十分なほど知りません。) 初期の結果の一部: 場合によっては、自己相関(RMSまたはピーク)がいびきの劇的なジャンプを示します。正確に私が知りたい応答です。他の場合では、これらの測定値には明らかな動きがまったくありません(これは2つの応答を伴う2つのいびきである可能性があります)。 更新-5月22日: ようやく、これについてさらに作業する時間を得ました。(文字通り苦痛な別のアプリで引き延ばされました。)私は自己相関の出力をFFTに入力しましたが、出力はやや興味深いです。いびきが始まると、原点付近でかなり劇的なピークを示しています。 だから今、私はこのピークをどういうわけか量子化する問題に直面しています。奇妙なことに、絶対的な大きさの点で最も高いピークが別のときに発生しますが、ピークと算術平均の比率を試してみたところ、かなりうまくいきました。それでは、FFTの「ピーク」を測定するいくつかの良い方法は何ですか。(そして、してください -このことは、自身の尾を飲み込むの近くにすでにある:)私はそれのFFTを取る必要があると言うことはありません。) また、中央にゼロ(定義では1.0のマグニチュード)が入力された自己相関結果をミラー反射すると、FFTの品質が多少向上する可能性があることに気付きました。これは両端に「尾」を置くでしょう。これは(おそらく)良いアイデアですか?鏡像は直立する必要がありますか?(もちろん、あなたが何を言っても試してみるつもりですが、詳細については少しヒントが得られるかもしれません。) 試した平面度- 私のテストケースは、「行儀の良い」カテゴリと「問題のある子供」カテゴリに大別できます。 「正常に動作する」テストケースの場合、自己相関のFFTの平坦性は劇的に低下し、いびきの間にピークと平均の自己相関の比率が上昇します。これらの2つの数値の比(ピーク比を平坦度で割った値)は特に敏感で、呼吸/いびきの間に5〜10倍の上昇を示します。 ただし、「問題のある子供」の場合、数字は正反対の方向を向いています。ピーク/平均比はわずかに低下しますが、平坦度は実際には50〜100%増加します これら2つのカテゴリの違いは、(主に)3つあります。 「問題のある子供たち」の騒音レベルは(通常)高くなります 「問題のある子供」では、オーディオレベルが(ほとんどの場合)低くなります。 「問題のある子供」は、呼吸が多く、実際のいびきが少ない傾向があります(両方を検出する必要があります) 何か案は? 更新-5/25/2012: 勝利のダンスをするのは少し時期尚早ですが、ポイントに関する自己相関を反映し、そのFFTを取り、次にスペクトルの平坦性を行ったとき、私の複合比率スキームは良いジャンプを示しましたいくつかの異なる環境。自己相関を反映すると、FFTの品質が向上するようです。 ただし、マイナーな点の1つは、反射された「信号」の「DC成分」がゼロであるため、0番目のFFT結果は常にゼロであり、このことはゼロを含む幾何平均を壊すことです。しかし、0番目の要素をスキップしても機能するようです。 私が得ている結果は、いびき/呼吸をそれ自体で識別するのに十分ではありませんが、かなり敏感な「確認」のようです-「ジャンプ」が得られない場合、それはおそらくいびき/息ではありません。 私はそれを詳しく分析していませんが、起こっているのは、息/いびきの間にどこかで口笛の音が発生し、その口笛が検出されていることです。

1
2つのスペクトル間のサブピクセルシフトを直接比較し、信頼できるエラーを取得
同じ天体の2つのスペクトルがあります。重要な質問はこれです:これらのスペクトル間の相対的なシフトを計算して、そのシフトで正確なエラーを取得するにはどうすればよいですか? まだ私と一緒にいるなら、もう少し詳しく。各スペクトルは、x値(波長)、y値(光束)、および誤差を持つ配列になります。波長シフトはサブピクセルになります。ピクセルが等間隔に配置されており、スペクトル全体に適用される波長シフトが1つだけであると仮定します。したがって、最終的な答えは、0.35 +/- 0.25ピクセルのようなものになります。 2つのスペクトルは、簡単にモデル化できない(そして周期的ではない)かなり複雑な吸収特性(ディップ)によって区切られた、多くの特徴のない連続体になります。2つのスペクトルを直接比較する方法を見つけたいのですが。 すべての人の最初の本能は相互相関を行うことですが、サブピクセルシフトを使用すると、スペクトル間を補間する必要があります(最初にスムージングすることによって?)。また、エラーが正しくなるには厄介なようです。 私の現在のアプローチは、ガウスカーネルとのたたみ込みによってデータを平滑化し、平滑化された結果をスプライン化し、2つのスプライン化されたスペクトルを比較することですが、信頼できません(特にエラー)。 これを正しく行う方法を誰かが知っていますか? これは、0.4ピクセルだけシフトされた2つのおもちゃのスペクトル(toy1.asciiおよびtoy2.asciiで書き出されます)を生成する短いpythonプログラムです。このおもちゃのモデルは単純なガウス機能を使用していますが、実際のデータは単純なモデルでは適合できないと想定しています。 import numpy as np import random as ra import scipy.signal as ss arraysize = 1000 fluxlevel = 100.0 noise = 2.0 signal_std = 15.0 signal_depth = 40.0 gaussian = lambda x: np.exp(-(mu-x)**2/ (2 * signal_std)) mu = 500.1 np.savetxt('toy1.ascii', zip(np.arange(arraysize), np.array([ra.normalvariate(fluxlevel, …

3
DCを拒否するのに適したFFTウィンドウ関数とは何ですか?
FFTを使用して、本質的に信号のパワーエンベロープを分析しています(含まれているプロジェクトの情報については、こちらを参照してください)。また、パワー番号は常に正なので、ウィンドウを使用したいDC成分を除去します。 50/50の正と負の関数、通常のすべての正の関数。 「フラットトップ」関数を使用して、a0バイアスを取り除き、それを余弦波から正弦波に変換しましたが、それが最適(または意味がある)かどうかはわかりません。 なにか提案を?

2
ハリスの角に配置された視覚的特徴のオクターブとサイズを推定する方法
私は現在、OpenCVによって提供されるいくつかの機能検出器のパフォーマンスを比較し、視覚的な機能マッチングの基礎として比較しています。 SIFT記述子を使用しています。MSER機能とDoG (SIFT)機能を検出するときに、(不正な一致を拒否した後)満足できる一致を達成しました。 現在、私はGFTT(追跡のための優れた機能-Harrisコーナー)でコードをテストして比較を行っています。また、最終的なアプリケーションでは、一連のGFTT機能が視覚的機能追跡プロセスから利用できるようになるためです。 私が使用しcv::FeatureDetector::detect(...)ているのはstd::vector<cv::KeyPoint>、検出された機能/キーポイント/関心領域で満たされたものです。構造にcv::KeyPointは、フィーチャの場所に関する基本情報、sizeおよびoctaveキーポイントが検出された情報が含まれています。 GFTTを使用した最初の結果は、さまざまなタイプの機能の典型的なパラメーターsizeとoctaveパラメーターを比較するまではひどいものでした。 MSERはサイズ(10〜40px)を設定し、オクターブを0のままにします DoG(SIFT)はサイズとオクターブの両方を設定します(サイズとオクターブの比率は20から40の間) パラメータは常にGFTTです:サイズ= 3、オクターブ= 0 これは、GFTT機能の主な目的が照合ではなく追跡のみに使用されていたためだと思います。このような小さな特徴から抽出された記述子は、小さな1ピクセルのシフトを含む多くのものに対して差別的で不変ではなくなるため、これはマッチング結果の質の低さを説明しています。 私は手動で設定する場合sizeのGFTTをする10から12まで、私が使用しているときに非常に似て良い結果、取得MSERかのDoG(SIFT)を。 私の質問は、「go-with-with-10-see-if-it-works」よりもsize(および/またはoctave)をどれだけ増やすかを判断するより良い方法はありますか?可能な場合は増加をハードコーディングせずにプログラムで決定したいのですが、新しい/ 増加 / 推定アルゴリズムの選択を裏付けるいくつかの確かな引数がある限り、ハードコーディングで問題ありません。sizesizesizesize

3
AMとFMでサイドバンドが生成されるのはなぜですか?
信号が電磁スペクトルの搬送波に変調されると、その信号は搬送波周波数を取り巻くスペクトルのごく一部を占めます。また、搬送周波数の上下の周波数で側波帯が生成されます。 しかし、これらの側波帯がAMとFMでどのように、そしてなぜ生成されるのか、また、FMで生成される側波帯が2つしかないのに、なぜAMで生成されるのか?数学的にどのように生成されるかはすでに知っているので、具体的な例を挙げてください。 私が知っていることは、時間領域で、元の信号がキャリア信号に入れられると、実際にキャリア信号と乗算されます。つまり、周波数領域では、元の信号がキャリア信号と畳み込まれます。AMのこれら2つのサイドバンドは、実際にはキャリア信号のフーリエ変換です。 これは正しいです?

2
特に深度画像を対象とするコンピュータービジョンアルゴリズムはありますか?
私はkinectベースのアプリケーションで使用するマーカー検出アルゴリズムを調査してきました。私が見つけることができた作業の大部分は、明らかに「通常の」画像の特徴検出に焦点を当てています。 ただし、kinectハードウェアは、ピクセルごとに11ビットの深度値を提供します(基本的に、調整後)。 この深度画像には、オブジェクトのエッジの周りに投影された影からのさまざまな視覚的なアーティファクトもあります(たとえば、このビデオの濃い黒の境界線http://www.youtube.com/watch?v=-q8rRk8Iqww&feature=relatedを参照してください)。 一部の従来のマシンビジョンテクニック(エッジ検出など)はこれでうまく機能しますが、他のマシンビジョンテクニックはうまくいかず、これについて議論しているネット上の情報はほとんどないようです。 簡単な例として、depth値を使用すると、マーカーブロックを見つけたら、その方向を簡単に検出できます。 それで、特徴検出のための深度画像の処理をカバーする議論/論文などを見た人はいますか? 「深度」マーカーを検出するための優れたアルゴリズムを推奨できますか? 私がこれまでに行ったことは、イメージを処理するためにopencvを使用したアドホックな実験でしたが、安定していないか、十分に高速ではありません。 なんらかの試用をせずに市販のマシンビジョン製品にリンクする場合は、それが適切だと思う理由を回答に含めてください。

4
カラーチャートから色を認識する方法は?
以下のカラーチャートとカメラを使用して、チャート内の各パッチの色を抽出するビジョンアプリケーションを開発しています。これを行うには、まず画像内のチャート領域を検出し、その領域をパッチの場所を含む既存のテンプレートと一致させる必要があります。 私の質問:チャートの4つのコーナーを認識してカラーパッチ領域を検出する必要があります。下の画像に小さなはめ込み長方形が示すコーナーを見ることができます。これを実行する1つの方法は、ユーザーがコーナーをクリックしてそれらのコーナーを選択できるようにすることです。しかし、画像から四隅を自動的に検出する方法はありますか。

2
ウェーブレット変換
画像に対して2Dハール離散ウェーブレット変換と逆DWTを実行したい。2D haar離散ウェーブレット変換と逆DWTを簡単な言語で説明し、2D haar dwtのコードを記述できるアルゴリズムを説明してください?Googleで提供された情報は技術的すぎました。画像を4つのサブバンド(LL、LH、HL、HH)に分割するなどの基本的なことは理解しましたが、DWTおよびIDWTを実行するプログラムを作成する方法を本当に理解できません。画像全体として画像に対して実行されるため、DWTはDCTよりも優れていると読みましたが、頭上にいくつかの説明がありましたが、ここでは間違っているかもしれませんが、DWTとDCTの圧縮手法はDWTまたはDCTを実行すると画像サイズが小さくなるためです。皆さんが知識の一部を共有し、私の知識を強化することを願っています。 ありがとうございました 再:それは画像フォーマットと関係があります。DWTで使用される「ピクセルの値」とは何ですか?私はそれを画像のRGB値であると想定しています。 import java.awt.event.*; import javax.swing.*; import java.awt.image.BufferedImage; import javax.swing.JFrame; import javax.swing.SwingUtilities; import java.io.*; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; import javax.imageio.ImageIO; import java.awt.*; import java.lang.*; import java.util.*; class DiscreteWaveletTransform { public static void main(String arg[]) { DiscreteWaveletTransform dwt=new DiscreteWaveletTransform(); dwt.initial(); } static final int TYPE=BufferedImage.TYPE_INT_RGB; …

2
線形/ロジスティック回帰アプリケーションの例
信号処理(具体的には画像処理)への線形回帰またはロジスティック回帰の超単純なアプリケーションについて疑問に思っていましたか? 私は信号/画像処理の人々にいくつかの数学的な方法を説明するように求められた数学の男であり、彼らの分野に関連するいくつかの簡単な例を使用できるようにしたいのですが、画像処理についてはほとんど知りません。だから、私は複雑なものを探しているわけではありません(私は主題がわからないので、単純な方が良いです。これらのアルゴリズムの適用性を示すために何かを見つけたいと思っています)。 ご協力ありがとうございました!

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