2017/06/23
_ [Python]OpenCVも勉強してみたい
とある勉強会の場にいらっしゃった方が、OpenCV を使って動画顔認識を されておられたことから、俺も「動画物体認識したいっ!」と触発された。
OpenCV という名前は聞いたこと有ったけど使ったことはなかったので、 一度使ってみようとインストールから始めることに。まずは静止画で (^^;;
試した環境:
- Windows7 pro 64bit
- Anaconda2-4.3.0 (Python2.7.13) 64bit
- OpenCV 3.0.0
- 色々とググりながら、OpenCVのビルドが不要な 3.0.0バージョンを選択。
- 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知恵袋のリンク