機械学習とニューラルネットワーク - ページ 14

 

講義 21: 相対方位、両眼ステレオ、構造、二次方程式、キャリブレーション、再投影



講義 21: 相対方位、両眼ステレオ、構造、二次方程式、キャリブレーション、再投影

この講義では、相対方位、二次曲面、カメラのキャリブレーション、画像点と既知の 3D オブジェクトとの対応など、写真測量に関連するトピックについて説明します。講師は、歪みの問題を解決するためのさまざまな方法と、f や tz などのパラメーターを取得する方法について説明します。彼らはまた、完全な回転行列を見つける際の直交単位ベクトルの重要性を強調し、より安定した式を使用して k を見つけるためのソリューションを提供します。講師は、マシン ビジョンで重要な同次方程式を理解することの重要性を強調しています。

この講義では、コンピューター ビジョンとキャリブレーションに関連するさまざまなトピックについて説明します。これには、キャリブレーションに平面ターゲットを使用すること、外部標定のキャリブレーションのあいまいさ、回転パラメーターを表す際の冗長性、ノイズ ゲイン比による特定のパラメーターの統計的特性の決定などがあります。講義では、二次方程式を解く公式を説明し、反復を伴う近似法を紹介します。平面ターゲットのケースは、キャリブレーションおよびマシン ビジョン アプリケーションで一般的に使用される方法として説明されています。講義では、形状の表現と認識、および 3 次元空間での姿勢決定についても触れます。

  • 00:00:00 このセクションでは、写真測量における 4 つの問題の 2 番目である相対的な向きと、両眼立体視、モーション ビジョン、モーションからの構造との関連性について話します。講演者は解決策を考え出しますが、相対的な向きを決定できない面、特に 2 次面があることに注意します。次に、楕円体、1 枚または 2 枚のシートの双曲面、架空の形状を持つ曲面など、特定の種類の 2 次曲面について深く掘り下げます。話者は、サーフェスに定数項がない場合、右手系の原点、またはモーション ビジョンの時間 2 でのカメラの位置がサーフェス上にあることを意味すると説明します。さらに、r にマイナス b を差し込むと (b は 2 つのカメラ間の距離)、解が得られます。これは、サーフェスが両目を通過することを意味します。

  • 00:05:00 講義のこのセクションでは、スピーカーは、ステレオ ペアの左右のカメラ位置で対称である 2 次曲面方程式の特性と意味について説明します。方程式には定数項がありません。つまり、スケーリングがなく、ベースライン全体が表面上にあります。これは、表面が罫線面であり、2 つの罫線があることを示唆しており、製造にとって興味深いものになっています。この方程式は、平面の 1 つが両方の座標系の原点をエピポーラ平面として通過する平面など、さまざまな特殊なケースをカバーしています。この平面のイメージは直線であり、特に興味深いものではありませんが、もう一方の平面は任意であり、何でもかまいません。

  • 00:10:00 このセクションでは、地形図を再構築したり、動きから構造を復元したりする際のあいまいさの問題について説明します。2 つの問題は数学的に同じであるためです。この問題は狭い視野で発生する可能性が高くなりますが、ノイズ ゲインが高い状況ではさらに増幅される可能性があります。この問題に対処するには、広い視野が推奨されます。そのため、広い視野を得るために一緒に取り付けられた一連のカメラであるスパイダー ヘッドが航空写真用に作成されました。その後、講師は室内オリエンテーションに移ります。これは基本的にカメラのキャリブレーションです。消失点を使用した以前のキャリブレーション方法は機能していましたが、放射状の歪みを考慮するのはあまり正確ではなく、困難でした。講師は、半径方向の歪みを説明するためのより一般的な方法の必要性を示唆しています。

  • 00:15:00 このセクションでは、講師はレンズの設計に伴うトレードオフについて説明します。これには、画像が線に沿ってあるべき場所ではなく他の場所に表示される極座標のエラーを引き起こす放射状の歪みが含まれます。この歪みは一般に多項式を使用して近似され、適切な結果を得るには二次項で十分です。講義では、レンズの歪みを測定するために過去に使用された鉛直線法について説明します。

  • 00:20:00 このセクションでは、スピーカーは、バレル歪みやピンクッション歪みなど、画像に発生する可能性のあるさまざまな種類の歪みと、それらが k1 の符号にどのように関連しているかについて説明します。講演者はまた、多項式近似を使用して歪んだ座標と歪んでいない座標を変換する可能性と、これが最終的な最適化と使用される座標系にどのように影響するかについても言及しています。講演者は、最新のイメージング システムでは接線方向の歪みがなく、通常は回転対称であり、半径方向の歪みしか発生しないことに注目しています。

  • 00:25:00 このセクションでは、講師は、歪みの偏心や傾斜した画像面など、カメラのキャリブレーションで発生する可能性のある複雑さについて説明します。航空写真のような高品質の作品を作成するには、これらの要素を考慮する必要があります。講師は、倍率や画像の歪みに影響を与えるカメラ製造の機械的性質により、小さな誤差が生じる可能性があると説明しています。これは、より複雑な歪みモデルを使用することで補正できます。Tsai のキャリブレーション方法では、平面または 3 次元のキャリブレーション オブジェクトを使用します。講師はまた、以前は製造時にカメラを微調整することが多かったが、現在ではソフトウェア ソリューションとモデル エクステンションを使用して歪みに対処していると説明しています。

  • 00:30:00 このセクションでは、スピーカーは、画像ポイントと 3D オブジェクト上の既知のポイントとの間の対応を決定するプロセスについて説明します。ただし、消失点法とは異なり、巻尺を使用してキャリブレーション オブジェクトとカメラの関係を判断できる可能性は低いです。したがって、カメラ パラメーターを見つけることに加えて、キャリブレーション オブジェクトが空間内のどこにあり、どのように回転したかを把握するという問題を解決するために、外部標定を追加する必要があります。外部標定によって不明な点が増えますが、より正確な結果が得られます。内部標定には、透視投影式と主点および主距離が含まれます。このための戦略は、困難なパラメーターを排除し、測定値を変更して半径方向の歪みへの依存を減らす方法を見つけ、次に数値的方法に頼る前にいくつかのパラメーターの近似形式の解を見つけることです。

  • 00:35:00 ビデオのこのセクションでは、スピーカーは、双眼鏡ステレオで相対方向を計算するときに、反復解の適切な初期推定を取得する方法を説明しています。確立された原則を念頭に置く必要がありますが、最初の推測は答えではないため、この段階ではこれらの原則に違反することは許されます。話者は、xi 座標と yi 座標に行番号と列番号を使用し、f をピクセル サイズで表すと、最初の推測を決定するプロセスに便利であると説明します。正確に知られているキャリブレーション オブジェクトの回転と平行移動を含む、外部の向きについても説明します。キャリブレーション オブジェクト内の位置をカメラ オブジェクト内の位置に変換するために通常使用される方程式は反転され、未知の回転および移動パラメータを復元しようとするために使用されます。

  • 00:40:00 ビデオのこのセクションでは、放射状の歪みを処理し、f と tz を取得する際の課題について話します。推奨される解決策は、極座標で作業することです。この場合、半径方向の歪みは角度ではなく長さのみを変更し、未知数の少ない方程式を使用します。この式には、既知のキャリブレーション オブジェクトと画像座標の座標成分と、r と tx と ty の未知の成分が含まれます。解に必要な主点の位置を近似する線形方程式を作成できます。

  • 00:45:00 このセクションでは、スピーカーはイメージ センサーの主点を決定するプロセスと、マシン ビジョンにおける同次方程式の使用について説明します。主点を決定するために、話者は中心点を想定し、中心に近すぎる対応を破棄することを提案します。小さなエラーがそれらの方向に大きく影響する可能性があるためです。中心点が仮定されると、話者は、対応ごとに 8 つの未知数を見つけるために 8 つの方程式が必要であり、これらの方程式は同次であり、ゼロになることを説明します。同次方程式は、従来の教育では見過ごされがちですが、マシン ビジョンでは重要であり、それらをどのように扱うかを知ることが不可欠です。

  • 00:50:00 このセクションでは、スピーカーは、未知数の 1 つを固定し、それを選択した値に設定して、未知数を 7 つに減らすことによって同次方程式を解く方法について説明します。これは、少なくとも 7 つの対応が必要であることを意味し、エラーを推定するには、より多くの対応が必要です。線形方程式の過剰決定システムは、疑似逆行列などの手法を使用して解くことができます。最後に、計算されたベクトルを単位ベクトルにするためにスケール係数が計算されます。これは、識別された対応関係の健全性チェックとして機能します。この方法は、F、Tz、半径方向の歪み、および Tz を除くすべての未知数の最初の推定値を提供します。これには、さらなる分析が必要です。

  • 00:55:00 このセクションでは、相対方位、双眼鏡ステレオ、構造、二次方程式、キャリブレーション、および再投影に関連して f と tz を見つけるプロセスについて説明します。講義では、完全な回転行列を見つける際の直交単位ベクトルの重要性が強調されています。直交しない 2 つのベクトルが存在する場合、ベクトルのペアが直交するように、わずかな調整が必要です。次に、二次方程式が k を見つけるのにどのように問題になるかを説明するため、より安定した別の式が使用されます。

  • 01:00:00 このセクションでは、講師は二次方程式を解くための式と、ほぼ同じサイズの量の減算により計算で発生する可能性のある精度の低下について説明します。講師は、単純な解を提供できる反復を伴う近似法を紹介します。議論には、平面ターゲットのケースも含まれます。これは、その高精度と使いやすさから、キャリブレーションやマシン ビジョン アプリケーションで一般的に採用されています。講師は、特徴のコーナーが正確に決定されたパターンがターゲットに取り付けられ、2 つの異なる軸に沿ってコンポーネントの回転を測定することで、高精度のホイール アライメントが可能になると説明しています。

  • 01:05:00 このセクションでは、講師はキャリブレーションに平面ターゲットを使用する方法について説明します。これにより、既知の x、y、および z 値を持つ座標系を構築できます。このアプローチの方程式は未知数が少なく、必要な対応が 7 つではなく 5 つだけであるため、より効率的な方法になります。ただし、y 変換がゼロの場合、この方法は不正確になる可能性があるため、より正確なソリューションを得るには、tx を 1 に設定することをお勧めします。この講義では、平面の場合の回転行列の上位 2 x 2 部分を復元することにも触れています。

  • 01:10:00 このコーナーでは、昔は x 方向と y 方向の足踏みの縦横比の関係を見つけることが難しかったことを講師が説明します。さまざまなものが水平方向と垂直方向の間隔を制御するため、y に対して x をスケーリングする別のパラメーターが必要でした。講義では、混乱を招く代数の使用について言及されているため、メーカーのスペックシートを使用してアスペクト比を正確に見つけることができます。講師はまた、透視投影方程式と未知数 f と tz を知っていれば、1 つの対応を使用して両方を計算することが可能であると説明します。ただし、キャリブレーション ターゲット平面を使用しようとすると、深さの変化に問題があります。

  • 01:15:00 このセクションでは、講師がコンピュータ ビジョンにおける外部標定のキャリブレーションのあいまいさについて説明します。倍率が曖昧なため、焦点距離と平行移動を別々に決定することは不可能であるため、深さのバリエーションが必要です。講師は、キャリブレーション ターゲットが 45 度の角度で取り付けられていないと、外部の向きがあいまいになると説明しています。最後に、主点と放射状の歪みについて説明し、予測された画像座標と実際の画像座標の間の誤差を最小限に抑えるために非線形最適化が必要です。この目的には、MATLAB に組み込まれているパッケージ LM Diff をお勧めします。

  • 01:20:00 講演のこのセクションでは、プレゼンターが回転パラメーターを表す際の冗長性の問題について説明し、オイラー角、ギブス ベクトル、単位四元数などの解決策を提案します。ただし、単位四元数は 3 つの自由度に対して 4 つの数値で冗長です。発表者は、四元数のサイズと四元数のサイズの差に比例する別の方程式と誤差項を追加して、制約を強化することを提案しています。講義では、ノイズ ゲインの問題と、分析手法がない場合にこの問題に対処するためのモンテカルロ法の使用についても言及しています。

  • 01:25:00 このセクションでは、スピーカーは、入力を何度もいじることによって、ノイズ ゲイン比を通じて特定の回答の統計的特性を決定する方法を説明します。これにより、パラメーター空間での回答分布を分析し、放射状歪みの高次係数などの特定の要因が、ノイズ測定に対する感度のために十分に決定されていないことを確認できます。次に、これまでの 2 次元認識とパターンでの姿勢判定で培った知識を利用して、3 次元空間での形状と認識の表現と姿勢判定について説明します。
