31
みんなのPython勉強会 #16 Sep 7, 2016 阿久津 剛史 Start Python Club 1 私のPython学習奮闘記 #6 〜コンピュータビジョン編〜

S16 t1 python学習奮闘記#6

Embed Size (px)

Citation preview

みんなのPython勉強会#16

Sep7,2016阿久津 剛史

StartPythonClub1

私のPython学習奮闘記#6 〜コンピュータビジョン編〜

自己紹介

•  阿久津 剛史@akucchan_world

•  某メーカー勤務– 非プログラマ

•  Python経験2年ちょい– まだまだ初心者ですorz

2

Q1.ポケモンGOはやりましたか?

3hCp://www.pokemongo.jp/

Q2.画像検索を使ったことはありますか?

4

Q3.顔認識機能を使ったことはありますか?

5

CNN,“WhyfacerecogniOonisn'tscary--yet”,hCp://ediOon.cnn.com/2010/TECH/innovaOon/07/09/face.recogniOon.facebook/

いずれもコンピュータビジョンが使われています

6

コンピュータビジョンとは?

コンピュータビジョン(computervision)は大雑把に言って、「ロボットの目」を作る研究分野である。

この分野はコンピュータが実世界の情報を取得する全ての過程を扱うため、画像センシングのためのハードウェアから情報を認識するための人工知能的理論まで幅広く研究されている。また、近年ではコンピュータグラフィックスとコンピュータ・ビジョンの融合が注目を集めている。

7

Wikipedia,“コンピュータビジョン”hCps://ja.wikipedia.org/wiki/コンピュータビジョン

Pythonのコンピュータビジョンパッケージ

8

mahotas

『実践コンピュータビジョン』“ProgrammingComputerVisionwithPython”(PCV)

JanErikSolem(@jesolem)

1章 基本的な画像処理

2章 画像の局所記述子

3章 画像間の写像

4章 カメラモデルと拡張現実感

5章 多視点幾何

6章 画像のクラスタリング

7章 画像検索

8章 画像認識

9章 画像の領域分割

10章  OpenCV

目次

1章 基本的な画像処理

2章 画像の局所記述子

3章 画像間の写像

4章 カメラモデルと拡張現実感

5章 多視点幾何

6章 画像のクラスタリング

7章 画像検索

8章 画像認識

9章 画像の領域分割

10章  OpenCV

目次

1章 基本的な画像処理

12

エンパイア・ステートビルの画像

•  empire.jpg•  縦800px*横569px

13

白黒画像(グレースケール)

14

•  濃度(強度)を256階調で表現•  0=白、255=黒

125 123 123 ...

126 125 125 ...

127 126 125 ...

... ... ... ...

白黒化

(800,569)

カラー画像(RGB)

15

188 186 186 ...

189 188 188 ...

189 188 187 ...

... ... ... ...

133 131 131 ...

134 133 133 ...

135 134 133 ...

... ... ... ...

88 86 86 ...

89 88 88 ...

88 87 86 ...

... ... ... ...

= + +

•  R(赤)、G(緑)、B(青)の合成•  各ピクセルの色強度は256階調

R G B

(800,569,3) (800,569) (800,569) (800,569)

2章 画像の局所記述子

16

2つの写真は同じですか?

17

2つの写真は同じですか?

18

2つの写真は同じですか?

19

マシンは特徴量を使う

20

画像の特徴量

PCVで扱う2つの特徴量(記述子)

21

Harrisコーナー記述子

HarrisとStephensによって考案されたコーナー(角)の検出アルゴリズム。画像の勾配を計算して、ピクセルごとに特徴を抽出する。

SIFT特徴量

ScaleInvariantFeatureTransform(スケール不変特徴量変換)。DavidLoweが考案した特徴量抽出法。スケール、回転、明度に対して不変でロバストな特徴抽出ができる。

3章 画像間の写像

22

顔の画像の位置合わせ

23

•  J.K.Keller氏の顔画像データセット•  16年間毎日、顔写真を撮影した

手順

① 制御点(両目と口の位置)を読み込む② 顔画像の位置を補正する③ 画像データの平均を取る④ 主成分分析(PCA)をするfile:pcv_03_2_jkfaces.ipynb

24

パノラマ写真を作る

手順

① 画像ファイルを読み込む② SIFT特徴量を計算する③ RANSACでホモグラフィーを推定する④ ホモグラフィーに応じて画像を変形する⑤ 対応点に合わせて画像を重ねるfile:pcv_03_3_panorama.ipynb

26

7章 画像の検索

27

ケンタッキー大学

28

物体認識ベンチマークデータセット

29

•  4枚1組の画像データセット

画像検索のデモ

30

① 画像の特徴をSIFT特徴量で記述する② SIFT特徴量をBoVWとして、データベースに保存す

る③ 画像ボキャブラリの中から、類似する画像をランキ

ングして表示する。

まとめ

•  『実践コンピュータビジョン』を題材として、コンピュータビジョンの基本をプログラミングしながら、学びました。

•  Pillowを軸にして、豊富なPythonパッケージを使って、いろいろなアプリケーション開発ができます。

•  実用上はOpenCVの利用やJavaScriptなどほかの言語による開発が必要になる場合もあると思います。