More Related Content
PDF
ベイズ機械学習(an introduction to bayesian machine learning) PDF
PPTX
【DL輪読会】Parameter is Not All You Need:Starting from Non-Parametric Networks fo... PDF
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ PDF
論文紹介"DynamicFusion: Reconstruction and Tracking of Non-‐rigid Scenes in Real... PPTX
深層学習の数理:カーネル法, スパース推定との接点 PDF
PDF
What's hot
PPTX
Image Retrieval Overview (from Traditional Local Features to Recent Deep Lear... PDF
[DL輪読会]NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis PDF
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation PDF
PDF
PDF
異常検知と変化検知 9章 部分空間法による変化点検知 PDF
PDF
オープンワールド認識 (第34回全脳アーキテクチャ若手の会 勉強会) PPTX
PDF
基礎からのベイズ統計学 輪読会資料 第4章 メトロポリス・ヘイスティングス法 PDF
PDF
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~ PPTX
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets PDF
【チュートリアル】動的な人物・物体認識技術 -Dense Trajectories- PPTX
【DL輪読会】WIRE: Wavelet Implicit Neural Representations PDF
PDF
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF... PDF
PPTX
PDF
Similar to 画像処理でのPythonの利用
PDF
コンピュータビジョン7章資料_20140830読書会 ODP
PDF
静岡Developers勉強会コンピュータビジョンvol2 PDF
PDF
Opencv object detection_takmin PDF
Face Recognition with OpenCV and scikit-learn PDF
PDF
PPTX
PPTX
PDF
PDF
Pythonによる機械学習入門〜基礎からDeep Learningまで〜 PDF
PDF
PDF
AV 画像認識とその周辺 - UT Startup Gym 講演資料 PDF
PPTX
PDF
Fast, Accurate Detection of 100,000 Object Classes on a Single Machine PPTX
2015年12月PRMU研究会 対応点探索のための特徴量表現 PDF
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv More from Yasutomo Kawanishi
PDF
TransPose: Towards Explainable Human Pose Estimation by Transformer PDF
全日本コンピュータビジョン勉強会:Disentangling and Unifying Graph Convolutions for Skeleton-B... PDF
Pythonによる機械学習入門 ~Deep Learningに挑戦~ PDF
Pythonによる機械学習入門 ~SVMからDeep Learningまで~ PPTX
PPTX
PDF
PDF
第17回関西CVPRML勉強会 (一般物体認識) 1,2節 PPTX
KEY
画像処理でのPythonの利用
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
画像処理まわりのPython
PIL(Python Imaging Library)
http://www.pythonware.com/library/pil/handbook/index.htm
OpenCV
http://docs.opencv.org/
scipy.ndimage
http://docs.scipy.org/doc/scipy/reference/ndimage.html
画像を扱うライブラリが充実してきた
- 8.
PIL : PythonImaging Library
インストール: $ easy_install pil
一番手っ取り早く“画像処理”が出来る
画像の読み書き
フォーマット変換
サイズ,解像度変換
各種フィルタ処理
図形の描画
- 9.
- 10.
OpenCV
インストール: http://opencv.jp/download
Ubuntuなら
sudo apt-get install python-opencv
高度な処理が可能!
カメラからの入出力
様々な特徴抽出
顔認識
画像処理研究者の多くが利用
(C++での利用が主だと思うが)
画像は numpy.array 形式で扱う
shape=(高さ,幅,チャンネル数),
dtype=numpy.uint8 です
- 11.
OpenCV プログラム例
SURF特徴を取り出し,それを基に対応付け
import cv2
img1 = Image.open(“lena.jpg”)
img2 = Image.open(“lena_rotate.jpg”)
surfdetect = cv2.FeatureDetector_create(“SURF”)
surfextract = cv2.DescriptorExtractor_create(“SURF”)
keys1 = surfdetect.detect(img1)
keys2 = surfdetect.detect(img2)
keys1, features1 = surfextract.compute(img1, keys1)
keys2, features2 = surfextract.compute(img2, keys2)
- 12.
OpenCV プログラム例
SURF特徴を取り出し,それを基に対応付け
(続き)
# 対応点を探索
dm = cv2.DescriptorMatcher_create(“BruteForce”)
match = dm.match(features1,features2)
# ↑対応する特徴点のインデックスの組みが入っている
# あとは頑張って可視化(省略)
# C++なら cv::drawMatchesという関数があるが
# Pythonでは見つけられなかった…
# 今後実装されるのかも
cv2.imshow(“result”, result)
cv2.waitKey()
- 13.
OpenCV プログラム例
Haar-like特徴を使った顔検出
#!/usr/bin/env python
import cv2
cc = cv2.CascadeClassifier()
# 学習済みの識別器データを読み込み
cc.load("haarcascade_frontalface_alt.xml"):
img=cv2.imread("lena.jpg")
# 顔検出
faces = cc.detectMultiScale(img, 1.1)
#あとはfacesを画像に描画すればOK
- 14.
- 15.
- 16.
PILとNumpyの相互変換
PIL -> Numpy
nimg = numpy.asarray(pimg)
Numpy -> PIL
pimg = Image.fromarray(nimg)
これで PIL/numpy/scipy/OpenCV の関数
が自由に利用できる!
- 17.
- 18.
- 19.
- 20.
- 21.
主成分分析のPython実装
主成分分析
OpenCV
cv2.PCACompute()
scikit-learn
sklearn.decomposition.PCA()
固有値・固有ベクトルの計算(を個別にやる場合)
numpy.linalg.eig()
scipy.linalg.eig()
注意点:教科書的にはデータxは列ベクトルだけど,
プログラム的には行ベクトルで扱う
- 22.
OpenCV プログラム例
# 頑張って各行に画像を入れる(imgvec=numpy.reshape(img,1)を使用)
images = load_to_mat(filenames)
# PCAする(3次元空間へ)
mean, eigenvectors =
cv2.PCACompute( images, maxComponents=3)
# 背景を推定したい画像
img = cv2.imread(“input.bmp”)
# 固有空間へ投影
vec = cv2.project(img, mean, eigenvectors)
# 画像を復元
bgimg=cv2.backProject(vec, mean, eigenvectors)
あとは img と bgimg を引き算すればOK
- 23.
- 24.
Scikit-learn プログラム例
import sklearn.decomposition
#線形カーネルでKernel PCA (たぶんDual PCAと同じ)
kpca = sklearn.decomposition.KernelPCA(kernel=“linear",
fit_inverse_transform=True)
# 1行が1枚の画像になっている行列をもとに学習(とても時間がかかる)
kpca.transform(images)
# 背景を推定したい画像
img = cv2.imread(“input.bmp”).reshape(1)
# 固有空間へ投影
vec = kpca.transform(img)
# 画像を復元
bgimg = kpca.inverse_transform(vec)
- 25.
物体領域の計算
背景差分法
- =
観測画像 img 背景画像 bimg 差分画像 result
# 画像同士の差を取る
diff = cv2.absdiff(img,bimg)
# しきい値以上の画素を選択
fgmask = diff < threshold
# 差分結果の画像を生成
result=numpy.zeros(img.shape[0:2], dtype=numpy.uint8)
result[ fgmask] = 255
- 26.