Lecture 21: Relative Orientation, Binocular Stereo, Structure, Quadrics, Calibration, Reprojection
Lecture 21: Relative Orientation, Binocular Stereo, Structure, Quadrics, Calibration, Reprojection
  • 2022.06.08
  • www.youtube.com
MIT 6.801 Machine Vision, Fall 2020Instructor: Berthold HornView the complete course: https://ocw.mit.edu/6-801F20YouTube Playlist: https://www.youtube.com/p...
 

Lecture 22: 外部標定、復元位置と方位、バンドル調整、オブジェクト形状



Lecture 22: 外部標定、復元位置と方位、バンドル調整、オブジェクト形状

この講義では、カメラの位置と向きが 3D 環境で決定される、写真測量における外部標定の概念について説明します。講師は、符号の三角形の規則と余弦規則を使用してオブジェクトの位置と向きを復元するなど、外部標定に関連する問題を解決するためのさまざまな方法について説明します。このビデオでは、一般化された円柱とメッシュを使用して 3D オブジェクトを表現し、それらをコンピューター ビジョンで整列させる方法についても説明します。また、任意の形状の凸オブジェクトを単位球に写像する方法である拡張ガウス画像を紹介し、非凸オブジェクトを扱う上での限界について説明します。さらに、このビデオでは、写真測量用の正確な 3D モデルを作成する際の非線形最適化とその応用についても触れています。

