買い物中に気なる原産地表示をスマホのカメラで読み込むだけで確認できた！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/ff64663a-f92f-32e1-deb8-4a3ee869a86b.png)
## スマホカメラで商品を読み込むだけで原産地確認できるツール

自分の家族も気にしていますが、一般的に消費者が気にする食品系の原産地表示についてパッケージの裏を探さなくても陳列されたまま商品をスマホで読み取るだけで確認できるツールを試作してみました。
下がスマホカメラ（自分の場合はiPhone）を利用した原産地表示ツールの動画見本です。
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr"><a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a><br>スマホカメラで商品のパッケージを読み込むだけで食品の原産地表示が確認できた！！ <a href="https://t.co/gat6Ww6pEu">pic.twitter.com/gat6Ww6pEu</a></p>&mdash; takeomagic (@takeomagic) <a href="https://twitter.com/takeomagic/status/1697409778698649796?ref_src=twsrc%5Etfw">September 1, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

又、原材料、原産地表示は政府広報より下記がルールとなっています。
>・日本国内で製造または加工されたすべての加工食品が対象。
・製品中、最も多く使われた原材料の原産地を表示。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/909c5619-063a-5733-6c30-a9d5d1d5d032.png)
## ツールの目的


上の写真のように原材料の写真は「製品中、最も多く使われた原材料の原産地を表示」されているため、確認しやすいとは言えません。
商品の裏面を探さなくても陳列されたまま商品の表面をスマートフォンカメラ(自分の場合はiPhoneです)で読み取るだけで判別できるようにしました。
個人的に、自分の家族がスーパーで買い物をするとき原材料・原産地表示は非常に気にしていて、聞いてみましたが自分のスマートフォンで簡単に確認できればすごく嬉しいと言っていました。

## 使用したツール

:::note info
シンプルに2つのツールです。
・[Teachable Machine](https://teachablemachine.withgoogle.com/)
・[CodePen](https://codepen.io/trending)
:::

## 全体の流れ
① **Teachable Machine**で商品の画像と原材料 原産地表示を登録します。
画像は1つの商品に対して短時間に100枚以上記録する事ができます。
② **Teachable Machine**で作成したURLをスマートフォンで開くと**CodePen**上、スマートフォンのカメラで原材料 原産地が表示できるようになります。


それではそれぞれのツールについて設定内容をご紹介します。
## Teachable Machineの設定
>**Teachable Machine**はGoogleが提供している機械学習のモデルが作成できるサービスで
「画像」「音声」「ポーズ」の3種類のモデルでAI認識が可能です。

今回のツールでは商品の<font color="Red">画像</font>を学習させます。

|商  品|JAN        |原材料表示|
|-----|------------|---------|
|シャキシャキとした食感の **コールスロー** |4549414486056|国産|
|カロリー10%カット  **ごぼうサラダ**|4549414485998|中国|
|ふっくらジューシー **味付け油揚げ**|4549414485929|カナダ|

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/39bb0124-81d9-2881-46d0-cae653b431bb.png)

サンプルパターンとして「国産」「中国」「カナダ」を登録しました。

サンプル画像の取込み
１，サンプル商品の画像を撮影していきます。
　　それぞれの商品の写真は最低100枚ずつ登録します。
　　① 商品の表面
　　② 商品の裏面
　　③ JANコード　を撮影していきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/48ad67d5-6472-2057-8002-6283fe451416.png)
・コールスロー登録写真
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/3b93ceed-86e9-d66a-97b1-48fcb1e47038.png)
・ごぼうサラダ登録写真
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/7ac1853d-3654-da0a-16bb-6a8b79b5f847.png)
・油揚げ登録写真
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/039b583b-f096-2757-8984-f0870fd63698.png)

又、商品がみつからない時用に白い壁を<font color="Red">「該当商品なし」</font>として登録しておきました。

２，サンプルの登録が終わったらこれらのサンプル写真を**Teachable Machine** AIに学習させます。
画面の真ん中に<font color="Red">モデルをトレーニングする</font>というボタンがあるのでここを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/5a235ae7-b95d-adfc-5c77-be87eb7e7ee9.png)
ボタンを押してトレーニングが終わると右側にカメラの画像とその下にAIが画像から判断した結果がパーセンテージが動きながら表示されます。　
試しにサンプルの商品どれかをカメラに映して精度高く判断できているかチェックしてください。
写真では右下の部分、原材料の原産地が表示されています。　表面や裏面、JANコードで試してみましたがなかなかの精度でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/09033518-113b-9df6-b497-d044a5646538.png)
ここまでではパソコンのカメラの使用が前提ですので、商品をパソコンまで持ってこないと活用できず現実的ではありません。

