Google 공동체에서 OpenCV 사용하기
11179 단어 GoogleColaboratory파이썬OpenCV고양이
자신의 PC에 아무것도 소프트웨어를 설치하지 않고 다음과 같은 이미지 처리를 할 수 있습니다
입력 이미지(원 이미지)
출력 이미지 (변환 후 이미지), 고양이 얼굴의 위치를 인식하고 거기에 원을 작성합니다.
Google 공동체를 사용하므로 Google 계정이 필요합니다.
1. Google Colaboratory에 연결
'Google 드라이브'를 검색하여 Google 계정으로 로그인합니다.
새로 만들기, 기타, 앱 추가를 선택합니다.
공동체를 선택합니다.
계속을 클릭하여 Colaboratory를 설치합니다.
설치가 끝나면 '신규', '기타'에서 'Google 공동체'를 선택할 수 있습니다.
'Google 공동체'를 선택하면 새 파일이 만들어져 공동체가 시작됩니다.
이 이후에는 3. 필요한 파일을 준비하는 것을 제외하고는 모두 Colaboratory 안에서의 조작이 됩니다.
2. OpenCV, 드로잉 라이브러리(matplotlib) 로드
Colaboratory의 첫 번째 셀에 다음을 입력하고 Shift+Enter 키를 누릅니다. OpenCV 버전(2020.08.17 시점에서 4.1.2)이 표시되면 OK입니다.
%matplotlib inline # matplotlibの出力をインライン(ポップアップじゃない)にする。
import cv2 # opencvの読み込み
import matplotlib.pyplot as plt # matplotlibを読み込んで、pyplotを pltという名前で使う。
print(cv2.__version__) # opencvのバージョンを表示して、読み込みを確認する。
# 出力
# 4.1.2
3. 필요한 파일 준비
htps : // 기주 b. 코 m / 오렌지 cv / 오페인 cv / t 레에 / 마 s r / data /에서 학습 된 데이터를 다운로드합니다.
먼저 고양이의 얼굴을 인식하기 위해 haarcascade_frontalcatface.xml 파일을 클릭합니다.
원시를 마우스 오른쪽 버튼으로 클릭하여 파일을 저장합니다.
4. 파일을 Colaboratory로 업그레이드합니다.
다음 코드를 두 번째 셀에 쓰고 Shift+Enter 키를 누릅니다.
from google.colab import files # colaboratoryのライブラリからファイル操作を使用する。
f = files.upload() # ファイルをアップロードする。
파일 선택을 눌러 파일을 업로드합니다.
파일은 다음 두 가지를 올립니다.
'Google 드라이브'를 검색하여 Google 계정으로 로그인합니다.
새로 만들기, 기타, 앱 추가를 선택합니다.
공동체를 선택합니다.
계속을 클릭하여 Colaboratory를 설치합니다.
설치가 끝나면 '신규', '기타'에서 'Google 공동체'를 선택할 수 있습니다.
'Google 공동체'를 선택하면 새 파일이 만들어져 공동체가 시작됩니다.
이 이후에는 3. 필요한 파일을 준비하는 것을 제외하고는 모두 Colaboratory 안에서의 조작이 됩니다.
2. OpenCV, 드로잉 라이브러리(matplotlib) 로드
Colaboratory의 첫 번째 셀에 다음을 입력하고 Shift+Enter 키를 누릅니다. OpenCV 버전(2020.08.17 시점에서 4.1.2)이 표시되면 OK입니다.
%matplotlib inline # matplotlibの出力をインライン(ポップアップじゃない)にする。
import cv2 # opencvの読み込み
import matplotlib.pyplot as plt # matplotlibを読み込んで、pyplotを pltという名前で使う。
print(cv2.__version__) # opencvのバージョンを表示して、読み込みを確認する。
# 出力
# 4.1.2
3. 필요한 파일 준비
htps : // 기주 b. 코 m / 오렌지 cv / 오페인 cv / t 레에 / 마 s r / data /에서 학습 된 데이터를 다운로드합니다.
먼저 고양이의 얼굴을 인식하기 위해 haarcascade_frontalcatface.xml 파일을 클릭합니다.
원시를 마우스 오른쪽 버튼으로 클릭하여 파일을 저장합니다.
4. 파일을 Colaboratory로 업그레이드합니다.
다음 코드를 두 번째 셀에 쓰고 Shift+Enter 키를 누릅니다.
from google.colab import files # colaboratoryのライブラリからファイル操作を使用する。
f = files.upload() # ファイルをアップロードする。
파일 선택을 눌러 파일을 업로드합니다.
파일은 다음 두 가지를 올립니다.
%matplotlib inline # matplotlibの出力をインライン(ポップアップじゃない)にする。
import cv2 # opencvの読み込み
import matplotlib.pyplot as plt # matplotlibを読み込んで、pyplotを pltという名前で使う。
print(cv2.__version__) # opencvのバージョンを表示して、読み込みを確認する。
# 出力
# 4.1.2
htps : // 기주 b. 코 m / 오렌지 cv / 오페인 cv / t 레에 / 마 s r / data /에서 학습 된 데이터를 다운로드합니다.
먼저 고양이의 얼굴을 인식하기 위해 haarcascade_frontalcatface.xml 파일을 클릭합니다.
원시를 마우스 오른쪽 버튼으로 클릭하여 파일을 저장합니다.
4. 파일을 Colaboratory로 업그레이드합니다.
다음 코드를 두 번째 셀에 쓰고 Shift+Enter 키를 누릅니다.
from google.colab import files # colaboratoryのライブラリからファイル操作を使用する。
f = files.upload() # ファイルをアップロードする。
파일 선택을 눌러 파일을 업로드합니다.
파일은 다음 두 가지를 올립니다.
from google.colab import files # colaboratoryのライブラリからファイル操作を使用する。
f = files.upload() # ファイルをアップロードする。
아래 코드를 다음 셀에 쓰고 Shift + Enter를 눌러 실행하여 업로드 한 파일의 이름이 출력되는지 확인하십시오 (이 예의 경우 변환하려는 이미지의 파일 이름은 .jpg"입니다).
!ls # システムコマンドのlsを実行して、ファイルがアップされているか確認する。
# 出力
# haarcascade_frontalcatface.xml IMG_20200808_181512.jpg sample_data
5. OpenCV로 이미지 불러오기
새 셀에 다음 코드를 작성하고 Shift+Enter를 눌러 실행합니다.
# ファイル名(IMG_20200808_181512.jpg)は、自分の画像のファイル名に変えてください。
img = cv2.imread("./IMG_20200808_181512.jpg") # 画像の読み込み
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 表示のためBGRをRGBに変換する。
plt.imshow(show_img) # matplot.libを用いて読み込んだ画像を表示します。
다음과 같이 업로드한 이미지가 표시되면 OK입니다.
또한 업로드 파일은 어느 정도 시간이 지나면 Colaboratory 내에서 사라져 버리므로 그 때는 다시 업로드하십시오.
6. 얼굴 인식하고 얼굴 위치에 원과 화살표를 그립니다.
다음 코드를 새 셀에 쓰고 Shift+Enter를 눌러 실행합니다. cv2.circle, cv2.putText에 대한 자세한 내용은 OpenCV 그리기 기능 등을 참조하십시오.
# 学習済みファイルからモデルを生成
face_cascade = cv2.CascadeClassifier('./haarcascade_frontalcatface.xml')
# グレー画像を生成
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 顔認識
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 認識結果でループする x,y:顔矩形の左上, w,h:顔矩形の幅と高さ
for (x,y,w,h) in faces:
# 顔の位置に丸を描く
img = cv2.circle(img,(x+int(w/2),y+int(h/2)),int(max(w/2,h/2)),(0,0,255),12)
# 文字によって矢印を描く
cv2.putText(img,"<---",(x+w,y+int(h/2)),
cv2.FONT_HERSHEY_SIMPLEX,8,(0,0,255),32,cv2.LINE_AA)
# 描画用にRGBに変換
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
# 結果の描画
plt.imshow(show_img)
다음과 같이 고양이의 얼굴에 원이 쓰여지고 화살표가 붙으면 성공입니다.
단지 얼굴을 인식할 수 없는 때도 있습니다. 예를 들어, 이 이미지에서는, 뒤에 삼모 고양이씨가 이쪽을 향하고 있습니다만, 그 얼굴은, 인식할 수 없습니다.
7. OpenCV의 다른 기능
OpenCV-Python 자습서 등의 사이트를 참조해 주십시오.
Reference
이 문제에 관하여(Google 공동체에서 OpenCV 사용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toyohisa/items/cbcdb0cb20265c4168c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# ファイル名(IMG_20200808_181512.jpg)は、自分の画像のファイル名に変えてください。
img = cv2.imread("./IMG_20200808_181512.jpg") # 画像の読み込み
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) # 表示のためBGRをRGBに変換する。
plt.imshow(show_img) # matplot.libを用いて読み込んだ画像を表示します。
다음 코드를 새 셀에 쓰고 Shift+Enter를 눌러 실행합니다. cv2.circle, cv2.putText에 대한 자세한 내용은 OpenCV 그리기 기능 등을 참조하십시오.
# 学習済みファイルからモデルを生成
face_cascade = cv2.CascadeClassifier('./haarcascade_frontalcatface.xml')
# グレー画像を生成
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 顔認識
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 認識結果でループする x,y:顔矩形の左上, w,h:顔矩形の幅と高さ
for (x,y,w,h) in faces:
# 顔の位置に丸を描く
img = cv2.circle(img,(x+int(w/2),y+int(h/2)),int(max(w/2,h/2)),(0,0,255),12)
# 文字によって矢印を描く
cv2.putText(img,"<---",(x+w,y+int(h/2)),
cv2.FONT_HERSHEY_SIMPLEX,8,(0,0,255),32,cv2.LINE_AA)
# 描画用にRGBに変換
show_img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
# 結果の描画
plt.imshow(show_img)
다음과 같이 고양이의 얼굴에 원이 쓰여지고 화살표가 붙으면 성공입니다.
단지 얼굴을 인식할 수 없는 때도 있습니다. 예를 들어, 이 이미지에서는, 뒤에 삼모 고양이씨가 이쪽을 향하고 있습니다만, 그 얼굴은, 인식할 수 없습니다.
7. OpenCV의 다른 기능
OpenCV-Python 자습서 등의 사이트를 참조해 주십시오.
Reference
이 문제에 관하여(Google 공동체에서 OpenCV 사용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toyohisa/items/cbcdb0cb20265c4168c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Google 공동체에서 OpenCV 사용하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toyohisa/items/cbcdb0cb20265c4168c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)