この講義では、2D と 3D の両方のシナリオにおける曲線のパラメーター化と曲率の計算について説明します。 2D では、閉じた凸曲線は、角度 eta と、曲線の半径の逆数である曲率に比例する密度によって単位円上に表すことができます。この講義では、イータを積分し、xy 方程式を使用して円形の画像の凸オブジェクトを取得する方法を示し、その表現を楕円などの他の形状に拡張します。 3D では、ガウス マッピングの概念が導入されて、表面上の点と単位球上の点が接続されます。表面の曲率は、曲率を測定する便利な単一のスカラー量であるガウス曲率を使用して説明されます。講義の最後に、2 つの面積 k と g の比率と、それが球の曲率にどのように関係しているかについて説明します。

  • 00:00:00 このセクションでは、写真測量における外部標定の概念について説明します。詳細なモデルを使用して、カメラを搭載したドローンが地形上空を飛行することで実演されます。外部標定には、ドローンのカメラの位置と、3D 環境でオブジェクトをどの角度から見るかを決定することが含まれます。これには、回転運動に 3 つ、並進運動に 3 つを含む 6 つの自由度が必要です。このモデルでは、問題を解決するのに十分な制約を提供するために、画像データ内に 3 つ以上の点が必要です。

  • 00:05:00 このセクションでは、講師が三脚の脚の長さを求めて R1、R2、R3 を決定する方法を説明します。光線を構成して角度を計算すると、未知の要素は 3 本の棒の長さだけになります。これらの長さが見つかると、3 つの球を交差させることで P0 を見つけることができます。ソリューションにはあいまいさが生じる可能性がありますが、これはミラー イメージまたはイメージの循環順序を使用して解決できます。かつてはこの問題を解決するための公式が本にあふれていましたが、今ではバンドル調整によって解決できるようになったと講師は説明します。

  • 00:10:00 このセクションでは、講師がさまざまな規則と方程式を使用して、外部標定に関連する問題を解決する方法、つまりオブジェクトの位置と方向を復元する方法について説明します。これらのルールの使用は、ナビゲーションと測量において重要でしたが、最近ではあまり使用されていません.必要な規則は符号の三角規則と余弦規則の 2 つだけですが、利便性のために他の規則が役立つ場合もあります。ここで説明する問題には、三角形の角度と距離を持ち、3 つの非線形方程式を使用して r1 と r2 を解くことが含まれます。平面の位置が検出されると、ベクトルを構築して、地上座標系に対するオブジェクトの向きを決定できます。最小二乗法と RANSAC 法を使用して、解を見つけて外れ値を処理することもできます。

  • 00:15:00 このセクションでは、講師がカメラの外向きについて説明し、カメラ座標系の 3 つのベクトルを回転行列を介してワールド座標系のベクトルに関連付ける方法について説明します。講師は、この連立方程式を 3x3 行列方程式として表現して、回転行列を解くことができると説明しています。この回転行列は正規直交行列として表現できます。より多くの対応がある場合は、最小二乗法を使用してイメージ プレーンのエラーを最小限に抑え、より正確な解を得ることができます。講師はまた、この方法が、複数のカメラが異なる位置から同じオブジェクトまたはシーンをキャプチャするバンドル調整にどのように使用できるか、および何百台ものカメラが関与する関連する問題の解決策をどのように提供するかについても言及しています。

  • 00:20:00 このセクションでは、スピーカーは写真測量における非線形最適化の問題と、Levenberg Markart などの方法によるその解決策について説明します。この最適化では、環境内のポイント、カメラの位置、カメラのプロパティ、放射状の歪みなど、環境の未知のパラメーターがあります。多くの制約と写真を使用して、研究者はさまざまなオブジェクトの正確な 3D モデルを作成することができました。時には、火山の上を飛んでいる 1 台のドローン カメラを使用することさえありました。講演者はまた、画像の興味深い点に言及し、それらを特定するために Lowe によるオンライン リソースについて説明し、写真測量の業界全体であるバンドル調整について簡単に触れます。

  • 00:25:00 このセクションでは、スピーカーは、多面体やメッシュなど、3D オブジェクトのさまざまな表現について説明します。多面体は比較的簡単に記述できますが、曲面の場合はメッシュの方が適しています。ただし、頂点には特定のラベルや意味がないため、メッシュの位置合わせはあまり意味がありません。講演者は、3D オブジェクトの位置と向きを復元するのに役立つオンライン リソースである拡張ガウス画像を使用することを提案しています。

  • 00:30:00 ビデオ講義のこのセクションでは、スピーカーは、平行移動や回転などの特定の不変性条件を満たす、コンピューター ビジョン内のオブジェクトの適切な表現を見つけるという概念を探ります。講演者は、そのような表現を見つける特定の試みに関する制限について説明し、次に 1 つの表現、特に一般化された円柱を調べます。この表現では、ジェネレータ シェイプを取得し、線に沿って移動して、断面が長さに沿ってどこでも同じであるという特性を持つ、より複雑なシェイプを生成します。スピーカーは、この表現が特定の不変性条件をどのように満たし、オブジェクトの認識と配置に役立つかについて説明します。

  • 00:35:00 このセクションでは、講師が一般化された円柱を使用してオブジェクトを表現する方法と、それらを組み合わせて 3D モデルを作成する方法について説明します。ただし、同じオブジェクトを記述する無限の方法がある場合、一意の表現を実現するのが難しいため、この方法には限界があります。したがって、講義は 3D 表現の出発点として多面体に戻り、3D 座標を持つ頂点のリストとグラフ構造を使用して、頂点と面の間の接続を記述します。

  • 00:40:00 このセクションでは、スピーカーは、オブジェクトの面に垂直な単位ベクトルを描画し、それらに面積を掛けることによってオブジェクトを表現する方法について説明します。この表現は、これらのベクトルの合計がゼロである限り、凸オブジェクトまたは複雑な多面体に対して一意である可能性があります。話者は、この表現は再構成ではなく、オブジェクトの認識と位置合わせに役立つことに注意します。非建設的な証明であるにもかかわらず、話者が説明するように、表現は抑止力にはなりません。

  • 00:45:00 講義のこのセクションでは、スピーカーは、平らな部分を持つ円筒形や円錐形などの非多面体オブジェクトをスライスに切り分け、次のことを考慮して単位ベクトルを構築することによって近似する方法について説明しますエリア。次に、スピーカーは単位球を構築し、オブジェクトの表面を表す球上の対応する点に質量を配置します。円柱面は球上の大円に対応し、円錐面は球上の小さな円に対応し、端の板は一点の大きな質量に対応します。話者は、この表現は目の前のタスクに対してさまざまな方法で使用できると説明しています。

  • 00:50:00 このセクションでは、講師は、オブジェクトを整列および認識するための表現の使用について説明します。表現には、各オブジェクトの向きの密度の計算が含まれます。ここで、オブジェクト上の各点は、単位球上に対応する点を持ちます。講師は、表現が平行移動と回転に対して不変であるため、実装が容易であると説明しています。密度は曲率を決定するために使用できます。ここで、密度が高い場合は曲率が低く、密度が低い場合は曲率が高くなります。次に、講師は拡張ガウス画像を紹介します。この画像は、表面法線を使用して、オブジェクト上の特定の点に対応する球上の点を決定します。講師は、3D に移行する前に、2D バージョンから始めて概念を理解することを提案しています。

  • 00:55:00 このセクションでは、任意の形状の凸オブジェクトを単位球にマッピングする方法について説明します。ガウスはこの方法を提案しました。この方法では、オブジェクトから点を球上の点に法線と同じ方向にマッピングします。この方法は、天の北極を特定したり、角度を測定するために太陽の位置と時期を調べたりするのが簡単であるため使用されます。このマッピングは可逆であるため、球体からオブジェクトへの同じ向きのポイント間の対応が可能です。ただし、この方法の制限は、非凸オブジェクトに関していくつかの問題があることです。

  • 01:00:00 このセクションでは、スピーカーは角度 eta と曲率に比例する質量の密度によって平面内の単位円をパラメーター化することについて説明します。曲率は、凸状の閉じた曲線の回転率であり、方向の変化率または曲線の半径の逆数です。密度は曲率の逆数であり、単位円でのこの表現は、2D の閉じた凸曲線に固有のものです。話者は、曲線の密度に寄与する小さなファセットに曲線を分割する方法を説明し、単位円上の曲線の表現の連続的なケースにつながります。 3D には反転はありませんが、話者はアイデアをさらに説明するために反転と統合を示しています。

  • 01:05:00 このセクションでは、講師が eta の積分と、2D の場合の円形画像の凸オブジェクトを取得するための x および y 方程式の使用について説明します。ただし、同じプロセスを 3D シナリオで使用することはできません。次に、講師は、質量分布の重心の概念を紹介し、閉じた凸曲線の原点にある必要があることを指摘します。彼はまた、特定の種類の大量配布のみが合法であるという制限についても説明しています。理論を説明するために、講師は半径 r の円の例を使用して曲率を決定します。

  • 01:10:00 講義のこのセクションでは、教授は、円形でなくても、円やその他の曲線の曲率半径を計算する方法を説明します。曲率は曲率半径の単純な逆数であり、半径は特定の位置での最適な円の半径です。教授は、簡単にするために数学を使用して楕円を押しつぶされた円として表す方法を示し、曲線を数学的に表すにはさまざまな方法があることを説明します。ただし、教授は、対称性があいまいすぎるため、この方法では向きを決定できないと指摘しています。

  • 01:15:00 講義のこのセクションでは、スピーカーは、方程式 (x/a)^2 + (y/b)^2 = 1 を使用して円をパラメトリックに表す方法を説明します。これを使用して円を生成する方法を示します。これは、可能なすべての x 値と y 値を試すよりも便利な方法です。次にスピーカーは、このパラメトリック表現が地球にどのように関係しているかを説明します。地球は、垂直方向に押しつぶされた球として見ることができます。また、微分を使用して曲線の法線を計算し、x と y を反転し、符号を変更して、円を球の表面にマッピングする方法についても説明します。最後のステップでは、法線方向を接線方向に一致させます。

  • 01:20:00 このセクションでは、楕円の曲率、つまり k に対する 1 を、単位円上の角度である eta に関して分析します。極値、つまり最大値と最小値は、eta が 0 に等しく、pi が 2 を超える位置で発生します。これは、半軸の端に対応します。曲率は連続的に変化し、半軸 a と b に依存します。座標系に一致しない楕円の極値の連続分布が計算されると、オブジェクト認識のために別の楕円と一致するように楕円を回転させることができます。よく一致する場合、オブジェクトは楕円です。そうでない場合は、そうではありません。

  • 01:25:00 このセクションでは、スピーカーは、2D 外部標定のアプリケーションと、円の畳み込みを使用して実行できる興味深いフィルタリング操作について説明します。ただし、主な焦点は 3D の外部標定にあり、ガウス マッピングの概念が導入されて、サーフェスの法線方向に基づいてサーフェス上のポイントを単位球上のポイントに接続します。この概念は形状に拡張され、表面の曲率が議論されます。ガウス曲率は、曲率を測定する便利な単一のスカラー量です。凸面では正の曲率が考慮され、非凸面では曲率は負と見なされます。

  • 01:30:00 このセクションでは、スピーカーは、それぞれ r の 2 乗と r の 2 乗に対して 1 である 2 つの面積 k と g の比率について説明します。この比率は球の曲率と一致しており、小さい球は高い曲率を持ち、大きい球の場合はその逆です。次に、ガウス曲率と、それが実行中の計算とどのように密接に結びついているかについて説明します。積分曲率についても言及されています。これは、滑らかではない表面に適用され、認識と位置合わせでどのように使用されるかについて、次の講義でさらに説明します。
Lecture 22: Exterior Orientation, Recovering Position & Orientation, Bundle Adjustment, Object Shape
Lecture 22: Exterior Orientation, Recovering Position & Orientation, Bundle Adjustment, Object Shape
  • 2022.06.08
  • www.youtube.com
MIT 6.801 Machine Vision, Fall 2020Instructor: Berthold HornView the complete course: https://ocw.mit.edu/6-801F20YouTube Playlist: https://www.youtube.com/p...
 

MIT 6.801 マシン ビジョン、2020 年秋。講義 23: ガウス画像、回転体、方向ヒストグラム、正多面体



Lecture 23: ガウス画像、回転立体、方向ヒストグラム、正多面体

このビデオの講師は、多面体として表現できない 3D オブジェクトの表現としての拡張ガウス画像 (EGI) について説明します。講演者は、積分曲率が形状の表面上のパッチにどのように関係するかを説明し、抽象的で離散的な実装における EGI の概念について説明し、楕円体、円柱や円錐などの回転体、および非凸面を含むさまざまな形状のガウス画像を探ります。鳥などのオブジェ。 EGI は、空間における物体の姿勢の決定に役立ち、マシン ビジョン データとの位置合わせに使用できます。回転体の曲率とガウス曲率を求める方法についても説明し、凸でないオブジェクトの EGI を計算する際の課題についても説明します。

