>100 Views
December 27, 25
スライド概要
AI・機械学習を勉強したい学生たちが集まる、京都大学の自主ゼミサークルです。私たちのサークルに興味のある方はX(Twitter)をご覧ください!
論文読み会 BiFold: Bimanual Cloth Folding with Language Guidance 京都大学 工学部 情報学科 稲葉 陽孔 0
概要 • 言語の指示に基づいて両手で衣服を折りたたむロボット(ex.左袖を内側に折りたたむ) • 未知の指示・衣服においても衣服を折りたためた • (モデル開発に加え)手作業のアノテーションなしで折りたたみのデモンストレーションを解析し、正確な 言語記述でアノテーションを付与する自動プロセスも開発 今回のタスクに関して (今まで) • 折り畳みの映像データをもとに学習する場合、そのデータ内の折りたたみ方自体が多様 • 複雑な形状の衣服を折りたたむ場合は次の状態の予測・制御が困難 • (元々)両手操作による衣服を折りたたむデータセットがなかった 1
モデルの構造 (従来の手法と課題点 ) 従来の手法 今までは現在時点の深度マップの情報のみを用いて服を折りたたむ手法が流行であった RGB画像をもとにつかむべきピクセル座標を予測する手法だと、3D座標間の関係性の計算に時間がかか る。 しかし、点群の確率分布を予測し、最適なピッキングの点群位置を予測する手法だとこの関係性の計算が容 易 従来の手法の欠点 ・深度マップの情報のみを用いて服を折りたたんでいたが、深度センサーのノイズが多いので失敗しやすい ・点群データ数をダウンサンプリングする必要があり、重要な部位を欠落させうる ※ランダムサンプリングだと布の密度が高い服の中央に集中するので、境界部分(操作の起点)がカバーさ れない可能性あり ・実際の点群データと訓練データの衣服は大きさが異なるので、点群の距離制限が固定だとグラフ構造が異 なりうる ・色のデータがないと服の裏表・縫い目などの情報がわからない ・実行中のメモリを保持できず、過去の動きを考慮できない 2
モデルの構造 (概要) 画像(RGB)+言語指示をinputとして、準静的(5mm/action)にPick or Placeを実行 準静的に行うことで布の遷移速度が遅くなり、操作・予測を簡単にする ※先行研究(SppedFolding)では早く折りたたむために投げる・しわを伸ばすも行動に存在 3
モデルの推論構造 (詳細) 384×384×1(output) 384×384×1(output) SigLIP CLIPの学習方法(対照学習)において、正 解ラベルを複数にしたもの Transformer encoder 入力:768d×2t 出力:24×24×768 ※16×16のパッチでencodeしている Decoder(Pick・Place) CNN(k=1,ch×1/2) UpSample(size×2) ×2 CNN(k=1,ch×1/2) 384×384×3(input) UpSample(size×2) CNN(k=1,ch×1/2) 1.SigLIP(CLIPの亜種)によって画像と言語指示を高次元な特徴量に変換 2.過去の画像+言語指示における特徴量+Positional encoding(学習済)を追加 3.Transformer encoderをもとに過去3時点の画像+textのembeddingをもとに24×24×768×6にencoding 4.現在時点の画像に関するencoderの出力結果のみをinputとし、decoder(CNNベース)を介して、 持つ場所と置く場所を予測 4
モデルの訓練方法 訓練対象 ・SigLIP ・Transformer encoder ・ConvDecoder ・Positional encoding 訓練方法 SE(3)(平行移動・回転など)を用いてデータ拡張して訓練 損失関数:Binary Cross-Entropy(正解の分布と予測分布の誤差を見る) 正解分布の作り方 - 正解が単一の場合:正解座標を中心とした分散5のガウス分布 - 正解が複数の場合:正解座標を中心とした複数のガウス分布を足し、最大値が1になるよう調整 (Adam・lr=1e-4・100epoch) 2次元座標でつかむ位置を予測した後のつかませ方 Azure Kinect cameraにより、2次元座標でのつかむ or 置く位置を3次元に変換(置く場合は高さ固定) →手をその3次元座標に移動させてつかむ or 離して置く ※この時、手の角度は常に地面に垂直(基本的にそうしたらつかめるため) 5
評価方法 正答率(言語指示にのっとって折りたためたか) 単腕:実行後の服のメッシュ座標において、正解データの服と比べて頂点間の距離(平均)が1.25cm以下 両腕:実行後と正解データの服の領域におけるIoUが0.8より上 (両腕データの点群データ量が2倍以上のため) 実験結果 Seen Instrucion 既知の指示 Unseen Instrucion 未知の指示(ex.言い回しが異なる) Unseen tasks 未知のタスク(ex.右下の折り方を 学習していないが、「右下におる」 と指示される) 単腕における折り畳みタスクの成功率 6
データセットの作り方 生成内容 人間による折り畳みの様子(画像+手の角度・服との距離など)があるデータセット(VR-folding)に適した言語指示を生成 生成方法 (折り畳みに関するデータセット追加・フィルタリング ) 1.シミュレーターの挙動が不安定になり、衣服のメッシュが不自然に伸びた(ex.スパイク状になる)データを除外 2.衣服メッシュの端の長さの平均値や標準偏差を計算し、異常に長いエッジを持つ不安定なシーケンスを排除 3.5フレーム以内に完結 or 手が10cm以下しか動かなかったデータを削除・左右の手の動作の開始・終了時間をそろえる 4.VR-foldingの服の色が単純なもののみだったため、CLOTH3Dから複雑な衣服の色を再構成&ClothesNetでリアル調に変換 5.BlenderProc2を用いて多様な視点設定における画像+深度データを生成 6.服の形状が変わっても袖・裾を推定できるよう、正規化された3D座標空間(NOCS)にマッピング 生成方法 (言語指示の追加 ) 1.PoseScriptを用いて衣服のパーツを識別し、動作開始時点+ピッカーの最終位置をもとに ピッカーが「どこをつかみ、どこに置いたのか」を特定 2.つかむ場所・衣服の種類・動作の種類(折りたたむ・微調整するなど)のtemplateをもとに、データに適した言語指示を追加 ※つかむ場所が1通りでも、表現の仕方は複数あるので、どの表現を使うかでパラメーター化し、言語指示を作成 7