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
ディープとアルゴがタッグを組む、キャディ図面解析のテクノロジーに迫る
Search
[email protected]
March 10, 2022
Technology
1
5.2k
ディープとアルゴがタッグを組む、キャディ図面解析のテクノロジーに迫る
2022/3/10に開催したイベントの登壇資料です。
イベントページはこちら
https://caddi.connpass.com/event/239652/
[email protected]
March 10, 2022
Tweet
Share
More Decks by
[email protected]
See All by
[email protected]
[ English ] Company Overview for Engineers
caddi_eng
0
340
エンジニア向け会社紹介資料
caddi_eng
14
290k
CADDi 会社紹介・採用説明資料
caddi_eng
11
790k
機械学習チームのモノレポ移行
caddi_eng
0
470
BtoB SaaS を支える 認証認可基盤の設計
caddi_eng
0
970
2023.01_CADDi Thailand Company Overview
caddi_eng
0
15k
20220826_Company Briefing Online Event
caddi_eng
0
500
OpenSearchで実現する画像検索とテスト追加で目指す安定運用
caddi_eng
4
6.1k
製造業向け新事業の基盤をエンジニア1人のチームでローコード&マネージドで半年で立ち上げた話_220810
caddi_eng
0
1.1k
Other Decks in Technology
See All in Technology
SREの前に
nwiizo
11
2.7k
Terraform Stacks入門 #HashiTalks
msato
0
210
いざ、BSC討伐の旅
nikinusu
2
600
AWS⼊社という選択肢、⾒えていますか
iwamot
2
1.1k
エンジニア候補者向け資料2024.11.07.pdf
macloud
0
4.5k
Microsoft Intune アプリのトラブルシューティング
sophiakunii
1
400
State of Open Source Web Mapping Libraries
dayjournal
0
200
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
1
290
LINEヤフー株式会社における音声言語情報処理AI研究開発@SP/SLP研究会 2024.10.22
lycorptech_jp
PRO
2
280
メールサーバ管理者のみ知る話
hinono
1
100
OCI Data Integration技術情報 / ocidi_technical_jp
oracle4engineer
PRO
1
2.6k
Datachain会社紹介資料(2024年11月) / Company Deck
datachain
4
17k
Featured
See All Featured
Statistics for Hackers
jakevdp
796
220k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
For a Future-Friendly Web
brad_frost
175
9.4k
How GitHub (no longer) Works
holman
310
140k
Teambox: Starting and Learning
jrom
133
8.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
It's Worth the Effort
3n
183
27k
Transcript
1
A B O U T Today's Speaker
3 Algorithm Engineer Shunsuke Nakamura 学生時代は主に単一画像超解像や画像の印象解析を研究。 2019年にDeNAに入社。画像生成・超解像の研究開発を行い、 その後ドライブレコーダーでの車内映像解析や学習モデルの 組み込みチームに所属し、Rustを触り始める。日本の大きな 力のポテンシャル解放に奔走するCADDiに惹かれ、2021年6月
にジョイン。現在は図面解析の開発に携わる。 Algorithm Engineer Yuichiro Terada 大学卒業後、機械系の設計用3D CADを作成する会社に入社 し、その後C#を使った開発を行うために子会社へ異動。志半 ばで開発を終えることになってしまったプロダクトの土台を もとに新たな開発を行うため上司に誘われ新会社へ転職。 ソフトとオペレーションの双方が強い環境でビジネスを構築 したいという思いから2019年10月にキャディへジョイン。図 面系の研究開発チームをリード。
Question 1 4 • AI Labの設立背景と、現在お二人が取り組んでいるこ とは何ですか?
やりたいこと • 図面を自動で読み取りたい • データを活用したい
図面を自動で読み取りたい • 図面は画像 ◦ PDFで届く ◦ 紙に印刷してからスキャンされた画像も多い • 図面枚数が多いと大変 ◦
1案件に1000枚の図面とか ◦ 加工の似た図面で分類して加工会社に発注 ◦ 仕様の不明点を顧客とすり合わせ ◦ 図面の差し替え • 検索したい ◦ 図番、材質、品名、加工指示、 etc ◦ 類似図面検索 • 分類したい ◦ 似た図面でグルーピング
データを活用したい • 受発注の過程で大量のデータが生まれる ◦ 図面 ◦ 受注元・受注額、発注先・発注額 ◦ 他にも例えば、リードタイム、不良率、辞退率、 etc
• データは宝 ◦ データを元に〇〇を提案 ◦ データを元に〇〇を推論 何かは分からないが「何かできそう」感はものすごくある
今日は図面の話
なぜ図面なのか なぜ3DCADではないのか。 • 現実として、図面で発注頂くことが圧倒的に多いから • 図面には公差や表面粗さといった情報が載るから YSK様ホームページより引用 https://www.shaft.co.jp/products/special/special.html https://kakou-consul.com/ より引用
3DCAD 必須 2D図面が必須
図面が「人が読む」前提 コンピュータで自動処理するように作られていない コンピュータで自動処理するように受発注取引がなされていない これが調達の効率化を妨げている 図面読み取りにブレークスルーがあれば、道がひとつ拓ける
なぜAI? • 図面はアルゴリズムか機械学習か悩ましい ◦ 極めて人工的な画像 → アルゴリズムでそこそこ読めそうな気がする ◦ 紙をスキャンするとノイズが乗る →
ヒューリスティックはつらくなりがち ◦ うまく使い分けられないか?( ← 今日のテーマ!) • 熟練した人のように図面を読みたい ◦ 熟練者は、パッと見で「機械加工」か「板金」か見分けられる ◦ 「パッと見の雰囲気による判別」は言語化できない ◦ 機械学習が向いているのではないか • 類似した図面を探したい ◦ 人はパッと見の印象で「似ている」「似ていない」が分かる ◦ これも機械学習向きに思える
取り組んでいること • Orama Unit ◦ 図面認識 ▪ テーブル情報(図番、材質、 etc)、寸法線、寸法値、記号、 etc
◦ 図面Diff ▪ 設計変更で差分が生じた箇所を強調表示 ◦ 類似図面検索(図面特徴量) ▪ AIによって駆逐されつつある …(もちろん良いこと) • AI Unit ◦ 図面認識 ▪ 矢印分類、ノイズ除去 ◦ 図面分類 ▪ 加工法・母材形状... ◦ 類似図面検索 ◦ 加工依頼先推薦
Question 2 13 • アルゴリズムと機械学習がどのように協業しながら、 Labが解こうとしている課題に取り組んでいるのでしょ うか?
What is Orama? Metadata: { “DrawingNumber”: “50-1”, “Material”: “A6063”, “PartName”:
“モーターベース”, … } Alltexts: [“尺度”, “備考”, “製 図”, “検図”, 出図”, “1:2”, “加 藤”, “小橋”, ...] Input (PNG) Outputs Orama
ベクター化
3つのフロー アルゴリズム 協業 アルゴリズム 出力 出力 出力 ベクター化 画像を直接 CNNへ
いろんな寸法線
寸法線の特徴は矢印にあり!? 寸法線 寸法補助線 矢印 特徴 • 寸法線と寸法補助線が直交している • 寸法線には矢印が付いている
ベクターデータで矢印認識は難しい ベクター化
CNNだけで解く図面特有の難しさ • 画像サイズが非常に大きい(数千 px〜) ◦ 学習だけでなく、推論にも大きなコストがかかる • 記号がシンプルかつ小さい ◦ 図面記号はシンプル。異なる意味の記号が、形状としては非常に近いことも多い。
そのためCNNが誤認識しやすい ◦ 画像サイズは大きいのに、記号のような CNNで特徴として注目したい領域は非常に小さい 単純に図面をCNNに入力しても、タスクを解けない・運用に耐えられない!
ディープとアルゴがタッグ! アルゴリズムで矢印候補箇所を抽出 矢印かな? ディープで判定
Question 3 22 • 所属されているチームでの、仕事や開発の進め方の具 体な話を教えてください
AI Unit 組織 Tech AI Lab Orama Unit エンジニア4名 エンジニア4名
AI Labの詳しい話はこちら! https://caddi.tech/archives/3003
Scrum 等 • Daily 15分 (AI Unit + Orama Unit
共同) ◦ 進捗報告、困りごと共有 ◦ お楽しみ雑談タイム • Refinement 30分/週(Unit 別に分かれて) ◦ 中核メンバーで次のスプリントでやることを決める • Sprint Planning(Unit 別に分かれて) ◦ チケットをメンバーにアサイン ◦ 1 sprint = 1 week (現時点では) • Sprint Review(Biz 系メンバーも含めた組織で) ◦ 他チームにも説明可能な成果を発表 • Mob Programming(AI Unit + Orama Unit 共同) ◦ 例)「ゼロから始める Deep Learning」を Rust で実装 • 勉強会(AI Unit + Orama Unit 共同) ◦ 論文紹介、技術トピックのサーベイ、アルゴリズム紹介、 etc
Rust でアルゴリズムってどう? • 最高! • 速い ◦ 「可読性を犠牲にして速くなるように書く」をやらなくても速い ◦ rayon
で並列化も簡単 • mutable が使えて、かつ安全 ◦ mutability の扱いが厳格。予期せぬ副作用でバグることがない。 ◦ アルゴリズムは mutable を使うほうが自然なものも多い。 • Iterator + メソッドチェイン ◦ 素直に immutable に書ける処理は immutable に ◦ map, flat_map, filter_map, etc • 保守性、可読性を保ったアルゴリズム開発 ◦ ヒューリスティックはスパゲッティになりがちだが ◦ Rust の力をうまく使えば、保守性を維持しつつチームで開発できる
Rust × CNN • CNNの学習自体はPython+GCPで行う ◦ 既存の深層学習ライブラリ・コードを利用したい ◦ 開発者がPythonでの学習に慣れている ◦
OramaにはPython wrapperが存在するのでデータのやり取りも可能 • 推論時はRustで行う ◦ Pythonで学習したモデルを ONNXに変換してRustからロードして使用する ◦ メリット ▪ 最高! ▪ アルゴリズムのコードの中に 1フローとして組み込める ▪ ビルド時にモデルをバイナリの中に含めることでスタンドアロンなバイナリにできる ▪ rayonで簡単に並列化できる ◦ デメリット ▪ ONNX互換なモデル構造である必要がある ▪ 推論時に前処理含めて CPUで十分高速に動くモデル構造である必要がある
Communication, Documents Flow Stock Markdown でサクッと 書きたいとき 社内ドキュメントサーバ( MkDocs)
テスト • Regression Test ◦ 前バージョンの図面認識結果と比較 ◦ 差分が生じていたら failure •
性能評価 Test ◦ 正解データ(アノテーション)と比較 ◦ (項目名)Recall ◯%、Precision ◯% ◦ 中身がCNNに置き換わってもテストは同じ • anocci ◦ 図面用のアノテーションツール(自社開発)
Question 4 29 • お互い(ML / アルゴ)に、相手がやっている手法に対 して、ここがすごい・・!と思う点を教えてください
• AI Labが目指しているところと、今後どのような人と一緒 に仕事をしたいか教えてください Question 5 30
あんなこといいな、できたらいいな • 図面 ◦ 寸法公差、各種記号の認識 ◦ DXF • 受発注データ ◦
「どの顧客の」「どの部品が」「どの加工会社に」「幾らで発注された」という実績データ ◦ これらのデータと、図面から読み取ったデータが結びついたら、何ができる …? • 情物一致 ◦ 倉庫、拠点 • 検査 • 自動見積り • 加工会社選定 • 3DCAD • …