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
recruiting@caddi.jp
March 10, 2022
Technology
1
5.3k
ディープとアルゴがタッグを組む、キャディ図面解析のテクノロジーに迫る
2022/3/10に開催したイベントの登壇資料です。
イベントページはこちら
https://caddi.connpass.com/event/239652/
recruiting@caddi.jp
March 10, 2022
Tweet
Share
More Decks by recruiting@caddi.jp
See All by recruiting@caddi.jp
【CADDI VIETNAM】Company Deck for Engineers
caddi_eng
0
320
CADDi Company Deck_Global.pdf
caddi_eng
0
210
[ English ] Company Overview for Engineers
caddi_eng
0
2.4k
エンジニア向け会社紹介資料
caddi_eng
16
380k
CADDi 会社紹介・採用説明資料
caddi_eng
11
920k
機械学習チームのモノレポ移行
caddi_eng
0
570
BtoB SaaS を支える 認証認可基盤の設計
caddi_eng
0
1.2k
2023.01_CADDi Thailand Company Overview
caddi_eng
0
15k
20220826_Company Briefing Online Event
caddi_eng
0
560
Other Decks in Technology
See All in Technology
Apache Iceberg Case Study in LY Corporation
lycorptech_jp
PRO
0
340
JavaにおけるNull非許容性
skrb
2
2.6k
役員・マネージャー・著者・エンジニアそれぞれの立場から見たAWS認定資格
nrinetcom
PRO
4
6.2k
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
740
技術スタックだけじゃない、業務ドメイン知識のオンボーディングも同じくらいの量が必要な話
niftycorp
PRO
0
110
Pwned Labsのすゝめ
ken5scal
2
450
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.2k
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
270
設計を積み重ねてシステムを刷新する
sansantech
PRO
0
170
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
200
AI自体のOps 〜LLMアプリの運用、AWSサービスとOSSの使い分け〜
minorun365
PRO
3
210
ESXi で仮想化した ARM 環境で LLM を動作させてみるぞ
unnowataru
0
180
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Rails Girls Zürich Keynote
gr2m
94
13k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
510
Designing Experiences People Love
moore
140
23k
Building Adaptive Systems
keathley
40
2.4k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
GitHub's CSS Performance
jonrohan
1030
460k
Code Reviewing Like a Champion
maltzj
521
39k
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 • …