PyCon JP 2014参加レポート第3回は、
OpenCVのpythonインターフェース入門
はじめにMasaki Hayashi氏によるOpenCVのpythonインターフェース入門のセッションをご紹介します。Hayashi氏は現在大学院にて機械学習の画像認識の研究をしており、
Computer Visionとは?
まずは導入部分で、
- カメラで撮影した画像、
動画、 デプス (Kinect) などから実世界の様子を計算機で (できれば自動的に) 把握する技術分野 - 画像認識、
画像処理、 3D復元などををひっくるめてComputer Visionと呼ぶ
OpenCVの概要
次にOpenCVの概要ついて次の項目をあげて説明を行いました。OpenCVをPythonから使用する場合の主要モジュールや、
- C++言語向けのComputer Vision大規模ライブラリ
- Python、
Javaなどのラッパーも標準提供されている - 画像処理、
動画像入出力、 顔検出などComputer Visionの基本的な道具がそろっている - 最新バージョンはOpenCV2.
4.9
PythonでOpenCVを使うメリット
またC++ではなくPythonを利用するメリットとして、
- NumPyやSciPyとの連携
- C++と違ってインタラクティブに、
実験的に実行できる (IPythonも使用できる) - IPython Notebookによる全ての結果のノート保存、
共有 - scikit-learn, pandasなどの機会学習、
データサイエンス用のライブラリとの相性も良い
次にOpenCVによる画像データにのフォーマットに関する説明になりました。OpenCVで読み込んだ画像データはnumpy配列になると説明しました。numpy配列になるといろいろなライブラリとの連携も簡単にできるので、
実際のデモでは、
Improving code quality through static analysis for Python
次にDaniel Izquierdo氏によるセッションについて紹介します。
Izquierdo氏はベネズエラ出身で現在は日本に住んでおり、
Why static analysis?
まずはなぜstatic analysisが必要なのかについて、
- Find errors.
- Find security issues.
- Reduce complexity.
- Keep code clean.
- Find bugs.
- Enforce coding style.
- Calculate code metrics.
Popular static analysis tools for Python
次にPythonでのstatic analysisのツールについてサンプルを交えながら解説しました。Pylintの使用例を元に実際のコードと、
次に実際にプロジェクトへstatic analysisを組み込む方法について説明を行いました。まずはstatic analysisはたくさんの問題や改善点を指摘してくれるので、
実際にエラーを修正する際には、
データ分析の世界へようこそ! ~マーケティングに活かせるPythonライブラリ~
次にTakahiro Ikeuchi氏によるデータ分析に関するセッションをご紹介します。まずは冒頭で英語によるLTを行いました。前日行われたKennth氏のキーノートに触れ、
またこれからセッションで紹介する、
なぜデータ分析か?
LT終了後に、
なぜデータ分析が必要かについては次のような特徴を挙げて説明を行いました。またPythonをデータ分析のツールとして活用する事をお勧めしていました。
- 正しい現状認識
- 再現性のある打ち手
- 施策の客観的な評価
ライブラリ
次にマーケティングに活用できる、
またPython3.
NumPyとは
次にNumPyについての説明となりました。行列についての演算が簡単にできること、
- 高速な行列計算のできる数値計算ライブラリ
- 和、
積、 スカラー倍、 転置行列などができる - pandasなども内部で使用している
pandasとは
次にpandasを用いるとデータ操作を簡単に行う事ができ、
- データの操作を容易に行える
(read_ csv、 head/ tail、 merge、 describe) - 直感的な操作ができる
- 各種データ形式へのI/
0を備える (Excelファイルなど)
SciPyとは
次にSciPyには次のような特徴があると説明し、
- 高度な科学計算ライブラリ
- 統計、
距離計算から幾何学変換など
scikit-learnとは
次にscikit-learnについての説明となりました。scikit-learnは機会学習のライブラリであり、
- 機械学習のライブラリ
- 日本語の情報はまだ少なめ
matplotlibとは
最後にデータの可視可についてのお話となりました。データをビジュアライズする分野は注目度が高く、
そしてPythonのライブラリであるmatplotlibについて紹介し、
- ビジュアライズのためのモジュール
- IPythonと組み合わせると便利
データ分析の分野でのPythonライブラリを一通り学べることが出来て非常に楽しいセッションでした。また実際のマーケティングの事例を元にしたデモだったので、
Pythonではじめる野球プログラミング
次にShinichi Nakagawa氏によるPythonではじめる野球プログラミングのセッションをご紹介します。Nakagawa氏は野球のソーシャルゲームをプレイしており、
まずは元となるデータがどこから取得できるかについて説明を行いました。基本的には公式サイトなどからデータを取得することは難しく、
実際に取得できるデータには1871年〜2013年までのMLB選手、
sqlacodegenとは
次に実際のサービスを開発するに当たっての、
- sqlacodegen
- DBのスキーマからSQLAlchemyのModelコードを自動生成
- MySQLやPostgreSQLに対応
アプリの構成
次にDjangoでのアプリ解説についてのお話となりました。フレームワークにはDjango、
- Python3.
4 + Django1. 7 - Bootstrap
- morris.
js - HIGHCHARTS
野球の指標
次に野球の指標について解説し、
またピタゴラス勝率と実際の勝率の相関図を表示し、
- BABIP
(本塁打を除くグランド内に飛んだ打球が安打になった割合) - ピタゴラス勝率
(得点と失点が等しいときの勝率は5割であるという仮説に基づき生み出された指標、 予想勝率を算出する)
最後にオープンデータを使用したデータ解析および可視可について解説しました。オープンなスポーツデータを取得する事は簡単ではなく難しいようです。
日本でもオープンデータの活用方法が模索されており、
次回は
2日目は全部で15個のセッションが行われ、
参加者の方も前日よりリラックスして楽しんでいただけているように感じました。他のセッションに関しても次のリンクより資料、
第4回ではPyCon JP 2014のキーノート、