LoginSignup
2
1

More than 1 year has passed since last update.

機械学習を使って束ねたままのケーブルの長さを判別してみた

Posted at

こんにちは。のぐちです。
アミューズメント系ユーザー企業で社内SEやっています。
今回は現場でよくある困ったことを解決するためのツールを作ってみました。

結束されたケーブル類の長さをほどかずに判別することはできるか?

私は1カ月に1-2回ほどモール内の広場等で開催するイベントにスタッフとして参加するのですが、
会場内にLANや電源といったケーブル類を敷設するときに、「ケーブルの長さ分からない問題」が起きます。
各種ケーブルは以下のような状態で現地に運び込まれるのですが、使いまわしている資材になるため、
長さの仕分け等がされておらず、長さや色もバラバラで雑多に詰め込まれています。
使おうと思って、ほどいてみたら長さが足りずに、別のをほどくエンドレス…のような感じになります。

DSC_0746_3.JPG

機械学習を用いてケーブルの長さを判断するツールを作ってみた

今回は最近学んだ機械学習を用いて、このケーブルの長さが分からない問題を解決するツールを開発してみました。

使ったもの

・Teachable Machine(無料で使える機械学習ツール)
・CodePen(HTML/CSS/JS のコーディングから公開までを一挙に行えるツール)

できあがったもの

・Teachable Machine の学習モデル

Teachable Machine では、下図のようなイメージで、画像データをいくつかの回答のパターンに分けて登録し 機械学習モデルを作ることができます。
作成した機械学習モデルは、クラウド上に保存され Web サイトやアプリなどからアクセスすることができます。
今回は、様々な長さの LAN ケーブルを束ねたまま撮影したものを、5パターンの長さ別に取り込ませました。
また、画像に映ってはいませんが、E パターンとして何もない画面を登録しています。
tm_desktop.png

・CodePenで作ったコード

HTML+CSS+JSのWebページをWeb上のエディタで作成することができるツールです。
今回はHTMLとCSSは簡素ですがJS部分をそこそこ作りこんでいます。
エラーチェック機構あるのでめっちゃ便利です。
JS部分に多数存在する、console.log(XXX);は、CodePen の内部コンソールにログ出す機能なので、主にデバッグ用に記述しているものです。


See the Pen
ケーブルの長さ調べるツール
by のぐち (@noguchi_af)
on CodePen.


・アプリの動作

推論している間に画面が止まっているように見えてしまうため、推論回数を出力して動作が見えるようにしています。

開発上のポイント

・利用者が分かりやすい単位に合わせる

イベント会場では大抵長机に沿ってケーブル敷設するので、具体的な長さよりも、
長机(180cm規格)何台分の場所に使えるか
といった観点で結果を出力しました。自社開発の利点ですね。
また、スマホで利用することを前提に開発しています。

・推論を複数回処理させて回答制度を上げる

このプログラムは撮影している画像からケーブルの長さを推論するものなのですが、
撮影時の物体の位置などで結構結果がぶれるため、loopを用いて 1回の処理あたりに10回の推論を行わせました。

・複数回の推論結果を元に最も確度の高い推論結果を返す

Teachable Machine から返される推論結果として今回5つのパターンを設定したのですが、
今回は10回推論させた上で、最も回答回数が多かったものを結果として出力させるようにしました。
最終的に1つの推論を導き出すといった動作を Java Script 上でどのように記述するか、が今回もっともハマったポイントです。
この辺はもっとスマートな関数とかあるかもしれませんが、割とコンパクトにまとまったので満足です。 

完成!したが…。

・的中率40%くらい…。

このツール 推論の制度がすごく低いです。的中率40%くらいでした。
ケーブルが対象だと、画像としてはほぼ同じようなものになってしまう上、見た目の大きさで判別されてしまうらしく、
カメラからケーブルまでの距離で大きく結果がぶれてしまいました。

・今後はUIもかっこよくしたい。

今回は推論結果の正確性を高めることに注力したので、UI はすごくシンプルなものになっています。
もっとボタンとか、タイトルとかかっこよくしたいですね。

・やっぱり言語は難しい。

今回、JavaScript 初挑戦となりましたが、やっぱり言語は難しいですね。
ロジックが思いついても、それを実現するためのコーディングの手法は、1つ1つ調べて試してだったので思ったより時間が掛かってしまいました。
ノーコーディングツールのありがたさを再認識した開発となりました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1