Musashitokiwa.LLC Blog

武蔵常盤株式会社のブログです。

DeepLens 顔サンプルを増やして、認識力アップ

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

 Deeplensを利用して、行動データを取得できた。

 

しかし、認識できていない「Unknown」の割合がおおいので、画像のサンプルを増やし、いろいろな角度から見て、顔認識力をアップさせることにした。

 

これは、学習済みのモデルを利用しているので、カメラの中では、判定をしているだけです。

 

f:id:a-j1b1k1:20200504225649p:plain

自分の顔を5パターン用意して判定材料にしたところ、目に見えて、「Unknown」の判定が少なくなりました。

 

このサンプルは、複数の顔を認識することが出来ますが、特に複数の顔を意識することはないので、1人分で十分です。

 

いまは、Deeplensの出来合いの端末でこれを行っていますが、できれば、自前の端末でもこれと同じことが出来るといいですね。

 

 

 

 

Deeplensから、IOTを知る

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

 Deeplensをつかって、面白いことができないかと思って、Deeplensを購入した。

 

そもそも、最初は、資格試験の勉強に飽きて、実際に使ってAWSに慣れようと思って始めたものだったんですが、軒下を貸して母屋を乗っ取られるような状態で、

 

AWSの資格試験の勉強が置き去りになってしまいました。

hiscomputingdevblog.hatenadiary.jp

 

最初の簡単な動作確認まではそれほどの苦痛を感じることなく動作確認ができました。

その後、顔認識のサンプルを動作確認する段階になって、Pythonの癖に苦しめられました。

 

しかし、四苦八苦しながらも、何とか動かすことができました。

 

hiscomputingdevblog.hatenadiary.jp

 

 サンプルでは、顔認識をしたデータを通知するというシンプルな構造で、行方不明者通知やカスタマー認知の機能を持っていました。

 

動いた後には、サンプルと同じものを作ることにあまり意味を感じられなかったので、今の状況にあったものができないかと思案しました。

 

 

f:id:a-j1b1k1:20200504104800p:plain

 

単純にデータを集計し可視化することで、何か発見することが出来ないかと思い、ふと、約1か月間つけっぱなしにしていたDeeplensの通知を受け取るAws Lambdaのログを確認してみたところ、自分の行動がこのログに現れていました。

 

f:id:a-j1b1k1:20200504105643p:plain

一日の大半を机の前で過ごしていることが現れていました。

 

このログには、不必要なデータも含まれているため、必要なデータだけをフィルターしてデータを可視化したらどうなるか興味がわいたので、急遽、Jupyter notebookを利用してデータを集計してみました。

 

集計した結果は、認識したものしないものが以下のようなレベルで出力されていることがわかりました。

f:id:a-j1b1k1:20200504110106p:plain


データを取得開始が5/3の14:00ごろで、DB作って、関数作って、Jupyter notebook入れて、関数作って、といろいろやっていたら、日付を跨いでしまいました。

大学の授業で、まとまっていない情報の中から必要なものを抽出すると、それはデータになるということを学びました。

 

卒業して、すでに8年経ちましたが、改めて原点に戻った気がしました。

 

今回は、小さいアイデアですが、日々、育てていけば、いつか大きな実をつけることでしょう。

 

今日も良い遊びでした。

 

塾はZoomで授業。公立学校は、10分程度の動画教材をいくつか公開。

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

 テレワークだけでなく、民間の塾がテレビ電話を利用した授業を配信して、生配信の通信教育を実践し始めました。

 

これには、新しい通信教育の姿がみえましたね。

 

新しいということをいうのは、古い通信教育はどうだったかというと、

Javaの資格(JSCP、WC)を取得するために通った教室は、通学でいつでも来てもいい映像教材と紙の教材を活用した教室でした。

 

教室からトレーナーに対して質問はテレビ電話で、リモートデスクトップなどを利用して、教わっていたことを考えると、スクール型の通信教育だったと、いまさらながら思います。

 

私が二回目の大学は無事資格を取得し、システムエンジニアになってから仕事と並行で通信教育課程にて卒業しました。

 

