スポンサーリンク

プログラミング

【リモ飲み】顔検出してTwitterのアイコンに置き換える方法

こんにちは!

なおき(@waste_investor)です!

 

緊急事態宣言も再度発令され、なかなか思うように飲み会等を行うことができない世の中が続いています。

その影響もあり、Twitterで知り合った人とリモート飲み会をする機会が増えました。

 

リモート飲み会の 集合写真をTwitterに上げると、不特定多数の人が閲覧するので、顔をアイコンに置き換えてツイートしています。

いつも手作業でコピペしてもらうのは大変なので、自動化してみました。

 

やりたいこと

・TwitterのAPIからアイコン写真を取得

・リモート飲み会スクリーンショットから顔を検出

・顔をアイコンに置き換える

 

TwitterAPIからアイコンの写真を取得

今回はPythonを使ってTwitterのAPIからアイコンの画像をダウンロードしています。

 

GetTwitterIconにTwitterのユーザー名(@waste_investorなど)のリストを入力することでアイコンの画像を保存することができます。

TwitterのAPIで取得できる画像へのURLはnormalサイズのものなので、あとで拡大する際に画像が荒くなってしまいます。そのため、normalの画像から400×400ピクセルの画像へのパスに切り替えます。

 

Twitterの認証には TwitterDevelopersAccountを作成しておく必要があります(APIを叩くために必要)。

アカウントの作成方法はこちらにまとめているのでご参考に。

参考【ツイート解析】Twitter Developersアカウントを作成方法

こんにちは! なおき(@waste_investor)です!   ツイート分析をするために、Twitter Developersアカウントを作成しました。 作成までの手順をまとめておきます。 ...

続きを見る

 

写真から顔を検出する

DiscodeやZoomなどでみんなでとった写真から顔の座標を検出します。

顔の検出にはOpenCVのカスケード分類機を使用します。

カスケード分類機は輝度画像のエッジ等から顔の特徴量を算出して、顔と思われる座標を検出してくれます。

正面を向いている顔であればそれなりの精度で顔を検出することができます。

 

OpenCVを活用するだけなのでソースコードも短く済みます。

この短さで顔を検出できるのには驚きです。

こんな感じで画像中の顔を検出することができます。

 

 

haarcascade_frontalface_default.xmlは、OpenCVをインストール後にPythonフォルダの中に入っています。検索してファイルパスを見つけてください。

 

MacのAnaconda環境ではこの環境下にファイルはありました。

/anaconda3/lib/python3.7/site-packages/cv2/data

 

 Twitterアイコンを保存→顔検出→アイコンに置き換え

アイコンの保存と、顔検出の部品は揃ったので、あとは処理をつなげるだけです。

 

途中経過では顔が見えてしまうので、公開できないのが残念ですが、これで集合写真中の顔写真をアイコンの画像に置き換えることができました。

 

 

楽しいリモート飲み会ありがとう!

・こなすくん(@konasu_freelife)

・にべあさん(@okapi_neko)

・のんちゃん(@naniwaOLnon)

 

 

割と複雑そうなことをやっていますが、自分で実装した部分はほんのわずかです。

外部ライブラリがとても充実して、基礎さえ押さえればコーディングはとても簡単なので、Pythonはみんなに使えるようになってほしいプログラミング言語です。

 

時代のトレンドは自動化。

流れに乗り遅れないスキルをつけていきたいものです。

 

参考サイト

 Twitterの画像を保存

顔検出

スポンサーリンク

-プログラミング
-,

© 2024 FIREを目指す浪費投資家の道のり Powered by AFFINGER5