カテゴリーアーカイブ 画像認識

著者:杉浦

OCRのホワイトリストとTessaractのバグ

 OCR(光学文字認識)の際にはホワイトリスト――画像中に現れる文字の候補のリスト――を用いることによってより正確な文字認識を実現しています。現れる文字の候補が限定されることは誤認識の減少に大きく貢献します。例えば数字のみが表れるならば”1″と”I”と”i”を間違えずに”1″と認識できます。ロシア語のみならば”В”と”B”を間違える事も有りません。
 TesseractはOCRのエンジンです。素のコマンドラインで使うなり、PythonなどにつなげるなりしてOCRを行わせます。Tesseractの最新版の4.0.0はどこぞのディープラーニングの学習結果を持っており高精度とのふれこみです。
Tesseract (ソフトウェア) – Wikipedia
tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository)
 困ったことにこの4.0.0版にはホワイトリスト設定が一切効かないという強烈なバグが残っています。
Blacklist and whitelist unsupported with LSTM (4.0) · Issue #751 · tesseract-ocr/tesseract
 残念ながら解決方法はなく、レガシー版を呼び出すオプションと組み合わせる回避方法しかない様です。

--oem 0 -c tessedit_char_whitelist=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • この記事いいね! (0)
著者:杉浦

二値化によるOCR(光学的文字認識)のための画像前処理

 OCR(光学的文字認識)とは画像から文字を認識する技術のことです。昨今のOCRはなかなかの高精度になってきましたが、適切な画像、設定でないとてんで的外れな回答を返すことがよくあります。二値化は適切な画像のための画像加工の一つです。
 ここでいう二値化とは白黒二色にするという意味です。次の2枚の画像が二値化による加工の例です。


 具体的にはグレースケールにして

 消しゴムの汚れが分かりにくくなるように少し明るくして

 コントラストを最大にしました。

 こうすると文字とそれ以外の境界がはっきりする、ノイズが消える、といった効果によって機械に文字を認識させることが容易になります。これは影の中にある白紙に書かれた黒文字のように、背景色に近い色の文字を解析する時に特に効果的です。
 例の図は調整が雑で少々文字がつぶれていますが、高解像度であったり、鮮明な画像であったりした場合は滅多につぶれません。

  • この記事いいね! (0)
takahashi 著者:takahashi

ついに来るか”フルAR”!? 最近のMicrosoftとAppleのARへの取り組みが気になる。

先日、いろいろ調べていたらこちらの記事を見つけました。

Microsoftが発表間近の第2世代のMRヘッドセット「HoloLens」ティザー動画を公開、新チップ搭載か? – Gigazine

MicrosoftがWindows10の登場とほぼ同時期に発表し、話題にもなったAR機器である”Hololens”ですが、なんとその後継機種が発表間近なのでは、という情報が上がってきているようです。

最近になって、ゲーム機やスマートフォンで利用できる”手軽なAR”を搭載したアプリなどは増えていますが、自分たちが”AR”と聞いてイメージするようなもの(たとえばアニメ「電脳コイル」の”電脳メガネ”のような)、いわゆる”フルAR”に近いものとしては、製品化された中では恐らくHololensが唯一なのではないかと思います。

そんなHololensの後継機種が出るとしたら…わくわくが止まりませんね。

一方、AppleもiPhoneの販売台数低下に伴い、今後AR方面に力を入れていくのではないか、という見方も出ているようです。

Apple、ARヘッドセットを2020年出荷を目標に研究中 – TeckCrunch

もし世界でトップクラスのIT企業であるこの2社が、ARのためにしのぎを削るほど力を入れ始めたら、(2社にとってはとんでもない戦争になりそうですが)一気にフルAR実現に近づくことになるかもしれませんね…!

今後の展開に要注目です。

  • この記事いいね! (0)
著者:杉浦

画像解析用オープンソフトウェアImageJの紹介

ImageJ
 ImageJはJavaで作られた画像解析用のオープンソフトウェアです。画像を読み込み、加工し、解析する事で様々なことができます。例えば数え上げです。
 次の画像中の細胞の数を数えようとして見ます。
 
 まず、Image->Typeから8bit画像に変換。次いでImage->Adjust->Thresholdから色の濃さで白黒の二色画像に変換。この時、一つ一つがばらけるような閾値にするとよいです。

 最後にAnalyze->Analysys Particlesで粒子解析。

 まだまだ雑ですが結構それっぽくなりました。白黒二色画像に至るまでの過程を工夫するともういくらか良い精度で解析できます。この白黒二色画像に変換するまでの過程で使う各処理の閾値等パラメータの最適化には機械学習が向いています。また深いニューラルネットワークの学習ではどの様な変換手法を用いるのが良いかまでいい感じに決定することができます。

  • この記事いいね! (0)
