文書ファイルや Webページ上のテキスト(文字)を検索対象とするテキスト検索が多く利用され、それだけさまざまな技術が提案されてきました。
一方、写真などの画像を検索対象とする画像検索も近年利用されるようになってきました。
画像で検索できるようになると、例えば商品の画像を提示するとその商品の関連情報を調べたり、撮った写真の風景からその場所を確認したり、さまざまな利用形態が出てきます。
この分野でも「Google画像検索」が有名ですが、他にもあります。
Google画像検索のページにアクセスすると、検索ワードを入力するボックスと、その右端にある「画像で検索」ボタンがあります。
つまり、
- テキストを入力して関連する画像を検索
- 画像を提示して類似画像または関連情報を検索
という検索が行えます。
特に後者の検索は、テキストで言い表すのが難しい内容、名前の分からない商品・人物・場所などについても検索できるので便利です。
(1) 画像認識
カメラやスキャナで撮った画像にうつる人やモノを認識する技術です。
とても簡単な例で言えば、バーコードのように縦縞の並びを読み取ってその濃淡のパターンからコードを識別するのも、広い意味で画像認識です。
あるいは、OCR技術では、画像内に文字が写り込んでいればそれを文字として認識し、テキストデータとして出力、これも画像認識の 1つです。
画像認識技術はとても多岐にわたり、また専門的な技術に及びますので、ここではザクッとした捉え方だけしておきます。
撮った画像は縦横に並んだドットの集合(点の集まり)で、それぞれが濃淡や色を持ちます。
その画像を縦方向・横方向あるいは微小領域に区分しながら数値化し、その画像の特徴を検出します(特徴抽出)。
その特徴が、データベースに蓄積された画像の特徴と比較され、類似度が計算されます。
類似度が高い画像は、データベースの画像に付けられたキーワードが付与され、類似画像とされます。
(2) AI技術
上記画像認識には、古くから AI技術が用いられ、上記バーコードや葉書きの郵便番号読み取りなどにも使われてきました。
所謂“機械学習”と呼ばれ、正解となる“教師データ”との類似度を評価量として、大量の入力画像を判別する作業を行います。
例えば、写真に写り込んでいる人物がいたとき、どの画像領域が人の顔であるかを判別するときも、大量の画像データで学習させた AIが判別するわけです。
人の顔も十人十色ですし、真正面の顔だけでなく、斜めを向いた顔、眼鏡やマスクを着けた顔、若い頃の顔などさまざまな観点で判別することを求められてくるたびに、AI技術にも進歩が求められてきました。
最近では「ディープラーニング」という AI学習技術がよく使われるようになりました。
(3) 画像認識の種類
以下のように分類することがあります:
- 物体認識:画像に写る代表的な物体を識別する
- 物体検出:画像に写る物体を識別し、位置を特定する
- 画像キャプション生成:画像に写る物体の説明文を出力する
- セグメンテーション:画素ごとに識別を行う
- 顔認識:人間の顔を特定する
- 文字認識:画像に写る数字や文字を識別する
一般に「画像検索」といったことをするには、上記のほぼすべての技術が必要になります。
それぞれの精度によって、画像検索全体の精度も左右されます。
人間でも手書きの数字「1」と「7」、「6」と「8」など読み間違えることがあるように、画像認識も完全ではありません。
でも、他の技術を組み合わせたり、条件を絞るなどして、より精度を高める工夫も日々行われています。