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.4k
202309 kaggle 銀 LLM science exam まとめ資料
sugupoko
0
560
金_kaggle_hubmap_202307_instance-segmenataion
sugupoko
0
160
銀_kaggle_火山コンペ_20230615
sugupoko
0
530
反省_kaggle_時系列データ_202305_手話コンペ
sugupoko
0
450
10位_202304_超解像コンペ_solafune_衛星画像の超解像
sugupoko
0
190
銀_202302_kaggle_NFL_Player_contact_detection
sugupoko
0
150
銀_1D時系列データ分類_202212_nishika_睡眠コンペ
sugupoko
0
350
反省_アルゴコンペ_202208_kaggle_DFL
sugupoko
0
170
Other Decks in Research
See All in Research
The Relevance of UX for Conversion and Monetisation
itasohaakhib1
0
120
国際会議ACL2024参加報告
chemical_tree
1
350
LLM時代にLabは何をすべきか聞いて回った1年間
hargon24
1
530
[ECCV2024読み会] 衛星画像からの地上画像生成
elith
1
900
大規模言語モデルのバイアス
yukinobaba
PRO
4
760
marukotenant01/tenant-20240826
marketing2024
0
520
尺度開発における質的研究アプローチ(自主企画シンポジウム7:認知行動療法における尺度開発のこれから)
litalicolab
0
360
精度を無視しない推薦多様化の評価指標
kuri8ive
1
290
Practical The One Person Framework
asonas
1
1.8k
Leveraging LLMs for Unsupervised Dense Retriever Ranking (SIGIR 2024)
kampersanda
2
250
Language is primarily a tool for communication rather than thought
ryou0634
4
790
Tietovuoto Social Design Agency (SDA) -trollitehtaasta
hponka
0
3k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
335
57k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
A Philosophy of Restraint
colly
203
16k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Documentation Writing (for coders)
carmenintech
66
4.5k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
Optimising Largest Contentful Paint
csswizardry
33
3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Writing Fast Ruby
sferik
628
61k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Building an army of robots
kneath
302
44k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
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開発 ここがメイン