OpenCV 3.0ではPythonからT-API経由でOpenCLが使えるらしいと聞いて、さっそくパッケージ化して入れてみた。
パッケージは下記。手抜きなので、2.xのパッケージを全部削除してから入れないとダメなど、色々問題あるけれども自己責任で。
http://www4.pf-x.net/nazodane/opencv_3.0.0-beta-1_amd64.deb
3.0ではレガシーなAPIが廃止されたとのことだが、移行ドキュメントが見当たらないし、Google検索では旧APIが引っかかりまくってて残念。取りあえず、引っかかったものだけ挙げてみる。
- cv2.CV_LOAD_IMAGE_COLOR → cv2.IMREAD_COLOR
- cv2.cv.CV_TERMCRIT_ITER → cv2.TERM_CRITERIA_MAX_ITER
- cv2.cv.CV_TERMCRIT_EPS → cv2.TERM_CRITERIA_EPS
- 旧: cv2.kmeans(data, K, criteria, attempts, flags[, bestLabels[, centers]]) → retval, bestLabels, centers
- 新: cv2.kmeans(data, K, bestLabels, criteria, attempts, flags[, centers]) → retval, bestLabels, centers
- 旧: cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) → contours, hierarchy
- 新: cv2.findContours(image, mode, method[, contours[, hierarchy[, offset]]]) → image, contours, hierarchy
動かしたところ、sudo nvidia-settings -q GPUCurrentClockFreqs を見る限り、ちゃんとOpenCLを使ってるようだ。