リアルタイムに物体認識を行う。

こんにちは、今日は動画からリアルタイムに物体の認識・検出を行なっていきたいと思います。

 

今回の動画は水中映像です。この水中映像から魚だけを検出させるようにしてみました。

以下の2点については今後の修正次第です。

・カメラから近い魚の認識は比較的できているが、遠いものはできていない

→これは、単純に機械学習させたときの画像ファイルが、遠い魚を除いたものだったからです。そのため、遠い魚は魚ではない旨の判断になっています。解消するためには、きちんと遠い魚の画像も学習させることで検出が可能になります。

 

・近い魚でも検出できていないものがある。

→これは、今回のモデルの正解率が85%-89%と比較的低いものだったから起こった現象です。正解率を向上させることでより判定の精度を上げていくことができるようになります。

 

 

Pythonでは、カメラを起動させたりすることも簡単に行うことができるので(他の言語はあまり知りませんが)、カメラを起動させてリアルタイムで物体の検出を行うことができます。

 

問題はこの先です。

 

物体の検出ができても、「そうなんだ」で終わることがほとんどですが、そこから様々な方向へ展開することができます。

例えば、

・面積を求めて大きさを計算させる

・その物体の個数を計測する

・在庫管理に活かす

などなど考えると枚挙にいとまがないでしょう。

 

 

さて、では今回はこの辺で!

 

画像データから一気に数値を取得してくる。資料作成の時短へ

こんにちは!
久しぶりの投稿をしています。ASUKARUの遠藤です。

よく、お見積りを作成する場合などで、すでにあるものを転写することってあるかもしれませんが、今日はそんなときに役立つかもしれないツールを開発しましたので掲載しておきます。

たとえば、下記のような情報群があったときに、

 

これぐらいならいいですが、実際には相当の量を入力する必要があったりしますのでそれをそのまま転記していると膨大な時間がかかってしまいます。

そこで、こういったものを画像化してしまって(画面キャプチャなどでOK!)、そこから数値だけを取得してくれば転記作業もかなり楽になります。

 

そこで、実際にやってみた結果が

このようになりました。

日付部分と「o7」など、少し違うところがあるので、ここは修正をしていければあとは大凡OKではないでしょうか。

 

さて、このような方法の活用場所は随所にあります。

たとえば、

  • 先方様からいただいた見積りなどを自社でペーパーレス管理する(画像を読み込んで、必要な形で管理すれば可能)

  • PDFファイルから文字認識・画像認識を使って、簡単に管理できるようにする

  • 何かの転記作業を効率化する

 

など、活用されるところは多いかと思います。

 

処理結果のところは、現時点ではコンソールに出力をしておりますが、実際にはCSV、EXCELなどに直接吐き出しても問題ないかと思います(現時点ではCSVへの出力を行っています)。

 

また、日本語などへの対応や、文字化けが気になるという方にはそれぞれやり方がありますので個別にご相談ください。

 

では、また次回!

 

 

GCPでエラー表示 ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Your app may not have more than 15 versions. Please delete one of the existing versions before trying to create a new version.

GCPで次のようなエラーが出力されることがある。

ERROR: (gcloud.app.deploy) INVALID_ARGUMENT: Your app may not have more than 15 versions. Please delete one of the existing versions before trying to create a new version.

 

GCPでバージョンが多すぎるというエラー

 

これに対応するには、要は不要な過去のバージョンを削除していけばOKということ。

 

まずは、バージョンを確認してみよう。

gcloud app versions list

 

 

次に、過去のバージョンを削除しよう。

 

gcloud app versions delete バージョン

 

最後にもう一度、アプリのデプロイをすればOK!

gcloud app deploy

 

 

佐賀県神埼からAIの中身を伝えていく係(ASUKARU -*アスカル*-)

こんにちは。アスカルの代表をしている遠藤です。

天気の良い佐賀県の神埼ですが、最近火事も多いのが難点ですね。みなさん、家事には気をつけましょう!そして、毎日を楽しみながら過ごしていきましょう!

 

えーーっと、そんな話とは全然関係ないのですが、AIに関してちょっとご説明をしていこうかと思っております。平たく話していきたいと思っています。

 

今回解説をしていくAIは、「ディープランニング」という分野になります。

そのなかでも今回は「ニューラルネットワーク」について解説をしていこうと思っています。

 

ニューラルネットワーク

 

このニューラルネットワークは、ディープランニングの骨です。この骨の部分をわかっていないと本当に理解をすることはできないので、このニューラルネットワークの部分はしっかりと押さえておいてください。

 

