【OpenCV】カスケード分類器で顔認識と黒塗り処理を行うプログラム

説明

OpenCVが公開しているカスケード分類器を利用して顔認識を行い、検出した顔を黒塗り処理するプログラムを作りました。

 

                      www.youtube.com

 

処理の流れ

  1. USBウェブカメラから動画を読み込む
  2. カスケード分類器で顔を検出する
  3. 顔が検出できた場合はカスケード分類器が返した座標を元に黒塗り処理を行う          (顔が検出できなかった場合は画面全体に黒塗り処理を行う)
  4. テキストを書き加える(Detecting, Non detecting)
  5. 処理したフレームを保存する
  6. 最初に戻る
  7. qキーが押されるまで以上の処理を繰り返し、保存したフレームを動画として書き出してプログラムを終了する

 

 詳細

黒塗り処理にはOpenCVの長方形を描画するcv2.rectangle関数を、テキストを書き加えるのにはcv2.putText関数を使いました。

cv2.rectangle関数を利用した際、日本語フォントを使うと文字化けを起こしたので英語フォントで文字入れをしました。Pillowライブラリなら日本語フォントが使えるので、そちらを利用しても良かったのですが、必須では無かったので画像処理は全体としてOpenCVの機能だけで完結するようになっています。

コードは50行くらいで短いのですが、汚いコードなので公開しません。

 

Anaconda3 でのエラー Could not load dynamic libary 'cudart64_110.dll'; dlerror: cudart64_110.dll not foundの解決方法

f:id:kohaku_rinsuke:20210411181915p:plain


そう。それは、画像認識を試そうとAnaconda3にTensorflowとKerasをインストールした時のことです。正常にインストールできたかを調べるためにKerasをREPLでインポートしてみました。しかし異変はその後すぐに起きました。

 

>>import Keras

略) Could not load dynamic library 'cudart64_110.dll'; dlerror: cudart64_110.dll not found

          (cudart64_100.dllが見つかりません)

 

なんだこれは…。それは異国の言葉のようにも見えます。そこで僕は、現代のアカシックレコードとも名高い"Google先生"へと質問を投げ掛けてみました。先生によるとこのエラーの原因はCUDA Toolkitなるソフトウェアがインストールされていないからだと言います。僕はそのソフトウェアがあると言う霊峰の頂きへと登ることにしました。霊峰への登山は困難を極めましたが、ついにそのソフトウェアを手に入れることができました。インストールしてみたところ、なんと正常に動くではありませんか! 先生のお言葉は正しかったんだ!

 

 

環境

Windows 10 Home 2004 (64bit) 

Anaconda3-2020.11-Windows-x86_64

 

(編集途中)

CUDA toolkitダウンロード先

developer.nvidia.com

参考にさせて頂いたサイト

ourcodeworld.com

 

 

僕のペット紹介

皆さんはどんなペットを飼われていますか?

犬、猫、鳥類(インコ等)、爬虫類(イグアナ等)。ここには書き切れないほど、沢山の種類のペットが居ますよね。

御託はさて置き、こちらが僕のペットです。

 

f:id:kohaku_rinsuke:20210411163818j:plain

電子界電子線門受像鋼電子管目陰極線管科ブラウン管属シャドーマスク種のブラウンちゃん

かわいいですね!

かわいいですよね。 ね?

電子界電子線門受像鋼電子管目陰極線管科ブラウン管属シャドーマスク種のブラウンちゃんです。

特技は電子ビームを発射することです。コントロールが本当に上手くて、有効走査線数が490本もあるんですよ!

 (編集途中)