コンピューター サイエンス コースの講義 23 では、講師はガウス イメージを使用してオブジェクトの認識と位置合わせを行う方法と、方向ヒストグラムを作成してライブラリ内のオブジェクトの真の形状を表す方法について説明します。また、ヒストグラムのビニング、球体の分割、回転体の整列、および通常のパターンとソリッドの課題についても説明します。この講義では、球体上の質量分布を使用してオブジェクトを表現する方法、隠れた表面要素を回避する方法、質量分布に対する曲率の影響を理解する方法について説明します。また、ビニング ヒストグラムにさまざまな形状を使用することの利点と欠点、および高品質のための規則的なパターンと形状の重要性についても説明します。

  • 00:00:00 このセクションでは、多面体として表現できない 3D オブジェクトの表現として拡張ガウス画像について説明します。ガウス画像は、オブジェクトの表面と、表面法線の同等性に基づく単位球上の点との間の対応です。ガウス曲率の逆数を球上の位置の関数としてプロットすることにより、それを使用して、その方向を指す法線がサーフェスのどの部分にあるかを定義できます。オブジェクト上のパッチでガウス曲率を積分すると、積分曲率と呼ばれる球上の対応するパッチの領域が得られます。対照的に、ガウス曲率を球面上の k にわたって積分すると、それに対応するオブジェクト上の領域が得られます。これは、より重要な量です。

  • 00:05:00 このセクションでは、スピーカーは積分曲率の概念と、それが形状の表面上のパッチにどのように関係するかについて説明します。彼らは、ある領域で曲率の積分をとることによって、そのパッチの方向の全体的な変化を捉えることができ、これが積分が計算しているものであると説明しています。次にスピーカーは、この概念を立方体に適用し、立方体の角の積分曲率は 2 分の 1 であると説明します。彼らはまた、方向に依存する球 (「g」と呼ばれる) 上の分布と、多面体に見られるものと同様に、いくつかの制約をどのように持つことができるかについても説明します。

  • 00:10:00 講義のこのセクションでは、角度のコサインに基づいて、特定の方向から見たときの凸状オブジェクトの見かけの面積について話します。話者は、内積が正のファセットのみがその角度から見えると説明し、すべてのファセットの合計がゼロであることに注意します。これは、重心が原点にあり、自我が質量中心を中心とする単位球上の分布であるという結論につながります。

  • 00:15:00 このセクションでは、EGI (Extended Gaussian Image) の概念について、抽象的な個別の実装でさらに説明します。 EGI の重心は、閉じているオブジェクトの表面と球の原点に対応します。 EGI は、球体の例など、幾何学的に定義されたオブジェクトについても正確に計算できます。球体の例では、EGI は対称的な性質により単純に R の 2 乗になります。楕円体などのより複雑なオブジェクトは、サーフェスの暗黙的な方程式によって表すことができます。これは、視覚化の生成やサーフェス上の統合には実用的ではありませんが、同じサーフェスを記述する別の方法を利用できます。

  • 00:20:00 このセクションでは、講師がシータとファイをパラメーターとして使用して、表面のパラメトリック記述を取得する方法について説明します。これらのパラメータに関して方程式を微分することにより、タンジェントを取得し、それを使用してサーフェス法線を計算します。また、曲率を定義する方法も示しています。次に講師は、緯度と経度の座標を使用して単位球をパラメータ化する方法を説明します。これには、単位球に垂直なベクトルの大きさを見つけることと、別のベクトルを定義することが含まれます。講義では、導出過程を詳しく説明します。

  • 00:25:00 このセクションでは、楕円体の拡張ガウス画像の概念について説明します。法線に関する曲率には、オブジェクトの表面上で半軸の交点を見つけることが含まれます。答えはシータファイ座標が参照するものではありませんが、認識と方向付けに使用されます。モデル内には最大値と最小値があり、それらは球上に分布しています。反対側に対称な 3 つの直交方向があります。実験データを使用すると、ガウス画像は空間における物体の姿勢の決定に役立ちます。

  • 00:30:00 講義のこのセクションでは、楕円体のような複雑な形状よりも計算しやすいオブジェクトである回転体に焦点を当てます。円柱、円錐、球、1 枚または 2 枚のシートの双曲面などの回転体には、軸を中心に回転してオブジェクトを生成するジェネレータがあり、これを球にマッピングしてエギを計算できます。オブジェクトの表面法線と赤道との角度が考慮され、オブジェクトのバンドを使用して球上の対応するバンドが取得され、オブジェクトの 3D 形状が 2D に縮小されます。オブジェクト バンドの面積は、2 pi にオブジェクトの半径を掛けてバンドの幅を掛けたものですが、球体の半径は緯度に依存し、緯度が高いほど半径は小さくなります。

  • 00:35:00 このセクションでは、講師は式 k=cos(eta)/r*kg を使用して回転体の曲率を見つける方法について説明します。ここで、kg は発電機の曲率です。講師は、曲率は、ジェネレータの 2D 曲率である円弧に沿って移動するときのサーフェス法線の方向の変化率であると説明しています。講師はまた、曲線が暗黙的な形で与えられるか、s や高さ z の関数として与えられるかによって、式に異なるバージョンがあることを示しています。最後に、r を s の関数として与えたときの回転体の曲率を求める便利な公式を説明します。

  • 00:40:00 このセクションでは、講演者は、回転体のガウス曲率を取得する 2 つの方法について説明します。最初の方法では、曲線ジェネレータを弧の長さの関数として r として定義し、曲線を指定する 12 の最も一般的な方法の 1 つを使用します。 2 番目の方法は、指定された他の変数 z を調べ、三角関数の項を使用して曲率を取得します。スピーカーは、z に関して微分する段階的なプロセスと、それがタンジェント項とセカント項にどのように関係するかを示します。ガウス曲率の最終的な式が提供されます。これは、最初の方法よりもやや複雑になりますが、ジェネレーター曲線が z の関数として r として与えられる場合には依然として有用です。

  • 00:45:00 このセクションでは、講演者は回転体の拡張ガウス画像を生成する方法について説明し、トーラスまたはドーナツ形状を使用した例を通して作業します。彼らは、トーラスのような非凸オブジェクトの場合、オブジェクト上に同じ表面方向を持つ複数のポイントが存在する可能性があり、マッピングを元に戻すことができないと説明しています。トーラスには 2 つの点があり、1 つは凸面で、もう 1 つは鞍点であり、独自の課題があります。

  • 00:50:00 このセクションでは、スピーカーは、半径と二次導関数の式を使用して、非凸オブジェクトの拡張ガウス画像を計算する方法について説明します。彼らは、表面の曲率が特定の点で正から負に変化し、オブジェクトを曲率の異なる 2 つの部分に分割することを観察しました。話者は、これに対処するための 2 つのオプションを提案します。同じ表面方向を持つすべての点でガウス曲率を計算してそれらを加算するか、いくつかの項を相殺するガウス曲率の合計の式を使用します。

  • 00:55:00 このセクションでは、講演者は拡張ガウス画像 (EGI) と、それを位置合わせに使用する方法について説明します。話し手は、トーラスの EGI は滑らかに変化し、極に特異点があることを説明します。これは、単位円柱に単位球を埋め込むことで視覚化できます。この変動を使用して、物体のモデルをマシン ビジョン データに合わせることができます。これは、滑らかに変化するが、極に向かって急速に成長する分布を持つ 2 つの球をまとめることによって行われます。ただし、オブジェクトは何も変更せずに軸を中心に回転することができるため、これは完全な姿勢にはなりません。これは回転体に適しています。講演者はまた、人々が離散多面体の場合の EGI を繰り返し再構築しようとした方法についても言及しています。

  • 01:00:00 このセクションでは、スピーカーは、ガウス画像からオブジェクトを再構築することは、原点からのすべての平面の距離をパラメーターとして使用して、大規模な検索または最適化プロセスを必要とする複雑な問題であると説明しています。ただし、この方法は、ガウス画像を使用した認識と位置合わせには必要ありません。この方法では、球上の分布を比較し、適切な一致が得られるまで一方の球を他方に対して回転させる必要があるためです。スピーカーはまた、球のバンドを理解する新しい方法を紹介します。これにより、曲率の計算と、極の近くでの押しつぶし効果の説明が可能になります。

  • 01:05:00 このセクションでは、講師がトーラスの領域と、それがガウス画像にどのように関係しているかについて説明します。彼は、形状が異なるが同じ領域の 2 つのドーナツの EGI が同じであると説明しています。これは、凸でないオブジェクトを許可することの欠点です。この一意性の喪失は、アプリケーションでは問題になる場合と問題にならない場合がありますが、これを非凸オブジェクトに拡張すると、それほどうまくいかないことがわかります。さらに、非凸オブジェクトの隠れた表面要素に問題があり、数値データを使用して EGI を構築するときに小さなエラーが発生する可能性があります。

  • 01:10:00 このセクションでは、講師が不完全な現実のオブジェクトを数値的に処理し、実際の形状に基づいてライブラリに配置する方法について説明します。フォトメトリック ステレオ データまたはメッシュ モデルを使用して、オブジェクトの表面の三角形パッチの表面法線と面積を計算する方法を説明しています。次に、方向ヒストグラムを表す表面法線に基づいて、球体に質量分布を作成する方法について説明します。この方法は、質量分布に対する曲率の影響と、質量寄与を差し引くのではなく加算することが有益である理由を理解する方法を提供します。全体として、この手法により、方向ヒストグラムの作成と、真の形状に基づくライブラリ内のオブジェクトの表現が可能になります。

  • 01:15:00 このセクションでは、スピーカーは方向ヒストグラムの概念について説明します。これには、球体をボックスに分割し、各セル内の出現回数をカウントすることが含まれます。この方法は、平行な筋繊維や脳内の水の流れ方向など、特定の方向への強い集中を示すために使用されます。また、方向ヒストグラムの均一な分布が不規則な組織を示す腫瘍のイメージングなどの分野にも適用されます。平面を分割するために正方形を使用することの欠点は、三角形よりも六角形のような丸みを帯びた形状の方が有利であると説明されています。

  • 01:20:00 このセクションでは、講師がビニング ヒストグラムのセルを選択する際の課題と、ヒストグラムを比較する際にランダム ノイズを考慮する方法について説明します。シフトされた 2 番目のヒストグラムを持つという概念が導入されましたが、このソリューションは次元が増加するにつれてより高価になります。別の解決策は、分散関数を使用して分布をたたみ込むことです。これは、前の解決策よりも安価に実行できる可能性があります。次に、球を分割する問題と、等しい面積、等しい形状、丸みを帯びた形状、規則的なパターン、ビニングの容易さなど、テッセレーションの望ましい特性に取り組みます。これらの望ましい特性は、平面の場合は簡単に達成できますが、球のような曲面ではより複雑になることに注意してください。

  • 01:25:00 このセクションでは、講師は、回転後に回転体をそれ自体と位置合わせする問題と、回転時に位置合わせする利点について説明します。彼は、12 面体をその表面に投影することによって球を 12 のセクションに分割する方法を説明し、これらのセクションのそれぞれを数値で表すことができます。球体を回転させた場合、セクションを表す数値は単純に並べ替えられ、品質が低下することはありません。ただし、回転後にセクションが重なると、各セクションで重みを再配分する必要があり、品質が低下します。次に講師は、方向ヒストグラムの開始点として規則的なパターンと規則的な立体について簡単に説明しますが、これについては次の講義で詳しく説明します。
