コンピュータサイエンス系勉強ノート

計算機科学に限らず日々学んだことを色々まとめていきます

Python

確率伝播法(Belief Propagation)を実装してみた(Python)

確率伝播法とは?確率伝播法とは信念伝播法(Belief Propagation)ともよばれ,ベイジアンネットワークやマルコフ確率場などのグラフィカルモデル上で各ノードが持つ状態の周辺分布を効率的に求めるためのアルゴリズムです.元々はこの周辺分布を求めようとす…

マルコフ確率場を用いたノイズ除去を組んでみた(Python)

確率伝播法を使う必要がでてきたので,まずはマルコフ確率場についての勉強をしました.今回はマルコフ確率場上で画像上のノイズを除去するサンプルプログラムを組んでみました.ソースコード #encoding:utf-8 import numpy as np import cv2 import matplot…

オプティカルフローの実装(Python)

オプティカルフローを求めるための方法の1つであるLucas Kanade法を実装してみました.勾配法Lucal Kanade法を実装する前にまず勾配法について学ぶ必要があります.勾配法とは,連続する2枚の画像において追跡対象の物体の移動量は微小であると仮定し,オプ…

平均情報量でクラスタリングの曖昧さを図ってみる(python)

混合ガウス分布でクラスタリングを行う際に任意の点がどのクラスタに属するかの所属度を使って,その点がどのクラスタに属するかの曖昧さを平均情報量で求めてみました.何かに使えるかもしれないのでメモっておきますまずサンプル点を生成するまずクラスタ…

パーティクルフィルタ組んでみた(Python)

研究でトラッキングをする必要がでてきたので,トラッキング分野では非常によく用いられているパーティクルフィルタについて勉強しました.それについてまとめておこうと思います.パーティクルフィルタとは?時系列データ中の観測データがあるパラメータに従…

Iterative Closest Point を試してみた

今回はIterative Closest Point(ICP)アルゴリズムを試してみました.ICPは点群Aと点群Bが与えられた際に点群Bを回転と平行移動させて点群Aに位置合わせするためのアルゴリズムだそうです。具体的なアルゴリズムは以下の通り。 点群Bの各点について点群Aの中…

平均値シフトでトラッキングしてみた(Python)

平均値シフトでトラッキングをしてみました.理屈はよくわかりませんが,最初にトラッキング対象を囲むようなウインドウを作成し,ウインドウ内でトラッキング対象の特徴量を計算してあげます.フレームが更新されるとウインドウ内の各画素でどれくらい特徴…

janomeで形態素解析してみた(Python)

Pythonで使える主な日本語形態素解析ライブラリにはMecabがありますが,導入までには色々と手間がかかります.(私だけかもしれませんが・・) 実はpip install一発でインストールできる日本語形態素解析ライブラリがあります.それがjanomeです.janomeはMeca…

Pythonでテンプレートマッチング実装

Pythonでテンプレートマッチングを実装しました.類似度尺度には,正規化相互相関(NCC)・相互相関係数(ZNCC)・差の二乗和(SSD)・差の絶対和(SAD)の四種類を使用しました.使用データ画像は以下の画像を使用. マッチング対象画像 パターン画像正規化相互相関…

中心極限定理を確かめてみる(Python)

大数の法則はある分布からN個のサンプルを拾ってきたときNが無限大になればサンプル平均が期待値に収束するというものでした.それの上位版のような法則に中心極限定理があります.中心極限定理とは簡単に言えば,ある分布からサンプルをN個拾ってくることを…

大数の法則を確かめてみる(Python)

ご存知の方も多いと思いますが確率統計の分野で大数の法則というのがあります.大数の法則とは簡単に言えば,ある試行を回繰り返してのような確率変数が手に入ったとすると, ・・・(1)(1式)で求めた確率変数の平均が期待値に収束するというものです.平均値…

MNISTの手書き数字データで主成分分析の練習(Python)

今回はMNISTの手書き数字データを使って数字識別をやってみたいと思います.Pythonではscikit-learn内の関数を呼び出すことで簡単にデータをダウンロードできます.画像サイズは28×28ピクセルです.ソースコードは適当です.ダウンロード用のコードは以下の…