takahashi 著者:takahashi

一つの画像から色ごとにレイヤーを分けてくれるサービス”Unbrending”

フォトエディタなどで、複数の色を混是ることは簡単ですが、その逆で、一つの画像から色ごとにレイヤーを分離する、というのは特殊な処理なようですが、それを行ってくれるWebサービスがあります。

Unblending Web App

実際に使ってみました。

自分の持っている画像をアップロードすることもできますが、今回はテストということで下の”サンプル画像を使ってUnbrendingを試す”でテストしてみます。

“サンプル画像を使ってUnbrendingを試す”
をクリックすると、上記のようにいくつかの設定が追加されます。

この状態で、”プレビュー”ボタンをクリック。

すると指定された色ごとにレイヤーを分離してくれます。

この状態で”ダウンロード”をクリックすると

しばらく処理を行った後、各色ごとに分離された画像をzip形式で入手することができます。

これができるとどのようなことに使えるのか、というのが公式サイトの動画で紹介されています。

より表現の幅が広がりそうですね…!

気になった方は是非試してみてはいかがでしょうか!

  • この記事いいね! (0)
takahashi 著者:takahashi

ポッキーでプログラミング!?グリコが開発したプログラミングの考え方が学習ができるアプリ”GLICODE”

ふと買ってきたポッキーのパッケージを開けようとしたところ、パッケージの側面に名に書かれているのを見つけました。

ポッキーで…プログラミング…???

どういうこっちゃと思いつつ調べたところ、公式のティザーサイトを発見。

GLICODE – グリコ

このサイトにあった動画を見たことで、”ポッキーでプログラミング”の意味が分かりました。

ポッキーを並べることでキャラクターの動きを”制御”してみよう!
ということのようです。なるほどなるほど…

どんなアプリなのか実際に確かめてみたくなったので、実際にインストールしてみました。

GLICODE®(グリコード)
GLICODE®(グリコード)
開発元:EZAKI GLICO CO.,LTD.
無料
posted withアプリーチ

ちなみに、”GLICODE”と検索してしまうと英語版がヒットしてしまうので、日本語で”グリコード”と検索するのがおすすめです。

タイトル画面。

Level 1

このアプリではプログラム言語を覚えておく必要は一切ありません。

すべてポッキーの並びだけでコーディング(?)します。

このキャラクターの名前は”ハグハグ”というのか…

ポッキーの向きで、”ハグハグ”に動きを指示するようです。

左下のカメラアイコンをタップするとアプリ内でカメラが起動。

おてほんどおりにポッキーを並べてみます。

なんとポッキーが画像認識されているではありませんかwww

ポッキーの向きを元に”右にうごく”という命令が入力されました。

この命令でOKな場合は右下の”めいれいをけっていしよう”と出ているボタンをタップすることで、入力した命令が確定される、という流れのようです。

確定したらステージに戻ります。

再生ボタン(?)をタップすると、確定した命令が実際に実行されます。

動き出すハグハグ…

女の子のもとへ到着。

ギュッ…

それとなくホラー感を感じる流れな気がしなくもないですが、なるほど確かにポッキーでキャラクターを制御できました。

Level 2

今度は横移動に加えて縦移動が必要になるようです。

Level 1ではポッキーを使ってハグハグを横に動かすことができました。

では縦に動かすにはどうすればいいのでしょう…?

そうです。ポッキーを使います…!

グリコードでは、おなじ平面上に複数本のポッキーを並べることで、ハグハグに続けて複数の動作をさせることができます。

今度は右に1マス動かした後、下に2マス動かす必要があるので、ポッキーを3本用意して

→ ↓ ↓

とすると目的の動作になるはずです。

早速入力して…

実行!

ハグハグが指示された通りに動き…

ギュッ…

ステージクリアです。

ポッキーで与えた命令は、必ず順番通りに実行されます。

これは与えた命令は必ず順番に実行されるというシーケンス(=じゅんばんにじっこう)というものですと説明。

そう、ポッキーでプログラムの基本的な要素の一つである”逐次(順次)実行”をわかりやすく説明してしまいました。

グリコード…恐るべし…

とまぁこんな感じで、プログラミングをする前に学んでおくべき考え方を、ポッキーを使って学習することができるという、かなり画期的な内容になっています。

このアプリでは、プログラムの

・処理の逐次実行

・処理の繰り返し

・処理の場合分け

の三つの考え方をポッキーを使って学習することができるようです。

子供向けの教材といえば、LEGO社が出しているMindStormという製品があります。

こちらも(普通のものと形状が違うが)おもちゃのブロックという子供が親しみやすいものと、プログラムの要素をブロックパーツにしたものをくっつけていく、という視覚的にコーディングができる開発環境になっているので、初めてプログラムを触る子供にとっても入門しやすい内容になっています。