３，ここからは、スマートフォンカメラで検索できるように**CodePen**へ渡すための**Teachable Machine**設定続きです。
上記まで正しく動いているチェックが終わったら、<font color="Red">モデルをエクスポートする</font>を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/c56efe1e-546e-c5a5-1425-aef62933a37d.png)

次のこの画面で<font color="Red">モデルをアップロードする</font>を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/664378f3-1adc-8b6b-6c0b-e7cdeda87551.png)

真ん中くらいに共有可能なリンクがあるので「モデルを使用するコードスニペット」の<font color="Red">p5.js</font>を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/dbb9a60e-fbbb-6eae-82e5-b139e99f1981.png)
このp5.jsタブにある長いコードをこの後、**CodePen**設定で使用しますのでコピーしておいて下さい。

**【CodePenの設定】**
**CodePen**はオンライン上でHTML、CSS、Javascriptを書くことができるサービスです。
今回は**Teachable Machine**とつなげ、スマートフォンカメラで商品を認識できるようにしてみました。

１，**CodePen**を開くと箱が3つ並んでいて左から「HTML」「CSS」「JS」と並んでいます。
使用するのは一番左の箱<font color="Red">「HTML」</font>部分です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/47eb42f2-d5e4-d72d-c31c-fb84ee5005e3.png)
ここに先にコピーしておいた**Teachable Machine**の長いコードを貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/042897cc-d336-41f6-a122-f37d2496caaf.png)
２，コードを張り付けると、張り付けたコードの下に**Teachable Machine**と同じようなカメラの画像と検索結果が表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/e3597462-0c6e-2545-0eca-55f2c929af31.png)
３，**CodePen**の右上にある四角いボタンを押します。
メニューの中から上から3つめ、<font color="Red">FullPage View</font>を押すとコード入力の画面が非表示になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/16b15c8b-0306-3012-e32d-2dd45c8c603b.png)
もしくはスマホにURLを送った後、**スマホの画面**で<font color="Red">FullPage View</font>を選択するとコードが表示されている画面が非表示になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/5bab9435-cd23-1175-239f-6d2c5eaebf30.png)
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/717a7859-1cec-7247-9d27-ab512422dda5.png)

４，**背景色を変更**する事もできます。
真ん中の箱<font color="Red">「CSS」</font>の部分にコードを入力します。　
今回は背景色を目立つ黄色に設定してみました。色を示す＃と６ケタの数字は「CSS　色」でWeb検索する事ができます。
今回は黄色に設定しましたので#FFFF33と入力しています。
青色の場合は#0000FFです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/e8716d08-151a-2eb1-9070-69c50544715f.png)
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/a04915d3-c503-e774-cdf0-50678fd88c55.png)
又、左の箱HTMLの一番上の部分を<font color="Red">タイトルに変更</font>しておきましょう。　
カメラ画面の上にタイトルとして反映します。


この**CodePen**のページのURLをスマホに送り、アドレスを開くとスマートフォンのカメラを使用して原材料の原産地を確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/dd761eca-9e79-aa23-5997-bcb56f9f5945.png)

**CodePen**をiPhoneカメラで使用する時、画面側のカメラから背面カメラに切り替えできないようで、そのままでは少し使いにくく感じました。対応として、iPhoneの場合は設定で<font color="Red">背面をたたくと画面がキャプチャされる機能</font>があるのでそれを使えば原産地確認がしやすくなります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3514199/ff64663a-f92f-32e1-deb8-4a3ee869a86b.png)

## 今後の課題
今回はシステムの動きを勉強するため、身近に管理する商品マスタ項目の中から食品の原材料 原産地表示ツールで試してみました。
**Teachable Machine**に画像を取り込むとその精度は高く充分実用に耐えると感じました。

課題は大型店で食品のみで2万点越える取扱い商品数をどう登録、更新していくか。
商品マスタの登録時に個社対応を超えて商品の画像登録ルールが必要になってきます。
まずは、すでに画像登録されている商品で対応が拡大できないかさらに検討していきます。

又、この手法で使えそうなものも考えてみました。
・**濫用医薬品**の区別
  一般用医薬品のうち、指定された成分について販売時の数量制限など方策がとられている医薬品を区別する。
・**保証書対象商品**の区別
　家電中心に保証書が商品に含まれていますが、小売業によっては管理上、メーカー保証書とは別に「お買い上げ証明書」をお渡ししています。
・**消費期限対応**
　食品中心に取引先様からの納品期限、消費期限など管理が現状煩雑。
・店舗で陳列されている**棚割り(陳列)単位のデータ**(売上額・売数・ABC分析など)を検索。
　元データは、自グループが管理しているものがあるので売場で店舗担当者や店舗巡回時の商品部員が簡単に検索できるものができないか。
　
以上、**Teachable Machine**、**CodePen**ツール活用によるマートフォンカメラで原産地表示ツール開発の流れでした。

ありがとうございました。