Lecture 23: Gaussian Image, Solids of Revolution, Direction Histograms, Regular Polyhedra
Lecture 23: Gaussian Image, Solids of Revolution, Direction Histograms, Regular Polyhedra
  • 2022.06.08
  • www.youtube.com
MIT 6.801 Machine Vision, Fall 2020Instructor: Berthold HornView the complete course: https://ocw.mit.edu/6-801F20YouTube Playlist: https://www.youtube.com/p...
 

MIT 6.0002 Intro to Computational Thinking and Data Science, Fall 2016. 講義 1. 導入、最適化問題



1. はじめに、最適化問題 (MIT 6.0002 Intro to Computational Thinking and Data Science)

このビデオでは、コース「1. Introduction, Optimization Problems (MIT 6.0002 Intro to Computational Thinking and Data Science)」を紹介し、前提条件とコースの目的について説明します。このコースの主な焦点は、計算モデルを使用して世界を理解し、将来の出来事を予測することです。このビデオでは、最適化モデルについて説明しています。最適化モデルは、目的と制約に関する問題を解決する簡単な方法です。このビデオでは、ナップザック問題と呼ばれる特定の最適化問題についても説明しています。ナップザック問題とは、限られた数のオブジェクトからどのオブジェクトを取得するかを人が選択しなければならない問題です。このビデオでは、貪欲なアルゴリズムを使用してメニューを最適化する方法について説明します。このビデオでは、「貪欲な値」と呼ばれる、リソースを割り当てるための効率的なアルゴリズムについても説明しています。

  • 00:00:00 このビデオでは、コース「1. Introduction, Optimization Problems (MIT 6.0002 Intro to Computational Thinking and Data Science)」を紹介し、前提条件とコースの目的について説明します。このコースの主な焦点は、計算モデルを使用して世界を理解し、将来の出来事を予測することです。

  • 00:05:00 ビデオでは、最適化モデルについて説明しています。最適化モデルは、目的と制約に関する問題を解決する簡単な方法です。このビデオでは、ナップザック問題と呼ばれる特定の最適化問題についても説明しています。ナップザック問題とは、限られた数のオブジェクトからどのオブジェクトを取得するかを人が選択しなければならない問題です。

  • 00:10:00 このビデオでは、連続またはいわゆる分数ナップザック問題が説明され、貪欲なアルゴリズムが説明されています。最初に最良のものを取る問題はより複雑であり、問題の形式化が示されています。

  • 00:15:00 貪欲なアルゴリズムは、ナップザックがいっぱいになると、利用可能な最良のアイテムをナップザックに入れることで最適化問題を解決します。このアルゴリズムは効率的ですが、可能な限り最適なソリューションを見つけることが保証されているわけではありません。

  • 00:20:00 ビデオでは、貪欲なアルゴリズムを使用してメニューを最適化する方法について説明しています。このアルゴリズムは、値の取得、コスト密度の取得、および文字列表現関数を持つ Food というクラスに実装されています。関数構築メニューは、同じ長さの名前のリストと値のリストを取り、キー関数を使用して「最良」の意味を判断します。

  • 00:25:00 このビデオでは、「貪欲な値」と呼ばれる、リソースを割り当てるための効率的なアルゴリズムについて説明しています。このアルゴリズムでは、リソースの重みと需要が考慮され、大量のリソースを効率的に割り当てることができます。

  • 00:30:00 ビデオでは、匿名関数を作成するためのラムダ式の使用について説明しています。ラムダ式を使用して、一連のパラメーターで式を評価する関数を作成できることを説明しています。また、ラムダ式の関数を呼び出す方法も示します。

  • 00:35:00 このビデオでは、貪欲なアルゴリズムが並べ替え順序に応じて異なる結果をもたらす方法と、これがヒル クライミングでどのように問題になるかについて説明しています。また、貪欲なアルゴリズムを変更して常に最良の結果を得る方法も示します。

  • 00:40:00 ビデオでは、貪欲なアルゴリズムが、より最適ではあるが時間のかかるアルゴリズムよりも優れたソリューションにつながる場合があることについて説明しています。
1. Introduction, Optimization Problems (MIT 6.0002 Intro to Computational Thinking and Data Science)
1. Introduction, Optimization Problems (MIT 6.0002 Intro to Computational Thinking and Data Science)
  • 2017.05.19
  • www.youtube.com
MIT 6.0002 Introduction to Computational Thinking and Data Science, Fall 2016View the complete course: http://ocw.mit.edu/6-0002F16Instructor: John GuttagPro...
 

講義 2. 最適化問題



2. 最適化問題

このビデオでは、動的計画法と呼ばれる手法を使用して最適化問題を解決する方法について説明します。使用される例はナップザック問題です。この問題では、各ノードで異なる選択を行うと、同じ問題が解決されます。 maxVal 関数のメモ実装について説明し、動的計画法ソリューションの呼び出し数がゆっくりと増加することを示します。

  • 00:00:00 ビデオでは貪欲なアルゴリズムの長所と短所について説明し、検索ツリーを使用して問題を解決する方法の例を示しています。

  • 00:05:00 このビデオでは、ツリーの走査について説明し、最も左のノードには可能なアイテムが最も多く、最も右のノードには可能なアイテムが最も少ないことを説明しています。アルゴリズムは簡単で、複雑さは漸近的です。

  • 00:10:00 このビデオでは、最適化問題を解決するための再帰アルゴリズムがどのように機能するかを説明しています。アルゴリズムは、現在のアイテムを取得できない場合はツリーの左側のブランチを調べることから開始し、取得できる場合は右側のブランチに移動します。どちらの分岐もとれない場合、アルゴリズムは toConsider リストの最大値を返します。

  • 00:15:00 このビデオでは、真に最適なアルゴリズムを使用して検索アルゴリズムのパフォーマンスを向上させる方法を著者が示しています。

  • 00:20:00 このビデオでは、最適化の問題と、動的計画法と呼ばれる手法を使用してそれらを解決する方法について学びます。動的計画法は、時間の経過とともにデータがどのように蓄積されるかについての数学者の理解に基づいた最適化問題を解決する方法です。

  • 00:25:00 動的計画法は、同じ計算を何度も繰り返さないようにする方法です。これはフィボナッチ問題で使用され、フィボナッチ数に対する答えは、前の 2 つのフィボナッチ数を取得してそれらを加算することによって計算されます。

  • 00:30:00 このビデオでは、著者がメモ化 (結果を再帰的に計算するのではなく、結果をテーブルに格納する手法) を使用する利点について説明しています。彼らは、最初に小さな部分問題を解決し、次に結果を結合することにより、これを使用してフィボナッチ関数のパフォーマンスを向上させる方法を示しています。

  • 00:35:00 このビデオでは、最適化の問題と、場合によっては同じ問題を複数回解くことで解決策を見つける方法について説明しています。また、ナップザック問題についても説明します。ナップザック問題は、最適な下位構造 (つまり、同じ問題を解く 2 つのノード) を持つことが示されています。ただし、ビデオは、場合によっては、異なる問題を解決することで問題の解決策を見つけることができることも指摘しています。この場合、2 つのノードがメニューから異なるビールを取り出して同じ問題を解決しています。

  • 00:40:00 ビデオでは、動的計画法のソリューションを使用して最適化の問題に取り組む方法について説明しています。例のツリーは、個々のソリューションが異なって見える場合でも、各ノード (何を選択し、何を選択しないか) で異なる選択を行うと、同じ問題が解決されることを示しています。 maxVal 関数のメモ実装について説明し、動的計画法ソリューションの呼び出し数がゆっくりと増加することを示します。

  • 00:45:00 このビデオでは、最適化問題を解決するのがいかに難しいかについて説明していますが、動的計画法は、多くの場合、最適ではありませんが適切な解決策を提供できます。
