Excel 愛好家ですか?コンピュータービジョンのための細胞: 顔検出とOCRは問題なし

Excel 愛好家ですか?コンピュータービジョンのための細胞: 顔検出とOCRは問題なし

コンピュータービジョンとは何ですか?プロフェッショナルすぎると、やる気をなくしてしまうのでしょうか?一般の人々の目には、コンピューター ビジョンはソフトウェア開発者だけが関与できる分野です。多くの専門的なフレームワークの使用が必要であり、一般の人々はそれをただ見ているだけです。しかし、GitHub 上のプロジェクトは私たちの認識を覆すようです。

Excelの基本操作をご存知ですか?オンラインでその式を検索できますか?基本的な数学の理解はありますか?上記のすべてを実行できる場合は、コンピューター ビジョン プロジェクトを開始することもできます。

図 1: 画像を Excel セルのグレースケール表現に変換します。セルの粒度が十分に高ければ、十分な画像情報を保存できることがわかります。

具体的には、このプロジェクトでは、Excel に実装されたサンプル アルゴリズムを使用して、コンピューター ビジョンの基礎を学習できるようにしています。これを実現するために、彼は 1 行だけの Excel 数式を多数使用しました。作者によると、このプロジェクトでは、顔検出とハフ変換に Excel を使用することは問題なく、スクリプトやサードパーティのプラグインに依存していないとのことです。

Excel を使用して実行できるコンピューター ビジョン タスクをいくつか紹介します。まずはサンプル画像です。これはパスポートです。図に示すように、Excel のアルゴリズムは写真内の肖像画を検出できます (従来の手動アルゴリズムを使用)。

同様に、この画像を Excel で変換すると、エッジと線の特徴を見つけることができます。

最後に、Excel では OCR 操作も実行できます。まず、画像を手動でセグメント化し、関連する画像テキストを見つけて、OCR を実行します。

このプロジェクトでは、コンピューター ビジョンに関する事前の知識は必要ありませんが、Microsoft Excel の基本的な操作を理解し、Excel ドキュメントを読んだり、使用する必要がある数式の説明をオンラインで検索したりできる必要があります。後者の場合はExceljetが推奨されます。

また、ある程度の数学的理解も必要です。加重平均を理解していないと、理解するのが難しいかもしれません。偏微分に関する知識は役に立ちますが、必須ではありません。プロジェクトで使用される複雑な数学的概念のほとんどは固有値です。

Excel は画像データをどのように計算するのでしょうか?

コンピューター ビジョンに Excel を使用することは、最初は少し魔法のように思えるかもしれません。しかし、原理は実は非常に単純です。このチュートリアルでは、Excel の強力なセル計算機能を活用します。画像のピクセル データをセルに変換し (以下に示すように)、計算するだけです。各セルが値を表すことができることはわかっていますが、では、多くのセルをマトリックスとして表すことができるのでしょうか?

サンプル ファイルのスクリーンショット (サンプル画像の一部) では、Excel セルが画像のグレースケールを表していることがわかります。

一方、Excel を使用すると、セル内のデータを簡単に計算できます。では、これらを統合すると、行列計算と非常に似たものになるのではないでしょうか。このようにして、異なる画像位置によって表される特徴を簡単に計算できます。当然のことながら、従来のアルゴリズムであれ機械学習であれ、下流のコンピューター ビジョン タスクを完了するのにも便利です。

しかし、Excel に画像をインポートするにはどうすればよいでしょうか?著者は CSV を使用する方法を提供しています。

RGB 画像をピクセル データに変換するには、次のようなプログラムを使用するなど、さまざまな方法があります。

https://alvinalexander.com/blog/post/java/getting-rgb-values-for-each-pixel-in-image-using-java-bufferedi

画像ピクセルを CSV に変換すると、Excel を使用して読み取ることができます。

プロジェクトガイド

プロジェクトに必要な主要な資料は、「ダウンロード」セクションにあります。これらの資料は注釈が付いており、理解しやすいため、段階的に学習できます。

ソフトウェア要件

このプロジェクトは Excel 2016 で作成されましたが、他のバージョンでも開くことができます (Excel 2007 および Excel for Mac でテスト済み)。

なお、これらのファイルはLibreOffice(テストバージョン6.4.0.3(x64))で開くことはできますが、速度が極めて遅く、使用不可能と言えます。 Apache OpenOffice ではまだテストされていません。

関連するExcelの数式オプション

一部の計算(特にハフ変換)には非常に時間がかかるため、プロジェクトで Excel ファイルを開く前に、Excel の「数式」→「計算オプション」を「手動」に設定してください。その後、必要に応じて手動で再計算をトリガーします。