しかしながら、ロボットを扱うという部分がある以上、ちょっと難易度は高め(ある程度の難易度があるので、MindStormを使ったロボットコンテストが開催されています)で、思い通りに触れるようになるまでに少し時間がかかるかもしれません。

一方、今回のグリコードは内容としてもMindStormよりもシンプルかつ基本的な部分ですが、ブロックよりもより慣れ親しみやすい”お菓子”を使ってプログラムの基礎を学ぶことができる、というのはとても画期的なアイデアではないかな、と思いました。

…ちなみに、今回の記事を書くにあたって、実際に会社のオフィスで
一人ポッキーを並べてスマホをかざす…ということをしていたのですが…

周りの人の目にはどのように映っていたのか。
考えかけてやめました。ええ。

  • この記事いいね! (0)
村上 著者:村上

【アプリ】料理の写真を送るとカロリーや脂質などがわかる「カロミル」

先日、興味深いアプリを見つけたのでご紹介。
ライフログテクノロジー社が提供している「カロミル」という、食事や運動の記録・管理に対応したヘルスケアアプリです。

【カロミル】人工知能(AI)がダイエットと健康管理をサポート
https://calomeal.com/

読んだニュースによると、自社開発の食事画像解析AIを活用し、識別できる料理品目が約5200品目になったと発表されました。
これにより、食事を解析できる一般料理のカバー率が90%を超えたとのこと。
なお、今秋には、1万品目を達成する予定とのことでした。
ニュース記事についてはこちらから。

食事記録を手軽に–ダイエットアプリ「カロミル」、食事画像解析AIで5200品目を識別 – CNET Japan
https://japan.cnet.com/article/35122061/

 

実をいうと、平日は朝食を抜いてしまっているので、毎日の食事記録にはそこまで関心がないのですが、食べた料理がどのくらいのカロリーかがわかるというのは興味深いですね。
アプリ自体もインストールしてみましたが、LINEのアカウントでも、料理の画像を送ると料理名やカロリー、脂質などを認識してくれるというので、先に試してみました。

ちなみに送信したのは私が作ったカオマンガイ風のご飯です。
品目名は「海南チキンライス」なっていますが、鶏肉とご飯は識別できています。
カロリーは計算していないのでわかりません。

お手軽にどのくらいの精度かを知りたい場合は、LINEアカウントを友達追加するのがおすすめですね。
また、私のように毎日の食事の記録までは取らないけど、この料理はどのくらいのカロリーなのかを知りたいという場合には、LINEの機能を使うのが便利だと思います。

  • この記事いいね! (0)
著者:杉浦

色の表現、RGBとRGBA

 コンピュータが色を表す方式の中にはRGB、RGBAというものがあります。RGB表現はR(赤)、G(緑)、B(青)の三色の要素の強さで色を表しています。RGB全て取りうる範囲は[0,255]で、要は8bitで整数になる範囲です。RGBA表現はRGB表現にAlphaという要素を加えた色の表し方です。ほぼ全ての場合でAlphaは透明度として扱われます。A=[0,1]であり、非透明度の割合を示します。A=1(非透明度=100%)の場合、RGBA表現のRGB要素の値はRGB表現のRGB要素の値と全く同じになります。bitmapフォーマットは各ピクセルのRGBA値が延々と並んでいて、古い画像は8bit*4=32bit/pixelなデータが多いです。ハードの強化、高画質化に伴って64bit/pixelなデータも増えてます。
 RGBAによって表現される色は、自身の持つA要素である透明度、自身の持つRGB要素である描画色、重ねて塗られる対象のRGB要素である背景色、の計算から導かれます。計算はいたって単純な重みづけ平均で、次式の通りです。

(1 - A) * rgb_of_background + A * rgb_of_drawing = rgb_of_output
                A:透明度。RGBA表現のAlpha要素。スカラー。
rgb_of_background:背景色。RGB表現。3x1行列。
rgb_of_drawing   :描画色。RGBA表現のRGB要素。3x1行列。
rgb_of_output   :出力される色。RGB表現。3x1行列。

先ほど”A=1(非透明度=100%)の場合,RGBA表現のRGB要素の値はRGB表現のRGB要素の値と全く同じになります。”と述べました。A = 1ならば

rgb_of_drawing = rgb_of_output

あり出力される色は描画色と等しくなり、描画色のRGBの三要素のみで色を表しているわけです。
 透明度を使用することで背景色を考慮した色を出力することができます。これは例えばデザインに用いるような汎用的なライブラリで使われます。
 例えば、googleの公開しているマテリアルデザイン用ライブラリ、Material Design Liteでは