2. Optimization Problems
2. Optimization Problems
  • 2017.05.19
  • www.youtube.com
MIT 6.0002 Introduction to Computational Thinking and Data Science, Fall 2016View the complete course: http://ocw.mit.edu/6-0002F16Instructor: John GuttagPro...
 

講義 3. グラフ理論モデル



3. グラフ理論モデル

このビデオでは、グラフ理論を使用してネットワークに関連する問題を理解し、解決する方法について説明します。このビデオでは、グラフの概念を紹介し、グラフ理論を使用して 2 点間の最短経路を見つける方法を説明します。このビデオでは、グラフ理論を使用してネットワークを最適化する方法も示し、モデルを実際の問題に適用する方法についても説明しています。

  • 00:00:00 このビデオでは、ネットワークの構造とダイナミクスを研究する数学の一分野であるグラフ理論について説明しています。グラフ理論を使用すると、最適化モデルをより簡単に設計および調査できるだけでなく、データがネットワークをどのように流れるかを理解することもできます。グラフ理論は、グラフとエッジを持つグラフの 2 つのカテゴリに分類されます。グラフには通常、ノードとエッジの 2 つの要素があります。ノードはデータ ポイントを表し、エッジはそれらの間の接続を表します。エッジのあるグラフはより一般的で、2 つのエンティティ間の関係をモデル化するために使用されます。エッジを持つグラフを作成する 2 つの方法を見ていきます: 無向と有向です。また、重みなどの情報をエッジに追加する方法についても説明します。最後に、コストの最小化または最短経路として知られる、グラフを介したナビゲーション方法を紹介します。

  • 00:05:00 グラフはエッジまたはアークで構成され、エンティティ間の関係をモデル化するために使用できます。それらは、とりわけ、輸送ネットワーク、金融ネットワーク、およびソーシャルネットワークで使用できます。

  • 00:10:00 このビデオでは、関係のネットワークを理解するために使用される数学的分野であるグラフ理論を紹介します。グラフを使用して現実世界の状況を表すことができ、ネットワーク内の要素間の相互作用の最短経路やシーケンスなどの情報を推測するために使用できます。このビデオでは、グラフ理論を使用して通勤やナビゲーションなどの問題を解決する方法を示します。

  • 00:15:00 グラフ理論は、ネットワークの構造と相互作用を扱う数学の分野です。このビデオでは、グラフ理論を使用して最短経路の問題を解決する方法を簡単に説明します。

  • 00:20:00 著者は、ノードとエッジを持つ有向グラフであるグラフ理論モデルと、ノードとエッジをディクショナリに格納する方法を紹介します。モデルを使用すると、グラフを簡単に表現できますが、最も効率的な方法ではありません。著者は、グラフを表現するためのより効率的な方法である隣接リストを紹介し、それを使用してエッジを追加し、ノードのすべての子を取得する方法を示します。

  • 00:25:00 このビデオでは、Python プログラミング言語を使用してグラフを作成、検索、および印刷する方法を説明しています。グラフは、ダイグラフ クラスのサブクラスとして作成できます。これにより、有向グラフと無向グラフが可能になります。ビデオは、グラフ内の 2 つのノード間にエッジを追加する方法の例を示しています。

  • 00:30:00 ビデオでは、最短経路問題、ルート ナビゲーション、通信ネットワークの 3 つのグラフ理論モデルが紹介されています。最初のモデルである最短経路問題は、目的が 2 つの都市間のルートを見つけることであるナビゲーションの問題です。 2 番目のモデルであるルート ナビゲーションは、目標がグラフ内の 2 点間のパスを見つけることである問題です。 3 番目のモデルである通信ネットワークは、ネットワーク内の 2 つのノード間の最短経路を見つけることを目標とする問題です。このビデオでは、最短経路の問題を解決するための 2 つのアルゴリズム、深さ優先探索と分割統治法を紹介しています。

  • 00:35:00 深さ優先検索では、アルゴリズムはソース ノードから開始し、最初のエッジ アウトを追跡して、それが正しい位置にあるかどうかを確認します。そうでない場合、アルゴリズムはノードから最初のエッジをたどり、ゴール ノードが見つかるかオプションがなくなるまで、この順序でエッジをたどり続けます。上記の例では、アルゴリズムはソース ノードから開始し、検索ツリーの最初のパスをたどり、途中で情報を出力します。ノードがパスにない場合、アルゴリズムはノードから最初のパスをたどり、ゴール ノードへのパスが見つかるまでノードの子を再帰的に探索します。

  • 00:40:00 このビデオでは、グラフ理論モデルを紹介しています。これは、問題の解決策を見つける方法を理解する方法です。このモデルは、パスはノードのリストであり、深さ優先検索を使用して解決策を見つけることができるという考えに基づいています。このモデルは、2 つの例で示されています。最初の例は、ボストンからシカゴへのパスを検索する方法を示し、2 番目の例は、フェニックスからニューヨークへのパスを検索する方法を示しています。モデルを紹介した後、ビデオは深さ優先検索を使用して問題の解決策を見つける方法を示します。

  • 00:45:00 このビデオは、グラフ理論モデルを使用して最適化の問題を解決する方法を示しています。このビデオでは、最初に深さ優先探索アルゴリズムを変更してエッジの重みの合計を最小化する方法を示し、次に幅優先探索を使用して最短の重み付きパスを見つける方法を示します。

  • 00:50:00 このビデオでは、変数間の関係を調べるために使用されるグラフ理論モデルを紹介しています。
3. Graph-theoretic Models
3. Graph-theoretic Models
  • 2017.05.19
  • www.youtube.com
MIT 6.0002 Introduction to Computational Thinking and Data Science, Fall 2016View the complete course: http://ocw.mit.edu/6-0002F16Instructor: Eric GrimsonPr...
 

講義 4. 確率論的思考



4. 確率論的思考

Guttag 教授は、確率過程と基本的な確率論を紹介します。

このビデオでは、スピーカーは、2 人の誕生日が同じである問題と 3 人の誕生日が同じである問題の確率計算の違いについて説明しています。彼は、2 人の補完的な問題は単純で、すべての誕生日が異なるかどうかの問題だけを含むと説明しています。ただし、3 人の場合、補数問題には多くの可能性を伴う複雑な論理和が含まれるため、数学がはるかに複雑になります。スピーカーは、鉛筆と紙の計算に頼る代わりに、これらの確率論的な質問に簡単に答えるためにシミュレーションを使用する方法を示します。彼はまた、すべての誕生日の可能性が等しいという仮定と、特定の日付が他の日付よりも一般的または一般的ではないことから、米国での誕生日の分布がどのように均一ではないかについても説明しています。最後に、スピーカーは聴衆に MIT の学生の誕生日のヒート マップを示し、生年月日の不均一な分布を説明するために分析モデルを調整するよりもシミュレーション モデルを調整する方が簡単であると結論付けます。

 

講義 5. ランダムウォーク



5.ランダムウォーク