授業は、ペライチA4の紙と教科書。「教科書を読んで、指定したテーマで小論文を書きなさい。」から、「何年前かわからない動画教材を見て、試験とレポート。」

中には、最近は、オープンでも珍しくなくなった、Webの開発環境を、学校が開発して、C言語などの実行環境で授業を行っていました。

といったような、人的リソースを最低限にした授業形態の通信教育。

 

こういう通信教育だと、確かに、学校が副業的に提供する通信課程としては十分だと思います。ですが、通学と比べ通信課程はメリットは多いのですが、格下扱いされてしまうんですよね。

 

最近の塾が、テレビ電話で授業をするというのは、本当に素晴らしいですね。

人的リソースはかかりますが、教室環境を自分の机に移行する。

 

この通信教育は、公立学校にも見習ってほしいですね。

 

先日、板橋区から子供のためのICT通信教材を提供しました。という通知があり、その教材を見たところ、10分程度の教材。

 

正直、期待をしていませんでした。

 

今は、テレビ電話をできるサービスが様々あり、リアルタイムで、顔を見ながら授業することは、可能なのです。

 

小学校で45分の授業で10分弱の教材が1つか2つあったところで、全国民配布の布マスクより意味のないものですね。

 

民間の塾のほうが、常に競争にさらされているので、危機管理に対しての対応がしっかりしてますね。

 

 

コロナ以降では、公立学校でもグループ通話学習の通信教育が行えるようになってくれることを期待しています。

 

 

 

 

 

 

テレワーク 二ヶ月目突入

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

 

今日、東京板橋は、学校の休校延長が決まりました。

5月6日までということです。

 

入学式は4月6日に行うとのことなので、入学生がいるのでほっとしている。

 

世間は相変わらずの武漢肺炎騒動。

 

顧客にも影響がないかそれが一番心配だ。

 

とはいえ、私にできることは、お客様のシステム開発の支援をすること。

できるだけ良いものを、できるだけ早く提供すること。

「完璧なものを」とは言えないのが技術者です。

 

完璧なものは、神様しか作ることはできません。

 

テレワークも2ケ月目に突入。

 

4月からの案件は、リリースまでフルリモートになる可能性があり、コミュニケーションが不足しないかどうかが心配です。

 

心配するよりかは、やってみたほうが良い結果が出る。

 

 

 

 

DeepLens 顔認識、顔認証のサンプルの動作確認

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

週末3日かけてDeeoLensのサンプルアプリを動作確認しました。

 

Deeplensのサンプルアプリを調べだしたのが2週間くらい前。

 

