(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-04
(54)【発明の名称】物体を検出するためのシステム及び方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20240927BHJP
G06V 10/82 20220101ALI20240927BHJP
G06T 7/00 20170101ALI20240927BHJP
G06V 20/62 20220101ALI20240927BHJP
【FI】
G06T7/70
G06V10/82
G06T7/00 350C
G06V20/62
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024521084
(86)(22)【出願日】2022-10-07
(85)【翻訳文提出日】2024-05-28
(86)【国際出願番号】 US2022046040
(87)【国際公開番号】W WO2023059876
(87)【国際公開日】2023-04-13
(32)【優先日】2021-10-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】504382671
【氏名又は名称】コグネックス・コーポレイション
(74)【代理人】
【識別番号】100119378
【氏名又は名称】栗原 弘幸
(72)【発明者】
【氏名】リウ,ジハン,ハンス
(72)【発明者】
【氏名】ハンハルト,フィリップ
(72)【発明者】
【氏名】ウィース,レト
(72)【発明者】
【氏名】バーカー,サイモン,アラリック
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096BA03
5L096BA08
5L096BA17
5L096BA18
5L096CA02
5L096DA02
5L096EA06
5L096EA33
5L096FA44
5L096FA62
5L096FA69
5L096GA51
5L096GA55
5L096HA09
5L096HA11
(57)【要約】
本明細書に記載される技術は、画像内の物体を検出するための、コンピュータ化された方法及び装置に関する。本明細書に記載される技術は、事前訓練済み機械学習モデル、及びフィールド訓練プロセスで訓練され得る一つ以上の他の機械学習モデルを使用して、一つ以上の物体を検出するための、コンピュータ化された方法及び装置に更に関する。事前訓練済み機械学習モデルは、深層機械学習モデルであってもよい。
【選択図】
図1
【特許請求の範囲】
【請求項1】
画像内の一つ以上の物体を検出するためのコンピュータ化された方法であって、前記方法が、
前記画像の特徴マップを決定することと、
第一の機械学習モデルを使用して前記画像の前記特徴マップを処理して、前記画像に対する物体中心ヒートマップを生成することであって、前記物体中心ヒートマップが、前記画像内の対応するサンプルが物体の中心である可能性を示す値を各々有する複数のサンプルを含む、生成することと、
前記物体中心ヒートマップに基づいて、前記画像内の一つ以上の物体の位置を決定することと、を含む、方法。
【請求項2】
第二の機械学習モデル及び前記特徴マップを使用して、前記画像内の前記一つ以上の物体の前記位置を処理して、前記一つ以上の物体の物体を認識することと、を更に含む、請求項1に記載の方法。
【請求項3】
前記一つ以上の物体の前記物体を認識することが、
前記画像の前記特徴マップの一部分を使用して、物体特徴ベクトルを生成することであって、前記特徴マップの前記一部分が、前記物体の前記位置を周囲する領域に基づく、生成することと、
前記第二の機械学習モデルを使用して前記物体特徴ベクトルを処理して、クラスベクトルを生成することであって、前記クラスベクトルが、各々が複数の既知のラベルの一つに対応する複数の値を含む、生成することと、
前記クラスベクトルを使用して、前記物体を前記複数の既知のラベルのラベルに分類することと、を含む、請求項2に記載の方法。
【請求項4】
前記クラスベクトルの各値が、前記複数の既知のラベルの対応する一つに関連付けられた予測スコアを示し、
前記物体を分類することが、前記クラスベクトル内の前記複数の値の中から最大値を選択することを含み、前記選択された値が、前記ラベルに対応する、請求項3に記載の方法。
【請求項5】
前記複数の既知のラベルが、複数のテキスト文字ラベルを含む、請求項3及び4のいずれかに記載の方法。
【請求項6】
前記複数の既知のラベルが、バックグラウンドラベルを更に含む、請求項3及び4のいずれかに記載の方法。
【請求項7】
各々の機械学習方法を使用して、及びフィールド訓練データの各々のセットを使用して、前記第一の機械学習モデル、及び前記第二の機械学習モデルの各々を訓練することを更に含む、請求項2~6のいずれかに記載の方法。
【請求項8】
前記一つ以上の物体が、前記画像に含まれる部品上に一つ以上の印刷されたテキスト文字を含み、
前記方法が、前記一つ以上のテキスト文字から認識される少なくとも一つのテキスト文字を使用して、前記部品を追跡することを更に含む、請求項2~6のいずれかに記載の方法。
【請求項9】
前記一つ以上の物体の前記位置を決定することが、
前記物体中心ヒートマップを平滑化して、平滑化された物体中心ヒートマップを生成することと、
前記一つ以上の物体の前記位置を選択することであって、前記平滑化された物体中心ヒートマップの各々の位置の値が、前記位置の近接する領域の値よりも高い、選択することと、を含む、請求項1~8のいずれかに記載の方法。
【請求項10】
前記物体中心ヒートマップを平滑化することが、物体サイズに比例する標準偏差を有する、ガウスフィルタを適用することを含む、請求項9に記載の方法。
【請求項11】
前記位置を選択することが、前記平滑化された物体中心ヒートマップ内の前記値が閾値を下回る一つ以上の位置を、フィルタリングすることを更に含む、請求項9及び10のいずれかに記載の方法。
【請求項12】
前記第一の機械学習モデルが、重みベクトルを含み、
前記画像の前記特徴マップが、各々の特徴ベクトルに各々関連付けられた複数のサンプルを含み、
前記物体中心ヒートマップ内の各サンプルの値が、前記特徴マップ内の対応するサンプルの特徴ベクトル及び重みベクトルのドット積である、請求項1~11のいずれかに記載の方法。
【請求項13】
前記画像の前記特徴マップを決定することが、
事前訓練済みニューラルネットワークモデルを使用して前記画像を処理して、前記画像の前記特徴マップを生成することを含む、請求項1~12のいずれかに記載の方法。
【請求項14】
1Dバーコードスキャナ、又は2Dバーコードスキャナを使用して、前記画像を取り込むことを更に含む、請求項1~13のいずれかに記載の方法。
【請求項15】
コンピューティングデバイス上の一つ以上のプロセッサによって実行されると、前記一つ以上のプロセッサに請求項1~14のいずれかに記載の方法を実行させるように動作可能である命令を含む、非一時的コンピュータ可読媒体。
【請求項16】
システムであって、
検査ステーション上の部品の画像を取り込むように構成された、画像取り込み装置を備えるスキャナと、
プログラミング命令を実行して、請求項1~14のいずれかに記載の動作を実行するように構成されたプロセッサと、を備える、システム。
【請求項17】
画像内の一つ以上の文字を認識するためのコンピュータ化された方法であって、前記方法が、
事前訓練済み機械学習モデルを使用して前記画像を処理して、前記画像の特徴マップを生成することと、
第一の機械学習モデルを使用して前記画像の前記特徴マップを処理して、前記画像に対する文字中心ヒートマップを生成することであって、前記文字中心ヒートマップが、前記画像内の対応するサンプルが文字の中心である可能性を示す値を各々有する複数のサンプルを含む、生成することと、
第二の機械学習モデルを使用して、前記画像の特徴マップ及び前記画像についての前記文字中心ヒートマップを処理して、前記画像内の一つ以上の文字を認識することと、を含む、方法。
【請求項18】
前記一つ以上の文字の少なくとも一つの文字を認識することが、
前記画像の前記特徴マップ及び前記画像の前記文字中心ヒートマップを使用して、文字特徴ベクトルを生成することと、
前記第二の機械学習モデルを使用して前記文字特徴ベクトルを処理して、クラスベクトルを生成することであって、前記クラスベクトルが、各々が複数の既知のラベルの一つに対応する複数の値を含む、生成することと、
前記クラスベクトルを使用して、前記文字を前記複数の既知のラベルのラベルに分類することと、を含む、請求項17に記載の方法。
【請求項19】
前記クラスベクトルの各値が、前記複数の既知のラベルの対応する一つに関連付けられた予測スコアを示し、
前記文字を分類することが、前記クラスベクトル内の前記複数の値の中から最大値を選択することを含み、前記選択された値が、前記ラベルに対応する、請求項18に記載の方法。
【請求項20】
前記複数の既知のラベルが、バックグラウンドラベルを更に含む、請求項18及び19のいずれかに記載の方法。
【請求項21】
前記文字中心ヒートマップに基づいて、前記画像内の前記一つ以上の文字の位置を決定することを更に含み、前記少なくとも一つの文字に対する前記文字特徴ベクトルを生成することが、前記画像の前記特徴マップの一部分を使用して、前記文字特徴ベクトルを生成することを含み、前記特徴マップの前記一部分が、前記文字の前記位置を周囲する領域に基づく、請求項18~20のいずれかに記載の方法。
【請求項22】
前記一つ以上の文字の前記位置を決定することが、
前記文字中心ヒートマップを平滑化して、平滑化された文字中心ヒートマップを生成することと、
前記一つ以上の文字の前記位置を選択することであって、前記平滑化された文字中心ヒートマップの各々の位置の値が、前記位置の近接する領域の値よりも高い、選択することと、を含む、請求項21に記載の方法。
【請求項23】
前記文字中心ヒートマップを平滑化することが、文字サイズに比例する標準偏差を有する、ガウスフィルタを適用することを含む、請求項22に記載の方法。
【請求項24】
前記位置を選択することが、前記平滑化された文字中心ヒートマップ内の前記値が閾値を下回る一つ以上の位置を、フィルタリングすることを更に含む、請求項22及び23のいずれかに記載の方法。
【請求項25】
前記第一の機械学習モデルが、重みベクトルを含み、
前記画像の前記特徴マップが、各々の特徴ベクトルに各々関連付けられた複数のサンプルを含み、
前記文字中心ヒートマップ内の各サンプルの値が、前記特徴マップ内の対応するサンプルの特徴ベクトル及び重みベクトルのドット積である、請求項17~24のいずれかに記載の方法。
【請求項26】
前記第二の機械学習モデルを、
複数の訓練画像及び複数の訓練ラベルを取得することであって、前記複数の訓練ラベルの各々が、前記複数の訓練画像の対応する一つの中の文字と関連付けられる、取得することと、
前記複数の訓練画像及び前記事前訓練済み機械学習モデルの一つを使用して、複数の訓練特徴マップを各々決定することと、
前記複数の訓練特徴マップ及び前記複数の訓練ラベルを使用して、前記第二の機械学習モデルの重みを決定することと、によって、訓練することを含む、請求項17~25のいずれかに記載の方法。
【請求項27】
前記第二の機械学習モデルの前記重みを決定することが、
前記複数の訓練ラベルの各訓練ラベルについて、
前記訓練ラベルが関連付けられる前記対応する訓練画像の前記特徴マップの一部分を使用して、対応する文字特徴ベクトルを決定することと、
標的ベクトルを決定することと、
前記複数の訓練ラベルの前記文字特徴ベクトル及び前記標的ベクトルを使用して、前記第二の機械学習モデルの重みを決定することと、を含む、請求項26に記載の方法。
【請求項28】
前記第二の機械学習モデルの前記重みを決定することが、前記文字特徴ベクトル及び前記標的ベクトルに対して機械学習方法を使用することを含む、請求項27に記載の方法。
【請求項29】
前記複数の訓練ラベルの各訓練ラベルについて、
前記対応する訓練画像内の前記訓練ラベルの位置を取得することと、
前記訓練ラベルの前記位置に基づいて、前記対応する訓練画像の前記特徴マップの前記一部分を使用して、前記対応する特徴ベクトルを決定することと、を含む、請求項27又は28に記載の方法。
【請求項30】
前記特徴マップの前記一部分が、前記対応する訓練画像内の前記訓練ラベルの前記位置を中心とする、境界ボックスによって表される、請求項29に記載の方法。
【請求項31】
前記対応する特徴ベクトルを決定することが、前記特徴マップの前記一部分の各々の位置に基づいて各々形成される、複数のサブ特徴ベクトルを連結することを含む、請求項29及び30のいずれかに記載の方法。
【請求項32】
前記第一の機械学習モデルを、
複数の訓練特徴マップの複数のグラウンドトゥルース文字中心ヒートマップを決定することと、
前記複数の訓練特徴マップ及び前記複数のグラウンドトゥルース文字中心ヒートマップを使用して、前記第一の機械学習モデルの重みを決定することと、によって、訓練することを含む、請求項17~31のいずれかに記載の方法。
【請求項33】
前記第一の機械学習モデルの前記重みを決定することが、機械学習方法を使用して前記第一の機械学習モデルの前記重みを決定することを含む、請求項32に記載の方法。
【請求項34】
前記複数のグラウンドトゥルース文字中心ヒートマップを決定することが、前記訓練画像内の訓練ラベルの最も近いグラウンドトゥルース位置までの距離に基づいて、各々が値を有する複数のサンプルを含む、請求項32及び33のいずれかに記載の方法。
【請求項35】
グラフィカルユーザインターフェースを介して、前記複数の訓練画像内の文字と前記複数の訓練画像内の一つ以上の文字の各々に対する文字ラベルとの間の、一対一のマッピングを受信することと、
前記複数の訓練画像内の前記一つ以上の文字に対する前記受信された一対一のマッピングに基づいて、前記複数の訓練ラベルを生成することと、を含む、請求項17~34のいずれかに記載の方法。
【請求項36】
前記グラフィカルユーザインターフェースを介して、一つ以上の認識される文字に対する補正を受信することと、
前記補正に基づいて前記複数の訓練ラベルを更新することと、
前記更新された複数の訓練ラベルに更に基づいて、前記第一の機械学習モデル及び前記第二の機械学習モデルを再訓練することと、を含む、請求項35に記載の方法。
【請求項37】
前記一つ以上の文字が、前記画像に含まれる部品上に一つ以上の印刷されたテキスト文字を含み、
前記方法が、前記一つ以上のテキスト文字から認識される少なくとも一つのテキスト文字を使用して、前記部品を追跡することを更に含む、請求項17~36のいずれかに記載の方法。
【請求項38】
コンピューティングデバイス上の一つ以上のプロセッサによって実行されると、前記一つ以上のプロセッサに請求項17~37のいずれかに記載の方法を実行させるように演算可能な命令を含む、非一時的コンピュータ可読媒体。
【請求項39】
システムであって、
検査ステーション上の部品の画像を取り込むように構成された、画像取り込み装置を備えるスキャナと、
プログラミング命令を実行して、請求項17~37のいずれか一項に記載の動作を実行するように構成されたプロセッサと、を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年10月7日に出願された「SYSTEMS AND METHODS FOR DETECTING OBJECTS」と題される、米国仮出願第63/253,496号に対する35U.S.C.§119(e)に基づく優先権を主張するものであり、その全体が参照により本明細書に組み込まれる。
【0002】
この技術は、機械視覚システム及び方法に関し、より具体的には、物体を検出するためのシステム及び方法に関する。
【背景技術】
【0003】
画像内の文字などの物体を検出することが、望ましい場合がある。様々な技術を使用して、画像内の物体を検出することができる。光学文字認識(OCR)技術は、例えば、機械部品上に印刷されたテキスト、及び/又は機械部品に貼付されたテキストなど、様々な製造プロセスに関連付けられたテキストを検出するために、多くの機械視覚システムでしばしば使用される。しかしながら、所与のOCRアプリケーションのパラメータの設定は、特に新規のユーザにとって、困難であり得る。例えば、文字認識のために、ユーザは、OCR文字列の周囲の領域を選択して、機械視覚システムに対して、文字がOCRプロセス用であると指示することがある。システムが文字を正しく認識しない場合、ユーザが手動で問題をトラブルシューティングすることは困難であり得る。更に、このような問題を事前に(例えば、システムインテグレータによって)解決することができる一部のアプリケーションとは異なり、製造プロセスの一部としてパラメータを調整することは、多くの場合、技術者又はエンジニアが、実際の生産現場でこのような問題をトラブルシューティングすること(例えば、より良好なOCRを提供するために、ランタイムパラメータを訓練又は修正すること)を必要とする。こうした訓練又は調整は、例えば、新しい部品を製造する時、又は新しい印刷若しくはラベルを使用する時に、必要とされ得る。
【発明の概要】
【0004】
本開示は、画像内の文字などの、物体を検出するための技術に関する。記載される技術のいくつかの態様は、コンピュータ化された方法、非一時的コンピュータ可読媒体、及び/又は画像内の一つ以上の物体を認識するためのシステムを提供する。方法は、画像の特徴マップを決定することを含む。方法は、事前訓練済み機械学習モデルを使用して、特徴マップを決定し得る。事前訓練済み機械学習モデルは、深層機械学習モデルであってもよい。方法は、第一の機械学習モデルを使用して画像の特徴マップを処理して、画像に対する物体中心ヒートマップを生成することを更に含み、物体中心ヒートマップは、画像内の対応するサンプルが物体の中心である可能性を示す値を各々有する複数のサンプルを含む。方法は、物体中心ヒートマップに基づいて、画像内の一つ以上の物体の位置を決定することを更に含む。いくつかの実施例では、方法は、更に、第二の機械学習モデル及び特徴マップを使用して、画像内の一つ以上の物体の位置を処理して、一つ以上の物体のうち少なくとも一つの物体を認識することを含み得る。第一及び第二の機械学習モデルは、フィールド訓練プロセスで訓練され得る。
【0005】
いくつかの実施形態では、一つ以上の物体のうち少なくとも一つの物体を認識することは、画像の特徴マップの一部分を使用して、物体特徴ベクトルを生成することであって、特徴マップの一部分が物体の位置を周囲する領域に基づく、生成することと、第二の機械学習モデルを使用して物体特徴ベクトルを処理して、クラスベクトルを生成することであって、クラスベクトルが、各々が複数の既知のラベルの一つに対応する複数の値を含む、生成することと、クラスベクトルを使用して、物体を複数の既知のラベルのラベルに分類すること、とを含む。
【0006】
いくつかの実施形態では、クラスベクトルの各値は、複数の既知のラベルの対応する一つに関連付けられた予測スコアを示し、物体を分類することは、クラスベクトル内の複数の値の中から最大値を選択することを含み、選択された値は、ラベルに対応する。
【0007】
いくつかの実施形態では、複数の既知のラベルは、複数のテキスト文字ラベルを含む。
【0008】
いくつかの実施形態では、複数の既知のラベルは、バックグラウンドラベルを更に含む。
【0009】
いくつかの実施形態では、方法は、各々の機械学習方法を使用して、及びフィールド訓練データの各々のセットを使用して、第一の機械学習モデル、及び第二の機械学習モデルの各々を訓練することを、更に含む。
【0010】
いくつかの実施形態では、一つ以上の物体は、画像に含まれる部品上に一つ以上の印刷されたテキスト文字を含み、方法は、一つ以上のテキスト文字から認識される少なくとも一つのテキスト文字を使用して、部品を追跡することを更に含む。
【0011】
いくつかの実施形態では、一つ以上の物体の位置を決定することは、物体中心ヒートマップを平滑化して、平滑化された物体中心ヒートマップを生成することと、一つ以上の物体の位置を選択することとを含み、平滑化された物体中心ヒートマップの各々の位置の値は、その位置に近接する領域の値よりも高い。
【0012】
いくつかの実施形態では、物体中心ヒートマップを平滑化することは、物体サイズに比例する標準偏差を有する、ガウスフィルタを適用することを含む。
【0013】
いくつかの実施形態では、位置を選択することは、平滑化された物体中心ヒートマップの値が閾値を下回る一つ以上の位置を、フィルタリングすることを更に含む。
【0014】
いくつかの実施形態では、第一の機械学習モデルは、重みベクトルを含み、画像の特徴マップは、各々の特徴ベクトルに各々関連付けられた複数のサンプルを含み、物体中心ヒートマップの各サンプルの値は、特徴マップ内の対応するサンプルの特徴ベクトル、及び重みベクトルのドット積である。
【0015】
いくつかの実施形態では、画像の特徴マップを決定することは、事前訓練済みニューラルネットワークモデルを使用して画像を処理して、画像の特徴マップを生成することを含む。
【0016】
いくつかの実施形態では、方法は、1Dバーコードスキャナ、又は2Dバーコードスキャナを使用して、画像を取り込むことを更に含む。
【0017】
いくつかの実施形態では、コンピューティングデバイス上の一つ以上のプロセッサによって実行されると、一つ以上のプロセッサに上述の方法のいずれかを実行させるように動作可能な命令を含む、非一時的コンピュータ可読媒体が提供される。
【0018】
いくつかの実施形態では、検査ステーション上の部品の画像を取り込むように構成された、画像取り込み装置を含むスキャナと、上述の方法のいずれかを含む動作を実行するために、プログラミング命令を実行するように構成されたプロセッサとを含む、システムが提供される。
【0019】
記載される技術のいくつかの態様は、コンピュータ化された方法、非一時的コンピュータ可読媒体、及び/又は画像内の一つ以上の文字を認識するためのシステムを提供する。いくつかの実施形態では、方法は、事前訓練済み機械学習モデルを使用して画像を処理して、画像の特徴マップを生成することと、第一の機械学習モデルを使用して画像の特徴マップを処理して、画像に対する文字中心ヒートマップを生成することであって、文字中心ヒートマップが、画像内の対応するサンプルが文字の中心である可能性を示す値を各々有する複数のサンプルを含む、生成することと、 第二の機械学習モデルを使用して画像の特徴マップ及び画像に対する文字中心ヒートマップを処理して、画像内の一つ以上の文字を認識すること、とを含む。
【0020】
いくつかの実施形態では、一つ以上の文字の少なくとも一つの文字を認識することは、画像の特徴マップ及び画像の文字中心ヒートマップを使用して、文字特徴ベクトルを生成することと、第二の機械学習モデルを使用して文字特徴ベクトルを処理して、クラスベクトルを生成することであって、クラスベクトルが、各々が複数の既知のラベルの一つに対応する複数の値を含む、生成することと クラスベクトルを使用して、文字を複数の既知のラベルのラベルに分類すること、とを含む。
【0021】
いくつかの実施形態では、クラスベクトルの各値は、複数の既知のラベルの対応する一つに関連付けられた予測スコアを示し、文字を分類することは、クラスベクトル内の複数の値の中から最大値を選択することを含み、選択された値は、ラベルに対応する。
【0022】
いくつかの実施形態では、複数の既知のラベルは、バックグラウンドラベルを更に含む。
【0023】
いくつかの実施形態では、方法は、文字中心ヒートマップに基づいて、画像内の一つ以上の文字の位置を決定することを更に含み、少なくとも一つの文字に対する文字特徴ベクトルを生成することは、画像の特徴マップの一部分を使用して、文字特徴ベクトルを生成することを含み、特徴マップの一部分は、文字の位置を周囲する領域に基づく。
【0024】
いくつかの実施形態では、一つ以上の文字の位置を決定することは、文字中心ヒートマップを平滑化して、平滑化された文字中心ヒートマップを生成することと、一つ以上の文字の位置を選択することとを含み、平滑化された文字中心ヒートマップの各々の位置の値は、その位置に近接する領域の値よりも高い。
【0025】
いくつかの実施形態では、文字中心ヒートマップを平滑化することは、文字サイズに比例する標準偏差を有する、ガウスフィルタを適用することを含む。
【0026】
いくつかの実施形態では、位置を選択することは、平滑化された文字中心ヒートマップの値が閾値を下回る一つ以上の位置を、フィルタリングすることを更に含む。
【0027】
いくつかの実施形態では、第一の機械学習モデルは、重みベクトルを含み、画像の特徴マップは、各々の特徴ベクトルに各々関連付けられた複数のサンプルを含み、文字中心ヒートマップの各サンプルの値は、特徴マップ内の対応するサンプルの特徴ベクトル、及び重みベクトルのドット積である。
【0028】
いくつかの実施形態では、方法は、第二の機械学習モデルを、複数の訓練画像及び複数の訓練ラベルを取得することであって、複数の訓練ラベルの各々が複数の訓練画像の対応する一つの文字に関連付けられた、取得することと、複数の訓練画像及び事前訓練済み機械学習モデルの一つを使用して、複数の訓練特徴マップを各々決定することと、複数の訓練特徴マップ及び複数の訓練ラベルを使用して、第二の機械学習モデルの重みを決定することと、によって、第二の機械学習モデルを訓練することを含む。
【0029】
いくつかの実施形態では、第二の機械学習モデルの重みを決定することは、(1)複数の訓練ラベルの各訓練ラベルについて、訓練ラベルが関連付けられる対応する訓練画像の特徴マップの一部分を使用して、対応する文字特徴ベクトルを決定すること、及び標的ベクトルを決定することと、(2)複数の訓練ラベルの文字特徴ベクトル及び標的ベクトルを使用して、第二の機械学習モデルの重みを決定すること、とを含む。
【0030】
いくつかの実施形態では、第二の機械学習モデルの重みを決定することは、文字特徴ベクトル及び標的ベクトルに対して、機械学習方法を使用することを含む。
【0031】
いくつかの実施形態では、方法は、複数の訓練ラベルの各訓練ラベルについて、(1)対応する訓練画像内の訓練ラベルの位置を取得することと、(2)訓練ラベルの位置に基づいて、対応する訓練画像の特徴マップの一部分を使用して、対応する文字特徴ベクトルを決定すること、とを更に含む。
【0032】
いくつかの実施形態では、特徴マップの一部分は、対応する訓練画像内の訓練ラベルの位置を中心とする、境界ボックスによって表される。
【0033】
いくつかの実施形態では、対応する文字特徴ベクトルを決定することは、特徴マップの一部分内の各々の位置に基づいて各々形成される、複数のサブ特徴ベクトルを連結することを含む。
【0034】
いくつかの実施形態では、方法は、複数の訓練特徴マップの複数のグラウンドトゥルース文字中心ヒートマップを決定することと、複数の訓練特徴マップ及び複数のグラウンドトゥルース文字中心ヒートマップを使用して、第一の機械学習モデルの重みを決定することと、によって、第一の機械学習モデルを訓練することを更に含む。
【0035】
いくつかの実施形態では、第一の機械学習モデルの重みを決定することは、機械学習方法を使用して、第一の機械学習モデルの重みを決定することを含む。
【0036】
いくつかの実施形態では、複数のグラウンドトゥルース文字中心ヒートマップを決定することは、訓練画像内の訓練ラベルの最も近いグラウンドトゥルース位置までの距離に基づいて各々値を有する、複数のサンプルを含む。
【0037】
いくつかの実施形態では、方法は、グラフィカルユーザインターフェースを介して、複数の訓練画像内の文字と、複数の訓練画像内の一つ以上の文字の各々に対する文字ラベルとの間の、一対一のマッピングを受信することと、複数の訓練画像内の一つ以上の文字に対する受信した一対一のマッピングに基づいて、複数の訓練ラベルを生成すること、とを更に含む。
【0038】
いくつかの実施形態では、方法は、グラフィカルユーザインターフェースを介して、一つ以上の認識された文字に対する補正を受信することと、補正に基づいて複数の訓練ラベルを更新することと、更新された複数の訓練ラベルに更に基づいて、第一の機械学習モデル及び第二の機械学習モデルを再訓練すること、とを更に含む。
【0039】
いくつかの実施形態では、一つ以上の文字は、画像に含まれる部品上に一つ以上の印刷されたテキスト文字を含み、方法は、一つ以上のテキスト文字から認識される少なくとも一つのテキスト文字を使用して、部品を追跡することを更に含む。
【0040】
いくつかの実施形態では、コンピューティングデバイス上の一つ以上のプロセッサによって実行されると、一つ以上のプロセッサに上述の方法のいずれかを実行させるように演算可能な命令を含む、非一時的コンピュータ可読媒体が提供される。
【0041】
いくつかの実施形態では、検査ステーション上の部品の画像を取り込むように構成された、画像取り込み装置を含むスキャナと、上述の方法のいずれかを実行するために、プログラミング命令を実行するように構成されたプロセッサとを含む、システムが提供される。
【0042】
当然のことながら、前述の概念及び以下でより詳細に説明される追加の概念の全ての組合わせ(こうした概念が相互に矛盾していないことを条件とする)は、本明細書に開示される本発明の主題の一部であると考えられる。特に、本開示の最後に現れる特許請求される主題の全ての組合わせは、本明細書に開示される本発明の主題の一部であると企図される。
【0043】
本開示の追加の実施形態、並びにその特徴及び利点は、添付図面と併せて本明細書の記載を参照することによって、より明らかになるであろう。図中の構成要素は、必ずしも正確な縮尺ではない。更に、図では、同様の参照番号は、異なる図全体を通して対応する部分を示す。
【図面の簡単な説明】
【0044】
【
図1】
図1は、本明細書に記載される技術のいくつかの実施形態による、物体を検出するためのシステムの図である。
【0045】
【
図2】
図2は、本明細書に記載される技術のいくつかの実施形態による、物体を検出するためのシステムの別の図である。
【0046】
【
図3】
図3は、本明細書に記載される技術のいくつかの実施形態による、物体を検出するための、例示的プロセスのフローチャートである。
【0047】
【
図4】
図4は、本明細書に記載される技術のいくつかの実施形態による、文字を検出するための、例示的プロセスのフローチャートである。
【0048】
【
図5】
図5Aは、本明細書に記載される技術のいくつかの実施形態による、文字の検出に使用される機械学習モデルを訓練するための、例示的プロセスのフローチャートである。
【0049】
図5Bは、本明細書に記載される技術のいくつかの実施形態による、文字の検出に使用される別の機械学習モデルを訓練するための、例示的プロセスのフローチャートである。
【0050】
【
図6】
図6は、本明細書に記載される技術のいくつかの実施形態による、検出可能な文字を印刷した例示的な部品である。
【0051】
【
図7】
図7は、本明細書に記載される技術のいくつかの実施形態による、訓練プロセスにおけるラベルを補正するための、例示的なグラフィカルユーザインターフェースを示す。
【0052】
【
図8】
図8は、本明細書に記載される技術のいくつかの実施形態による、本明細書に開示される技術及び実施形態の態様のいずれかを実施するために使用され得る、コンピュータシステムの例示的実装を示す。
【発明を実施するための形態】
【0053】
本開示の原理の理解を促進する目的で、ここで図面に図示した実施形態を参照し、特定の言語を使用してそれを説明する。それにもかかわらず、本発明の範囲の制限は、それによって意図されないことが理解されよう。
【0054】
さまざまなマシンビジョン用途のために、画像内の文字などの物体を検出することが、望ましい場合がある。例えば、製造プロセス又は検査プロセスの一部として、機械部品上に印刷された、及び/又は機械部品に貼り付けられた、テキストを検出することが、望ましい場合がある。様々な技術を使用して、機械視覚用途のために、物体を検出することができる。一例として、製造プロセスにおけるOCRアプリケーションは、部品番号を描写する一つ以上のテキスト文字を有する、印刷されたラベルを認識することを含み得る。本出願では、印刷されたラベルを有する部品を含む、画像を取り込むことができる。OCR技術を使用して、印刷されたラベル内の一つ以上の文字の位置を決定し、文字を認識し得る。本発明者らは、従来の物体検出技術を上述の製造プロセスに適用することは、特に困難であり、こうした従来の技術が改善され得ることを、認識及び理解した。例えば、製造プロセス中に取り込まれた画像は、画像が取り込まれる様々な条件のために、従来の物体検出システムにおいて、低品質(例えば、スキャンされた文書と比較して)であり得る。これらの様々な条件の例としては、例えば、現場で取り込まれる部品の動き、カメラと部品との間の距離、現場での部品の未知若しくは制御不可能な姿勢、及び/又は現場での部品の照明状態が挙げられ得る。こうした条件は、例えば、画像のコントラストに影響を与え得る。文字については、例えば、カメラと部品との間の距離は、画像内の文字サイズに影響を与え得る。別の例として、部品上に印刷されたラベルの位置の変動は、取り込まれた画像の文字の位置に影響を与え得る 。製造プロセス中の、これらの様々な条件及び他の条件は、こうした従来の技術を適用するのに困難をもたらしてきた。
【0055】
いくつかの物体検出システムは、特定のシステムパラメータを訓練することによって、特定のアプリケーション、又はアプリケーションが実行される環境に適合するように設計される。システムパラメータを訓練するために使用される訓練データは、標的アプリケーションドメインから収集される。例えば、訓練データは、システムが配備される条件をシミュレートする、ラボ環境で収集又は生成され得る。しかしながら、この手法には、いくつかの欠点がある。第一に、物体検出システムが訓練及び開発される環境(例えば、ラボ環境内)は、物体検出システムが現場に配備される環境とは、全く異なってもよい。第二に、特定のアプリケーション又は環境のための、訓練データを収集することは、高価であり得る。
【0056】
OCRシステムなどのいくつかの物体検出システムは、ユーザが特定のパラメータを調整することを可能にすることによって、改善された物体検出性能を提供するために、特定の用途に適合可能であるように設計される。しかしながら、パラメータを調整することは、通常、システムインテグレータ、技術者、又は物体検出システムの機構に関する知識を有する人員さえも必要とするため、これらのシステムは欠点を有する。例えば、典型的なシステムでは、調整を必要とするかも知れない、20~30個のパラメータがあり得る。これらのパラメータを調整することは、ほとんどのユーザのスキルのレベルを超えるだろう。
【0057】
いくつかの物体検出システムは、機械学習技術を使用する。例えば、画像から文字を検出するために、OCRシステムで深層機械学習技術が使用されてきた。しかしながら、本発明者らは、機械学習技術を使用する物体認識のための従来のシステムは、典型的には、配備中に使用される機械学習モデルを調整することができる柔軟性を、ほとんど又は全く提供しないことを認識及び理解した。例えば、機械学習(例えば、深層機械学習)技術は、機械学習技術が、概して、数百、数千、又は数万の訓練画像及び関連するグラウンドトゥルースデータ(例えば、画像に含まれる物体に関する情報を提供する)などの、巨大な訓練データセットを必要とするため、前述したのと同一の欠点を継承する。こうした巨大な訓練データセットは、収集が困難及び/又は高価であり得る。更に、深層機械学習技術を使用する場合、訓練プロセスは、深層機械学習モデルにおける、多数の画像及び多数の重みを考慮すると、非常に時間を要する場合さえある。例えば、畳み込みニューラルネットワーク(CNN)では、数万の重みがあり得る。したがって、これらの機械学習ベースの技術を、当該分野で機械学習モデルを適合させる様式で配備することは、概して、実現不可能である。一旦現場に入ると、これらのシステムを合理的な期間(例えば、訓練又は調整プロセスが、ユーザ体験の低下をもたらさないように十分に速い)で、訓練及び/又は再訓練するのに十分な、訓練データ及び/又は計算リソースがない場合がある。
【0058】
更に、本発明者らは、従来の機械学習ベースのシステムが、多くの場合、ブラックボックスアプローチを使用して、端から端まで画像を処理することを認識及び認識した。例えば、従来のシステムは、入力として画像を受信し、OCR結果などの出力として物体検出結果を生成するが、物体検出結果を生成するために使用される、機械学習モデル及び/又は処理パイプラインの他の部分への可視性を提供しない。追加的に又は代替的に、こうしたシステムは、複数の物体が現場に存在する場合、個々の物体を認識することを提供しない。例えば、OCRシステムは、文字列の個々の文字を認識することや、又はOCRで処理される(例えば、次いで、OCRプロセスを構成するために使用される)画像内の、文字の位置を示すデータを提供することなど、処理パイプラインの中間結果又はデータを生成することを、提供しない。代わりに、これらのシステムは、典型的には、画像内のテキストの線又は複数の線など、テキストのブロックに対する認識だけを提供する。
【0059】
したがって、本発明者らは、当該分野で簡単かつ迅速に訓練され得る、物体検出システムを提供するために、本明細書に記載される技術を開発してきた。いくつかの実施形態では、現場で訓練され得る一つ以上の機械学習モデルを含むように、システムが提供され得る。ブラックボックスアプローチで複雑な機械学習モデルを使用することとは対照的に、複数の機械学習モデルを使用することは、システムが、より小さくより単純な機械学習モデルを使用することを可能にしてもよく、各々は、画像の特定の特徴の抽出に焦点を当てる。
【0060】
物体検出は、画像、動画、及び/又は任意の他の適切な媒体資産内の、一つ以上の物体を検出するための動作を含み得る。物体検出の例としては、一つ以上の物体を判定すること、並びに/又は画像、動画、及び/若しくは任意の他の適切な媒体資産内の物体を認識することが、挙げられ得る。例えば、画像が組立ライン上を移動する一つ以上の機械部品を含み得る製造プロセスにおいて、物体検出は、一つ以上の部品を画像内に位置させることを含み得る。物体検出はまた、一つ以上の部品、及び認識された部品の各々に対応する各々の既知のクラスを、認識することを含み得る。
【0061】
画像内の一つ以上の物体は、様々なタイプの品目を含み得ることが理解される。画像から検出される物体の更なる例としては、テキスト(例えば、印刷されたラベル中の文字)、グラフィック、記号、アイコン、バーコード、機械、人間の顔、動物、家具の部分、ラベル、目印、若しくは任意の他の適切なテキスト/グラフィック表現、又はそれらの組合せが挙げられ得る。画像内に含まれる物体は、任意の色又は複数の色の組合わせを含み得る。テキスト文字は、英語、又は任意の他の適切な言語であってもよい。したがって、本明細書に記載される技術は、画像内の文字を含む、様々なタイプの品目を検出することに適用され得る。文字は、テキスト又はグラフィックのいずれでもよく、任意の記号を含み得る。文字の例としては、ASCIIセットの任意の文字、任意の適切な言語の英字、又は非テキスト記号、例えば、数学的記号、若しくは他の記号が挙げられ得る。
【0062】
したがって、記載される技術は、画像を処理して、画像内の一つ以上の物体を検出する、システム、コンピュータ化された方法、及び非一時的命令を含む。いくつかの実施形態では、システムは、一つ以上の物体を含む画像を取得し、画像を処理して、事前訓練済み機械学習モデルを使用して画像の特徴マップを決定し得る。いくつかの実施例では、事前訓練済み機械学習モデルは、一つ以上の隠れ層を有する畳み込みニューラルネットワーク(CNN)、又は任意の他の適切なモデルなどの、深層機械学習モデルであり得る。事前訓練済み機械学習モデルは、特徴マップを出力するための後続の処理のために、画像の一部の特徴をコードするように構成され得る。特徴マップは、複数のサンプルを含んでもよく、各々が、各々の位置で画像に関する意味情報をコードする複数の値を有する、ベクトル(例えば、特徴ベクトル)を含む。特徴マップのサイズは、画像のサイズとは異なってもよい。例えば、特徴マップは、画像よりも小さくてもよく、そのサイズは、画像のサイズの1/4又は1/8である。
【0063】
いくつかの実施形態では、システムは、第一の機械学習モデルを使用して、画像の特徴マップを更に処理して、画像に対する物体中心ヒートマップを生成し得る。第一の機械学習モデルは、フィールド訓練プロセスで訓練され得る。物体中心ヒートマップは、画像内の一つ以上のピクセルが物体の中心である可能性を描写する、画像の表現であってもよい。例えば、物体中心ヒートマップは、画像内の対応するサンプルが物体の中心である可能性を示す値を各々有する、複数のサンプルを含み得る。したがって、画像内の物体の中心付近のサンプルは、画像内の他の領域のサンプルよりも高い値を、物体中心ヒートマップ内に有し得る。いくつかの実施例では、第一の機械学習モデルは、ベクトル内に複数の重みを含む、重みベクトルを含み得る。物体中心ヒートマップのサイズは、特徴マップと同一のサイズを有し得る。いくつかの実施形態では、物体中心ヒートマップ内の各サンプルの値は、特徴マップ内の対応するサンプルの特徴ベクトル、及び重みベクトルのドット積であってもよい。いくつかの実施例では、重みベクトルは、Kの寸法値を有してもよく、すなわち、重みベクトルは、K値を有してもよく、ここで、Kは、画像内の一つ以上の物体に対する既知のラベルの数である。
【0064】
いくつかの実施形態では、システムは、物体中心ヒートマップの対応するサンプルの値に基づいて、一つ以上の物体の位置を更に決定し得る。例えば、画像内の位置のリストは、物体中心ヒートマップ内の対応するサンプルの値が閾値を下回る位置を、フィルタリングして除去することによって、物体中心として選択され得る。いくつかの実施形態では、システムは、物体中心ヒートマップにフィルタを適用して、平滑化された物体中心ヒートマップを生成し、平滑化された物体中心ヒートマップを使用して、一つ以上の物体の位置を選択し得る。いくつかの実施例では、フィルタは、異方性ガウスフィルタなどの、ガウスフィルタであってもよい。ガウスフィルタのサイズは、画像内の物体のサイズに基づいて決定され得る。例えば、テキスト文字ラベルを検出するために、ガウスフィルタのサイズ(例えば、幅、及び高さ)は、システムに訓練及び保存され得る文字サイズに基づいて決定され得る。
【0065】
いくつかの実施形態では、システムは、第二の機械学習モデル及び特徴マップを使用して、画像内の一つ以上の物体の位置を処理することによって、画像内の一つ以上の物体を認識し得る。第二の機械学習モデルはまた、フィールド訓練プロセス中に訓練され得る。物体を認識する時に、一つ以上の物体の位置から各位置で、システムは、物体特徴ベクトルを生成し得る。物体特徴ベクトルは、事前訓練済み機械学習モデルを使用して画像から抽出された特徴など、物体の特定の特徴を描写する、物体の表現であってもよい。例えば、物体特徴ベクトルは、画像の特徴マップの一部分を使用して生成されてもよく、特徴マップの一部分は、各々の物体の位置を周囲する領域に基づく。第二の機械学習モデルは、行列内に複数の重みを含む、重み行列を含み得る。重み行列内の重みは、訓練され得る。いくつかの実施例では、システムは、第二の機械学習モデルを使用して物体特徴ベクトルを処理して、クラスベクトルを生成し、各物体を、クラスベクトルを使用して複数の既知のラベルのラベルに分類することによって、一つ以上の物体を認識し得る。クラスベクトルは、一つ以上の物体(例えば、文字、機械部品、又は他の物体)に対する、既知のクラスの表現であってもよい。クラスベクトルは、検出する物体に対する複数の既知のラベルの一つに各々対応する複数の値を含み得る。
【0066】
いくつかの態様では、上述の技術は、文字検出(例えば、OCR)の問題に適用され得る。例えば、第一の機械学習モデルは、画像内の文字位置を検出することを可能にする、画像の特定の特徴を抽出するように構成され得る。第二の機械学習モデルは、システムが画像内の文字を認識することを可能にする、画像の特定の他の特徴を抽出するように構成され得る。第一及び第二の機械学習モデルの各々は、複雑な機械学習モデルよりもはるかに少ない重みを含んでもよく、したがって、訓練がより迅速であってもよい。更に、これらのより小さな機械学習モデルを訓練することは、大きな訓練セットを必要としない場合があり、この分野でこれらのモデルを訓練することがより実行可能となる。
【0067】
いくつかの実施形態では、システムは、事前訓練済み機械学習モデルを使用して、他の処理ステップのために、画像の特徴マップを抽出し得る。特徴マップは、画像の表現であってもよく、画像内に特定の特徴を含み得る。例えば、特徴マップは、画像内の対応する位置で意味情報をコードする複数の値を有するベクトルを各々含む、複数のサンプルを含み得る。いくつかの実施例では、事前訓練済み機械学習モデルは、深層機械学習モデル、例えば、CNN、又は他のニューラルネットワークモデルであってもよい。事前訓練済み機械学習モデルは、オフラインで、大量の訓練データのコレクションを使用して訓練され得る。訓練されると、事前訓練済み機械学習モデルを調整する必要はなく、フィールドアプリケーションに配備することが可能になる。画像の特徴マップを生成するために、事前訓練済み機械学習モデルを使用することは、その堅牢性及びノイズに対するイミュニティにおける、深層機械モデルの利点を利用する。
【0068】
いくつかの実施形態では、システムは、様々なタイプの機械学習モデルを組合わせてもよい。例えば、発明者らは、(1)事前訓練済み機械学習モデルを使用して、画像内の特定の意味特徴を抽出すること、及び(2)他の機械学習モデルを使用して、画像の他の特徴を抽出すること、が望ましい場合があり、ここで、他の機械学習モードは、現場で配備された時に迅速に訓練することができることを認識した。例えば、事前訓練済み機械学習モデルは、深層機械学習モデル、例えば、CNN、又は他のニューラルネットワークモデルであってもよい。他の機械学習モデルは、上述の第一の機械学習モデル、及び第二の機械学習モデルを含み得る。いくつかの実施形態では、システムは、第一の機械学習モデル、及び事前訓練済み機械学習モデルから取得された特徴マップを使用して、文字の位置を検出し得る。更に、システムは、第二の機械学習モデル、及び事前訓練済み機械学習モデルから取得された特徴マップを使用して、画像内の文字を認識し得る。深層機械学習モデル(例えば、このようなモデルを訓練するために必要な時間及び/又は計算能力を考慮して、事前訓練され得る)と、配備時に訓練され得る他のタイプのモデルとのこの組合わせは、したがって、特定のフィールドアプリケーションにシステムを適合させる柔軟性を提供する一方で、システム性能及び堅牢性における、深層機械学習モデルの利点を得ることができる。これは、上述のように、従来のシステムにおける欠点の一部又は全てを克服し得る。
【0069】
いくつかの態様では、上述の実施形態のいくつかの変形は、システム、コンピュータ化された方法、及び非一時的命令を含んでもよく、これは、一つ以上の文字を含む画像を処理し、一つ以上の文字を検出するために提供され得る。一つ以上の文字を検出することは、一つ以上の文字の位置を検出するための動作を含み得る。更に、画像内の文字を検出することはまた、各々の既知のラベル(クラス)に対して、一つ以上の文字を認識することを含み得る。いくつかの実施形態では、システムは、一つ以上の文字を含む画像を取得し、事前訓練済み機械学習モデルを使用して画像を処理して、画像の特徴マップを生成し得る。事前訓練済み機械学習モデルは、いくつかの実施例では、深層機械学習モデルであってもよい。システムは、第一の機械学習モデルを使用して画像の特徴マップを処理することによって、文字中心ヒートマップを生成し得る。物体中心ヒートマップと同様に、文字中心ヒートマップは、画像内の一つ以上のピクセルが文字の中心である可能性を描写する、画像の表現であってもよい。例えば、文字中心ヒートマップは、画像内の対応するサンプルが文字の中心である可能性を示す値を各々有する、複数のサンプルを含み得る。いくつかの実施例では、画像がテキスト文字を含む場合、文字中心ヒートマップ内の各サンプルの値は、画像内の対応するサンプルがテキスト文字の中心である可能性を示し得る。したがって、文字中心ヒートマップは、画像内の文字の対応する位置各々に対して、「文字中心性」スコアを表し得る。例えば、文字中心ヒートマップ内のサンプルの値は、画像内の文字の中心から近位の位置で高くてもよく、文字の中心から遠位の位置で、又は文字を有しない画像の領域で低くてもよい。これにより、画像内に個々の文字を位置付けることが容易になり得る。
【0070】
いくつかの実施例では、システムは、文字中心ヒートマップの対応するサンプルの値に基づいて、一つ以上の文字の位置を決定し得る。例えば、文字中心ヒートマップ内の対応するサンプルの値が閾値を下回る位置を、フィルタリングして除去することによって、画像内の位置のリストを、文字中心として選択し得る。いくつかの実施形態では、システムは、フィルタを適用して、文字中心ヒートマップを平滑化して、平滑化された文字中心ヒートマップを使用して、一つ以上の文字の位置を選択し得る。いくつかの実施例では、フィルタは、ガウスフィルタ、例えば、異方性ガウスフィルタであってもよい。ガウスフィルタのサイズは、訓練及び/又は保存され得る、文字のサイズ、例えば、事前に保存された文字サイズに基づいて決定され得る。得られた位置の結果のリストは、画像内の文字の予測中心を含み得る。
【0071】
いくつかの実施形態では、システムは、第二の機械学習モデル及び特徴マップを使用して、画像内の文字の位置を処理することによって、画像内の一つ以上の文字を認識し得る。文字を認識する際、一つ以上の文字の位置から各位置で、システムは、文字特徴ベクトルを生成し得る。物体特徴ベクトルと同様に、文字特徴ベクトルは、文字に対応する画像の特徴マップ(事前訓練済み機械学習モデルを使用して取得される)に表される特徴など、文字の特定の特徴を描写する、文字の表現であってもよい。例えば、文字特徴ベクトルは、画像の特徴マップの一部分を使用して生成されてもよく、特徴マップの一部分は、各々の文字の位置を周囲する領域に基づく。第二の機械学習モデルは、行列内に複数の重みを含む、重み行列を含み得る。重み行列の重みは、現場で訓練され得る。いくつかの実施例では、システムは、第二の機械学習モデルを使用して文字特徴ベクトルを処理して、クラスベクトルを生成し、クラスベクトルを使用して複数の既知のラベルのラベルに各文字を分類することによって、一つ以上の文字を認識し得る。クラスベクトルは、一つ以上の文字に対する、既知のクラスの表現であってもよい。例えば、クラスベクトルは、各々が複数の既知のラベルの一つに対応する複数の値を含み得る。非限定的な実施例では、工業部品については、複数の既知のラベルは、工業部品の印刷されたラベルで使用される、文字又は記号のセット全体を含み得る。
【0072】
いくつかの実施形態では、上述のシステムは、一つ以上の用途で、物体(例えば、文字)を検出する結果を適用することを含み得る。例えば、画像内の一つ以上の物体は、画像内に含まれる機械部品上に、一つ以上の印刷されたテキスト文字を含み得る。したがって、システムは、部品上の一つ以上のテキスト文字を認識し、少なくとも一つの認識されたテキスト文字を使用して、部品を追跡するように構成され得る。いくつかの実施形態では、システムは、バーコードスキャナに実装されてもよく、その画像取り込み装置は、その上に印刷されたラベルを有する部品を含む画像を取り込むように構成され得る。システムは、バーコードの位置を検出し、位置するバーコードを復号化することによって、取り込まれた画像を処理するように構成され得る。
【0073】
上述のように、様々な実施形態は、第一の機械学習モデル、及び第二の機械学習モデルを使用する。いくつかの実施形態では、第一の及び/又は第二の機械学習モデルをフィールド訓練プロセスで訓練する、システム、コンピュータ化された方法、及び非一時的命令を含む、様々な技術が本明細書に記載される。いくつかの実施形態では、訓練プロセスは、訓練データの初期セットを使用する初期訓練プロセス、及び訓練データの更新されたセットを使用する再訓練プロセスを含み得る。再訓練プロセスでは、訓練データの更新されたセットは、例えば、ユーザインターフェースを介して、ユーザによって取得され得る、訓練データの初期セットの一部分、及び/又は新しい訓練データを含み得る。
【0074】
フィールド訓練プロセスは、訓練される機械学習モデルが、特定の顧客現場又は生産ラインにおける、特定の現場アプリケーションに関連付けられた特定の条件に適合し得る、訓練プロセスを含み得る。特定の条件の例としては、文字の特定のフォント、又は使用される印刷プロセス、特定の照明条件、又は組立ラインに機械部品を含む画像など、処理される特定の背景、特定のタイプの画像が挙げられる。フィールド訓練はまた、重複の有無に関わらず、事前訓練済み機械学習モデルを訓練するために使用される訓練データとは異なる、訓練データを含み得る。フィールド訓練プロセスは、例えば、ユーザがカスタムシンボル(ラベル)を追加することと、機械学習モデルを訓練するための新しいシンボルを含む訓練画像を提供すること、とを含み得る。したがって、フィールド訓練は、システムが、専用に事前構成されたシステムよりも、改善された性能を達成することを可能にし得る。
【0075】
一例として、第一及び第二の機械学習モデルを物体の検出において訓練するために使用され得る訓練システムが、詳細に記載される。いくつかの実施形態では、訓練システムは、物体の検出に使用される第一の機械学習モデルを訓練してもよく、第一の機械学習モデルは、重みベクトルを含み得る。システムは、複数の訓練画像、及び訓練画像内の物体に対応する訓練ラベルを取得し得る。訓練ラベルは、複数の訓練画像の対応する一つの中の物体に各々関連付けられて、物体が画像内に現れる場所を示す、グラウンドトゥルース物体位置のリストを含み得る。
【0076】
いくつかの実施形態では、訓練システムは、文字/物体を検出するために、システム内の前述した画像から特徴マップが決定されるのと同様の様式で、複数の訓練画像及び事前訓練済み機械学習モデルの一つを使用して、複数の訓練特徴マップを各々決定し得る。例えば、事前訓練済み機械は、深層機械学習モデルであってもよい。機械学習モデルを訓練するためのシステムは、グラウンドトゥルース物体中心ヒートマップを決定することと、訓練特徴マップ及びグラウンドトゥルース物体中心ヒートマップを使用して、第一の機械学習モデルの重みを決定すること、とを更に含み得る。いくつかの実施形態では、グラウンドトゥルース物体中心ヒートマップ内の各サンプルの値は、訓練画像内の最も近いグラウンドトゥルース物体位置までの距離に基づいて、生成され得る。
【0077】
いくつかの実施例では、訓練画像内の各物体について、システムは、対応する訓練画像の訓練特徴マップの一部分を使用して、対応する物体特徴ベクトルを更に決定し得る。物体特徴ベクトルは、物体のある特定の特徴を描写する物体の表現であってもよく、文字/物体を検出するために、前述したのと同様の様式で取得され得る。
【0078】
いくつかの実施例では、システムは、訓練画像内のグラウンドトゥルース物体位置から物体の位置を取得し、物体の位置に基づいて、対応する訓練画像の特徴マップの一部分を使用して、物体特徴ベクトルを決定し得る。特徴マップの一部分を決定する動作は、文字/物体を検出するためのシステムで前述したものと同様であり得る。物体特徴ベクトルを決定する際に、機械学習モデルを訓練するためのシステムは、アライメント方法を使用して、各々が特徴マップの一部分の各々の位置に基づいて、複数のサブ特徴ベクトルを決定し、複数のサブ特徴ベクトルを連結して、物体特徴ベクトルを形成し得る。
【0079】
したがって、全ての訓練画像について、システムは、上述の技術に従って、複数の物体特徴ベクトル、及び複数のグラウンドトゥルース物体中心ヒートマップ値を決定し得る。第一の機械学習モデルにおける重みを決定する時に、システムは、第一の機械学習モデル(例えば、重みベクトル)と各物体特徴ベクトルとの間のドット積が、対応するグラウンドトゥルース物体中心ヒートマップ値に可能な限り近いように、適切な機械学習方法を使用し得る。重みベクトルを訓練するための方法は、線形回帰、SVM、又は他の適切な機械学習方法を含み得る。
【0080】
いくつかの実施例では、物体(例えば、文字)の検出に使用される第二の機械学習モデルを訓練するために、訓練システムが提供されてもよく、第二の機械学習モデルは、重み行列を含み得る。いくつかの実施例では、システムは、複数の訓練画像、及び訓練ラベルを取得し得る。複数の訓練ラベルの各々は、複数の訓練画像の対応する一つの中の文字と関連付けられてもよい。例えば、訓練ラベルは、グラウンドトゥルース文字位置のリストを含んでもよく、各々が、画像内の文字が表示される位置を示すために、複数の訓練画像の対応する一つの中の文字と関連付けられる。システムはまた、各グラウンドトゥルース文字位置における文字の同一性を表すクラスのリストを含む、グラウンドトゥルース文字クラスリストを含み得る。テキスト文字の場合、文字クラスは、「A」~「Z」、又はフィールドアプリケーションで使用できる他のラベルなどの、テキスト文字に対応し得る。いくつかの実施例では、システムは、ラベル符号化方法を使用することによって、文字クラスリストを取得し得る。例えば、システムは、訓練ラベルに現れる全ての文字クラスを収集し、繰り返されるものを破棄して、別個の文字クラスのリストを生成し得る。
【0081】
更に、システムは、第一の機械学習モデルの訓練で前述したのと同様の様式で、事前訓練済み機械学習モデルを使用して、訓練特徴マップを決定し得る。例えば、事前訓練済み機械は、深層機械学習モデルであってもよい。システムは、複数の訓練特徴マップ、及び複数の訓練ラベルを使用して、第二の機械学習モデルの重みを更に決定し得る。第二の機械学習モデルの重みを決定する時に、訓練画像内の物体の各々について、システムは、第一の機械学習モデルの訓練で前述したのと同様の様式で、物体が位置する対応する訓練画像の特徴マップの一部分を使用して、対応する物体特徴ベクトルを決定し得る。
【0082】
更に、システムはまた、訓練画像内の物体の各々に対する、標的ベクトルを決定し得る。標的ベクトルは、物体と一つ以上の既知のクラスとの関連を描写する、物体(例えば、文字)の表現であってもよい。いくつかの実施例では、標的ベクトルは、符号化方法を使用して決定され得る。例えば、ワンホット符号化方法が、使用され得る。したがって、訓練画像内のグラウンドトゥルース物体位置の各々に対する、物体特徴ベクトル及び標的ベクトルを決定した後、システムは、第二の機械学習モデル(例えば、重み行列)が各物体特徴ベクトルと乗算される時、製品が対応する標的ベクトルを可能な限り付近に再現するように、第二の機械学習モデル(例えば、重み行列)を決定し得る。第一の機械学習の訓練と同様に、線形回帰、SVM、又は他の適切な機械学習方法などの機械学習方法を使用して、第二の機械学習モデルにおいて、重み行列を訓練し得る。
【0083】
機械学習モデルを訓練するための技術は、物体を使用して記載されているが、こうした訓練技術はまた、物体のタイプ(例えば、文字の検出)について機械学習モデルを訓練するために適用され得る。本明細書に記載されるいくつかの実施例は、OCR技術と併せて記載されるが、そのような実施例は、例示のみを目的としており、技術はOCR用途に限定されないため、限定することを意図するものではないことが理解されるべきである。
【0084】
本明細書に記載される技術は、物体/文字検出の性能を改善する上で、従来のシステムよりも利点を提供し得る。事前訓練済み深層ニューラルネットワークを特徴抽出器として使用することによって、システムは、物体の位置検出及び分類のために、より高いレベルの意味情報を使用し得る。深層ニューラルネットワークを使用しないシステムと比較して、本明細書に記載されるシステムは、画像ノイズ、物体外観変動、印刷品質の変動、照明及び背景の相違などによって、より堅牢かつより影響を受けにくい。
【0085】
本明細書に記載される技術はまた、フィールド訓練プロセスで訓練され得る、一つ以上の他の機械学習モデルを追加的に使用することによって、物体/文字検出の性能を更に改善する上で、従来のシステムよりも利点を提供し得る。これらの機械学習モデルは、フィールド訓練プロセスで訓練され、フィールドアプリケーションにおいて起こり得る、特定の条件に適合され得る。したがって、システムは、ユーザが、カスタム提供の訓練画像及び/又は更新ラベルを用いてシステムを適合させることを可能にし得る。システムの小さな部分のみを訓練することによって、線形回帰又は他の好適な方法などの単純な機械学習方法を使用して、深層機械学習モデルを訓練するときなどのように、高価な計算リソース又は訓練画像の大きなセットを使用することなく、他の機械学習モデルを効率的に訓練し得る。
【0086】
様々な実施形態が記載されてきたが、当業者には、より多くの実施形態及び実装が可能であることは明らかであろう。したがって、本明細書に記載される実施形態は、唯一の可能な実施形態及び実装例ではなく、実施例である。更に、上述の利点は必ずしも唯一の利点ではなく、また説明された利点の全てが全ての実施形態で達成されることが必ずしも予想される訳ではない。
【0087】
図1は、本明細書に記載される技術のいくつかの実施形態による、物体を検出するためのシステムの図である。
【0088】
いくつかの実施形態では、システム100は、部品104又は検査プラットフォーム103上の任意の構成要素の、ビデオ又は画像を取り込むように構成された、カメラなどの画像取り込み装置112を含み得る。取り込まれたビデオは、フレーム画像のシーケンスを含んでもよく、各画像は、検査プラットフォーム103上に一つ以上の部品104を含み得る。システム100は、少なくともプロセッサ、メモリ、記憶媒体、及び/又は他の構成要素を有する、サーバ110を更に含み得る。少なくとも一つのプロセッサは、メモリに保存されたプログラミング命令を実行して画像を分析し、画像の各々に対して物体検出を実行して、画像内の一つ以上の物体を検出するように、構成され得る。
図6は、本明細書に記載される技術のいくつかの実施形態による、検出可能な文字を印刷した例示的な部品である。
図6では、一つ以上の物体602は、部品604上に印刷されたテキスト文字ラベルを含み得る。当然のことながら、画像内の物体は、テキスト文字ラベルに限定されなくてもよい。
【0089】
図1に戻ると、サーバ110は、検査プロセス中に、一つ以上の部品の取り込まれた画像をリアルタイムで処理するように、構成され得る。非限定的な構成では、部品104は、検査プラットフォーム103上に配置され得る。例えば、検査プラットフォーム103は、検査される複数の部品が配置される、組立ライン又はターンテーブルのコンベヤーベルトであってもよい。検査プラットフォーム103は、部品を移動させるように制御され得る。検査プラットフォーム103が部品(例えば、部品104)を検査のための場所に移動させる度に、システム100が取り込まれた画像を処理して、部品上の一つ以上の物体(例えば、文字)を検出し得るように、検査プラットフォーム103上の部品は、画像取り込み装置112によって取り込まれる。検出が完了すると、検査プラットフォーム103は移動し、次の部品が検査のために位置に移動し、位置に移動したばかりの部品を含む新しい画像が取り込まれ、新しい画像が処理されて、その画像内の一つ以上の物体を検出する。この検査プロセスは、検査される各部品について繰り返される。サーバ110は、検査プロセス中に各部品の取り込まれた画像を処理するように、構成され得る。
図1及び
図6の実施例は、取り込まれた画像当たり一つの部品104のみを示すが、複数の部品が、必要に応じて、複数の部品の各々で物体を検出するために処理され得る、取り込まれた画像に含まれ得ることが理解されるべきである。
【0090】
システム100は、画像内の一つ以上の物体を検出するように、構成され得る。いくつかの実施形態では、一つ以上の物体を検出することは、一つ以上の機械学習モデルを使用して、画像内の一つ以上の物体の位置を決定することを含み得る。例えば、部品の入力画像(例えば、画像取り込み装置112によって取り込まれた画像)について、システム100は、事前訓練済み機械学習モデルを使用して入力画像を処理して、画像の特徴マップを抽出するように構成され得る。事前訓練済み機械モデルは、以前に訓練され保存された、深層機械学習モデルを含み得る。例えば、特徴マップは、画像内の対応する位置で意味情報をコードするベクトルである、複数のサンプルを含み得る。
【0091】
いくつかの実施形態では、システム100は、機械学習モデル(例えば、第一の機械学習モデル)を使用して、特徴マップから物体中心ヒートマップを生成し得る。物体中心ヒートマップは、画像内の対応するピクセルが物体の中心である可能性を示す値を各々有する、複数のサンプルを含み得る。したがって、物体中心ヒートマップでは、物体の中心に近接するサンプルは、物体の中心から遠位にある別のサンプルの値とは異なる値を有してもよく、物体中心ヒートマップ内のサンプル間の値の差を使用して、画像内の物体の中心から遠位にあるサンプルから、物体の中心に近接するサンプルを識別し得る。したがって、サーバ110は、物体中心ヒートマップに基づいて、画像内の物体の中心位置を決定するように、構成され得る。
【0092】
いくつかの実施形態では、一つ以上の物体を検出することは、別の機械学習モデル(例えば、第二の機械学習モデル)、及び事前訓練済み機械学習モデルから取得された特徴マップを使用して、画像内の一つ以上の物体の位置を処理することによって、画像内の一つ以上の物体を認識することを更に含み得る。いくつかの実施例では、画像内の一つ以上の位置する物体の各々について、システム100は、物体の位置を周囲する領域に対応する画像の、特徴マップの一部分を決定し得る。システム100は、特徴マップの一部分を使用して、物体を複数の既知のラベルのラベルに分類し得る。ラベルは、画像内の物体の表現を含み得る。例えば、ラベルは、テキスト文字、又は複数のクラスの一つを表し得る任意の適切な値に対する、ASCII表現であってもよい。複数の既知のラベルは、用途に応じて変化し得る。例えば、部品上のラベルを検出するために、複数の既知のラベルは、文字に制限され得る。その場合、部品の既知のラベルは、数字及び英数字の両方を含んでもよく、既知のラベルは、文字クラスリストに変換され得る。したがって、第二の機械学習モデルは、第二の機械学習モデルが、画像内の一つ以上の物体に対して複数の既知のラベルのクラスを出力するように構成され得るように、訓練され得る。クラスリストの生成は、(
図5Aの)500のような、フィールド訓練プロセスで、更に記載される。
【0093】
いくつかの実施形態では、システム100で上述した、第一の機械学習モデル及び第二の機械学習モデルは、事前訓練済み機械学習モデルが深層機械学習モードである一方で、第一及び第二の機械学習モデルは深層機械学習モデルではないという点で、事前訓練済み機械学習モデルとは異なってもよい。例えば、第一及び第二の機械学習モデルは、各々、高速で訓練できる複数の重みを有する、各々のベクトル又は行列を含み得る。これは、深層機械学習モデル(例えば、事前訓練済み機械学習モデル)を訓練することが、コンピューティングリソースの欠如、及びユーザのサイトでの訓練データの欠如に起因して実行不可能であり得るドメイン内に、システム100を配備するのに特に有用であり得る。代わりに、第一及び第二の機械学習モデルは、アプリケーションに特有の特定の特徴を抽出するために、現場で訓練され得る。例えば、特定の部品におけるラベルを認識する時に、訓練データセットのセットは、第一及び第二の機械学習モデルを訓練するためにユーザによって取得されてもよく、訓練データセットは、その上にラベルを有する部品を含む訓練画像を含む。一つ以上の機械学習モデルを使用して画像内の物体を検出し、機械学習モデルを訓練するための、システム100に実装され得る方法の詳細は、
図2~4、及び5A~5Bを参照して更に説明される。
【0094】
図1を更に参照すると、画像内の一つ以上の物体が検出されると、物体データが、ユーザ機器114に送信され得る。いくつかの実施形態では、物体データは、画像に含まれる部品上の、一つ以上の物体の位置を含み得る。他の実施形態では、物体データは、画像内の一つ以上の物体から認識されるラベル、例えば、部品上のテキスト文字ラベルを含み得る。ユーザ機器114は、サーバ110から取得された物体データを使用して、画像内の部分に関連付けられた様々な動作を実行するように、構成され得る。
【0095】
非限定的な実施例では、画像内の一つ以上の物体は、画像に含まれる部品上に、一つ以上の印刷されたテキスト文字を含み得る。したがって、システム100は、部品上の一つ以上のテキスト文字を認識し、少なくとも一つの認識されたテキスト文字を使用して部品を追跡するように、構成され得る。いくつかの実施形態では、システム100は、バーコードスキャナに実装されてもよく、その画像取り込み装置(例えば、112)は、その上に印刷されたラベルを有する、画像を含む部品を取り込むように構成され得る。システム100は、バーコードの位置を検出し、位置するバーコードをデコードすることによって、取り込まれた画像を処理するように構成され得る。システム100内の構成要素の様々な配置は、特定の用途を可能にするように構成され得る。例えば、ユーザ機器114は、バーコード(例えば、1D、又は2D)スキャナであるように、構成され得る。ユーザ機器114は、画像取り込み装置112(例えば、電話カメラ)を含んでもよく、その上にバーコードを有する、部品の画像を取り込み得る。ユーザ機器は、取り込まれた画像内のバーコード(例えば、1D、又は2Dバーコード)の位置を検出し、バーコードの検出位置に基づいて画像内のバーコードを復号化するための、バーコードスキャナとして構成され得る。様々な他のアプリケーションも、システム100に実装され得る。
【0096】
いくつかの実施形態では、ユーザ機器114には、物体データを表示するための、グラフィカルユーザインターフェースが提供され得る。例えば、物体データは、部品上に認識されたラベルを含んでもよく、ユーザ機器114は、ユーザがラベルが正しく認識されているかどうかを判定し得るように、部品を含む画像と共に認識されたラベルを表示し得る。更に、ユーザ機器114は、ラベルが不正確に認識された場合に、ユーザが修正を実行することを可能にするように構成され得る。
図7は、本明細書に記載される技術のいくつかの実施形態による、訓練/再訓練プロセスにおけるラベルを補正するための、例示的なグラフィカルユーザインターフェースを示す。
図7に示すように、ユーザ機器114(
図1)に実装され得るグラフィカルユーザインターフェース700は、第一の領域702-1内の画像内の物体(例えば、文字)の各々を表示し、対応する認識されたラベルを第二の領域702-2に表示する、部分702を含み得る。示されるように、第一の領域702-1内の文字、及び第二の領域702-2内の認識されたラベルは、ユーザが対応するラベルが正しく認識されているかどうかを判定し得るように整列される。いくつかの実施形態では、ユーザインターフェース700は、ユーザが、誤って認識されたラベルを補正することを可能にし得る。例えば、領域702-2では、認識されたラベルは、ユーザがラベルを修正することを可能にする、編集可能なテキストボックスで表示され得る。
【0097】
いくつかの実施形態では、サーバ110(
図1)から、ユーザ機器(例えば、
図1の114)へ送信される物体データは、認識されたラベルとともに、文字の各々の位置を含み得る。ユーザ機器は、文字の各々について受信した位置情報を使用して、取り込まれた画像から文字をセグメント化し、それらを、
図7の表示領域702-1などの、ユーザインターフェース700に表示し得る。更に、ユーザインターフェース700はまた、文字を含む画像の一部分を表示するように構成された、領域704を含み得る。
【0098】
図1に戻ると、いくつかの実施形態では、ユーザ機器114は、グラフィカルユーザインターフェース700(
図7)を介してユーザによって入力された修正されたラベルなどの、任意のユーザ修正された情報を、サーバ110に送信するように構成され得る。この修正された情報は、システム100で使用される一つ以上の機械学習モデルを訓練するために、サーバ110によって使用され得る。画像内の物体を検出するためにシステム100に実装され得る訓練方法の詳細は、
図4、及び5A~5Bを参照して本開示に更に記載される。
【0099】
図1では、サーバ110及びユーザ機器114は、機械学習モデルを使用して物体検出を実施し、機械学習モデルを訓練するように示されるが、単一のコンピューティングデバイス(例えば、サーバ、又はユーザ機器)は、検出/訓練動作を実行するように構成され得ることが、理解される。他の変形では、本明細書に記載される実施形態はまた、分散システム内の、複数のコンピューティング装置に実装され得る。
【0100】
図2は、本明細書に記載される技術のいくつかの実施形態による、機械学習モデルを使用して物体を検出して、機械学習モデルを訓練するための、システム200の図である。システム200は、システム100(
図1)で実装され得る、一つ以上のブロックを含み得る。いくつかの実施形態では、システム200は、機械学習モデルを使用して画像から物体検出を実行するように構成された、一つ以上のブロックを含み得る。システム200はまた、検出動作で使用される一つ以上の機械学習モデルの訓練を実行するように構成された、一つ以上のブロックを含み得る。
図2に示すように、システム200は、検出モード及びフィールド訓練モードで動作するように、構成され得る。例えば、検出モードでは、システム200は、事前訓練済み機械学習モデル220、及び他の機械学習モデル(例えば、222、226)を使用して、一つ以上の検出動作を実行し得る。更に、フィールド訓練モードでは、システム200は、一つ以上のフィールド訓練プロセスにおいて、他の機械学習モデル(例えば、222、226)を訓練するように、構成され得る。
【0101】
事前訓練済み機械学習モデルは、機械学習モデルが現場(例えば、顧客アプリケーション内)で配備及び使用される前に、一度に訓練される機械学習モデルであり得る。事前訓練済み機械学習モデルは、機械学習モデルがフィールドアプリケーションにおいて配備される場所とは異なる現場で、訓練され得る。いくつかの実施形態では、一旦配備されると、事前訓練済み機械学習モデルは修正されない場合がある。いくつかの実施形態では、いくつかのタイプの機械学習モデル(例えば、222、226)は、フィールド訓練プロセスで訓練され得る。これらの機械学習モデルは、事前訓練済み機械学習モデルが訓練される場所とは異なる現場で、事前訓練済み機械学習モデルが訓練される後の時点で、及び/又は事前訓練済み機械学習モデルが訓練される段階とは異なる段階で、訓練され得る。非限定的な実施例では、事前訓練済み機械学習モデル(例えば、220)は、システム200が配備される前に、開発/設計段階で訓練され得る。他の機械学習モデル(例えば、222、226)は、システム200が配備されている間に、配備段階で訓練され得る。例えば、配備段階は、前述のように、機械学習モデルがフィールド訓練プロセスで訓練され得る、フィールド訓練モードを含み得る。
【0102】
事前訓練済み機械学習モデル220は、深層機械学習モデルであってもよく、システム200が配備される場所とは異なる現場又は場所で、訓練され得る。配備システム200では、事前訓練済み機械学習モデル220は、ユーザによって慣習的に訓練され得る、他の機械学習モデル(例えば、222、226)と組合わせて使用され得る。例えば、ユーザは、アプリケーション固有の訓練データを収集し、訓練システム212を使用して、他の機械学習モデル(例えば、222、226)を訓練し得る。ここで、システム200について、更に詳細に記載する。
【0103】
本明細書に記載される技術のいくつかの実施形態では、システム200は、画像を処理し、事前訓練済み機械学習モデル220を使用して画像の特徴マップを生成するように構成された、特徴抽出器202を含み得る。特徴抽出器への入力としての画像は、システム100に取り込まれた(例えば、
図1の画像取り込み装置112を介して)画像を含み得る。事前訓練済み機械学習モデルは、入力画像を処理し、画像の特徴マップを出力するように訓練される、深層機械学習モデルであってもよい。いくつかの実施例では、事前訓練済み機械学習モデルは、一つ以上の物体、例えば、テキスト文字を含むラベルを含む、複数の画像を含む訓練データセットから訓練され得る。他の機械学習モデル(例えば、222、226)は、
図6に示される画像などの、特定のドメイン内のアプリケーションから取り込まれた画像を含む、カスタムデータセットなどの、異なる訓練データセットを使用して訓練され得る。
【0104】
いくつかの実施形態では、特徴マップは、事前訓練済み機械学習モデルの出力として、画像内の各々の位置で意味情報をコードする、複数の値を有するベクトル(特徴ベクトル)を各々含む、複数のサンプルを含み得る。例えば、特徴マップは、形状h×w×Dのテンソルを有してもよく、式中、hは、特徴マップの高さであり、wは、特徴マップの幅であり、Dは、特徴マップのチャネルの数である。事前訓練済み機械学習モデル220は、後続の処理のために、画像のいくつかの特徴をコードするように構成され得る。いくつかの実施例では、事前訓練済み機械学習ネットワークは、特徴ピラミッドネットワーク、並びにアップサンプリング及び連結ネットワークを含み得る。特徴ピラミッドネットワークは、画像を入力として取り込み、例えば、異なるスケールで独立して生成される一つ以上の特徴マップを出力する、ニューラルネットワークであってもよい。非限定的な例では、特徴ピラミッドネットワークは、異なるサイズの複数の特徴マップ、例えば、h1×w1×D1、h2×w2×D2、及びh3×w3×D3を生成し得る。特徴ピラミッドネットワークの様々な実装が、利用可能であり得る。例えば、Lin et al., “Feature Pyramid Networks for Object Detection,” December, 2016(arxiv.org/abs/1612.03144)に記載される特徴ピラミドネットワークを使用してもよく、その全体が参照により本明細書に組み込まれる。
【0105】
いくつかの実施形態では、事前訓練済み機械学習ネットワーク内の、アップサンプリング及び連結ネットワークは、各特徴マップを取り、共通サイズh×wに(例えば、二直線補間を使用して)アップサンプリングするように、構成され得る。このように、複数の特徴マップは、各々、h×w×D1、h×w×D2、及びh×w×D3のサイズの特徴マップに変換され得る。これらの特徴マップは、サイズh×w×Dの出力特徴マップを生成するために連結され得る。いくつかの実施例では、出力特徴マップ内のチャネルDの数は、値D=D1+D2+D3を有し得る。非限定的な実施例では、特徴マップは、画像のサイズとは異なるサイズを有し得る。例えば、h及びwは、各々H/8及びW/8の値、又はH及びWが画像のサイズである他の適切な値を取り得る。画像の幅及び高さは、等しくなくてもよく、特徴マップの幅及び高さでなくてもよい。例えば、hは、16の値を有し得、wは、24の値を有し得る。任意の他の適切な値が、h及びwに対して可能であり得る。非限定的な例では、チャネルDの数は、128の値、又は他の適切な値を有し得る。事前訓練済み機械学習ネットワークが深層CNNである場合、CNNは、CNN内のいくつかの層を選択し、それらのアクティベーションを出力として使用することによって、特徴ピラミッドネットワークを含むように構成され得る。こうした事前訓練済み機械学習ネットワークは、再訓練される必要なく、様々なドメインのアプリケーションに配備され得る。
【0106】
図2を更に参照すると、システム200は、第一の機械学習モデル(例えば、
図2の222)を使用して画像の特徴マップを処理することによって、物体中心ヒートマップを生成するように構成された、物体中心ヒートマップ生成器204を含み得る。物体中心ヒートマップは、画像内の対応するサンプルが物体の中心である可能性を示す値を各々有する、複数のサンプルを含み得る。非限定的な実施例では、第一の機械学習モデル(例えば、
図2の222)は、重みベクトルを含み得る。重みベクトルは、Kの寸法値を有してもよく、すなわち、重みベクトルは、K値を有してもよく、ここで、Kは、画像内の一つ以上の物体に対する既知のラベルの数である。いくつかの実施例では、重みベクトルの各値は、浮動小数点数であってもよい。当然のことながら、重みベクトルの値は、整数であってもよい。いくつかの実施形態では、物体中心ヒートマップ内の各サンプルの値は、特徴マップ内の対応するサンプルの特徴ベクトル、及び重みベクトルのドット積であってもよい。
【0107】
引き続き
図2を参照すると、システム200は、画像内の一つ以上の物体の位置を決定するように構成された、物体ローカライザ206を更に含み得る。いくつかの実施形態では、画像内の物体の中心付近のサンプルは、画像内の他の領域のサンプルよりも高い、物体中心ヒートマップ(物体中心ヒートマップ生成器204によって提供される)の値を有し得る。このように、物体ローカライザ206は、物体中心ヒートマップの対応するサンプルの値に基づいて、画像内の一つ以上の物体の位置を決定し得る。例えば、画像内の位置のリストは、物体中心ヒートマップ内の対応するサンプルの値が閾値を下回る位置を、フィルタリングして除去することによって、物体中心として選択され得る。
【0108】
いくつかの実施形態では、物体ローカライザ206は、物体中心ヒートマップ上で平滑化動作を実行して、平滑化された物体中心ヒートマップを生成し、平滑化された物体中心ヒートマップを使用して、一つ以上の物体の位置を選択し得る。非限定的な実施例では、ガウスフィルタ、例えば、異方性ガウスフィルタは、平滑化動作に使用され得る。いくつかの実施形態では、ガウスフィルタのサイズは、画像内の物体のサイズに基づいて決定され得る。例えば、文字ラベルを検出するために、ガウスフィルタのサイズ(例えば、幅、及び高さ)は、システム200に訓練及び保存され得る、物体サイズ224に基づいて決定され得る。
【0109】
いくつかの実施形態では、システム200は、第二の機械学習モデル(例えば、
図2の226)及び特徴マップを使用して、画像内の一つ以上の物体の位置(物体ローカライザ206によって決定される)を処理することによって、画像内の一つ以上の物体を認識するように構成された、物体認識器208を含んでもよく、第二の機械学習モデル226は、重み行列を含み得る。物体を認識する際に、物体認識器208は、一つ以上の物体の位置のリストから各位置で、画像の特徴マップの一部分を使用して物体特徴ベクトルを生成してもよく、特徴マップの一部分は、各々の物体の位置を周囲する領域に基づく。物体認識器208は、第二の機械学習モデル226を使用して物体特徴ベクトルを処理して、クラスベクトルを生成してもよく、クラスベクトルは、複数の既知のラベルの一つに各々対応する複数の値を含む。したがって、物体認識器208は、クラスベクトルを使用して、物体を複数の既知のラベルのラベルに分類し得る。
【0110】
図2を更に参照すると、システム200は、第一の機械学習モデル222及び第二の機械学習モデル226などの、検出プロセスで使用される様々な機械学習モデルを訓練するように構成された、訓練システム212を含み得る。第一及び第二の機械学習モデル222、226は、各々、非深層機械学習モデルであってもよく、フィールド訓練プロセスにおいて、訓練システムで効率的に訓練され得る。システム200は、ユーザが、物体中心ヒートマップ生成器204又は物体認識器208からの検出結果を修正することを可能にする、ユーザインターフェースツールを提供するように構成され得る、グラフィカルユーザインターフェース210を更に含み得る。ユーザインターフェース210で受信されたユーザ修正は、訓練システム212に提供され得る。第一及び第二の機械学習モデルを訓練する方法は、
図5A及び5Bを参照して、詳細に記載される。
【0111】
図3は、本明細書に記載される技術のいくつかの実施形態による、物体を検出するための、例示的なコンピュータ化された方法300を示すフローチャートである。方法300は、例えば、システム100(
図1)、又は200(
図2)に実装され得る。本明細書に記載されるいくつかの技術では、方法300は、画像を取得するために動作302から開始し得る。画像は、システムに取り込まれた画像(例えば、
図1のシステム100の画像取り込み装置112を介して)を含む。方法300は、動作304に進み、事前訓練済み機械学習モデルを使用して、画像の特徴マップを決定し得る。動作304は、特徴抽出器、例えば、202(
図2)で実行され得る。非限定的な実施例では、特徴抽出器は、サイズ(例えば、高さ、重量、チャネル)を有する入力層を有する、事前訓練済み機械学習モデル、例えば、深層CNN、を使用し得る。例えば、事前訓練済み機械学習モデルへの入力としての入力画像は、H×W×Cのサイズを有してもよく、式中、Hは、画像の高さであり、Wは、画像の幅であり、Cは、画像のチャネルの数である。当然のことながら、チャネルの数は、任意の適切な数であってもよい。例えば、Cは、RGBカラー画像において3の値を有し得、一方、Cは、グレースケール画像において1の値を有し得る。
【0112】
いくつかの実施形態では、特徴マップは、事前訓練済み機械学習モデルの出力として、形状h×w×Dのテンソルを有してもよく、式中、hは、特徴マップの高さであり、wは、特徴マップの幅であり、Dは、特徴マップのチャネルの数である。言い換えれば、特徴マップのh×wグリッドの各サンプルは、各々のベクトル(特徴ベクトル)と関連付けられてもよい。事前訓練済み機械学習モデルの例は、事前訓練済み機械学習モデル220を参照して、
図2に前述されている。上述のように、特徴マップは、画像内の各々の位置で意味情報をコードするベクトルを各々含む、複数のサンプルを含み得る。
【0113】
図3を更に参照すると、方法300は、動作306で物体中心ヒートマップを生成することを含み得る。いくつかの実施例では、動作306は、物体中心ヒートマップ生成器(例えば、
図2の204)で実行され得る。動作306は、第一の機械学習モデル(例えば、
図2の222)を使用して画像の特徴マップを処理して、画像に対する物体中心ヒートマップを生成してもよく、第一の機械学習モデルは、フィールド訓練プロセスで訓練され得る。物体中心ヒートマップは、物体の中心である画像内の対応するサンプルの可能性を示す値を各々有する、複数のサンプルを含み得る。物体中心ヒートマップのサイズは、特徴マップのサイズ、例えば、h×wと同一であってもよい。物体中心ヒートマップ内のサンプルについて、画像内の対応するサンプルは、グリッドH×W内のピクセルであってもよい。上述の例では、物体中心ヒートマップ内のサンプル(x,y)について、h=H/8、w=W/8であり、画像内の対応するサンプルは、位置(x*8,y*8)のピクセルである。いくつかの実施例では、画像がテキスト文字を含む場合、物体中心ヒートマップ内の各サンプルの値は、画像内の対応するサンプルが文字の中心である可能性を示し得る。
【0114】
非限定的な実施例では、第一の機械学習モデル(例えば、
図2の222)は、重みベクトルを含み得る。上述の実施例では、特徴マップは、画像内の画素アレイに対応するアレイに配置された、h×wサンプルを有してもよく、各サンプルは、D次元ベクトルによって表される。物体中心ヒートマップはまた、物体中心ヒートマップ内のサンプルが、画像内のピクセルに対応し得る特徴マップ内のサンプルに一対一で対応し得るように、特徴マップ内のサンプルが配置されるのと同様の様式で配置される、複数のサンプルを含み得る。いくつかの実施形態では、物体中心ヒートマップ内の各サンプルの値は、特徴マップ内の対応するサンプルの特徴ベクトル、及び重みベクトルのドット積であってもよい。
【0115】
いくつかの実施形態では、重みベクトルは、Kの寸法値を有してもよく、すなわち、重みベクトルは、K値を有してもよく、ここで、Kは、画像内の一つ以上の物体に対する既知のラベルの数である。重みベクトルは、物体中心ヒートマップ内の値が、画像内の対応するサンプルが物体の中心である可能性を示し得るように、訓練され得る。いくつかの実施例では、重みベクトルの各値は、浮動小数点数であってもよい。当然のことながら、重みベクトルの値は、整数であってもよい。重みベクトルを訓練するための訓練プロセスは、
図5Aを参照して、更に詳細に記載される。
【0116】
引き続き
図3を参照すると、方法300は、動作308で一つ以上の物体の位置を決定することを更に含み得る。いくつかの実施形態では、動作308は、システム200の物体ローカライザ(例えば、
図2の206)で実行され得る。前述したように、画像内の物体の中心付近のサンプルは、画像内の他の領域のサンプルよりも高い値を、物体中心ヒートマップ内に有し得る。このように、動作308は、物体中心ヒートマップの対応するサンプルの値に基づいて、画像内の一つ以上の物体の位置を決定し得る。例えば、画像内の位置のリストは、物体中心ヒートマップ内の対応するサンプルの値が閾値を下回る位置を、フィルタリングして除去することによって、物体中心として選択され得る。
【0117】
いくつかの実施形態では、動作308は、物体中心ヒートマップ上で平滑化動作を実行して、平滑化された物体中心ヒートマップを生成し、平滑化された物体中心ヒートマップを使用して、一つ以上の物体の位置を選択し得る。いくつかの実施例では、動作308は、ガウスフィルタなどの平滑化フィルタを使用して、平滑化動作を実行し得る。ガウスフィルタは、異方性であってもよい。ガウスフィルタのサイズは、画像内の物体のサイズに基づいて決定され得る。例えば、文字ラベルを検出するために、ガウスフィルタのサイズ(例えば、幅、及び高さ)は、文字サイズに基づいて決定され得る。いくつかの実施例では、物体サイズは、その後の使用のために、訓練され、保存され得る(例えば、
図2の224で)。上述のように、動作308で取得された結果として得られる位置のリストは、画像内の物体の予測中心を含み得る。いくつかの実施例では、物体中心ヒートマップ内のサンプルの対応する位置が、画像のグリッド上にない場合(例えば、H×W)、補間を使用して、グリッド上の位置を決定し得る。
【0118】
いくつかの実施形態では、方法300は、任意選択的に、動作310で画像内の一つ以上の物体を認識することを含み得る。動作310は、いくつかの実施形態では、物体認識器(例えば、
図2の208)で実行され得る。動作310は、第二の機械学習モデル(例えば、
図2の226)及び特徴マップを使用して、画像内の一つ以上の物体の位置を処理して、一つ以上の物体を認識し得る。第二の機械学習モデルはまた、フィールド訓練プロセス中に訓練され得る。物体を認識する時に、動作310は、一つ以上の物体の位置のリストから各位置で、画像の特徴マップの一部分を使用して、物体特徴ベクトルを生成してもよく、特徴マップの一部分は、各々の物体の位置を周囲する領域に基づく。動作310は、第二の機械学習モデルを使用して物体特徴ベクトルを処理して、クラスベクトルを生成してもよく、クラスベクトルは、複数の既知のラベルの一つに各々対応する複数の値を含む。したがって、動作310は、クラスベクトルを使用して、物体を複数の既知のラベルのラベルに分類し得る。
【0119】
いくつかの実施形態では、動作310は、アライメント方法を使用して、特徴マップの一部分から特徴テンソルを抽出し得る。例えば、動作310は、動作308で取得された位置(一つ以上の物体の予測位置)のリストの各々の周囲に、領域を画定し得る。位置の周囲の領域のサイズは、予め保存された物体サイズ(例えば、
図2の物体サイズ224)と等しくてもよい。いくつかの実施形態では、各物体の面積は、境界ボックスで表され得る。システムは、アライメント方法を使用して、境界ボックスを使用して、画像の特徴マップの一部分から特徴テンソルを抽出し得る。例えば、システムは、境界ボックス内の位置の各々で特徴マップをサンプリングすることによって、特徴テンソルを抽出し得る。RoIAlign法などの使用され得るアラインメント方法の例は、He et al., “Mask R-CNN”(arxiv.org/abs/1703.06870)に記載されており、その全体が参照により本明細書に組み込まれる。非限定的な例では、RoIAlignなどの上述のアライメント方法は、特徴マップの一部分から特徴テンソルを抽出し得る。例えば、抽出された特徴テンソルは、3×3×Dのサイズを有するテンソルであってもよく、式中、Dは、特徴マップ内のチャネルの数である。4×4、5×5、8×8、又は任意の他の適切なサイズなどの、他のサイズも可能であり得る。
【0120】
したがって、動作310は、抽出された特徴テンソルを一次元ベクトルに変換することによって、各物体に対する物体特徴ベクトルを決定し得る。上述の実施例では、特徴テンソルがサイズ3×3×Dである場合、動作310は、アライメント方法(例えば、上述のRoIAlign法)から得られた個々のベクトルを、一次元に配置される特徴マップの一部分の値の全てを有する一次元ベクトルに連結することによって、物体特徴ベクトルを決定し得る。この場合、物体特徴ベクトルは、f×D値を有し、式中、f=9であり、Dは、特徴マップ内のチャネルの数である。
【0121】
いくつかの実施形態では、画像内の文字を認識するために使用される複数の既知のラベルは、ラベル内に現れ得る文字を含み得る。例えば、英語ラベルの場合、既知のラベルの数は、英語の大文字「A」から「Z」の場合、26であってもよい。第二の機械学習モデル(例えば、
図2の226)は、重み行列を含み得る。例えば、重み行列のサイズは、K×(f*D)であってもよく、式中、Dは、特徴マップのチャネルの数であり、Kは、既知のラベルの数(例えば、英語大文字の場合は26)であり、fは、特徴ベクトルプーリングの特定の方法による指数である。上述の例では、f=3×3=9である。
【0122】
いくつかの実施形態では、システムは、(形状K×(f*D)の)重み行列に(サイズf*Dの)物体特徴ベクトルを乗算することによって、各物体に対するクラススコアベクトルを決定してもよく、その結果、クラススコアベクトルは、Kのサイズを有し、式中、Kは、既知のラベルの数である。したがって、クラススコアベクトルの各値は、既知のラベルなどの複数の既知のクラスの一つについての予測スコアに対応する。いくつかの実施例では、システムは、クラスベクトル内の複数の値の中から最大値を選択してもよく、選択された値は、認識されるラベルに対応する。上述の実施例では、物体検出のための既知のラベルは、複数のテキスト文字を含み得る。いくつかの実施形態では、既知のラベルはまた、バックグラウンドラベルと称され得る、非テキストのクラスを含み得る。いくつかの実施形態では、重み行列は、物体クラスベクトルの結果値が、対応する既知のラベルである物体の可能性を示し得るように、訓練され得る。重み行列を訓練するための訓練プロセスは、
図5Aを参照して、更に記載される。
【0123】
動作310は、動作308から決定される位置のリスト内の位置の各々に対して繰り返されてもよく、リスト内の各位置は、潜在的な物体(又は上述の例における文字)に対応し得る。動作310が完了すると、システムは、動作308から取得された各々の位置で予測文字のリストを出力してもよく、予測文字は、バックグラウンドラベル(例えば、非テキスト)を含む既知のラベルの一つであり得る。このような場合、予測される文字がバックグラウンドラベルである場合、認識される物体が、非テキスト又は未知のラベルであることを意味する。
【0124】
方法300を参照して上述したように、第一の機械学習モデルは、重みベクトルを含み得、第二の機械学習モデルは、重み行列を含み得る。これらの機械学習モデルは、線形回帰法、サポートベクターマシン(SVM)、勾配ブート決定木、又は他の適切な方法などの、各々の機械学習方法によって訓練され得る。第一及び第二の機械学習モデルは深層機械学習モデルではないため、訓練は高速であり、それらをシステムの配備におけるフィールド訓練に好適なものとすることができる。第一及び第二の機械学習モデルを訓練するための訓練プロセスは、
図5A及び5Bを参照して、更に記載される。
【0125】
図4は、本明細書に記載される技術のいくつかの実施形態による、機械学習モデルを使用して文字を検出し、機械学習モデルを訓練するための、例示的なプロセス400のフローチャートである。いくつかの実施例では、方法400は、システム100(
図1の)、又はシステム200(
図2の)で実行され得る。方法400は、方法400が、画像内の一つ以上の文字を認識するように提供されることを除いて、方法300(
図3の)と類似し得る。本明細書に記載される様々な実施形態では、方法400は、動作402で画像を取得することを含み得る。動作302と同様に、画像は、画像取り込み装置112など、システム100(
図1)から取り込まれた画像を含み得る。方法400は、動作404で画像の特徴マップを生成するために、事前訓練済み機械学習モデルを使用して、画像を処理することに進み得る。いくつかの実施例では、動作404は、特徴抽出器(例えば、
図2の202)で実行され得る。動作304と同様に、事前訓練済み機械学習モデルは、深層機械学習モデル(例えば、
図2の220)であり得る。深層機械学習モデルの実施例は、複数の層を有するCNNを含み得る。
図3を参照して記載されるように、事前訓練済み機械学習モデルの構成も、方法400で使用され得る。動作404から取得された特徴マップは、各々が、対応する位置で画像に関する意味情報をコードする複数の値を有するベクトルを含む、複数のサンプルを含み得る。
【0126】
図4を更に参照すると、方法400は、動作406で文字中心ヒートマップを生成することを含み得る。いくつかの実施例では、動作406は、物体中心ヒートマップ生成器(
図2の204)で実行され得る。動作406は、第一の機械学習モデル(例えば、
図2の222)を使用して画像の特徴マップを処理して、画像に対する文字中心ヒートマップを生成し得る。文字中心ヒートマップは、画像内の対応するサンプルが文字の中心である可能性を示す値を各々有する、複数のサンプルを含み得る。いくつかの実施例では、画像がテキスト文字を含む場合、文字中心ヒートマップ内の各サンプルの値は、画像内の対応するサンプルがテキスト文字の中心である可能性を示し得る。方法300と同様に、文字中心ヒートマップのh×wグリッド内のサンプルは、画像のH×Wグリッド内のピクセルに対応し得る。
【0127】
上述のように、文字中心ヒートマップは、画像内の文字の対応する位置各々に対して、「文字中心性」スコアを表し得る。例えば、文字中心ヒートマップ内のサンプルの値は、画像内の文字の中心付近の位置で高くてもよく、文字の中心から遠位の位置で、又は文字を有さない画像の領域で低くてもよい。これは、更に説明され得る、画像内の個々の文字の位置決めを容易にする。引き続き
図4を参照すると、方法400は、動作408で一つ以上の文字の位置を決定することを、更に含み得る。いくつかの実施形態では、動作408は、システム200の物体ローカライザ(例えば、
図2の206)で実行され得る。前述したように、画像内の文字の中心付近のサンプルは、画像内の他の領域のサンプルの値よりも高い値を、文字中心ヒートマップ内に有し得る。このように、動作408は、文字中心ヒートマップの対応するサンプルの値に基づいて、画像内の一つ以上の文字の位置を決定し得る。例えば、文字中心ヒートマップ内の対応するサンプルの値が閾値を下回る位置を、フィルタリングして除去することによって、画像内の位置のリストを、文字中心として選択し得る。
【0128】
いくつかの実施形態では、動作408は、動作308と同様の様式で、文字中心ヒートマップ上で、平滑化動作を実行することを含み得る。例えば、動作408は、平滑化フィルタを文字中心ヒートマップに適用し、平滑化された文字中心ヒートマップを使用して、一つ以上の文字の位置を選択することによって、平滑化された文字中心ヒートマップを生成し得る。平滑化フィルタは、ガウスフィルタ、例えば、異方性ガウスフィルタであってもよい。ガウスフィルタのサイズは、訓練され得る、文字のサイズ、例えば、事前に保存された文字サイズ(例えば、
図2の224)に基づいて決定され得る。動作408で取得された結果として得られる位置のリストは、画像内の文字の予測中心を含み得る。文字サイズは、任意の適切なサイズであってもよい。例えば、文字サイズは、元の入力画像(動作402から取得される)では、60ピクセル×40ピクセルであってもよい。一例として、特徴マップサイズが画像サイズに関連する場合(例えば、h=H/8、及びw=W/8)、特徴ベクトルサンプルの単位で、文字サイズは、60/8×40/8となる。次に、ガウスフィルタのサイズは、文字サイズの固定倍数として決定される。
【0129】
いくつかの実施形態では、方法400は、動作410で画像内の一つ以上の文字を認識することを含み得る。動作410は、いくつかの実施形態では、物体認識器(
図2の208)で実行されてもよく、動作310に記載されるのと同様の様式で実行され得る。例えば、動作410は、第二の機械学習モデル(例えば、
図2の226)、及び特徴マップを使用して、画像内の一つ以上の文字の位置を処理して、文字クラスリスト(例えば、
図2の物体クラスリスト228)に保存された既知のラベルから、一つ以上の文字を認識してもよい。方法300の第二の機械学習モデルと同様に、第二の機械学習モデルも、フィールド訓練プロセス中に訓練され得る。
【0130】
動作310と同様に、動作410の出力は、動作408から取得された各々の位置に、予測文字のリストを含んでもよく、予測文字は、既知のラベルの一つであり得る。いくつかの実施形態では、既知のラベルはまた、バックグラウンドラベル(例えば、非テキスト)を含み得る。方法300と同様に、方法400で使用される第一の機械学習モデルは、重みベクトルを含み得、方法400で使用される第二の機械学習モデルは、重み行列を含み得る。理解され得るように、動作406、408で使用される、第一及び第二の機械学習モデルは、各々深層機械学習モデルではなく、したがって、フィールド訓練プロセスで効率的に訓練され得る。例えば、これらの機械学習モデルは、線形回帰法、サポートベクターマシン(SVM)、勾配ブート決定木法、又は他の好適な方法などの、各々の機械学習方法によって訓練され得る。第一及び第二の機械学習モデルを訓練するための訓練プロセスは、
図5A及び5Bを参照して、更に記載される。
【0131】
図4を更に参照すると、方法400は、ユーザインターフェースを介して、412でユーザ修正を受信することを更に含み得る。ユーザインターフェースは、GUI(例えば、
図2の210)又はシステム100の任意のデバイス(例えば、
図1の、サーバ110、又はユーザ機器114)に実装され得る。いくつかの実施例では、システムは、
図7に示す実施例など(部分702を参照)、ユーザインターフェースに、動作410からの認識結果を表示し得る。システムは、ユーザインターフェースを介して、ユーザ修正を受信し得る。ユーザ修正は、更新された(例えば、補正された)ラベル、又は新しいラベルを含み得る。したがって、画像内の文字と既知のラベルの一つとの間の、新しい一対一のマッピングを含む、新しい訓練データが生成され得る。いくつかの実施例では、画像内の文字について、ユーザは、既知のラベルに存在しなかった新しいラベルを提供し得る。このような場合、画像内の文字と新しいラベルとの間の、新しい一対一のマッピングを含む、新しい訓練データが生成され得る。新しいラベルはまた、文字クラスリスト、例えば、
図2の物体クラスリスト228に保存され得る。いくつかの実施例では、文字サイズは、新しい訓練データに基づいて更新され得る。例えば、文字サイズは、訓練画像内の全ての文字の文字サイズの平均であってもよい。新しい訓練画像が生成されると、文字サイズが更新され、例えば、
図2の224などの、文字サイズデータベースに保存される。新しい訓練データは、その後、新しいラベルについて、第一及び第二の機械学習モデル(例えば、
図2の222、226)を訓練するために使用され得る。いくつかの実施形態では、方法400は、新しい訓練ラベルを使用して、動作416で第一の機械学習モデルを再訓練するか、又は動作418で第二の機械学習モデルを再訓練し得る。第一及び第二の機械学習モデルを訓練するための訓練プロセスを、
図5A及び5Bに更に記載する。
【0132】
本開示に記載される様々な実施形態で機械学習モデルを訓練するための訓練方法、例えば、システム100(
図1)、システム200(
図2)、訓練システム(
図2の212)、第一の機械学習モデル(
図4の416)又は第二の機械学習モデル(
図4の418)を再訓練する方法が、本明細書に更に記載される。これらの方法は、フィールド訓練プロセスで実行され得る。
【0133】
いくつかの実施例では、フィールド訓練プロセスでは、ユーザは、訓練画像及び対応する訓練ラベルを含む訓練データを、提供又は補足してもよく、訓練画像は各々、既知の物体を含み得る。訓練ラベルは、訓練画像の各々のグラウンドトゥルースデータを含んでもよく、グラウンドトゥルースデータは、例えば、画像内に現れる物体のラベル、画像内に現れる各物体の位置、及び物体のサイズを含み得る。いくつかの実施例では、これらの情報は、
図7に示すユーザインターフェース700などの、ユーザインターフェースを介して、ユーザによって提供され得る。
【0134】
訓練データを提供し、機械学習モデルをフィールド訓練プロセスで訓練する方法は、文字ラベルの実施例で更に記載される。非限定的な実施例では、訓練システムは、訓練画像の各々を表示領域(例えば、704)内に表示し、画像内に現れる文字の各々に対する位置(例えば、アノテーション)のユーザ選択を受信するように構成された、ユーザインターフェース(例えば、
図7の700)を含み得る。ユーザインターフェースは、画像内の各文字が認識されるべきことを示すために、文字位置及びラベル対応を含み得る、ユーザ入力を更に受信し得る。いくつかの実施例では、フィールド訓練データは、バッチプロセスで生成され得る。他の実施例では、フィールド訓練データは、ユーザが認識動作(例えば、
図3の300、又は
図4の400)を実行している間に、漸進的に更新されてもよく、そのプロセスでは、ユーザは、画像内に誤って認識された文字に対する補正を入力し得る。
【0135】
図5Aは、本明細書に記載される技術のいくつかの実施形態による、機械学習モデルを訓練するための、例示的なプロセス500のフローチャートである。いくつかの実施形態では、方法500は、文字の検出に使用される第一の機械学習モデル(例えば、
図2の222)を訓練してもよく、システム100(
図1)、訓練システム(例えば、
図2の212)などのシステム200(
図2)、又は第一の機械学習モデルを再訓練する動作(例えば、
図4の416)に実装され得る。方法500は、動作502で複数の訓練画像を取得することと、動作504で訓練画像の文字に対応する訓練ラベルを取得すること、とを含み得る。一例として、画像内の文字を検出するためのシステムでは、訓練ラベルは、各々が、画像内に文字が表示される位置を示すために、複数の訓練画像の対応する一つの中の文字と関連付けられる、グラウンドトゥルース文字位置のリストを含み得る。
【0136】
方法500は、動作506で、複数の訓練画像及び事前訓練済み機械学習モデルの一つを使用して、複数の訓練特徴マップを各々決定することを更に含み得る。例えば、訓練特徴マップは、対応する訓練画像及び事前訓練済み機械学習モデル(例えば、
図2の220)を使用することによって、決定され得る。この動作は、動作404(
図4)、304(
図3)に記載される検出プロセス、又は特徴抽出器202で実行される方法と、同様の様式で実行され得る。
【0137】
方法500は更に、動作508でグラウンドトゥルース文字中心ヒートマップを決定することと、動作510で訓練特徴マップ及びグラウンドトゥルース文字中心ヒートマップを使用して、第一の機械学習モデルの重みを決定すること、とを含み得る。グラウンドトゥルース文字中心ヒートマップ内のサンプルの個々の値は、グラウンドトゥルース文字中心性値と呼んでもよい。グラウンドトゥルース文字中心ヒートマップは、訓練ラベル内の最も近いグラウンドトゥルース文字位置までの距離に基づいて、生成され得る。例えば、グラウンドトゥルース文字中心ヒートマップは、訓練ラベルのグラウンドトゥルース文字位置の中心に近い位置で高い値を有し、訓練ラベルのグラウンドトゥルース文字位置から遠く離れた位置で低い値を有する、サンプルを含む。例示的な実施では、グラウンドトゥルース文字中心ヒートマップ値は、訓練ラベル内の最も近いグラウンドトゥルース文字位置までの距離に適用される、ガウス関数として計算され得る。ガウス関数の標準偏差又は幅は、いくつかの実施例では、グラウンドトゥルース文字サイズの固定倍数として計算され得る。
【0138】
いくつかの実施形態では、訓練ラベル内の複数のグラウンドトゥルース文字が互いに比較的近い場合、グラウンドトゥルース文字中心ヒートマップ値は、代わりに、二つの最も近いグラウンドトゥルース文字位置までの距離に適用される、二つのガウス関数間の差として計算され得る。いくつかの実施例では、グラウンドトゥルース文字中心ヒートマップは、訓練特徴マップと同一のサイズを有し得る。ガウス関数を使用して文字中心度値を生成するための、様々な方法が使用され得る。例えば、使用され得る方法は、Baek et al., “Character Region Awareness for Text Detection,” 3 Apr 2019, arxiv.org/abs/1904.01941に記載されており、その全体が参照により本明細書に組み込まれる。
【0139】
いくつかの実施形態では、訓練画像内の各文字について、動作510は、対応する訓練画像の特徴マップの一部分を使用して、対応する文字特徴ベクトルを更に決定し得る。例えば、方法500は、文字が位置する、対応する訓練画像に関連付けられた訓練ラベルの、グラウンドトゥルース文字位置から文字の位置を取得し、文字の位置に基づいて、対応する訓練画像の特徴マップの一部分を使用して、文字特徴ベクトルを決定し得る。特徴マップの一部分を決定する動作は、認識器208(
図2)、動作310(
図3)、又は動作410(
図4)で実行される方法など、検出プロセスで記載される方法と類似であり得る。例えば、文字特徴ベクトルは、グラウンドトゥルース文字位置、文字サイズ(例えば、
図2の224に保存される)、及び動作506から得られた訓練画像から決定される特徴マップに基づいて、決定され得る。
【0140】
画像内の文字の各々に対応する特徴マップの部分を決定するための方法は、(各々、
図3、
図4の)動作310、410などの、検出プロセスで記載されたものと同様の様式で実施される。いくつかの実施例では、特徴マップの一部分は、対応する訓練画像内の訓練ラベルの位置を中心とする、境界ボックスによって表され得る。各位置する文字に対する対応する文字特徴ベクトルは、特徴マップの一部分の各々の位置に基づいて各々形成される、複数のサブ特徴ベクトルを連結することによって決定され得る。
【0141】
上述の実施形態によれば、訓練画像の全てについて、システムは、N文字特徴ベクトル、及びNグラウンドトゥルース文字中心ヒートマップ値の合計(特徴中心度値)を決定し、式中、Nは、訓練特徴マップ内のグリッドセルの総数(例えば、全ての訓練画像にわたるh×wの合計、式中、h、wは、各訓練特徴マップのサイズである)である。いくつかの実施形態では、第一の機械学習モデル(例えば、
図2の222)は、重みベクトルの値を含み得る。訓練の目的は、重みベクトルwtと各グラウンドトゥルース文字特徴ベクトルvとのドット積が、対応するグラウンドトゥルース文字中心ヒートマップ値cに可能な限り近くなるように(wt・v≒c)、重みベクトルwtを見つけることである。いくつかの実施形態では、重みベクトル内の重みを見つけることは、線形回帰、SVM、又は他の適切な機械学習方法などの、任意の適切な機械学習方法を使用し得る。
【0142】
図5Bは、本明細書に記載される技術のいくつかの実施形態による、別の機械学習モデルを訓練するための、例示的プロセスのフローチャートである。本明細書に記載される技術のいくつかの実施形態では、訓練方法520は、第二の機械学習モデル(例えば、
図2の226)を訓練し得、システム100(
図1)、システム200(
図2)、例えば、訓練システム(例えば、
図2の212)に実装され得、又は第二の機械学習モデル(例えば、
図4の418)を再訓練するために動作し得る。
【0143】
方法520は、方法500(
図5A)の動作502、504と同様の様式で、動作522で複数の訓練画像を取得することと、動作524で複数の訓練ラベルを取得すること、とを含み得る。複数の訓練ラベルの各々は、複数の訓練画像の対応する一つの中の文字と関連付けられてもよい。例えば、訓練ラベルは、グラウンドトゥルース文字位置のリストを含んでもよく、各々が、画像内の文字が表示される場所を示すために、複数の訓練画像の対応する一つの中の文字と関連付けられる。訓練ラベルはまた、各グラウンドトゥルース文字位置における文字の同一性を表す、文字クラスのリストを含む、グラウンドトゥルースクラスリストを含み得る。テキスト文字に対する上記の例では、文字クラスは、「A」~「Z」、又はシステムが配備されるドメインに固有であり得る他のラベルなどの、テキスト文字に対応し得る。いくつかの実施例では、全ての文字の文字サイズは、ほぼ同一であると仮定され得る。このような場合、データベース(例えば、
図2の222)に保存される文字サイズは、幅及び高さに対する二つの値を含み得る。文字サイズの他の適切な表現も可能であり得ることが、理解される。
【0144】
いくつかの実施形態では、システムは、ラベル符号化方法を使用することによって、文字クラスリストを取得し得る。例えば、システムは、訓練ラベルに現れる全ての文字クラスを収集し、繰り返されるものを破棄して、別個の文字クラスのリストを生成し得る。システムは、これらの別個の文字クラスを、順番にソートし得る。いくつかの実施例では、システムは、文字クラスリストを取得するために、別個の文字クラスを任意の順序でソートし得る。いくつかの他の実施例では、システムは、英語の文字のアルファベット順など、別の適切な順序で、別個の文字クラスをソートし得る。文字クラスリストが生成されると、それは、システム(例えば、
図2の228)に保存され得る。
【0145】
方法520は、
図5Aの動作506と同様の様式で実行され得る、動作526で、訓練特徴マップを決定することを更に含み得る。例えば、訓練特徴マップは、入力として複数の訓練画像を有する、事前訓練済み機械学習モデルを使用して決定されてもよく、事前訓練済み機械(例えば、
図2の220)は、複数の隠れ層を有するCNNなどの、深層機械学習モデルであってもよい。この動作は、動作404(
図4)、304(
図3)に記載される検出プロセス、又は特徴抽出器202に実装される方法と、同様の様式で実行され得る。
【0146】
方法520は、動作528で、複数の訓練特徴マップ、及び複数の訓練ラベルを使用して、第二の機械学習モデルの重みを更に決定し得る。いくつかの実施例では、第二の機械学習モデルは、重み行列であってもよく、行列のサイズは、K×(f*D)であり、式中、Dは、特徴マップのチャネルの数であり、Kは、既知のラベルの数(例えば、英大文字の場合は26)であり、fは、本開示に記載される検出プロセスで上述したように、特徴ベクトルプールの特定の方法に依存する因数である。したがって、重み行列の各行は、既知のラベルに対応する複数の既知のクラスの一つに対応する。
【0147】
いくつかの実施例では、第二の機械学習モデルの重みを決定する時に、方法520は、訓練画像内の文字の各々について、文字特徴ベクトルが方法500で決定されるのと同様の様式で(例えば、動作510)、文字が位置する対応する訓練画像の特徴マップの一部分を使用して、対応する文字特徴ベクトルを決定し得る。方法520はまた、文字の各々に対する、標的ベクトルを決定し得る。いくつかの実施形態では、標的ベクトルは、符号化方法を使用して決定され得る。例えば、訓練ラベルの各ラベルされた文字は、長さKのワンホット標的ベクトルと関連付けられてもよく、ここで、Kは、別個の文字クラスの数である。いくつかの実施形態では、ワンホット符号化方法を使用し得る。例えば、文字クラスリストが[「A」、「B」、「C」、「D」]であり、特定のラベル付き文字がクラス「C」である場合、ワンホット標的ベクトルはベクトル(0,0,1,0)である。他の符号化方法が使用され得る。
【0148】
したがって、訓練画像内のグラウンドトゥルース文字位置の各々について、文字特徴ベクトル及び標的ベクトルを決定した後、訓練プロセス520は、重み行列に各文字特徴ベクトルを乗算した時に、積が、対応する標的ベクトルに可能な限り近接して結果を再現するように、第二の機械学習モデル(例えば、重み行列)を決定し得る。方法500における重みベクトルの訓練と同様に、線形回帰、SVM、又は他の適切な機械学習方法などの、機械学習方法を使用して、第二の機械学習モデルにおける重み行列を訓練し得る。
【0149】
本明細書に開示される技術及び実施形態の態様のいずれかを実施するために使用され得る、コンピュータシステム800の例示的実装を、
図8に示す。例えば、コンピュータシステム800は、サーバ110によってなど、
図1のシステム100にインストールされ得る。コンピュータシステム800は、
図1~7に関して記載したように、様々な方法及び動作を実行するように構成され得る。コンピュータシステム800は、一つ以上のプロセッサ810、及び一つ以上の非一時的コンピュータ可読記憶媒体(例えば、メモリ820、及び一つ以上の不揮発性記憶媒体830)、及びディスプレイ840を含み得る。プロセッサ810は、本明細書に記載される本発明の態様がこれに限定されないため、メモリ820及び不揮発性記憶装置830へのデータの書き込み及びそこからのデータの読み取りを、任意の適切な方法で制御し得る。本明細書に記載される機能及び/又は技術を実施するために、プロセッサ810は、プロセッサ810によって実行するための命令を保存する非一時的コンピュータ可読記憶媒体として機能し得る、一つ以上のコンピュータ可読記憶媒体(例えば、メモリ820、ストレージ媒体など)に保存された、一つ以上の命令を実行し得る。
【0150】
本明細書に記載される技術に関連して、例えば、画像/ビデオ内の物体を検出するために使用されるコードは、コンピュータシステム800の一つ以上のコンピュータ可読記憶媒体上に保存され得る。プロセッサ810は、本明細書に記載されるように、任意のこうしたコードを実行して、物体を検出するための任意の技術を提供し得る。本明細書に記載される任意の他のソフトウェア、プログラム、又は命令はまた、コンピュータシステム800によって記憶及び実行され得る。当然のことながら、コンピュータコードは、本明細書に記載される方法及び技術の任意の態様に適用され得る。例えば、コンピュータコードは、オペレーティングシステムと相互作用して、従来のオペレーティングシステムプロセスを通して物体を検出するために適用され得る。
【0151】
本明細書に概説される様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットフォームのいずれか一つを採用する、一つ以上のプロセッサ上で実行可能なソフトウェアとして、コードされ得る。更に、こうしたソフトウェアは、多数の適切なプログラミング言語及び/又はプログラミング若しくはスクリプトツールのいずれかを使用して記述されてもよく、また、仮想マシン又は適切なフレームワーク上で実行される、実行可能な機械言語コード又は中間コードとして、コンパイルされ得る。
【0152】
これに関して、様々な発明の概念は、一つ以上のコンピュータ又は他のプロセッサ上で実行される時、本発明の様々な実施形態を実施する一つ以上のプログラムでコードされた、少なくとも一つの非一時的コンピュータ可読記憶媒体(例えば、コンピュータメモリ、一つ以上のフロッピーディスク、コンパクトディスク、光ディスク、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ又は他の半導体デバイスにおける回路構成など)として具体化され得る。非一時的コンピュータ可読媒体は、上述のように、その上に保存されたプログラムが任意のコンピュータリソースにロードされて、本発明の様々な態様を実施することができるように、移動可能であってもよい。
【0153】
本明細書で使用される場合、「プログラム」、「ソフトウェア」、及び/又は「アプリケーション」という用語は、上で論じた実施形態の様々な態様を実施するように、コンピュータ又は他のプロセッサをプログラムするために採用され得る、任意のタイプのコンピュータコード又はコンピュータ実行可能命令のセットを指すために、一般的な意味で使用される。更に、当然のことながら、一態様によれば、実行された時に本発明の方法を実施する一つ以上のコンピュータプログラムは、単一のコンピュータ又はプロセッサ上に存在する必要はなく、本発明の様々な態様を実施するために、異なるコンピュータ又はプロセッサ間で、モジュール式に分散され得る。
【0154】
コンピュータ実行可能命令は、一つ以上のコンピュータ又は他のデバイスによって実行される、プログラムモジュールなどの、多くの形態であってもよい。一般的に、プログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、プログラムモジュールの機能は、様々な実施形態において、所望に応じて組合わせられてもよく、又は分散され得る。
【0155】
また、データ構造は、任意の適切な形態で、非一時的コンピュータ可読記憶媒体に保存され得る。データ構造は、データ構造内の位置を通して関連する、フィールドを有し得る。こうした関係は、同様に、フィールド間の関係を伝える非一時的コンピュータ可読媒体内の位置を有するフィールドに対して、ストレージを割り当てることによって達成され得る。しかしながら、データ要素間の関係を確立する、ポインター、タグ、又は他の機構の使用を含む、データ構造のフィールド内の情報間の関係を確立するために、任意の適切な機構を使用し得る。
【0156】
様々な発明の概念が、一つ以上の方法として具体化されてもよく、その例が提供されている。方法の一部として実行される動作は、任意の適切な方法で順序付けられてもよい。したがって、図示とは異なる順序で動作が実行される、実施形態が構築され得、例示的な実施形態では、逐次的動作として示されるにもかかわらず、一部の動作を同時に実施することを含み得る。
【0157】
本明細書及び特許請求の範囲において本明細書で使用される、無期限の冠詞「a」及び「an」は、反対に明確に示されない限り、「少なくとも一つ」を意味すると理解されるべきである。本明細書及び特許請求の範囲において本明細書で使用される場合、一つ以上の要素のリストに関連する、語句「少なくとも一つ」は、要素のリスト内の任意の一つ以上の要素から選択される少なくとも一つの要素を意味するが、必ずしも要素のリスト内に具体的に列挙される、各要素及び全ての要素の少なくとも一つを含むものではなく、要素のリスト内の要素のいかなる組合わせも除外しないことを理解されたい。これにより、具体的に識別されたそれらの要素に関連するか関連しないかに関わらず、語句が「少なくとも一つ」が参照する要素のリスト内で具体的に識別された要素以外に、要素が任意選択的に存在することが可能になる。
【0158】
本明細書及び特許請求の範囲において本明細書で使用される場合、「及び/又は」という語句は、そのように結合された要素、すなわち、一部の事例では結合して存在し、他の事例では結合解除して存在する要素の、「いずれか又は両方」を意味すると理解されるべきである。「及び/又は」で列挙された複数の要素は、同一様式、すなわち、そのように結合された要素の「一つ以上」として解釈されるべきである。他の要素は、具体的に識別されたそれらの要素に関連するか関連しないかに関わらず、任意選択的に、「及び/又は」項によって具体的に識別された要素以外に存在し得る。したがって、非限定的な例として、「A及び/又はB」への言及は、「を含む」などのオープンエンドな語句と併用して使用される場合、一実施形態では、Aのみ(任意選的に、B以外の要素を含む)、別の実施形態では、Bのみ(任意選択的に、A以外の要素を含む)、更に別の実施形態では、A及びBの両方(任意選択的に、他の要素を含む)などを指し得る。
【0159】
本明細書及び特許請求の範囲において本明細書で使用される場合、「又は」は、上述で定義された「及び/又は」と同一意味を有すると理解されるべきである。例えば、リスト内の品目を分離する場合、「又は」又は「及び/又は」は、包括的であり、すなわち、要素の数又はリストの少なくとも一つを含むが、二つ以上、及び任意選択的に、追加のリストされていない品目の要素も含むと解釈されるべきである。「の一つのみ」若しくは「の厳密に一つ」、又は特許請求の範囲で使用される場合の「からなる」など、反対に明確に示される用語のみが、要素の数又はリストの厳密に一つの要素だけを含めることを指す。一般に、本明細書で使用される場合、「又は」という用語は、「一方のみ」、「の一つ」、「の一つのみ」、又は「厳密に一方」などの、排他的な用語が先行する時にのみ、排他的な代替物(すなわち、「一方又は他方であるが両方ではない」)を示すものとして解釈されるべきである。特許請求の範囲で使用される場合、「から本質的になる」は、特許法の分野で使用される通常の意味を有するものとする。
【0160】
請求項要素を修正するための、特許請求の範囲における、「第一の」、「第二の」、「第三の」などの序数用語の使用は、それ自体は、一つの特許請求要素の、別の特許請求要素に対する、優先、先行、若しくは順序、又は方法の作用が実行される時間的な順序を意味しない。こうした用語は、ある特定の名称を有する一つの請求項要素を、同一名称を有する別の要素と区別するためのラベルとしてのみ使用される(ただし、通常用語の使用のため)。
【0161】
本明細書で使用される語句及び用語は、説明の目的で使用され、限定とみなされるべきではない。「含む」、「有する」、「含有する」、「関与する」、及びその変形の使用は、その後列挙される項目及び追加の項目を包含することを意味する。
【0162】
本発明のいくつかの実施形態を詳細に説明してきたが、当業者には、様々な修正及び改善が容易に想到するであろう。こうした修正及び改善は、本発明の趣旨及び範囲内であることが意図される。したがって、前述の説明は、例示のみを目的としており、限定することを意図するものではない。
【国際調査報告】