ランダム ウォークに関するこのビデオでは、ランダム ウォークを研究し、シミュレーションが科学的および社会的分野におけるプログラミングの概念にどのように役立つかを理解することの重要性を取り上げています。スピーカーは、酔っ払いの歩数が原点からの距離にどのように影響するかを説明することから始めます。次に、このビデオでは、偏ったランダム ウォークとマゾヒスティックな酔っ払いを紹介し、単純なプロット コマンドを使用してシミュレーションと反復プロセスがどのように機能するかを示します。講演者は、シミュレーションを段階的に構築し、サニティ チェックを実施して精度を確保することの重要性を強調し、データを表すさまざまな種類のプロットを作成する技術について議論して締めくくります。このビデオでは、シミュレーションでより多くのバリエーションと複雑さを提供する方法として、WormField も紹介しています。

  • 00:00:00 このセクションでは、Guttag がランダム ウォークが重要である理由を説明し、酔っ払いのウォークの概念を例として紹介します。彼は、酔っ払いの歩数と原点からの距離との間に興味深い関係があるかどうかという問題を提起します。これを説明するために、彼は小さな例を示し、聴衆に、酔っぱらいが歩けば歩くほど遠くにいる可能性が高いのか、それとも何歩でもかまわないのかについて投票するように依頼します。 Guttag はまた、ランダム ウォークを研究することは、さまざまな科学的および社会的分野でプロセスをモデル化するのに役立ち、プログラミングに関連する重要なトピックを教えながら、シミュレーションが私たちの周りの世界を理解するのにどのように役立つかを実証するのに役立つと述べています。

  • 00:05:00 ランダム ウォークに関するビデオのこのセクションでは、スピーカーは、酔っ払った人が 1 歩または 2 歩歩いた後の開始点からの平均距離を分析することから始めます。ピタゴラスの定理を使用して、彼らは平均して、酔っ払った人が 2 つのステップを踏んだ後、開始点からさらに離れていることを決定します。次に、100,000 歩後に何が起こるかを分析し、シミュレーションを使用して、n 回の歩行の起点からの平均距離を計算します。シミュレーションの準備として、話者は場所、フィールド、酔っぱらいなど、いくつかの有用な抽象化を定義します。 Drunk クラスは、通常の Drunk サブクラスを含む 2 つのサブクラスを定義するために使用される基本クラスとして機能します。

  • 00:10:00 このセクションでは、酔っぱらいが y を増やしたり、y を減らしたり、x を増やしたり x を減らしたりして、ランダムに 1 つだけを返す、偏ったランダム ウォークについて学びます。マゾヒスティックな酔っ払いは、通常の酔っぱらいのサブクラスであり、北に移動することを好みますが、南に移動するときは 1.1 歩進み、1 歩前進するときは 9/10 歩しかかかりません。これは偏ったランダム ウォークを示唆していますが、酔っぱらいや場所が変更されないため、不変性が存在します。ただし、フィールドはディクショナリを介してフィールド内の場所に酔ってマップされるため、変更可能です。酔っぱらいがそこにいるかどうかを確認したり、フィールドの場所を取得したりするには、値のエラー メッセージを使用します。 moveDrunk を呼び出すと、x と y の距離が takeStep 関数から取得され、self.drunk がこの新しい距離に割り当てられます。

  • 00:15:00 このセクションでは、プレゼンターがランダム ウォークをシミュレートする方法と、ランダム ウォークを使用してさまざまなタイプの酔っぱらいがどのように動き回るかについての質問に答える方法を説明します。シミュレーションには、フィールドの作成とそれに酔っぱらいの追加が含まれます。酔っ払いは、フィールド内でさまざまな数のランダムなステップを実行します。発表者は、1 回の歩行をシミュレートする方法を示してから、複数の歩行をシミュレートして、酔っ払いの行動に関する質問に答える方法を示します。距離を平均し、平均、最小、または最大を見ることで、さまざまな種類の酔っぱらいが原点からどれだけ離れているかがわかります。次に、プレゼンターはシミュレーションの結果について話し合い、その結果がもっともらしく見えるかどうかを尋ねます。

  • 00:20:00 このセクションでは、John Guttag 教授が、シミュレーションを構築する際のサニティ チェックの重要性を強調しています。彼は、酔っ払った男が階段を上っている例を使用して、単純なケースの健全性チェックを実行します。これにより、すぐには明らかにならなかったシミュレーション コードのプログラミング エラーが明らかになります。エラーを修正した後、Guttag はシミュレーションを再度実行して結果を再確認し、健全性チェックに合格してもシミュレーションが正しいことを保証するものではないことを視聴者に安心させますが、それはシミュレーションが良好な状態であることを示す良い兆候です。

  • 00:25:00 このセクションでは、話者は通常の酔っ払いとマゾヒスティックな酔っぱらいを比較する実験について説明します。前者はランダムにステップを踏み、マゾヒスティックなバージョンは前の方向とは反対の方向により頻繁にステップを踏みます。この実験は、自虐的な酔っぱらいが通常の酔っぱらいよりもかなり進歩することを示しています。つまり、彼らの動きはある方向に偏っています。その理由を理解するために、講演者は Pylab を使用して酔っ払いのタイプごとに傾向線をプロットし、経時的な距離を視覚化します。PyLab は NumPy、SciPy、MatPlotLib のライブラリを組み合わせて MATLAB のようなプロット機能を提供します。講演者は、Python のプロット関数とその引数の基本的な構文についても説明します。

  • 00:30:00 このセクションでは、スピーカーは PyLab を使用してプロットを生成する方法を示します。プロット関数と凡例関数で使用できるさまざまな引数を使用します。彼はまた、プロットを作成する技術を習得することは貴重なスキルであるという意見を表明しています.さらに、話し手は、通常の酔っぱらいと自虐的な酔っぱらいの間の距離の傾向を調査し、プロットを示します。話し手は、通常の酔っ払いはおおよそ歩数の平方根で移動するのに対し、マゾヒスティックな酔っぱらいの傾向は numSteps の 0.05 倍の速度で移動することを発見します。スピーカーは、データ ポイントが線で切り離されている新しい種類のプロットを示すことで締めくくります。

  • 00:35:00 このセクションでは、ビジュアライゼーションがデータへの洞察をどのように提供できるかについてスピーカーが説明します。ランダム ウォークの終わりの位置をプロットすることで、彼はさまざまなタイプの酔っ払いの行動とそれらの違いを示しています。彼は、単にエンドポイントのスプレッドシートを提示するのではなく、プロットを使用してデータを理解することの重要性を強調しています.講演者はまた、泥酔者の位置を別の場所にテレポートするワームホールを備えた Field のサブクラスである OddField についても紹介します。彼は、酔っぱらいがテレポートできるランダムな場所を含むワームホールの辞書を作成し、シミュレーションの変動性を高めました。

  • 00:40:00 ビデオのこのセクションでは、ランダム ウォークを使用して酔っぱらいの動きをシミュレートする方法と、ワームホールが酔っ払いの行き着く先に大きな影響を与える方法についてインストラクターが説明します。彼はまた、クラスの定義から始めて、1 つまたは複数の試行に対応する関数を構築し、結果を報告する、段階的にシミュレーションを構築することの重要性を強調しています。さらに、単純なプロット コマンドを使用して、シミュレーションを理解するのに役立つさまざまなタイプのプロットを作成する方法を示します。

  • 00:45:00 このセクションでは、スピーカーはスタイル イテレーターを一度だけセットアップして n スタイルを定義する一般的なパラダイムについて話します。次のスタイルを取得します。スタイルには、マーカー、線、色、サイズなどが含まれており、プロットを読みやすくするためにデフォルト設定から変更するのが好きです。スピーカーは、このアプローチの柔軟性を強調し、さまざまなプロット スタイルを実現するための実験を奨励しています。次の講義では、他の現象のシミュレーションについて掘り下げ、シミュレーションの信頼性について議論します。
5. Random Walks
5. Random Walks
  • 2017.05.19
  • www.youtube.com
MIT 6.0002 Introduction to Computational Thinking and Data Science, Fall 2016View the complete course: http://ocw.mit.edu/6-0002F16Instructor: John GuttagPro...
 

講義 6. モンテカルロ シミュレーション



6. モンテカルロ シミュレーション

このビデオでは、モンテカルロ シミュレーションがどのように機能し、それを使用して未知の量の値を推定する方法について説明しています。このビデオでは、この方法がどのように機能し、異なるサンプル サイズによってどのように影響を受けるかについて説明します。

  • 00:00:00 この講義では、John Guttag が、モンテカルロ シミュレーションのしくみと、未知量の値を推定するのにどのように役立つかについて説明します。彼はまた、方法の成功の鍵は、母集団から抽出されたサンプルが、抽出元の母集団の特性を反映する傾向があることであると述べています。

  • 00:05:00 ビデオでは、モンテカルロ シミュレーションについて説明しています。モンテカルロ シミュレーションでは、母集団からサンプルを抽出し、分析して平均的な動作を判断します。この例では、コインを 100 回投げ、表または裏を決定します。表が決まると、次のフリップの確率が計算されます。裏が決定された場合、次のフリップの確率は利用可能な証拠に基づいて計算されます。表が再び決定された場合、次の裏返しの確率は、利用可能な証拠とコインが公平であるという仮定に基づいて計算されます。 3 回目の表が決定された場合、次のフリップの確率は、コインが公平であるという仮定と利用可能な証拠に基づいています。コインが公正であると信じる理由がないため、次の裏返しの確率は低くなります。

  • 00:10:00 モンテカルロ シミュレーションでは、ランダムなイベントの予測不可能な結果は、結果の分散によって捉えられます。分散が大きくなると、シミュレーションの精度の信頼度が低下します。ルーレットは分散が大きく、結果の予測が難しいゲームです。

  • 00:15:00 このビデオでは、結果の確率が毎回同じである場合、ルーレット ホイールのスピンの期待リターンが 0 であることを示すために、モンテカルロ シミュレーションが実行されます。大数の法則によれば、試行回数が無限大になると、リターンが 0 とは異なる可能性が 0 に収束します。

  • 00:20:00 「ギャンブラーの誤謬」とは、ある状況で自分の期待が満たされない場合、これは将来修正されるという信念です。平均値への回帰は、1885 年にフランシス ガルトンによって造られた用語で、極端な出来事 (両親が異常に背が高いなど) の後に、次のランダムな出来事がどのように極端でなくなる可能性が高いかを表しています。この概念はルーレットにも当てはまります。公正なルーレット ホイールを 10 回回転させて 10 個の赤が出た場合、これは極端なイベントです。ギャンブラーの誤謬は、スピンが独立している場合に予想される 1.1024 の確率とは対照的に、次の 10 回のスピンでより多くの黒が描かれるはずであると言うでしょう。悪い冗談を言うことができるのはグリムソン教授だけではありません。

  • 00:25:00 このビデオでは、John Guttag が平均への回帰がどのように機能し、なぜギャンブルで重要なのかを説明しています。次に、ヨーロピアン ルーレットがフェア ルーレットのサブクラスであり、ポケット 0 をゲームに追加する方法を示します。この余分なポケットは数字を得るオッズに影響を与え、オッズが常に同じであるヨーロピアン ルーレットのサブクラスであるアメリカン ルーレットよりも 0 に近づけます。

  • 00:30:00 モンテカルロ シミュレーション法を使用して、確率と確率比を推定します。ビデオは、異なるサンプル サイズが推定確率の精度にどのように影響するかを示しています。分散と標準偏差の背後にある計算も説明されています。

  • 00:35:00 モンテカルロ シミュレーションは、未知の値を推定する方法です。モンテカルロ シミュレーションを使用して、ルーレット ホイールに賭けた場合の予想収益、試験の予想成績、および選挙候補者の予想投票数を推定できます。経験則では、データの 68% が平均の前後 1 標準偏差内にあるとされています。

  • 00:40:00 経験則によると、誤差の分布が正規分布であれば、シミュレーションで計算された平均値の信頼度は高くなるはずです。

  • 00:45:00 このビデオでは、確率密度関数 (PDF) と、それを使用して確率変数が特定の値をとる確率を計算する方法について説明しています。確率密度関数は、平均を中心に対称であり、平均にピークがあります。そのため、確率変数が特定の値をとる確率を記述するためによく使用されます。マイナス 1 と 1 の間の曲線の下の領域の割合は、およそ 68% です。
