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
Barcode Recognition / pharmacode-decoder
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
shun74
November 26, 2022
Programming
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Barcode Recognition / pharmacode-decoder
Pharmacodeリーダーを製作しました。
アルゴリズムなどの解説資料です。
shun74
November 26, 2022
More Decks by shun74
See All by shun74
深度推定モデルの自己教師あり学習/self-supervised-depth
shun74
0
540
GPUでステレオマッチング / Stereo-matching with GPU
shun74
0
1.2k
卒業研究の進め方 / How to preceed with the research
shun74
1
610
Vision Transformer講座 / Vision Transformer Presentation
shun74
1
800
ニューラルネットの1bit化 / 1bit-neural-network
shun74
0
1k
Defocus Map Estimation From a Single Image Based on Two-Parameter Defocus Model / two-parameter-defocus-model
shun74
0
430
理解してほしいVision Transformer / plz-understand-ViT
shun74
0
830
Other Decks in Programming
See All in Programming
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
AIエージェント時代のコードレビューを設計する
nogu66
6
2.5k
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
0
250
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
130
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
460
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
160
Family mrubyの進捗
kishima
1
100
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
440
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
200
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
120
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
410
Designing Experiences People Love
moore
143
24k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
RailsConf 2023
tenderlove
30
1.5k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
Joys of Absence: A Defence of Solitary Play
codingconduct
1
490
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
エンジニアに許された特別な時間の終わり
watany
108
250k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Designing for humans not robots
tammielis
254
26k
Transcript
バーコード認識の実装 RICORA - shun74
扱うバーコード Pharmacode (ファーマコード) • 医薬品業界向けバーコードの世界標準 • {太い、細い}黒線の2種類を組み合わせるシンプルな設計 Pharmacodeの例 • 決まった長さを持たない
• ある番号を表す(アルファベットを含まない)
Pharmacodeのデコード • Pharmacodeは右から順に計算することでデコードできる 1. 一番右から0, 1, 2…と線に番号を付ける 2. i番目の線が太かったら2^(i+1)を細かったら2^iを足す •
画像のPharmacodeは計算すると... 2^0 + 2^1 + 2^3 + 2^4 + 2^5 + 2^5 = 1 + 2 + 8 + 16 + 32 + 32 = 91
バーコード認識アルゴリズム 以下のステップで認識を行う 1. 画像のグレイスケール化⇢白黒化 ⇣ 2. 白黒画像のパターンの取得 ⇣ 3. パターンのデコード
⇣ 4. デコード結果の結合 ⇣ 5. バーコード部分を塗りつぶして2に戻る ⇣ 6. すべてのバーコードを検出したら終了
画像のグレイスケール化⇢白黒化 • 画像を加工して特徴を捉えやすくする ⇢ ⇢ 元画像(RGB) グレイスケール画像 白黒画像 • 白黒の2値にすることで処理が簡単に!
白=255、黒=0となっている 白黒画像のパターンの取得 • 白黒画像のバーコードを値のパターンから検出する • バーコードのあるラインには特定のパターンが発生する
白黒画像のパターンの取得 パターンを検出する方針 1. 同じ幅の白区間が複数並んでいる場所を検出 2. 白と黒の幅を比較して太い線か細い線かを判定 • 白区間の幅に外れ値がないかをチェック ⇢ ノイズを排除しやすくなる
• 予め白区間の幅を指定しない ⇢ 様々な大きさのバーコードを検出可能
パターンのデコード • 取得できたパターンからpharmacodeの値を計算 • このラインからは755が検出される • パターンがない場合は0としておく
デコード結果の結合 • 各ラインの結果を統合してバーコード領域を特定 • 緑の線の範囲はデコード結果が755と なっているはず • 同じ数値が一番長く続いた区間を検 出結果とする
複数バーコードがある場合は? • 検出された部分を塗りつぶして検出をやりなおす ⇢⇢⇢ • バーコードが検出されなくなるまで繰り返すことで全て検出可能
検出結果 バーコード領域をきれいに検出できている!
その他工夫 • 画像にガンマ補正+鮮明化の前処理を行う ⇢ ブレに強くなる • 白黒化はラインごとに行う ⇢ よりノイズに強い白黒化 •
ラインごとの処理を並列化 ⇢ 並列化により処理を高速化
実装 GitHub:https://github.com/shun74/Barcode-Recognition