「服のプレイリスト」はiTunesなどの音楽プレーヤーにあるプレイリストの洋服版です。出勤時の服装を自動で撮影し、リスト化してくれます。新型コロナの緊急事態宣言が解除された後、在宅勤務から出勤に体制が戻ったときに、「何を着るか」に困ったことから開発が始まりました。日々着た服を記録して確認することで、従来の感覚を取り戻すことが狙いです。

 ストレスなくバストアップの写真を撮るため、毎朝着替えた後、歯磨きに必ず訪れる洗面台にカメラとラズパイを設置しました。ドアを開けたとき、人感センサーで人を検知したらパチリと撮ります。撮影した服(持っている8種類)をOpenCVで分類し、どの服をいつ着たかが一覧できるようにしました。撮影時に、温湿度センサーで温度も記録しています。図1が作品の全体像です。

図1 システムの概要図
図1 システムの概要図
[画像のクリックで拡大表示]

ラズパイ部分の仕組み

 本体となるラズパイ部分の機能は大きく三つに分かれます。
(1)人感センサーとカメラで自動的に洗面台を利用する人物の写真を撮影する
(2)撮影した画像をOpenCVで画像処理、顔認証に基づき取捨選択し、服の情報をPCに転送する
(3)温湿度センサーを用いて、撮影時の情報を保存する

 人感センサーはブレッドボード風のユニバーサル基板にはんだ付けし、アクリル板の上にラズパイとともに固定しました。装置を洗面台に装置を固定するため、アクリル板はケースに格納してあります。ケース内のパーツの配置は図2の通りです。

図2 装置本体の中身
図2 装置本体の中身
設置時はビニールで覆っている。
[画像のクリックで拡大表示]

 洗面台から扉までの距離は135㎝で、人感センサーの感度を調節しておけば人が入ってきたことを識別できます。装置は洗面台に固定後、防水のため、カメラのレンズ部分以外にはビニール袋を被せました。

 ラズパイで動くプログラムはPythonで作りました。毎朝8時~9時の間、時間指定でプログラムが動きます。撮影後は確認のためLEDが点灯し、現在の温度と湿度を計測して一緒に保存します。その後1分間隔で撮影しますが、OpenCVの顔認証を用いて必要なバストアップの写真のみ保存します。(図3

図3 撮影した写真の処理フロー
図3 撮影した写真の処理フロー
正面を向いた顔が検出できない場合は画像を保存しない。
[画像のクリックで拡大表示]

プレイリストはPC側で作る

 PCでラズパイからすべての服データと温湿度データを取得し、画像を分類、プレイリストを作成します。プログラムはPythonで作り、OpenCVとscikit-learnを使いました。画像の分類アルゴリズムには、k-means clusteringを使っています。1日に複数の服データが得られた場合は、その日の最後のデータを採用しています。これは、時系列的に遅い服の方が、出勤時の服装である可能性が高いためです。図4図5は8月のプレイリスト作成結果です。その後1枚シャツを買いましたが、これもうまく分類できています。

図4 プレイリストに使用した画像の一覧
図4 プレイリストに使用した画像の一覧
写真の脇の数字は上が洗面台、下のかっこ書きがほかの部屋の温度。
[画像のクリックで拡大表示]
図5 8月のプレイリスト
図5 8月のプレイリスト
上段の表は行が服の種類、列が日付を表す。8月3日は4番の服を着ていたことが分かる。下段は各数字に対応する種類の服を表す。
[画像のクリックで拡大表示]
【PR】ラズパイマガジン春号が好評発売中!
 ラズパイマガジン春号では、2021年11月に発表した「みんなのラズパイコンテスト2021」の全受賞作品を詳しく紹介しています。付録冊子では、2017~2020年のグランプリ作品の作り方を作者自身が解説します。

 特集1は「ラズパイ&Pico両方に対応 パーツ100種全部動かす!」。多様なセンサーやモーター、LED、小型ディスプレイなど、100種のパーツを、PCボード「ラズパイ」とマイコン「Pico」の両方で動かします。ラズパイとPico向けの接続図とサンプルプログラム付きです。

 ほかに、ラズパイにGPSをつないで地図に現在地を表示させたり、性能が5倍になった新機種ラズパイZero 2でAI画像認識を試すなど、盛りだくさんです!

ラズパイマガジン春号の購入は<<こちら!>>