6. Monte Carlo Simulation
6. Monte Carlo Simulation
  • 2017.05.19
  • www.youtube.com
MIT 6.0002 Introduction to Computational Thinking and Data Science, Fall 2016View the complete course: http://ocw.mit.edu/6-0002F16Instructor: John GuttagPro...
 

講義 7. 信頼区間



7.信頼区間

このビデオでは、正規分布、中心極限定理、シミュレーションを使用した pi の値の推定など、統計に関連するさまざまなトピックについて説明します。講師は Python を使用して、正規分布のヒストグラムと確率密度関数をプロットする方法と、直交法を使用して積分を近似する方法を示します。さらに、スピーカーは、統計手法の基礎となる仮定を理解することの重要性と、シミュレーションの有効性を保証するための精度チェックの必要性を強調しています。信頼区間は統計的に有効なステートメントを提供できますが、必ずしも現実を反映していない可能性があり、シミュレーションの結果が実際の値に近いと信じる理由が不可欠です。

  • 00:00:00 このセクションでは、講師が経験則の基礎となる仮定と、ランダム ライブラリを使用して Python で正規分布を生成する方法について説明します。これらは、正規分布の離散近似を作成する方法と、重み付けされたビンを使用してヒストグラムをプロットする方法を示しています。ビンに重みを付ける目的は、各アイテムに異なる重みを付けて、それに応じて y 軸を調整できるようにすることです。

  • 00:05:00 このセクションでは、講師が Python を使用して正規分布のヒストグラムと確率密度関数 (PDF) をプロットする方法を説明します。彼は、pylab ライブラリを使用してヒストグラムを作成するコードを示しています。y 軸は、特定の範囲内に収まる値の割合を示しています。次に、PDF を定義し、Python を使用して PDF をプロットする方法を示します。 PDF 曲線は、確率変数が 2 つの値の間に入る確率を表します。曲線の下の領域は、この確率が発生する可能性を示します。インストラクターは、平均がゼロで標準偏差が 1 の標準正規分布の例を使用します。

  • 00:10:00 このセクションでは、スピーカーは確率密度関数 (PDF) をプロットする方法を説明し、グラフの Y 値を解釈します。 Y 値は、実際には累積分布関数の密度または導関数であり、1 を超えたり負になったりする可能性があるため、実際の確率ではありません。話者は、曲線の下の領域を積分することで特定の範囲内に収まる値の確率を決定できるため、曲線の形状が Y 値自体よりも重要であることを強調しています。次にスピーカーは、統合のための「scipy」ライブラリの「統合クワッド」アルゴリズムを簡単に紹介します。

  • 00:15:00 ビデオのこのセクションでは、スピーカーは積分と呼ばれる数値手法を使用して積分を近似する方法について説明します。彼は、3 つの引数を受け取る関数 Gaussian を使用してこの手法の例を示し、それらを引数のすべての値を提供するタプルと共に直交関数に渡す方法を示します。次にスピーカーは、ミューとシグマのランダムな値を使用してガウス関数の経験則をテストし、結果が期待される範囲内にあることを示し、ルールの有効性を示します。最後に、彼は正規分布の重要性と多くの分野での普及について説明しています。

  • 00:20:00 このセクションでは、スピーカーは正規分布と、それが男性と女性の身長や石油価格の変化などのさまざまなシナリオにどのように適用されるかについて説明します.ただし、ルーレットの回転など、すべてが正規分布に従うわけではありません。一連のスピンを扱う場合、話者は中心極限定理がどのように適用されるかを示します。この定理は、母集団から十分に大きなサンプルを取得すると、サンプルの平均は正規分布し、その平均はその平均に近くなるというものです。人口。

  • 00:25:00 このセクションでは、スピーカーは、サンプル平均の分散が、サンプル サイズで割った母集団の分散にどのように関連しているかを説明します。スピーカーは、サイコロの数を変えて複数回サイコロを振るシミュレーションを使用し、サイコロの数が増えるにつれて標準偏差が減少することを示しています。さらに、スピーカーは、平均の分布がどのように正規分布を形成するかを示します。これは、中心極限定理の有用性を示しています。話者は、この概念をルーレット ゲームにも適用し、ルーレット スピンからの平均収益の分布が正規分布と同様の形をとっている様子を示します。

  • 00:30:00 このセクションでは、スピーカーは、元の値の分布の形状に関係なく、中心極限定理 (CLT) を使用して、十分に大きなサンプルを使用して平均を推定する方法について説明します。話者は、経験則が完全に正確でなくても、ほとんどの場合に役立つほど十分に近いと説明しています。さらに、ランダム性とモンテカルロ シミュレーションは、pi の値など、本質的にランダムではないものの計算にも役立ちます。これは、人々が歴史を通じて pi の値をどのように推定してきたかについての歴史的な説明によって実証されています。

  • 00:35:00 このセクションでは、スピーカーは、歴史を通じて pi の値を推定するために使用されるさまざまな方法について説明します。この方法には、96 辺の多角形の構築と、針をランダムに落として円周率の値を推定するモンテカルロ シミュレーションが含まれます。シミュレーションでは、数式を使用して、円内の針と正方形内の針の比率を求めることにより、円周率を推定しました。講演者はまた、アーチャーを使用してモンテカルロ法をシミュレートしようとする試みと、Python を使用してモンテカルロ シミュレーションを構築することについても言及しています。

  • 00:40:00 このセクションでは、スピーカーは、シミュレーションを使用して pi を推定する方法と、信頼区間を使用してその精度を決定する方法について説明します。シミュレーションでは、床に針を投げて線を横切る数を数えます。より多くの針が pi のより良い推定につながります。精度を判断するために、標準偏差は、推定値の平均を推定値の長さで割って計算されます。次に、ループを使用して、pi の推定値が特定の精度範囲内になるまで針の数を増やし続け、推定値の信頼性を高めます。 pi の推定値は、針の数が増えるにつれて単調に良くなるわけではありませんが、標準偏差は単調に減少し、推定値の信頼性が高まります。話者は、良い答えを出すだけでは十分ではなく、答えが実際の値に近いと信じる理由があれば十分であることを強調します。

  • 00:45:00 このセクションでは、スピーカーは統計的に有効なステートメントと真のステートメントの違いについて説明します。シミュレーションによって統計的に有効な信頼区間が得られる場合もありますが、現実を正確に反映しているとは限りません。スピーカーは、4 を 2 に置き換えることでシミュレーションにバグを導入します。信頼区間は有効ですが、pi の推定値は完全に間違っています。シミュレーションの精度を確保するには、サニティ チェックを実行する必要があります。任意の領域の面積を推定するために一般的に有用なランダム ポイント サンプリングの手法を紹介し、統合などの本質的にランダムではないものを計算するためにランダム性を使用する方法の例として使用します。
7. Confidence Intervals
7. Confidence Intervals
  • 2017.05.19
  • www.youtube.com
MIT 6.0002 Introduction to Computational Thinking and Data Science, Fall 2016View the complete course: http://ocw.mit.edu/6-0002F16Instructor: John GuttagPro...