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
【Nishika】プリント基板の電子部品検出
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Masafumi Abeta
June 13, 2023
Programming
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【Nishika】プリント基板の電子部品検出
【Nishika】プリント基板の電子部品検出 コンペの参加録です。
https://competition.nishika.com/competitions/kiban/summary
Masafumi Abeta
June 13, 2023
More Decks by Masafumi Abeta
See All by Masafumi Abeta
Pythonのパッケージマネージャー「uv」
abeta
1
440
GPTモデルでキャラクター設定する際の課題
abeta
0
380
GPTをLINEで使えるようにして布教した
abeta
0
220
初心者向けChatGPT入門
abeta
0
280
GPT Short Talk
abeta
0
170
拡散モデルについて少しだけ
abeta
0
88
動的計画モデル
abeta
0
200
物体追跡
abeta
0
350
特徴量記述
abeta
0
220
Other Decks in Programming
See All in Programming
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
Agentic UI
manfredsteyer
PRO
0
200
A2UI という光を覗いてみる
satohjohn
1
150
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
940
The NotImplementedError Problem in Ruby
koic
1
940
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
620
Datadog LLM Observabilityで実現する 安全なLLM Usage 管理
3150
0
110
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
210
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.8k
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
180
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
1
380
Featured
See All Featured
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
260
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
KATA
mclloyd
PRO
35
15k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Typedesign – Prime Four
hannesfritz
42
3.1k
The Cult of Friendly URLs
andyhume
79
6.9k
Between Models and Reality
mayunak
4
350
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
170
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.3k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
170
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Transcript
プリント基板の電⼦部品検出 阿部⽥将史 ‒ Masafumi Abeta 2023.06.13
© 2023 Masafumi Abeta 2 コンペ概要 1 解法 2 上位解法エッセンス
3
© 2023 Masafumi Abeta 3 コンペ概要 1 解法 2 上位解法エッセンス
3
© 2023 Masafumi Abeta 4 コンペ概要 背景:プリント基板の需要が⾼まり、外注での製造が増えるにつれ、利⽤者の情報を抜き取るために電⼦部品 に細⼯をしたり、偽造したりするといった危険性が⾼まっているため、それらの安全性の保証は重要な課題と なっている。 ⽬的:基板内の電⼦部品を検出し、それらの検査を⾏うために機械学習を利⽤。
タスク:プリント基板の画像から電⼦部品を検出する(インスタンスセグメンテーション)。 https://competition.nishika.com/competitions/kiban/summary
© 2023 Masafumi Abeta 5 コンペの結果(暫定) • Public: 7位 (score=0.5486)
• Private: 4位 (score= 0.600890)
© 2023 Masafumi Abeta 6 データセット • プリント基板の画像 • 解像度
⼀辺約1,000px~約8,000px • 学習⽤:122枚(ユニーク:43枚) • テスト⽤:28枚 • アノテーション • クラス数1 • インスタンス数 1~1,029 • インスタンスサイズ⼀辺 約5px 〜約4,000px • 学習⽤:18,853インスタンス • データの特徴 • インスタンス数が多い • インスタンスサイズのギャップが⼤きい • 数pxの⾮常に⼩さいインスタンスが含まれる University of Florida, “FICS PCB IMAGE COLLECTION (FPIC)” https://www.trust-hub.org/#/data/pcb-images
© 2023 Masafumi Abeta 7 評価指標 • 評価指標 AP@IoU[.5: .95]
• 制約 マスクのIntersectionは許されない • データ分割 Public : Private=1:1
© 2023 Masafumi Abeta 8 コンペ概要 1 解法 2 上位解法エッセンス
3
© 2023 Masafumi Abeta 9 ソリューション概要 • ソリューション概要 • 学習時に画像をCrop
• Mask-RCNN + SAHI • ⽅針 • ⼩さいインスタンスが多いので、⼩さいインスタンスが⼤きく写った画像をモデルに⼊⼒したい • コンペに費やせる時間が少ないので積極的に既存のライブラリを活⽤し、シングルモデルで作りたい
© 2023 Masafumi Abeta 10 前処理 • 事前に短辺を2000にリサイズ • オンザフライAugmentationは基本的に480〜800でランダムクロップ
• ⼤きいインスタンスを検出するために⼀定の確率でリサイズを採⽤(後に述べるFull Inferenceのため)
© 2023 Masafumi Abeta 11 モデル • Mask R-CNN(torchvision.models.detection.maskrcnn_resnet50_fpnのpretrained) •
モデル⼊⼒時の幅と⾼さは640x640 • バッチサイズは8、学習率は0.01、Weight Decayは0.0005、300 epoch学習 https://arxiv.org/pdf/1703.06870.pdf
© 2023 Masafumi Abeta 12 SAHI: Slicing Aided Hyper Inference
• SAHIは画像をスライディングウィンドウで分割して推論、結合する⼿法 • MMDetection, Detectron2, Torchvision, HuggingFace対応 • ドローン画像や⾶⾏物体の検出コンペ等で使⽤されている https://arxiv.org/pdf/2202.06934.pdf
© 2023 Masafumi Abeta 13 SAHIの分割処理 • 幅と⾼さは640*640、オーバーラップ40%とした • 予測のスコア閾値は0.9、マスク閾値は0.5とした
640 640 40% 40% ※分かりやすさのため⾞の画像で説明
© 2023 Masafumi Abeta 14 SAHIの結合処理 • SAHIの結合処理はNMS/NMM(Non-maximum Merge)が使⽤可能で、 基準はIoU/
IoS(Intersection over Smaller area)を使⽤できる • 結合後処理はNMMでIoU=0.1を使⽤した • 結局、Full InferenceはFalseとした IoU= IoS=
© 2023 Masafumi Abeta 15 キーポイント • ⼤きい部品のBBoxに⼩さい部品が含まれるケー スがあるので、NMMでIoUを選択 •
SAHIで予測後、 SAHIの画像分割が原因で同⼀ 物体を検出するマスクが存在するため、 Mask IoSでNMSを実⾏
© 2023 Masafumi Abeta 16 マスクの重複の除去 • 最後に`remove_overlapping_pixels`を実⾏し、スコアが低いマスクの重複部分を除去 (コンペの制約に対応するため) remove_overlapping_pixels関数
Score 0.99 Score 0.90
© 2023 Masafumi Abeta 17 予測例
© 2023 Masafumi Abeta 18 その他注意点 • torchvision.models.detection.maskrcnn_resnet50_fpnの予測マスクは[N, 1, H,
W]。 SAHIは[N, H, W]を期待しているため、そのままだと動かない。 • Mask-RCNNはBboxはあるが、Maskがない(all 0の)予測があり、ハングする。 • SAHIインスタンスがパッチに対して予測したマスク画像をすべて保持するため、メモリを⼤量に消費する。
© 2023 Masafumi Abeta 19 コンペ概要 1 解法 2 上位解法エッセンス
3
© 2023 Masafumi Abeta 20 上位解法からの反省 • インスタンスサイズでモデルを分ける • Backboneに
Swin Transformerを使⽤する • ブラー、HSVのAugmentationを使⽤する • Private約0.57程度までは⾼解像度2000~5000の学習、推論でも到達可能 • おまけの反省点 • AlbumentationsのCrop系がmaskに対して適切に機能せず改造が必要 • ログ⽤の画像はJPEGにする(ディスクを圧迫するため)
© 2023 Masafumi Abeta 21 感想 • インスタンスサイズにギャップがある⾼解像度画像の物体検出という課題は⾯⽩かったです • SAHIを使って楽しようとしましたが、かなり改造が必要になって結局⼤変でした