概要
ColaboratoryでOpenCVをやってみます。
画像を選択アップロード、Colaboratoryで画像を表示まで
Colaboratory とは
Colaboratory は、完全にクラウドで実行される Jupyter ノートブック環境です。設定不要で、無料でご利用になれます。Colaboratory を使用すると、コードの記述と実行、解析の保存や共有、強力なコンピューティング リソースへのアクセスなどをブラウザからすべて無料で行えます。
Webブラウザから使うことができるGoogleが提供している機械学習用のプラットフォームです.利用料は無料です.どういうスペックのマシンが使えるというと
n1-highmem-2 instance
Ubuntu 18.04
2vCPU @ 2.2GHz
13GB RAM
(GPUなし/ TPU)40GB, (GPUあり)360GB Storage
GPU NVIDIA Tesla T4 16GB または Tesla K80 12GB
これが無料で使える
すごい!!!
実装
%matplotlib inline
import cv2 # OpenCVのインポート
import matplotlib.pyplot as plt # matplotlib(描画用)
from google.colab import files
# ファイルアップロード
uploaded = files.upload()
# アップロードしたファイル名取得
file_name = list(uploaded.keys())[0]
# アップロードしたファイルを参照
img = cv2.imread("./" + file_name)
# cvtColorでBGRとRGBを変換
show_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 結果表示
plt.imshow(show_img)
結果

顔検出もやってみる
参考記事
事前準備
https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_alt.xml
上記URLのファイルをダウンロードして
メニューを開いてファイルをアップロード
%matplotlib inline
import cv2 # OpenCVのインポート
import matplotlib.pyplot as plt # matplotlib(描画用)
from google.colab import files
# ファイルアップロード
uploaded = files.upload()
cascade_file = "haarcascade_frontalface_alt.xml"
# アップロードしたファイル名取得
file_name = list(uploaded.keys())[0]
# アップロードしたファイルを参照
img = cv2.imread("./" + file_name)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cascade = cv2.CascadeClassifier(cascade_file)
face_list = cascade.detectMultiScale(img_gray, minSize=(150, 150))
if len(face_list) == 0:
print("Fail recognise")
quit()
for (x, y, w, h) in face_list:
print("顔の座標 =", x, y, w, h)
color = (0, 0, 225)
pen_w = 8
cv2.rectangle(img, (x, y), (x+w, y+h), color, thickness = pen_w)
cv2.imwrite("after.jpeg", img)
result_image = cv2.imread("./" + "after.jpeg")
result_image = cv2.cvtColor(result_image, cv2.COLOR_BGR2RGB)
# 結果表示
plt.imshow(result_image)