このサンプル(https://github.com/medcv/OneEyeFaceDetection)に行きついて、どうやればいいかを調べだして、1週間。

 

このサンプルのイシュー(https://github.com/medcv/OneEyeFaceDetection/issues/1)を見て、一筋縄ではいかないことを確信し、動作確認を決意するまでに4日。

 

ソースをデプロイしてトライアンドエラーをして、方法を考察しながら、3日。

ソースの読み込みをして、何をしているのかを知るところから始めた。

 

f:id:a-j1b1k1:20200322211203p:plain

見る限り大したことをしていないことがわかるので、1日で行けると読んで、動作確認を開始。

 

Pythonのライブラリの依存関係に苦しめられ、何回も、Deeplensをごみ箱に投げ込みたい衝動をこらえて、デプロイ回数35回。

 

まぁ、少ないほう。

 

仕事じゃ、200回とかデプロイして動作確認することがあるんでね。

 

最初は、AWS Lamdaの設定方法も良くわからない、モデルは何を使えばいいのかなどのサンプルのReadMeに書いてないことを考察し、導き出すことに時間がかかりました。

 

そういう時は、難しく考えるのではなく、シンプルに考えればいい。

 

叩けば出る埃のようにエラーが出る。

会社の仕事のほうが、様々な人の作るコードがあるので、もっと大変だよね。

 

でも、このサンプルのエンジニアのPythonコードは、Javaっぽいから読みやすいし、そもそも、動作することは確認されているものだからね。

 

ようやく、画面に表示したときは、「やったー!」と、声を上げてしまいました。

f:id:a-j1b1k1:20200322210150p:plain

このサンプルでは、99.3%の精度があるそうです。

 

息子と娘にカメラをのぞかせたところ、僕と認識されていました。

嫁にカメラをのぞかせたところ、unknownと表示されていたので安心しました。

 

遺伝で特徴をとらえている場合は、誤認識される可能性があるということがわかりました。

 

そういえば、昔、ヒカルゲンジのメンバーの子供が「99%他人」だというようなことがワイドショーを賑わせていたことがありましたね。

 

これで写してみれば、きっと「99%」の確率で真実が見えるでしょうね。

 

とはいえ、なんだかんだで、動作してくれてよかった。

 

いい勉強になりました。

 

あとがき

 

あと、これをAWSのWebコンソールで確認していると、画面が高い頻度で固まる。

数分経って、また動き出す。を繰り返す。

なんか、メモリ管理がうまくいってないような感じがする。

これを掘り下げるかどうかは、今は決めないけど、IOTエンジニアとしては、見ておきたいところですね。

リモートワーク三週目

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

リモートワークが3週間に及びました。

 

今週は、お客様の会社でのオンサイト(出社日)があり、フルリモートではありませんでした。

 

来週から週のうち2日はオンサイトでの勤務ということになりました。

 

僕の場合は、Slackがあればそれで十分なのですが、人によっては、対面の時間も必要な人もいるようです。

 

今週は、徹底的な結合テストの時間。

 

自分以外の理由で、2日遅れていたテストを時間通りに終了させることができました。

 

IOT案件なので、センサーから情報を受け取りサーバーで処理するというシステムです。

 

マイクロサービス規模のものなので、時間通りに進められないと、エンジニアの腕がとわれてしまいますね~。

 

テストを登山に例えると、例えば南アルプス北岳ね。

 

広河原から澤伝いに上って行って、八本歯のコル経由で頂上へ向かう。

 

単体テストは、のぼりはじめ30分の準備登山。

結合テストは、バットレスの落石の恐れのある澤筋を登る緊張感のある登山。

システムテストは、稜線に出て、眺めや、高度感を楽しむ余裕が出てきて、ゴールも見えてきている。しかし、遮るもののない状態で、突風や、突然の天候の変化の影響を受ける。精神的な解放感と、なかなか頂上につかない焦り。遮るもののない環境など、危険度は、稜線上の方が高まります。

 

どのフェーズも、気をつけるポイントが異なり、どのフェーズが大切かなどとは言えません。

30分の準備登山で、体調不良を感じながら登れば、八本歯まで行ったとしても、心が折れてしまい、下山してしまうこともあるでしょう。

無理して山頂まで行ったとしても、高山病や、天候の変化などに襲われれば、無事に下山できるかはわかりません。

 

下山は、実運用ですね。

最も危険です。

多くの案件を経験してきて、進捗の遅れをごまかすために、結合を甘くテストして、無事に長期間運用できているシステムは見たことありません。

 

とにかく、時間通りにテストを終えられてよかった。

 

リモートでは仕事をしすぎてしまう悪い癖がありますが、無事に3週目の仕事を終えることができました。

 

3月末までリモートワークが延長になりました。

 

あと2週間、分析モジュールをインストールして、システムテストを行うのがたのしみですね~。

 

今週もよくがんばった~。

 

 

 

 

 

 

 

 

 

リモートワーク八日目

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 今日は8日目。

 

プログラムの疎通で大分時間がかかってしまい、ようやくさっき一部の処理をコメントアウトして、終了した。

 

リモートでは、他の人の姿が見えないので、他人が働いているから僕もというようなことはない。

 

疎通が思ったより大変で、時間がかかったこともあり、結合テストの時間に食い込んでしまった。

 

週末マジックを発動させるかを悩むところだが、リモートのいいところ。

 

準委任契約なので、月の契約の時間上限に達しない限りお客さんに迷惑は掛からないので、やれるだけのことをやっておけるのがいい。

 

ただ、問題は嫁と子供たちだ。

 

静かに仕事をさせてくれるかどうか。

 

自宅で休日に仕事を持ち込むのは、家庭崩壊の引き金になりかねない。

 

上手い事時間を見つけてやらんといかんね。