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はたくさんの問題や改善点を指摘してくれるので,
実際にエラーを修正する際には,