また、「ブックを保存する前に再計算する」をチェックしないでください。チェックしないと、ファイルを保存するたびに Excel によってすべての数式が再計算されます。

注意: このプロジェクトを完了したら、設定を元に戻してください。

Excel の R1C1 数式参照スタイルに慣れている方、または冒険心のある方は、Excel オプションを確認して R1C1 参照スタイルに切り替えてみてください。

このオプションを有効にするには、下のスクリーンショットを参照し、R1C1 参照スタイルに対応するボックスをオンにします。このように、数式を「D5」タイプの形式から「R[-1]C[2]」のような相対的なスタイルに変更すると、プログラミング言語に近くなり、理解しやすくなります。

チュートリアルディレクトリとコードファイル

次の図は、このプロジェクトの関連チュートリアル ディレクトリとプロジェクト ファイルを示しています。合計 50 MB で、GitHub からダウンロードできます。

このプロジェクトは 5 つの部分に分かれています。

1. コンピュータビジョン Excel の基礎

2. エッジとライン

3. 要点と説明演算子

4. 顔検出

5. テキスト認識(OCR)

これらのプロジェクトには詳細な手順とコードが付属しています。

よくある質問と回答

チュートリアルを残すことに加えて、著者はいくつかの関連する質問への回答も提供しています。

質問 1: これらの技術はディープラーニングに置き換えることができますか?

これらの技術は今でも有効です。ニューラル ネットワークは、特に従来の技術では解決できなかった複雑なコンピューター ビジョンの問題をすべて置き換えました。しかし、単純な計算の場合、従来の方法の方が高速で計算効率も高くなります。さらに、ハードウェア アクセラレーションによる方法は数多くありますが、エッジ デバイス (スマートフォン、ネットワーク クライアント) では依然として従来の方法が第一の選択肢となっています。

質問 2: 画像の赤や青ではなく、緑のチャンネルを使用するのはなぜですか?このようにExcelでカラー画像を表示したい場合はどうすればいいでしょうか?

著者らは、3 つの基本的なカラー チャネルのうち、緑チャネルが明るさに最も大きな影響を与えると述べています。理論的には、まず画像をグレースケールに変換し、明るさを計算する必要がありますが、チュートリアルでは簡潔にするために省略しています。カラー画像の表現については、質問6を参照してください。

質問3: パスポートの透かしのある顔が検出されないのはなぜですか?

著者らは、3 つの Haar のような特徴と 2 つのステップのみを使用する一般的な顔検出アルゴリズムを使用しました。このアルゴリズムは、モナリザの画像 (例) 用に手作業で設計されました。実際のアプリケーションでは、機械学習は数千のそのような特徴を学習できるため、顔を正確に検出できます。

質問 4: OCR の例でマスクと方向を選択するにはどうすればよいですか?

ドキュメント OCR (シーン テキスト認識とは対照的) の場合、通常、ドキュメント内の文字を認識する前にドキュメントがまっすぐにされます。そのため、文字は一般的に縦書きになります。

この例では、著者らは単一のニューロンを使用して大文字の「E」を認識しました。ニューラル ネットワークは、複数のニューロン層を使用して、対象となるすべての文字を認識します。ニューラル ネットワークは、入力時に表示された文字を出力します。結合されたニューロンは、各文字を認識するプロセスでいくつかのニューロンを共有することに注意することが重要です。

質問 5: OCR 方式はさまざまなフォントに対してどの程度効果的ですか?

例として、著者らは単一の畳み込みニューロンを使用して大文字の「E」を認識しました。実際のシステムでは通常、ニューラル ネットワーク (単一のニューロンだけでなく) が使用され、さまざまなフォントや言語で優れたパフォーマンスを発揮します。

具体的にはどのように実現されるのでしょうか?著者らは、単一のニューロンを使用して、画像のスキャンと文字の認識を同時に行いました。通常、長さの異なるテキストのスキャンは、異なる方法を使用して個別に行う必要があります。テキストの各文字が分離されると、文字は固定サイズに再スケーリングされ、ニューラル ネットワークを使用して文字が認識されます。

手書き認識はより困難です。ストローク データが時間の関数である場合 (タッチ スクリーンでの書き込み入力の認識など) に、最良の結果が得られます。さらに、例では、個々のニューロンの重みは手動で作成されますが、実際にはトレーニング アルゴリズムを使用して学習されるわけではありません。実際のトレーニングでは、単一ニューロンの効果もデモで示されたものよりも優れています。

質問6:著者はどのようにしてExcelをコンピュータービジョンに使用するというアイデアを思いついたのですか?

