コードのわずか15行で顔検出!( Ft . PythonとOpenCV )


あなたが最近探索を始めたかどうかOpenCV またはかなりの時間のいずれかのシナリオでは、用語の顔検出に遭遇している必要がありますそれと一緒に働いている.機械がますます知的になるにつれて、人間の行動を模倣する能力も増加し、顔検出はAIのこれらの進歩の一つである.
だから今日、我々はどのような顔の検出は、なぜそれが有用であり、どのように実質的にあなたのシステム上のコードのわずか15行で顔検出を実装することができます簡単に見てください!
顔発見を理解し始めましょう.

どのような顔の検出ですか?(私が5歳のように説明します)

顔検出は、デジタル写真とビデオで人間の顔の存在を確認して、見つけることができる人工知能に基づくコンピュータ技術です.要するに、イメージまたはビデオの中で人間の顔を見つける機械の能力.
AIの重要な進歩のために、それは現在、照明条件、肌の色、頭のポーズ、背景に関係なく、画像やビデオの顔を検出することが可能です.
顔検出は、顔認識または顔照合のようないくつかの顔関連のアプリケーションの出発点です.今日、大部分のデジタル装置のカメラは、顔がどこにあるかについて見つけて、それに応じて焦点を調整するために、顔発見技術を利用します.

それではどのように顔検出動作しますか?
あなたが尋ねたうれしい!任意の顔検出アプリケーションのバックボーンは、(画像の単純なステップバイステップガイドは、画像のかどうかをイメージを肯定的なイメージ(顔と画像)または負のイメージ(顔のないイメージ)を決定するのに役立ちます.
これを正確にするために、アルゴリズムは顔画像と非顔イメージの何十万もの大規模なデータセットに訓練されます.次に、この訓練された機械学習アルゴリズムは、顔があるかどうか検出することができます.


OpenCVを用いた顔検出
コンピュータビジョンは、人工知能の中で最も刺激的でチャレンジングなタスクの一つであり、コンピュータビジョンに関連する問題を解決するために利用可能ないくつかのパッケージがあります.OpenCVは、コンピュータビジョンベースの問題に取り組むためのはるかに人気のあるオープンソースライブラリです.
OpenCVライブラリは、1800万人以上のダウンロードと47000のメンバーのアクティブなユーザーコミュニティを持っています.それは古典的で最先端のコンピュータビジョンとマシンの学習アルゴリズムの包括的なセットを含む2500最適化されたアルゴリズムを持っています.
画像中の顔検出は簡単な3段階プロセスです
ステップ1 :オープンCVモジュールのインストールとインポート
pip install opencv-python
import cv2
import matplotlib.pyplot as plt # for plotting the image
ステップ2 : haarカスケード分類子xmlファイルをダウンロードし、システムにロードします.
Haarカスケード分類器は、我々がイメージのトンでカスケード関数を訓練する機械学習アルゴリズムです.異なるターゲットオブジェクトに従ってカスケード分類器の異なるタイプがあります、そして、ここで、我々は目標面としてそれを認識するために人間の顔を考慮する分類器を使用します.
顔検出のための訓練されたクラシファイアXMLファイルを見つけることができますhere
# Load the cascade
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
ステップ3 : HAARカスケードクラシファイア内の検出関数を使用して、顔を検出し、周囲の境界ボックスを描画します.
# Read the input image
img = cv2.imread('test.png')

# Detect faces
faces = face_cascade.detectMultiScale(image = img, scaleFactor = 1.1, minNeighbors = 5)

# Draw bounding box around the faces
for (x, y, w, h) in faces:
      cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)

# Showing number of faces detected in the image
print(len(faces),"faces detected!")

# Plotting the image with face detected
finalimg = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
plt.figure(figsize=(12,12))
plt.imshow(finalimg) 
plt.axis("off")
plt.show()

パラメータarray ()
  • image: Matrix of the type CV_8U containing an image where objects are detected.
  • scaleFactor: Parameter specifying how much the image size is reduced at each image scale.
  • minNeighbors: Parameter specifying how many neighbors each candidate rectangle should have to retain it.

最高の結果を得るためにこれらの値を微調整する必要があるかもしれません.

Voila!そのように、コンピュータビジョンの最もユニークなアプリケーションの1つを実装することができます.
全顔検出実装のための詳細なコードテンプレートを見つけることができますhere .

Note: This tutorial is only meant for face detection in an image file and not a live camera feed or videos.



行く前に.
いい気分じゃない?あなたはどのように人工知能と機械学習の最も魅力的なアプリケーションの実装を学んだ.ここで止まらないで!先に行くとOpenFevを提供し、あなたの知識を共有し続ける他の素晴らしい機能を探る.
あなたが私のブログを楽しみました.読書ありがとう!

Feel free to comment, share and reach out to me on , , or .