建築でコンピュータ、する?
2023年9月23日(土) 12:13 JST
こちらの記事では、現場安全性・生産性向上のための深層学習とコンピュータビジョンを用いた作業員の「名前・位置・動作」を推定する研究を紹介します。
深層学習のうち教師あり学習とは、データとその正解ラベルを与え学習させるとその見分け方のような正解の導き方を自動的に習得し、未学習のデータに対しても正解を導き出すことができるアルゴリズムのことです。コンピュータビジョンとは、その名の通り「機械の目」であり、画像解析などを通して画像の内容を認識させることを目的とする分野です。本研究では、現場に設置した単眼カメラとこの2つの技術を用いて、そこに写る作業員の「人物・位置・動作」を推定することを試行します。
施工現場や作業場では、作業員の身を守るため様々な対策が取られていますが、事故は依然として発生してしまっています。この理由の一つとして、現場における作業の複雑性や作業員の流動性の高さが挙げられ、これを監視・管理することで安全性を向上させることができるのではないかと考えました。また、近年では建設ロボットなどを現場導入し、生産性向上を図る取り組みが増加傾向にあります。ロボットと人が協働する「未来の現場」では、周辺環境を適切に把握する必要があり、現場において誰がどこで何をしているのかをリアルタイムで監視することは、安全性の向上だけでなく、生産性の向上にも繋がるのではないかと考えました。例えば、人がいたらロボットを止める、という単純な制御でなく、ロボットの介助とは無関係な作業を行う人が近寄ってきたら止める、などもう少し柔軟な制御ができればより協働を効率的に行えるようになります。
冒頭の図がシステムの流れを示したものです。Openposeと呼ばれる姿勢推定ライブラリを用いて「顔付近の映像」「足首関節の位置」「各関節の動き」を抽出し、これをもとに「人物」・「位置」・「動作」の推定を行います。
人物の推定では、作業員の3Dモデルからデータを作成し、学習させます。まず、Recap photo※で作業員の頭部の3Dデータを作成します。これを多角度からキャプチャし、様々な施工現場の背景画像に合成します。さらに、運用時の環境・解像度・画像のブレを想定し画像処理を行います。これを学習データとし、VGG16の14層目までの重みデータを利用し、全結合層3層を追加して転移学習しました。
※Recap photoとは、Autodesk社がリリースしているRecap Proに含まれるサービスであり、オブジェクトなどに対して複数撮影した写真を処理し、3D表現を作成することができるものです。
VGG16とは、オックスフォード大学が2014年に提案した畳み込み13層・全結合3層の計16層からなるCNNモデルのことで、ImageNetと呼ばれる大規模画像データセットで学習されたものです。本研究では、このVGG16の14層までの重みデータを利用し、全結合層3層を追加して転移学習させました。
位置の推定では、現場での座標が既知の平面上4点を定義し、射影変換することにより作業員の位置を算出します。推定に用いる箇所はOpenposeから抽出した足首関節の中心としました。
動作の推定も、3Dモデルからデータを作成し学習させます。まず、Azure Kinect DK※を用いて動作の3次元座標を取得します。次に、身長差や体格差を考慮し座標にノイズを加え、2次元座標に透視変換する。Openposeの精度を考慮しこのデータにノイズを加え間引きしたものを正規化し、学習データとします。分類動作は「立ち止まっている・しゃがんでいる・かがんでいる・掃き掃除をしている・工具で材料を切っている(スライドソーを使用している)」とし、一動作に対して約7000のデータを用意しま
※Azure Kinect DKとは、Micrisoft社がリリースした開発者向けデバイスであり、深度センサ、マイク、RGBカメラ、IMUから構成されているものです。本研究では、深度センサ(モード:NFOV Unbinned、解像度:640×576、FOI:75°×65°)のみを使用しました。
上記の3つの推定手法を検証した結果、概ね良好に推定できることを確かめられました。 しかし、作業員の身体が大きな道具などによって隠れてしまい各関節情報が抽出できない場合は動作推定精度が下がってしまうという改善点も見つかりました。 今後は、複数台のカメラを使用したシステムや推定可能行動の多様化などに取り組んでいきたいと思っています。