誰でも鮮度の良い野菜が簡単に見分けられる!鮮度のクレームが減るAI

# はじめに
こんにちは!私はスーパーの物流部門で働いているものです。
皆さんはスーパーで多いクレームが何か知っていますでしょうか。
それは、野菜や果物の鮮度に関するクレームです。
その為、スーパーでは担当者が巡回パトロールして、鮮度の落ちた商品を確認していますが、商品を1つ1つ見ていくのは大変で時間も掛かります(;´･ω･)
もっと簡単に鮮度の良し悪しを確認できる方法は無いのか。

今回、[Teachable Machine](https://teachablemachine.withgoogle.com/)で良い野菜と悪い野菜の写真を学習させておき、スマホを通して良い野菜と悪い野菜を判定できるアプリを作ってみました。

# 使ったサービス
下記のサービスを使用しました。
◆Teachable Machine
◆CodePen

# 出来上がり
スマホで野菜をかざすとよい野菜か、悪い野菜かを判定します。
<blockquote class="twitter-tweet"><p lang="zxx" dir="ltr"><a href="https://t.co/XKfcKxDBeF">pic.twitter.com/XKfcKxDBeF</a></p>&mdash; 白川圭司 (@KTNZrtzqWVRmEjI) <a href="https://twitter.com/KTNZrtzqWVRmEjI/status/1573537467235733504?ref_src=twsrc%5Etfw">September 24, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

# 作り方
1.[Teachable Machine](https://teachablemachine.withgoogle.com/)を使用して、良い野菜と悪い野菜を覚えさせます。
今回は、トマト、レタス、キュウリ、キャベツ、ジャガイモ、玉ねぎ　計6種類の野菜の良い画像と悪い画像を学習しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/ae118396-b26e-58e7-4780-6b056c578412.png)


2.パソコンのカメラで判定できることを確認して、モデルをエクスポートします。
エクスポートによって、URLとプログラミング言語(javascript、p5.js)が自動で生成されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/6e5f0155-11b6-99bb-a456-f11e13328470.png)

3.エクスポートされたp5.jsを使用して、[CodePen](https://codepen.io/)のHTMLにコピペします。パソコンのカメラを介して、正しく判定されている事を確認します。
<p class="codepen" data-height="300" data-default-tab="html,result" data-slug-hash="OJZgKxQ" data-user="ktnzrtzqwvrmeji" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;">
  <span>See the Pen <a href="https://codepen.io/ktnzrtzqwvrmeji/pen/OJZgKxQ">
  野菜判定用Teachable Machine4</a> by 白川圭司 (<a href="https://codepen.io/ktnzrtzqwvrmeji">@ktnzrtzqwvrmeji</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script>

4.このままだと素っ気ないので、コードを加筆します。
・見出しタグ（h1/h2/h3/h4/h5/h6）を使用してタイトルと説明を付けます。
・divタグで括られたコード名にも加筆します。
・CSSに加筆して、カメラの位置をセンターにします。
<p class="codepen" data-height="300" data-default-tab="html,result" data-slug-hash="abGJYGz" data-user="ktnzrtzqwvrmeji" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;">
  <span>See the Pen <a href="https://codepen.io/ktnzrtzqwvrmeji/pen/abGJYGz">
  野菜判定Teachable Machine2</a> by 白川圭司 (<a href="https://codepen.io/ktnzrtzqwvrmeji">@ktnzrtzqwvrmeji</a>)
  on <a href="https://codepen.io">CodePen</a>.</span>
</p>
<script async src="https://cpwebassets.codepen.io/assets/embed/ei.js"></script>

5.「ChangeView」ボタンで「FullPageView」を選択し、コード編集部分を隠して出来上がり。URLをスマホで開けば、屋外でも使用できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2792549/acc55d6d-87f6-adc1-bd3f-ba6b097ef06c.png)

# おわりに
TeachableMachineの学習では写真画像を使用しましたが、データ量が少なかった事は反省です。
その影響で、野菜の角度確度や向き、光の当たり方によっては、正しく判定されない事がありますので、改善が必要です(;´Д｀)
また、時間を費やして調べたにも関わらず、次の点が出来なかったのは心残りです(;´･ω･)
・アウトカメラで判定できるようにしたかったが、判定結果の文字が消えてしまった事
・ビデオ画像からデータを残せるようできなかった事
やりたい事を実現する為には、もっと色々と勉強する必要があると感じました。
あと、あまり説明せずに、他の人に使って頂いたのですが、野菜の品目が限定されていることから、説明も追加したいと必要と考えています。

最後に、お店で展開する場合は、店内の監視カメラを通して商品の良し悪しを自動で判定すると共に、担当者にスマホやタブレットで売り場のどこにその商品があるか、画像を見せて通知できれば、実用的になるのではないかと考えています。
あと、物流センターに入ってきた商品に対しても、店舗に配送する前に、同様のことができるのではないかと考えています。