人口知能は人間の脳と同じ??

 

人間の脳は、実はまだ詳しいことが分かっていないといわれています。私はシステム担当で、人間の脳を解剖したり中身をほじくったりしているわけではないので、ここのところは不透明です。ただ、文献などではそうだと言われているというだけですね。

そして、この人間の脳を模倣して「ニューラルネットワーク」というものを作っているわけです。砕いて説明をすると、ニューラルネットワークとは複数のニューロンというものがネットワークを構成して情報のやり取りをしているということです。

このニューロンは、人間の脳内に約140億個もあるそうです。

それぞれが細かくネットワークとなって存在しており、これをシステムの分野でも構築してきたのが「ニューラルネットワーク」と言われるものです。

語弊を恐れずに言うならば・・・・。

 

回路としてのニューラルネットワーク

 

こうして出来ている人間の脳内では、様々な電気信号を伝達しながら結果を出していきます。結果とは、たとえば「これはネコ」などのことですね。電気信号は「写真をみて・・・」という具合です。目が合って、耳がとんがっていて・・・などの情報のことを指します。

統計学では、この「目が」とか「耳が」というものを説明変数という風に読んでいます。この説明変数を認識して、電気回路を通した結果、「猫」という判断が下されるわけですね。

こういう具合に、説明変数があたえられて、ニューロンに電気信号が送られます。このニューロンを通り越す電気信号かどうかを判定して、通り越すのであれば次のニューロンへ。そうでなければそこで処理を終えます。

この仕組みがニューラルネットワークといわれるものです。

注意が必要なのは、ニューロンのどこにどれだけの電気信号を流すのか、流すとしてそれぞれのモンチはどのくらいにしておけばいいのか、また、モンチを超えたときにどの程度の電気信号を流すのかということを定めておく必要があるということです。

 これがニューラルネットワークの「モデル化」と言われるものになります。

 

 

論理回路

 

ここまでで、基本中の基本であるニューラルネットワークとは何かということを説明してきました。

次に、この論理回路というものを説明する必要があります。なぜなら、実際に人間の脳にかわる仕組みを機会に実装させなければならないからです。この論理回路の仕組みができるかどうかというのはかなり大きなポイントなのです。

論理ゲートというのは、簡単に言うと「AND、OR、NOTの各ゲート」のことだと思ってください。

なるべく難しい数式みたいなものを記載するつもりもないのですが、簡単に説明をしていきたいと思います。

まず、ANDゲート

 

これは、AかつBという、いくつかのデータが全てそろって初めて結果へと通じるというものです。

これをシステム的にどのように実装していくのかと言いますと、「誤り訂正学習法」というものを使って実装を行います。

このANDを数式にしますと・・・・・

このブログシステムでは書けないのでやめておきますが、興味のある方はググってみてください。

要するに、パラメータを与えて試験を行い、正解へと近づくまで学習を行います。これがANDゲートといわれるものです。

次に、ORゲートについてですが、こちらも実際に行われることはANDゲートと同じです。ただ、A OR Bなので、AかBであれば結果へとつながっていくということになります。

最後にNOTゲートですが、これは単純にNOTです(笑。

このような論理ゲートを数式で表すことができるため、ニューラルネットワークへの実装が可能になっているのです。

 

神埼で、お酒を買ってしかもパンも買うというのであればANDゲートへ、お酒か若しくはパンだけでいいということであればORゲートへ、お酒もパンのいらないということであればNOTゲートへお越しください、というような感じにすぎないのですが・・・。

 

 単純パーセプロトン

人間の脳は、必ずしもひとつのことだけを行っているわけではないですよね。神埼は幼稚園の数も多いですが、お皿を洗いながら子供を神埼保育園に連れていくイメージをしつつ、佐賀銀行でお金をおろす予定をたてて・・・

なんて。

そういうことで、単純にひとつのデータを与えてあげれば一日がおわるというわけではないですね。そのため、未定数のK回処理を繰り返すという場合にどうすんの?というのが問題として出てくるわけですね。

このとき、ステップ関数というものを使って実装を行っていきます。ロジスティクスにおけるシグモイド関数に対比されるものになります。

このステップ関数を用いてニューラルネットワークを表現したものを単純パーセプトロンと呼びます。

さて、ではこれをシステム的にどのように実装していくのでしょうか。

それを次回に回したいと思います。

 

 

 お腹すいたー!!!