rgba(0,0,0,0.12)、rgba(158,158,158, 0.20)の様な、色の濃淡のみを変更するような使い方にrgbaを活用しています。

  • この記事いいね! (0)
takahashi 著者:takahashi

知らないなんて勿体ない!!! 手軽にリアルなARを楽しめる Windows標準搭載のARアプリが面白い!

一時期なんとなーく鎮静化ムードだったAR(MR)周りですが、最近になってAppleがiOSで”AR Kit”というARライブラリを公開してから、Pockemon GOなどでリアルなARとして使われるようになるなど、にわかに活気がつき始めている印象があります。

そんな中、MicrosoftはWindows10発表と同時にMicrosoft Hololensなどを発表し、他の企業がなかなか進められなかったARに、かなり力を入れて来ていました。
現在もMicrosoftはWIndowsのAR機能に力を入れ続けているようで、一つ前のメジャーアップデート “Creators Update”で3Dオブジェクトの簡易作成機能を搭載した”3Dペイント”を搭載し、現在の”Fall Creators Update”ではさらにいろいろな3D関連の機能が追加されました。

今回はその中で簡単にリアルなARが楽しめるWindows 標準アプリ  “Mixed Realityビューア”を紹介したいと思います。

遊び方は超簡単。

まず起動すると上のような謎のアヒルのキャラクターが現れます。
ドラックしてぐりぐり動かすことで、3Dオブジェクトをいろんな角度から眺めることができます。

ここまでであればただの3Dビューア―アプリなのですが、面白いのはここから。

ウインドウ上部のメニューから”Mixed Reality”アイコンを選択します。

するとカメラが起動し、手が出てきてカメラに写っている平面をクリックするように促されるので、実際にクリックしてみます。

するとカメラで写っている平面に乗るような形で、先程のキャラクターが現れます!

すごいのは、カメラを動かすと、キャラクターもちゃんとその動きに追従して動く点。
マーカーもないのにここまで綺麗に追従してくれるのは、なかなか面白いです。

好みのアングルが決まったら、右側の白丸をクリックまたはタップすると、撮影もすることができます。

このキャラクターですが、デフォルト以外にもいろんなキャラクターやオブジェクトが用意されています。

飛行船や

建物。

恐竜や

なんとペガサスまで!!!
これらはすべて画面上部にある”Remix 3D”から入手できます。

これらのオブジェクトを使ってちょっと遊んでみました。

こちらは先ほどのデフォルトのアヒルのキャラクター。

腕に乗せられてますがなんだか不満そうです(笑

ふくろうのキャラクターをペン先に止まらせてみたり…

ペガサスを手に泊まらせてみたり!

極めつけは…

手乗りドラゴン!!!
ファンタジー好きなら一度はあこがれるシーンが、簡単に撮れちゃいます!!!

Remix 3Dですが、自分がつくったオブジェクトもアップロードができるようで、この仕組みが活性化していってオブジェクトの数が増えていったらもっと面白いことができそうな気がします!

残念なのは公式でこれらの機能の宣伝がまだあまりされていない点。

マイナーな機能になってしまうのは本当にもったいないぐらい面白い機能なので、興味を持った方は是非一度試してみてはいかがでしょうか…!

Windows Mixed Reality Viewer – Microsoftストア

 

  • この記事いいね! (2)
takahashi 著者:takahashi

Adobe LightroomなどのAdobe製品にAI “Sensei”が搭載。自動でより自然な補正が可能に。

ちょっと前の話になるのですが、先月の12月12日にAdobe Lightroom CCのWindows版、Mac版、Android版、iOS版、Adobe Lightroom Classic CCとAdobe Camera Raw(ACR)に対してアップデートがリリースされました。
今回のアップデートでプロのカメラマンによる写真を学習したAdobeのAI「Adobe Sensei」が各アプリの自動補正機能に搭載され、自動補正がより自然な仕上がりになるようになったようです。

アドビ「Sensei」で写真を高品質に–「Lightroom」の自動補正機能が強化 – CNet Japan

僕も実際に使ってみたのですが、旧バージョンでは自動補正すると必要以上に明るくなってしまったりと、やや不自然な補正になってしまうことがよくありました。
そのため、実際に使う際は、一度自動補正した後で、自分で明るさを暗めにしたり、コントラストを上げたりという操作をしていました。
しかし、今回のアップデートを適用すると、自動補正しても白飛びすることは少なくなり、確かにより自然な補正になっているように思えます。
気持ち暗めになってしまうこともあるので、完全に調整がいらないわけではないですが、自動補正だけである程度満足のいくレベルになっているので、大量の写真を現像しないといけないときは非常にありがたいですね。

Lightroom CCユーザーでまだアップデートを適用されていない方は、是非試してみてはいかがでしょうか!

Adobe Lightroom – Adobe

  • この記事いいね! (0)