鉄道車両のビミョーな違いをTeachable Machineで判別したい！

機械学習というと、なんだか難しそうで素人がどうにかできるものじゃない、っていうイメージがあります。
ところが、最近Teachable Machineという機械学習のツールがあることを知り、おもちゃ感覚で色々面白そうだったので、ちょっと自分もツールを作ってみることにしました。

 # どんなものを作るか
実のところ、本当は仕事に生かせそうなツールを作ることが目的だったのですが、いいアイデアが浮かばなかったので、**とりあえず思いっきり自分の趣味に振りきってみる**ことにしました。
私はちょっとした鉄道マニアです。
鉄道マニアというのは、その宗派にかかわらず、**車両の形式が気になる**ものです。
そして、私の家の近くには、JR東日本の**E231**という形式と**E233**という形式の、とてもよく似た形式の車両が混在して走っています。
自分のような人間は、その識別が一目でできるのですが、まだ**この道に入門したばかりの少年少女にとっては、ちょっと難しいこともあるかも**しれません。
そこで、鉄ちゃんワールドに足を踏み入れたばかりの子供たちのために、**E231とE233の識別ができるようなツール**を作ってみることにしました

 # E231とE233について
ところで、E231とかE231って、どう違うのでしょうか？
まずはＪＲ東日本の公式ＨＰをご覧ください。

https://www.jreast.co.jp/train/local/e231.html

https://www.jreast.co.jp/train/local/e233.html

要するにE231の進化形がE233ってことですね。
ただ、進化形と言いつつも、いわばマイナーチェンジなので、車両の見た目はあまり変わっていません。
前面から見た時の分かりやすい判別点は、次の2つです。
 - ライトの位置
   E231は下側、E233は上側
   ただし番台によってはE231でも上に付いているのが厄介
 - フェイスの形状
   E231は真っ平、E233は若干丸み帯びている。
   ガラス面の切り方がE231は地面に向かって垂直、E233は若干エッジを利かせている。
　 これらが外見上最も分かりやすい判別点

E231もE233も、複数路線で運用されており色違いの車両が存在するので、特に2点目のフェイスの形状を頼りに判別できるかが、ポイントになりそうです。

 # 使用したツール
__Teachable Machine__
[Teachable Machineのページ](https://teachablemachine.withgoogle.com/)
![スクリーンショット 2023-08-29 204119.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/7e96aa9d-4dee-8cef-7cfc-c0443b313c95.png)

# やってみる
Teachable Machineの使い方自他はとても簡単です。
これが初期画面です。
![Teachable Machine　初期画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/0bcbf12b-4a62-1aae-b139-882796d93358.png)

Class1をE231と変更し、自宅周辺の路線で撮影してきたE231の写真をアップロードします。
![スクリーンショット 2023-08-29 213431.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/74c5bcc7-bcef-3bcb-18ab-cbfa3b6cbcb4.png)

次に、Class2をE233に変更し、これまた撮影してきた写真をアップロードします。
![スクリーンショット 2023-08-29 213712.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/71d165a1-9174-0ddc-2ad1-61897ad3dd2a.png)

そしてアップロードした画像で機械学習をさせたらこんな感じです。
![スクリーンショット 2023-08-29 215121.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/2a9b59ef-5b74-98b3-b23b-c24b09535a89.png)

https://teachablemachine.withgoogle.com/models/5mjTXUlv-/

ではいよいよ判別をしてみます。
と、ここで重要なことに気づいたのですが、判別に使うモデルの写真を用意していませんでした・・・。
なので、ネット上からE231とE233の画像を拾ってモデルにすることにします。
そんな次第なので、以下の画像では著作権の権利侵害とならないようモデルの写真を塗りつぶしていますので、ご了解ください。

![TM　南武線E233　著作権対応.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/52104f4f-a71e-1c0a-b93b-37f27c367115.png)

南武線という路線のE233をモデルとして試したところ、82％でE233となっています。
南武線は、E231としてサンプルを学習させた総武線の車両と似たようなカラーリングになっているので、あるいはE231と判別するかも・・・と思っていたのですが、色だけではなく形状やライト位置などの特徴を学習してくれているようですね！

![TM　京浜東北線E233　著作権対応.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/363b1911-a067-3075-52d0-dbf8a1dd051a.png)
次に、京浜東北線のE233をモデルとして判別してみると、今度は86%でE233と判別してくれています。京浜東北線は水色のラインが入っていて、サンプルに使ったE231（黄色）ともE233（赤）とも色が違っているので、南武線よりもさらに精度が上がっていますね。

![TM　中央線E233　著作権対応.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/7451d7b2-6e6c-3550-21a3-11c13c2551b4.png)
最後に中央線E233でやってみると、なんと100%です。素晴らしい！

 # これをスマホで使えないか
これをスマホで使えてこそ、少年少女たちの役に立つというものです。
というわけでスマホで使うべくやってみたのですが・・・
![IMG_7555.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/825e778f-1b93-e7a1-371a-92af37b9449c.png)
![IMG_7556.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/94c927a7-24ba-c199-276a-937a103f2391.png)
![IMG_7557.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/fb0226af-69a9-eaa4-a451-7f4b0e419ba3.png)
![IMG_7559.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519421/a29a64b4-ef9e-c66b-dadc-9d9ab3e9a82e.png)

ここからどう使うのか結局わからかったです・・・。
とりあえず自分の今の力でできるのはここまでなので、今回はここで終了とします。

 # 改善ポイント
自分のスキルがまだ足りていなくて、とりあえずTeachable Machineを使ってみたという感じの記事になってしまいましたが、今後の改善ポイントは次のとおりです。
 - スマホで使えるようにする
　→Googleドライブ経由でスマホで使うことを試みたが、うまくいかなかった。なんで？？
 - なんらかのビジュアルプログラミングツールと組み合わせる。
　→NordRed、Makeなど

__とりあえず前向きに頑張ります！__

 # 脱線注意
今回はE231とE233という比較的識別が容易な車両形式でTeachable Machineの実力を測ってみましたが、もっと判別が難しそうな形式で試してみたい願望に駆られています。
たとえばキハ４０シリーズなどですね。
[キハ４０シリーズの違いが分からない問題について](https://note.com/notedeknow/n/n1a19c19d4ee4)