More Related Content
PDF
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介 PDF
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜 PDF
【DL輪読会】Mastering Diverse Domains through World Models PDF
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018) PPTX
PPTX
PDF
Attentionの基礎からTransformerの入門まで PDF
What's hot(20)
PPTX
【DL輪読会】ViT + Self Supervised Learningまとめ PDF
【メタサーベイ】Vision and Language のトップ研究室/研究者 PPTX
【DL輪読会】Parameter is Not All You Need:Starting from Non-Parametric Networks fo... PDF
PDF
SSII2018TS: 3D物体検出とロボットビジョンへの応用 PDF
2018/12/28 LiDARで取得した道路上点群に対するsemantic segmentation PDF
Deep Learningと画像認識 ~歴史・理論・実践~ PDF
LSTM (Long short-term memory) 概要 PDF
Machine learning CI/CD with OSS PPTX
【DL輪読会】Visual Classification via Description from Large Language Models (ICLR... PPTX
[DL輪読会]PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metr... PDF
Generative Models(メタサーベイ ) PDF
三次元点群を取り扱うニューラルネットワークのサーベイ PDF
PDF
PlaySQLAlchemy: SQLAlchemy入門 PDF
PPTX
[DL輪読会]Dense Captioning分野のまとめ PDF
数学カフェ 確率・統計・機械学習回 「速習 確率・統計」 PPTX
PDF
見やすいプレゼン資料の作り方 - リニューアル増量版 Similar to 画像処理でのPythonの利用(20)
PPTX
PDF
【関東GPGPU勉強会#2】OpenCVのOpenCL実装oclMat PDF
Pythonによる機械学習入門〜基礎からDeep Learningまで〜 DOCX
PDF
Opencv object detection_takmin PDF
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011 PDF
PDF
PDF
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう ODP
PPTX
T69 c++cli ネイティブライブラリラッピング入門 PDF
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」... PDF
PDF
PPTX
PDF
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド PPTX
Lecuture on Deep Learning API PDF
PPTX
PDF
How to Make Own Framework built on OWIN More from Yasutomo Kawanishi(11)
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
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.