マルクスの変身・表情は顔検出技術に勝る理由。python初心者(Ep21)
こんにちわ。
前回は、「顔以外にも検出している件」について、パラメータを調整することで可能性を感じることができたと思います。下記の記事です☆
今回は、
を実施したいと思います。宜しくお願い致します!
パターン2:顔を抽出出来ていなかった件
まずは今回のパターンにおいて、使用する画像はこちらです。
まずは、これについて、前回色々と触って分かった様にパラメータを変更して抽出してみたいと思います。
調整してみた結果
まさかの結果となりました・・・。
これは、参りましたね。しかし、事実は事実である為、受け止める必要があります。これからわかる事は、
という事ですかね。それを実証するために他の画像を用いて検証をしてみました。
顔を検出しない画像の傾向
調整を色々と触っても検出されなかった画像は下記の様なものでした。
やはりこれは、
ことに伴って抽出出来ていないのではないかと思います。
それでは、
と思います!
今回の分析に活用したコードを下記に記載致しますねー☆
コード内容
#モジュールの設定
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
#ライブラリのインポート
import pandas as pd
# osモジュールをインポート
import os
# 画像を読み込み
img = cv.imread('original_photo/howl013.jpg')
#画像のoepnCVで読み込んだRGB画像はBGRの順番であるため変換
img_kai = cv.cvtColor(img,cv.COLOR_BGR2RGB)
fig = plt.figure(1,(10,10))
plt.imshow(img_kai)
#画像をグレーに変換
gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
#画像表示
gray_display = cv.cvtColor(gray,cv.COLOR_BGR2RGB)
fig = plt.figure(1,(10,10))
plt.imshow(gray_display)
# カスケード型識別器の読み込み
cascade = cv.CascadeClassifier("./lbpcascade_animeface-master/lbpcascade_animeface.xml")
# 顔領域の探索
face_st1 = cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=3, minSize=(30, 30))
# 顔領域を赤色の矩形で囲む
for (x, y, w, h) in face_st1:
cv.rectangle(img, (x, y), (x + w, y+h), (0, 0, 200), 3)
#画像表示
img_face_display = cv.cvtColor(img,cv.COLOR_BGR2RGB)
fig = plt.figure(1,(10,10))
plt.imshow(img_face_display)
print("検出ポイント:{}".format(face_st1))
#画像を書込み
cv.imwrite('analysis/pattern1/minNeighbors9_how037.jpg', img)
#データフレームにして、保存
df_ana_st1 = pd.DataFrame(face_st1,columns=['x','y','w','h'])
#CSVファイルとして保存
df_ana_st1.to_csv("analysis/pattern1/minNeighbors9_how037.csv",encoding ="shift_jis")
df_pick= pd.read_csv('analysis/pattern1/pick_minNe.csv',index_col=0)
df_pick.plot.bar()
それではまた、次回!
いいなと思ったら応援しよう!
よろしければサポート頂けると幸いです!子供へのパパ時間提供の御礼(お菓子)に活用させて頂きます☆