当初、著者は、コンピューター ビジョンの分野に詳しくない Amazon 社内の従業員にコンピューター ビジョンのチュートリアルを教えようとしていました。そこで著者は、画像が本質的には 2D の数値配列であることを示し、Excel を使用してそれを説明することでコンピューター ビジョンの基礎を教えています。顔検出とテキスト認識をカバーしない最初の機能バージョンを作成するのに、作者は約 7 時間を要しました。以降のバージョンではさらに改良されました。

それ以来、著者は Excel で画像を表示する次のビデオ作品またはチュートリアル (リンクを添付) を作成しました。

  • Excel スプレッドシート内の画像 (色を含む):

https://www.youtube.com/watch?v=UBX2QQHlQ_I

  • Excel レイトレーシング:

https://www.youtube.com/watch?v=m28jJ7CMp8A&feature=emb_logo

  • Excel 3D エンジン:

https://www.youtube.com/watch?v=bFOL9kantXA

  • Excel 3D グラフィックス:

https://www.gamasutra.com/view/feature/131968/microsoft_excel_revolutionary_3d_.php

質問 7: コンピューター ビジョン用のインタラクティブな開発環境はありますか?

Matlab には、多くのコンピューター ビジョン機能が組み込まれているかツールボックスに含まれているため、コンピューター ビジョンのタスクによく使用されます。その中で、「imshow」関数は配列データを画像として直接表示することができます。さらに、Python や Notebooks をベースにしたツールも人気があります。

プロジェクト作成者

このプロジェクトは、Amazon の主任エンジニアである Alok Govil 氏と協力者の Venkataramanan Subramanian 氏の 2 人によって作成されました。

そのうちの Alok Govil は、米国デリー工科大学と南カリフォルニア大学でそれぞれ学士号と修士号を取得したフルスタック テクニカル アーキテクトです。卒業後はフィリップス・リサーチ・アメリカ、クアルコムなどで勤務し、現在はアマゾンのチーフエンジニアを務める。

[[315527]]

アロック・ゴヴィル。

協力者の Venkataramanan Subramanian 氏はインドのマドラス大学を卒業し、その後バンガロールの国際情報技術研究所で現職修士号を取得しました。卒業後はHexaware Technologies、Oracle Corporationで勤務し、2011年にAmazonにチーフエンジニアとして入社しました。

<<:  2020年のディープラーニングに必要なGPUは?48Gのビデオメモリが推奨

>>:  人工知能の驚くべき5つの例

ブログ    

推薦する

基本的なプログラミングアルゴリズムを簡単に習得する(I)

[[121968]]作者は長い間ブログを更新していませんでした。その理由の一つは、開発したプロジェ...

人工知能のもう一つの方向性:メモリスタに基づくストレージおよびコンピューティング技術

[[325184]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

AIは万能か? AI がまだ直面している課題は何ですか?

[はじめに] 人工知能(特にコンピュータビジョンの分野)に関しては、誰もがこの分野における継続的な...

AutoML、AutoKeras... これら 4 つの「自動」自動機械学習手法の違いがわかりますか?

まずは短いおとぎ話から始めましょう...昔々、今では誰も使っていないプログラミング言語を使い、今では...

ブロックチェーンのいくつかのコンセンサスアルゴリズム

まず、一般的なビザンチン将軍問題からコンセンサスとは何かを理解しましょう。ビザンチン将軍問題ビザンチ...

...

AIが人間の翻訳者に取って代わり、有名なテクノロジーウェブサイトは13歳の従業員まで解雇し、ウェブサイトはすべてAIによって制作されている

AIは本当に人間の仕事を奪う——有名なテクノロジーウェブサイト「ギズモード」が、スペイン語チャンネル...

モノのインターネット業界は一時的な流行に過ぎないのでしょうか、それとも産業史上の重要な節目となるのでしょうか?

人類の長い発展の過程において、生産性を向上させることができる発明や方法は、人々の記憶に残ります。産業...

...

人工知能翻訳は、障害なく外国人と恋に落ちるのに役立ちます

AI 音声翻訳の分野では、ノイズは対処しなければならない主要な課題の 1 つです。この装置は研究室や...

ディープラーニングデータセットを管理するための新しいアプローチ

ハブの紹介 Activeloop の Hub は、Numpy のような配列にデータを配置するオープン...

工業情報化省科学技術局長:チップOSはAIを突破しなければ単なる空想に過ぎない

国内メディアの報道によると、12月17日に開催された2019年中国スマート企業発展フォーラムで、工業...

AIがIT運用に大きな影響を与える仕組み

AI が IT 運用に直接影響を与えることができる分野を考えるとき、他のアプリケーションよりも際立っ...

Tech Neo 12月号:人工知能の応用シナリオ

51CTO.com+プラットフォームは、オリジナルの技術コンテンツの選択と絶妙なレイアウトを通じて、...