今回のテーマ
みなさん、こんにちは!
デジタルステーション習志野スタッフの小島です。
今日はPythonで顔の認識をしていきたいと思います。
顔認識 ![](https://4.bp.blogspot.com/-3EsvqEHcmnk/V8jqXwzqshI/AAAAAAAA9d4/vzxUxLon2qwQ8XJT8ePYeEJme2bXPZMkgCLcB/s800/camera_kao_ninshiki.png)
顔認識
顔認識とは画像や動画から人間の顔と思われる個所を推定することです。現代ではスマホの顔認証や写真の自動補正などでよく見かけます。
今回のプログラム
今回はPythonで画像中の顔部分にモザイクを掛けるプログラムを実装していきたいと思います。
利用するライブラリ
OpenCV
今回のプログラムではOpenCVを利用していきたいと思います。
OpenCVはPythonを含めた様々な言語やプラットフォームで利用できる画像処理・画像解析のライブラリです。[1]
このライブラリはオープンソースとして自由に利用できます。
matplotlib
matplotlibは今回は画像を表示する目的で利用しますが、実際にはグラフなども表示できるライブラリです。[2]
実際のプログラム
モザイク処理
OpenCVにはモザイク処理等はないので今回はモザイク加工の部分は自作します。
![](https://digitalstation-chiba.com/struct/wp-content/uploads/2023-11-09_19h26_45.png)
メイン処理
メイン処理です。
カスケードファイルとはOpenCVが提供している学習モデルのことです。[3]
![](https://digitalstation-chiba.com/struct/wp-content/uploads/2023-11-09_19h31_59-1.png)
結果
以下の画像を入力画像としました。
![](https://i.gyazo.com/8e44b1cf497e3c2113d9fbc4a061f3c5.png)
結果として顔部分にモザイクが掛かった画像がしっかりと出力されました。
考えてみよう!
プログラムの改善
実は先ほどのプログラムには弱点があります。
それは正面の顔しか認識しないという点です。
では、どうやったら斜めや逆さの顔も認識することができるでしょうか?
デジタルステーション習志野
〒274-0063 船橋市習志野台4-1-7 習志野駅前郵便局2F
- 駅から徒歩一分
- 入り口はこちら
- 駐輪場