Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
銅_アルゴコンペ_202201_signate subaru eyesight
Search
suguuuuuすぐー
February 15, 2022
Research
0
120
銅_アルゴコンペ_202201_signate subaru eyesight
2022/1/31 signate subaru eyesight competition
suguuuuuすぐー
February 15, 2022
Tweet
Share
More Decks by suguuuuuすぐー
See All by suguuuuuすぐー
20240803_関東kaggler会_HMS振り返り&チームで取り組むkaggle
sugupoko
0
1.3k
202309 kaggle 銀 LLM science exam まとめ資料
sugupoko
0
530
金_kaggle_hubmap_202307_instance-segmenataion
sugupoko
0
150
銀_kaggle_火山コンペ_20230615
sugupoko
0
520
反省_kaggle_時系列データ_202305_手話コンペ
sugupoko
0
430
10位_202304_超解像コンペ_solafune_衛星画像の超解像
sugupoko
0
180
銀_202302_kaggle_NFL_Player_contact_detection
sugupoko
0
140
銀_1D時系列データ分類_202212_nishika_睡眠コンペ
sugupoko
0
350
反省_アルゴコンペ_202208_kaggle_DFL
sugupoko
0
160
Other Decks in Research
See All in Research
EBPMにおける生成AI活用について
daimoriwaki
0
180
Weekly AI Agents News! 10月号 プロダクト/ニュースのアーカイブ
masatoto
1
110
ダイナミックプライシング とその実例
skmr2348
3
400
言語処理学会30周年記念事業留学支援交流会@YANS2024:「学生のための短期留学」
a1da4
1
240
Embers of Autoregression: Understanding Large Language Models Through the Problem They are Trained to Solve
eumesy
PRO
7
1.2k
Isotropy, Clusters, and Classifiers
hpprc
3
630
非ガウス性と非線形性に基づく統計的因果探索
sshimizu2006
0
360
Weekly AI Agents News! 9月号 プロダクト/ニュースのアーカイブ
masatoto
2
140
新規のC言語処理系を実装することによる 組込みシステム研究にもたらす価値 についての考察
zacky1972
0
100
Matching 2D Images in 3D: Metric Relative Pose from Metric Correspondences
sgk
1
320
大規模言語モデルを用いた日本語視覚言語モデルの評価方法とベースラインモデルの提案 【MIRU 2024】
kentosasaki
2
520
情報処理学会関西支部2024年度定期講演会「自然言語処理と大規模言語モデルの基礎」
ksudoh
3
270
Featured
See All Featured
Side Projects
sachag
452
42k
A better future with KSS
kneath
238
17k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Navigating Team Friction
lara
183
14k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
860
Adopting Sorbet at Scale
ufuk
73
9.1k
Documentation Writing (for coders)
carmenintech
65
4.4k
Producing Creativity
orderedlist
PRO
341
39k
Thoughts on Productivity
jonyablonski
67
4.3k
Transcript
DATE 1/xx • sugupoko
このコンペ活動について(ワイ周辺でメンバ集めた机の下活動) • スタート: – 2021/5月~ メンバ3人 ⇒ 2021/7月 メンバ6人 ⇒
2021/2 メンバ3人 • 実績: – Signate:銅メダル1枚、Probspace:銀メダル1枚、Kaggle:まだ0枚!!! • 備考: – コンペって必要あるの?とかはAppendix参照してね。 Phase1 : ~2021/7 Phase2:~2021/12 Phase3 : ~2022/3 目的: 有名なNetを構築し、提出までの フローを学ぶ 成果物: Tensorflow2でベースネット構築 周辺ライブラリの調査 提出フォーマットへの変換 目的: いくつかのNetを構築し、性能改 善のための施策を学ぶ kaggleを調査し、性能改善のた めの施策を学ぶ 成果物: ・複数のNet構築 ・アンサンブルなどのテクニック取得 目的: 効率的な検討・開発を行い、 メダル圏内に入り込む 成果物: ・kubeflowによる自動学習環境 の構築 ほぼ素人たちが、雰囲気ゆるゆるな感じで、半年くらいでコンペ上位を目指す活動です。 いまここ
機械学習コンペとは?? • 過去の画像系コンペたち・・・ – RSNA-MICCAI Brain Tumor Radiogenomic Classification |
Kaggle • MRIの画像から神経膠芽腫の遺伝的サブタイプを分類 – NFL Health & Safety - Helmet Assignment | Kaggle • NFL動画から誰のヘルメットが強い衝撃を受けたか予測 – Nishika - ケーブルコネクタの種類判別 • ケーブルが写った画像から、どのUSBのタイプ(typeC?など)が写っているかを予測 目的:特定のタスクに関して、ある期間内でアルゴリズムを開発し、 テストデータに対して良い精度を出す!! 神経膠芽腫の 遺伝的サブタイプ分類 誰のヘルメットが 強い衝撃を受けたか予測 どのUSBのタイプ(typeCなど) が写っているか予測
補足:機械学習コンペってどういう風に進めるの??? • Public Leaderboard(Public LB) – 実施期間中、テストデータの一部で評価された暫定順位表 • Private Leaderboard(Private
LB) – それ以外のデータで評価された順位表。すべてのデータで評価するので順位が入れ替わる!! 実施期間中は、”Public Leaderboard”に表示される順位を見ながら着手 最終順位はPrivate Leaderboardで確定 Privateで最終順位が変わる可能性! Publicを過信せず、汎化性能が必要 Public Leaderboard(実施期間中見れる順位) Private Leaderboard(最終確定の順位)
今回行ったコンペの内容: SUBARUのアイサイトで撮影された動画像データなどを利用して、 フレーム単位で先行車の速度を推論するアルゴリズムを作成!
本コンペの難しかったポイントは2つ ①そもそも実装が大変・・・ ②例外処理への対応が必須 • どういう時に必要? • 水滴、ワイパー、逆光のシーンが存在 • その結果、、、 •
先行車が撮れない&ステレオデプスがぐちゃぐ ちゃなことがある! • なぜ大変?? • 今回はチュートリアルがない • さらに複数の処理を介したアルゴリズムの 実装が必要 • その結果、、、 • 参加者に対して、提出率がかなり低い • 提出率14%(151/1051人) • 参考:クラス分類の課題 • 提出率59%(465/783人) ワイパーシーン:NとN+1フレーム目の画像 水滴シーン:画像と距離画像
今回の結果は・・・? 150チーム提出中、47位・・・・!Signateで初銅メダル獲得!! #ぱっと見微妙な順位ですが、上位とアルゴ事態は類似してたのでLSTM導入頑張ればよかった。 Schyさんとチームアップ! ※アドバンスドな初期検討を、 ちょっと手伝ってもらいました。
メダル圏内の共通アプローチ概要 先行車速度 2. 先行車 距離認識 3. 速度推定 1. 車検出 右画像
基本的には、3つの処理ブロックの組み合わせで速度推定! 精度の違いが生まれたのは2点、①いかに時系列ノイズ対応するか、②速度推定を賢く行うか 処理部1 車両検出 処理部2 前方車の距離取得 処理部3 速度推定 視差 画像 先行車 矩形情報 先行車 距離 取り出し 矩形 位置 自車 速度 v0 [km/h] v[km/h] t[h] 0[h] x軸
車両検出: • 銅メダル(ワイ 47位) – 基本:YOLOv5 • ※以前の別のコンペのモノを流 用し、3時間で適用できた。 –
例外処理: • 右目が死んでるときは左目の 検出結果を補正して利用 – 備考:Augmentationを調整 • Mosaic:off • 平行移動系:off • 銀メダル(18位) – 基本: YOLOv5 – 例外処理:未記載 • 金メダル(7位) – 基本:yolo v5 – 例外処理: • 前フレームのbboxと最も オーバラップの大きいbboxを 抽出 • オーバーラップが一定以下な ら前フレームのbboxを採用 基本的にはみんなYoloV5。サイッキョYoloV5! ワイは1回の学習で99.5%の精度で先行車検出できたので、ここは差別化要因にならずと判断。 例外が発生するシーン:雨、ワイパー#動画です。 基本的なシーン:#動画です
前方車の距離取得: • 銅メダル(ワイ 47位) – 基本: • 矩形内の距離の中央値を利用 • その後、EMAで補正処理
– 例外処理: • 前フレームの距離と5m以上差 があった場合、前フレームの値を 利用 • 連続してミスすることに対応する ために、1フレームおきに例外処 理を適応 • 銀メダル(18位) – 基本: • 矩形内の距離画像の0、 150以下の値を削除 • 四分位偏差の範囲を取り 出して平均 – 例外処理: • 距離変化量の制限をかけて ノイズを除去 • 金メダル(7位) – 基本: • 矩形内の距離画像の0、200以 下の値を削除し、外れ値を除い て平均 • 前フレームまでの先行車の距離 で補正(外れ値除去, exponential smoothing) – 例外処理: • 詳細未記載 フレーム間のばらつきを抑える方法で上位と差分あり。 ワイは、中央値を利用しているだけだが、上位は矩形内で平均をとっている 対応位置の矩形 取り出し
速度推定: • 銅メダル(ワイ 47位) – 基本: • 等速直線運動を仮定し、前フ レー情報を利用し算出 •
ガタつくので、EMA処理にて smoothing – 例外処理: • 前の速度と10km/h以上差が あった場合、前フレームの値を利 用 • 銀メダル(18位) – 基本: • 4フレーム前の距離と現フ レームの距離の変化量で速 度を算出 • 1フレーム前の予測速度と 平均 – 例外処理: • 速度変化量の制限をかけて ノイズを除去 • 金メダル(7位) – 基本: • 距離とその差分、自車速度をイン プットとして、LSTMにいれ、相対 速度 – ランダムに30フレーム以上の区間を取 得 • 相対速度を±30km/hに制限 • 自車速度に相対速度を加え、先 行車の速度 • 先行車の速度を0以上に制限 – 例外処理: • 詳細未記載 速度推定の方法で差分あり。ここで大きく差がついた感。 銀メダルとは利用するフレーム量、金メダルとはLSTMの利用で差がついた v0 [km/h] t[h] 0[h] ルール ベース v0 [km/h] t[h] 0[h]
ちなみに、、、 多変量LSTMで、矩形サイズ・自車速度から直接速度推定を Schyさんに試してもらったところ、、、おおよそ73位の結果 ここから言えること:アルゴリズムをしっかり組むのがこのコンペのポイント。DNNは万能じゃないです!
まとめ、構築したライブラリ、所感 • まとめ: – ちゃーーーんと、アルゴを組んで、一つ一つのノイズを取り除くのって重要よね! • 以前のKaggleコンペの時の1位の人もそんな感じで美しいアルゴでした。 – Kaggle NFLコンペ紹介(優勝ポエムを添えて)
- Qiita • 構築したライブラリ – YoloV5への変換コード (YoloV5は以前のコンペで作成済み) – 多変量LSTM – EMA処理 – カルマンフィルタ(未組み込み) • 所感 – 実装実質2日のわりにコスパがよかった – LSTMは使ったことなかったので、データ成形のイメージが沸かず&調査するのもあきらめてしまった。。。 – 途中、SchyさんがLSTMで軽く試してもらったからやればよかった・・・ • 戦績 – 今のところ、Signateで銅1、probspaceで銀1の戦績。コンペ初めて半年だとボチボチかな。。。
EOF
DATE 15/xx Appendix
コンペなんて意味あるの?数%精度向上目指すだけじゃん・・・ “引き出しの広さ”と”スピード感”こそ、Kaggle人材の魅力 • Kaggleをやっている人たちに対して、「0.001ポイント程度の小さい精度を争っても意味がないので は?」と批判をする人がいますが、実務においてわずかな精度を追求することを目的としてKagglerを集 めているわけではありません。 • Kagglerの魅力は、幅広い機械学習問題への取り組み経験から得られる引き出しの広さと、限られた 時間で高いレベルのアウトプットを生み出せるスピード感にあります。 •
また実務では、限られた時間の中でクイックに分析結果を出して次の業務の方向性を決める必要があ ります。分析アウトプットを出すまでの圧倒的なスピードが、Kagglerの大きな武器であり、非常に高速な PDCAサイクルを回すことが可能です。 第1回:なぜDeNAは「Kaggler」を集めているのか? - ZDNet Japan 会社での開発は、いろんなステークホルダーに確認しながら進めなくてはいけないのでマジで遅い 実力をつけるには、結果を短期間で出さなきゃいけない。つまりコンペだ!
会社(俺がやってた仕事)でのDNN開発と、コンペの違い(ワイ視点、弊社全体ではない) • 会社でのDNN開発:下図でいう青色のところがメイン – ニーズに合わせて、データセットの構築から入る ←ここに、ほぼほぼ工数がかかる – ぶっちゃけ、クライテリア次第でデータセットの構築でおおよその性能が満たせる – R&Dとかからベースをもらってくることが多いので、大きな変更が入れづらい。。。
– エッジ前提のため、演算規模を度外視して性能を上げるための工夫は知らなくていい。。。 • Kaggle等コンペ:下図でいう緑色のところがメイン – データセットが固定されてるため、開発の部分がメイン – 回帰問題で解くのか、などの課題に対してのアプローチを検討できる。 会社では、環境構築&データセット構築の作業がメインな感じがする コンペは、データセットが固定されてるためネットワーク、データセットの工夫がメイン DNNワークフロー概要:会社では青メイン、コンペでは緑メイン 会社での DNN開発 ここがメイン コンペでの DNN開発 ここがメイン