Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
機械学習の為の事前準備
学習用データをどうやって集めるか
自己紹介
▪ 高木一成(@Takaki_)
▪ ゼンリン所属
▪ GISエンジニア。主にデータ解析/市場調査/企画作りをしています。
▪ 業務の合間にデータベース技術や機械学習について調査中。
▪ 公私共にPythonを利用しています。
▪ お...
「機械学習に手を出そう」と思ったものの…
▪ どこから手を付ければ良いか分からない…
▪ サンプルコードを動かす以上のことが出来ない…
▪ 学習用のデータが集められない
学習用データの集め方
▪ Google検索でライセンスフリーの画像を取ってくる
▪ 画像検索のオプションを使って問題ない画像を収集
▪ 自分が持っている写真を利用する
▪ 日々撮ってる写真を使えば問題無し
-------------------...
画像データの編集・加工をどうするか
▪ オープンソースを使って手持ちの画像を加工
▪ ImageMagick
▪ 老舗の画像処理用ツールセット
▪ 手持ちの画像を切り出すことが出来る
▪ サイズ変更や色調変更等も
▪ OpenCV
▪ こちらも...
ImageMagick
▪ インストールは公式サイト(http://www.imagemagick.org/)から
▪ 切り出しはconvertコマンド(-crop)を利用
▪ convert –crop 横ピクセルx縦ピクセル+始点(横)+始...
ImageMagickデモ
環境: Windows 10 Insider Preview
Surface3
CPU: Atom x7-Z8700 @a.6Ghz
メモリ: 4GB
コマンド
convert –crop 2000x2000+100...
ImageMagickの使いどころ
▪ 定点カメラでの撮影で収集した画像から、同一の箇所を切り出す
▪ Raspberry Pi + Motion(動体検知)で取得した画像から該当部分を切り出す
▪ 画像を処理可能な単位に分割する
▪ conv...
OpenCV
▪ インストールは公式サイト(http://opencv.org/)から。最新版は3.1。
▪ OpenCVの分類器(haarcascades)を使います。
▪ 分類器の設定ファイルはインストールフォルダ以下 build/data...
OpenCVデモ
環境はImageMagickのときと同じ
WinPython-64bit-2.7.10.3
OpenCV3.1
分類器を使って
ここをとってくる
顔部分を検出して切り出し
import cv2
image = cv2.imread('musume02.jpg', 1)
cascade_path =
'C:opencvsourcesdatahaarcascadeshaarcascade_f...
OpenCVの使いどころ
▪ 学習用データの収集
▪ 学習用データとしてそのまま使えるわけではない(ノイズが入る)が、手間は大分減る
▪ データ収集 → 機械学習 → データ可視化 のように、前処理と後工程で使用
前処理
• ImageMagi...
OpenCVの使いどころ
▪ 学習結果の可視化
import cv2
image = cv2.imread('musume02.jpg', 1)
cascade_path =
'C:¥opencv¥sources¥data¥haarcascad...
まとめ
▪ 機械学習を始めるときのハードルは「学習データをいかにして集めるか」
▪ 手持ちのデータを利用して学習データを作成するのが色々な意味で良い
▪ ImageMagickで規定個所の切り出し
▪ OpenCVの分類器で前処理
▪ Imag...
ご清聴ありがとうございました
ご質問などありましたらお気軽に
Upcoming SlideShare
Loading in …5
×

AITCオープンラボ_機械学習の為の事前準備

1,123 views

Published on

2016年1月AITCオープンラボで発表した資料です

Published in: Engineering
  • Be the first to comment

AITCオープンラボ_機械学習の為の事前準備

  1. 1. 機械学習の為の事前準備 学習用データをどうやって集めるか
  2. 2. 自己紹介 ▪ 高木一成(@Takaki_) ▪ ゼンリン所属 ▪ GISエンジニア。主にデータ解析/市場調査/企画作りをしています。 ▪ 業務の合間にデータベース技術や機械学習について調査中。 ▪ 公私共にPythonを利用しています。 ▪ おうちハックを頑張りたい ▪ 家電の音声制御とか ▪ 子どもの行動制御(ヤバそうな動作のアラート上げ)とか ▪ Amazon Echo/Listnrが欲しい。
  3. 3. 「機械学習に手を出そう」と思ったものの… ▪ どこから手を付ければ良いか分からない… ▪ サンプルコードを動かす以上のことが出来ない… ▪ 学習用のデータが集められない
  4. 4. 学習用データの集め方 ▪ Google検索でライセンスフリーの画像を取ってくる ▪ 画像検索のオプションを使って問題ない画像を収集 ▪ 自分が持っている写真を利用する ▪ 日々撮ってる写真を使えば問題無し ------------------------------------- ▪ 会社が持っている業務データを使う ▪ Google/Yahoo/Facebookが羨ましい…
  5. 5. 画像データの編集・加工をどうするか ▪ オープンソースを使って手持ちの画像を加工 ▪ ImageMagick ▪ 老舗の画像処理用ツールセット ▪ 手持ちの画像を切り出すことが出来る ▪ サイズ変更や色調変更等も ▪ OpenCV ▪ こちらも老舗。オープンソースのコンピュータビジョン向けライブラリ。 ▪ 画像処理・構造解析・パターン認識等が出来る便利ライブラリ ▪ 標準の分類器を使って学習データの作成が出来る ハサミのようなツール 手間のかかる作業を一括処理 ナイフのようなツール 技量があれば何でもできる
  6. 6. ImageMagick ▪ インストールは公式サイト(http://www.imagemagick.org/)から ▪ 切り出しはconvertコマンド(-crop)を利用 ▪ convert –crop 横ピクセルx縦ピクセル+始点(横)+始点(縦) 加工したいデータ 保存したいファイル名 ▪ Ex)convert –crop 100x100+500+200 test.jpg sample.jpg
  7. 7. ImageMagickデモ 環境: Windows 10 Insider Preview Surface3 CPU: Atom x7-Z8700 @a.6Ghz メモリ: 4GB コマンド convert –crop 2000x2000+100+300 Musume.jpg cropsample.jpg 100,300 2000
  8. 8. ImageMagickの使いどころ ▪ 定点カメラでの撮影で収集した画像から、同一の箇所を切り出す ▪ Raspberry Pi + Motion(動体検知)で取得した画像から該当部分を切り出す ▪ 画像を処理可能な単位に分割する ▪ convert –crop は画像ファイルを10×10に分割可 ▪ でかいRAWファイルの前処理で使うと便利です ▪ 機械学習だけでなく、日々の業務でも利活用の場は多いです。 覚えておくと仕事が楽に。
  9. 9. OpenCV ▪ インストールは公式サイト(http://opencv.org/)から。最新版は3.1。 ▪ OpenCVの分類器(haarcascades)を使います。 ▪ 分類器の設定ファイルはインストールフォルダ以下 build/data/haarcascades に色々あります。 ▪ 目、顔、身体(全身・上半身・下半身)、笑顔、ロシアのナンバープレートなどが抽出可。 ▪ 今回はPythonインターフェイス(WinPython)の2系からOpenCVを使用 ▪ OpenCV3以降はPython3でも使えるらしいのだけど…
  10. 10. OpenCVデモ 環境はImageMagickのときと同じ WinPython-64bit-2.7.10.3 OpenCV3.1 分類器を使って ここをとってくる
  11. 11. 顔部分を検出して切り出し import cv2 image = cv2.imread('musume02.jpg', 1) cascade_path = 'C:opencvsourcesdatahaarcascadeshaarcascade_fron talface_default.xml' cascade = cv2.CascadeClassifier(cascade_path) face_cascade = cascade.detectMultiScale(image, 1.1, 3) i = 0 for rect in face_cascade: x = rect[0] y = rect[1] w = rect[2] h = rect[3] img = image[y:y+h, x:x+w] cv2.imwrite('musume_face_' + str(i) + '.png', img) 画像読み込み 既定の定義を用いて 分類器クラスを作成 結果をfor文で回し 一つずつファイルとして出力 http://qiita.com/Takaki_/items/f1cf8d077836303f2028
  12. 12. OpenCVの使いどころ ▪ 学習用データの収集 ▪ 学習用データとしてそのまま使えるわけではない(ノイズが入る)が、手間は大分減る ▪ データ収集 → 機械学習 → データ可視化 のように、前処理と後工程で使用 前処理 • ImageMagick • OpenCV 機械学習 • Caffe • Chainer 後工程 • OpenCV
  13. 13. OpenCVの使いどころ ▪ 学習結果の可視化 import cv2 image = cv2.imread('musume02.jpg', 1) cascade_path = 'C:¥opencv¥sources¥data¥haarcascades¥haarcascade_frontalface_default.xml' cascade = cv2.CascadeClassifier(cascade_path) face_cascade = cascade.detectMultiScale(image, 1.1, 5) color = (255,0,255) for rect in face_cascade: cv2.rectangle(image, tuple(rect[0:2]),tuple(rect[0:2]+rect[2:4]),color, thickness=5) cv2.imwrite("rect_draw.png",image)
  14. 14. まとめ ▪ 機械学習を始めるときのハードルは「学習データをいかにして集めるか」 ▪ 手持ちのデータを利用して学習データを作成するのが色々な意味で良い ▪ ImageMagickで規定個所の切り出し ▪ OpenCVの分類器で前処理 ▪ ImageMagick・OpenCVともに利便性は高いので、使えるようになっていると便利です。
  15. 15. ご清聴ありがとうございました ご質問などありましたらお気軽に

×