トップ «前の日記(2017/06/22) 最新 次の日記(2017/06/25)» 編集

kaztomo日記


2017/06/23

_ [Python]OpenCVも勉強してみたい

とある勉強会の場にいらっしゃった方が、OpenCV を使って動画顔認識を されておられたことから、俺も「動画物体認識したいっ!」と触発された。

OpenCV という名前は聞いたこと有ったけど使ったことはなかったので、 一度使ってみようとインストールから始めることに。まずは静止画で (^^;;

試した環境:

  1. 色々とググりながら、OpenCVのビルドが不要な 3.0.0バージョンを選択。
  2. OpenCV がインストールできたら、Jupyter notebook (on Anaconda2) にて、OpenCVを使った顔認識(Haar-like特徴分類器) の最後に載っているサンプルを実行。その際に若干の記述修正が必要。
ファイルパスが相対パスだったりするので、下記のような絶対パスにする
face_cascade = cv2.CascadeClassifier(r'C:\opencv\build\etc\haarcascades\haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier(r'C:\opencv\build\etc\haarcascades\haarcascade_eye.xml')

# イメージファイルの読み込み
img = cv2.imread(r'C:\opencv\sources\samples\data\lena.jpg')
# 必要ならリサイズしておく
#img = cv2.resize(img, (1280, 1024))

ホント簡単すぎる。\(^o^)/

他の顔写真を試してみたけど、顔が小さいと目鼻検出はムリだったり、 変な場所を顔と認識したりと、精度については別途チューニングが必要そうと感じた。 完璧すぎると自主的なチューニング取り組みする気が削がれるし、 機械学習ほかへの取り組みを促しているんだろうと思う。


参考にさせて頂いたサイト:

_ [SQL]2つの sqlite3 DB を串刺しして SELECTしてみる

OANDA REST API を使って、7つの通貨ペア (AUDUSD, EURUSD, GBPUSD, NZDUSD USDCAD, USDCHF, USDJPY)を取得して sqlite3 DB として保存しているけど、 通貨の関係を見るために複数の DBを串刺しにして表示したいと思った。

早速ググってみたところ、 sqlite3 は単一ファイルDBなので、大規模でない限り1つにしたほうが良いとか 書かれてるんだけど、やっぱりあるじゃん。そういう方法が (^o^)/

USDJPY の 5分足DB と GBPUSD 5分足DBとを合成して、GBPJPY を作ってみる。

% sqlite3 ForexDB/USDJPYm5.db
sqlite> attach database "ForexDB/GBPUSDm5.db" as gbpusd;
sqlite> .mode column
sqlite> .width 10 8 7 7
sqlite> select hd.date,hd.time,
   ...>  hd.close as USDJPY,
   ...>  gbp.close as GBPUSD,
   ...>  round(gbp.close*hd.close, 4) as calGBPJPY
   ...> from hd, gbpusd.hd as gbp
   ...> where hd.date=gbp.date and hd.time=gbp.time limit 10;
Date        Time      USDJPY   GBPUSD   calGBPJPY
----------  --------  -------  -------  ----------
2017/06/19  17:55:00  111.023  1.28066  142.1827
2017/06/19  18:00:00  111.026  1.28061  142.181
2017/06/19  18:05:00  110.972  1.28052  142.1019
2017/06/19  18:10:00  110.959  1.28053  142.0863
2017/06/19  18:15:00  111.003  1.28064  142.1549
2017/06/19  18:20:00  111.032  1.28089  142.2198
2017/06/19  18:25:00  111.024  1.28097  142.2184
2017/06/19  18:30:00  110.999  1.28085  142.1731
2017/06/19  18:35:00  110.95   1.28105  142.1325
2017/06/19  18:40:00  110.936  1.28054  142.058
sqlite>

参考にさせて頂いたサイト:

上記が引用された Yahoo知恵袋のリンク