(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-02-18
(54)【発明の名称】画像処理方法、装置、インテリジェント運転システム及び車載演算プラットフォーム
(51)【国際特許分類】
G06T 1/40 20060101AFI20220210BHJP
G06N 3/10 20060101ALI20220210BHJP
G08G 1/16 20060101ALI20220210BHJP
【FI】
G06T1/40
G06N3/10
G08G1/16 C
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021533181
(86)(22)【出願日】2019-12-26
(85)【翻訳文提出日】2021-06-24
(86)【国際出願番号】 CN2019128764
(87)【国際公開番号】W WO2020135602
(87)【国際公開日】2020-07-02
(31)【優先権主張番号】201811643406.6
(32)【優先日】2018-12-29
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】516159397
【氏名又は名称】ベイジン センスタイム テクノロジー デベロップメント シーオー.,エルティーディー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ウェン,トゥオプー
(72)【発明者】
【氏名】チェン,グァンリャン
(72)【発明者】
【氏名】シー,ジャンピン
【テーマコード(参考)】
5B057
5H181
【Fターム(参考)】
5B057AA16
5B057BA02
5B057CA08
5B057CA12
5B057CA16
5B057CH04
5B057CH08
5B057DA06
5B057DA11
5B057DB02
5B057DB09
5B057DC01
5B057DC36
5B057DC40
5H181AA01
5H181BB20
5H181CC04
5H181FF27
5H181LL09
(57)【要約】
画像処理方法、装置、インテリジェント運転システム及び車載演算プラットフォームを提供する。該方法は、演算ユニット(703)の固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うステップ(S101、S201)と、処理対象の画像を取得するステップ(S102、S203)と、演算ユニット(703)が前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理するように制御して、画像の処理結果を取得するステップ(S103)と、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うステップであって、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であるステップと、
処理対象の画像を取得するステップと、
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御して、前記画像の処理結果を取得するステップとを含む、ことを特徴とする画像処理方法。
【請求項2】
前記固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、前記Mは、1よりも大きい整数である、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記Mは2に等しい、ことを特徴とする請求項2に記載の方法。
【請求項4】
前記固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、前記k及び前記jは、いずれも整数であり、前記kは、前記jよりも大きく、かつ前記kと前記jとの差は、所定の閾値よりも小さい、ことを特徴とする請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行った後、
前記k及び前記j、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、前記固定小数点処理後のネットワークパラメータに対応する2進値を取得するステップと、
前記固定小数点処理後のネットワークパラメータに対応する2進値を記憶するステップとをさらに含む、ことを特徴とする請求項4に記載の方法。
【請求項6】
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御するステップは、
前記演算ユニットが前記2進値及び前記2進値マッピングテーブルに基づいて前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御するステップと、
前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するステップとを含む、ことを特徴とする請求項5に記載の方法。
【請求項7】
前記演算ユニットが固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御する前に、
トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む畳み込みニューラルネットワークをトレーニングすることにより、前記固定小数点処理後のネットワークパラメータを修正するステップをさらに含む、ことを特徴とする請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記画像の処理結果は、オブジェクト検出/追跡結果、特徴抽出結果、分割結果、分類結果のうち少なくとも1つを含む、ことを特徴とする請求項1~7のいずれか一項に記載の方法。
【請求項9】
演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うパラメータ固定小数点モジュールであって、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であるパラメータ固定小数点モジュールと、
処理対象の画像を取得する画像取得モジュールと、
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御して、前記画像の処理結果を取得する画像処理モジュールとを含む、ことを特徴とする画像処理装置。
【請求項10】
前記固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、前記Mは、1よりも大きい整数である、ことを特徴とする請求項9に記載の装置。
【請求項11】
前記Mは2に等しい、ことを特徴とする請求項10に記載の装置。
【請求項12】
前記固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、前記k及び前記jは、いずれも整数であり、前記kは、前記jよりも大きく、かつ前記kと前記jとの差は、所定の閾値よりも小さい、ことを特徴とする請求項9~11のいずれか一項に記載の装置。
【請求項13】
前記k及び前記j、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、前記固定小数点処理後のネットワークパラメータに対応する2進値を取得し、前記固定小数点処理後のネットワークパラメータに対応する2進値を記憶する記憶モジュールをさらに含む、ことを特徴とする請求項12に記載の装置。
【請求項14】
前記画像処理モジュールは、
前記演算ユニットが前記2進値及び前記2進値マッピングテーブルに基づいて前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御し、
前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理する、ことを特徴とする請求項13に記載の装置。
【請求項15】
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御する前に、トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む畳み込みニューラルネットワークをトレーニングすることにより、前記固定小数点処理後のネットワークパラメータを修正するトレーニングモジュールをさらに含む、ことを特徴とする請求項9~14のいずれか一項に記載の装置。
【請求項16】
前記画像の処理結果は、オブジェクト検出/追跡結果、特徴抽出結果、分割結果、分類結果のうち少なくとも1つを含む、ことを特徴とする請求項9~15のいずれか一項に記載の装置。
【請求項17】
車載カメラ、畳み込みニューラルネットワークサブシステム及び制御サブシステムを含み、前記制御サブシステムは、
前記畳み込みニューラルネットワークサブシステムを実行する演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行い、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であり、
前記畳み込みニューラルネットワークサブシステムが、前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて、前記車載カメラによって取得された車両走行路面の画像を処理するように制御して、前記画像の処理結果を取得し、
前記画像の処理結果に基づいて車両のインテリジェント運転を行う、ことを特徴とするインテリジェント運転システム。
【請求項18】
前記固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、前記Mは、1よりも大きい整数である、ことを特徴とする請求項17に記載のシステム。
【請求項19】
前記Mは2に等しい、ことを特徴とする請求項18に記載のシステム。
【請求項20】
前記固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、前記k及び前記jは、いずれも整数であり、前記kは、前記jよりも大きく、かつ前記kと前記jとの差は、所定の閾値よりも小さい、ことを特徴とする請求項17~19のいずれか一項に記載のシステム。
【請求項21】
前記制御サブシステムはさらに、
前記k及び前記j、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、前記固定小数点処理後のネットワークパラメータに対応する2進値を取得し、
前記インテリジェント運転システムは、記憶サブシステムをさらに含み、
前記記憶サブシステムは、前記固定小数点処理後のネットワークパラメータに対応する2進値を記憶する、ことを特徴とする請求項20に記載のシステム。
【請求項22】
前記制御サブシステムは、
前記畳み込みニューラルネットワークサブシステムが前記記憶サブシステムに記憶された2進値及び2進値マッピングテーブルに基づいて前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御し、
前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて、前記車載カメラによって取得された車両走行路面の画像を処理して、前記画像の処理結果を取得する、ことを特徴とする請求項21に記載のシステム。
【請求項23】
トレーニングサブシステムをさらに含み、
前記トレーニングサブシステムは、トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む前記畳み込みニューラルネットワークをトレーニングすることにより、前記固定小数点処理後のネットワークパラメータを修正する、ことを特徴とする請求項17~22のいずれか一項に記載のシステム。
【請求項24】
前記画像の処理結果は、ナンバープレート認識結果、走行可能領域検出結果、車線検出結果、車線属性検出結果、車載カメラ姿勢検出結果のうち少なくとも1つを含む、ことを特徴とする請求項17~21のいずれか一項に記載のシステム。
【請求項25】
プロセッサ、外部メモリ、メモリ及びFPGA演算ユニットを含み、
前記外部メモリにニューラルネットワークの固定小数点処理後のネットワークパラメータが記憶されるか、又は前記ニューラルネットワークの固定小数点処理後のネットワークパラメータに対応する2進値と、異なるネットワークパラメータのべき乗値に対応する2進値を指示するルックアップテーブルとが記憶され、固定小数点処理後のネットワークパラメータは、2のべき乗で表された値であり、
前記プロセッサは、前記ニューラルネットワークの固定小数点処理後のネットワークパラメータを前記メモリに読み込み、前記メモリ上のデータ及び処理対象の画像情報を前記FPGA演算ユニットに入力するか、又は前記プロセッサは、前記2進値及び前記ルックアップテーブルに基づいてルックアップして取得された固定小数点処理後のネットワークパラメータを前記メモリに読み込み、前記メモリ上のデータ及び処理対象の画像情報を前記FPGA演算ユニットに入力し、
前記FPGA演算ユニットは、前記処理対象の画像情報と固定小数点処理後のネットワークパラメータとに基づいてシフト演算結果を取得して、複数回の結果を加算演算して、前記画像の処理結果を取得する、ことを特徴とするFPGAに基づく車載演算プラットフォーム。
【請求項26】
前記固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、前記Mは、1よりも大きい整数である、ことを特徴とする請求項25に記載のプラットフォーム。
【請求項27】
前記Mは2に等しい、ことを特徴とする請求項26に記載のプラットフォーム。
【請求項28】
前記固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、前記k及び前記jは、いずれも整数であり、前記kは、前記jよりも大きく、かつ前記kと前記jとの差は、所定の閾値よりも小さい、ことを特徴とする請求項25~27のいずれか一項に記載のプラットフォーム。
【請求項29】
前記外部メモリに前記k及び前記jが記憶され、
前記ルックアップテーブルは、異なるkとjの値の組み合わせに対応する2進値を指示する、ことを特徴とする請求項28に記載のプラットフォーム。
【請求項30】
前記画像の処理結果は、オブジェクト検出/追跡結果、特徴抽出結果、分割結果、分類結果のうち少なくとも1つを含む、ことを特徴とする請求項25~29のいずれか一項に記載のプラットフォーム。
【請求項31】
プロセッサ及びメモリを含み、
前記メモリは、請求項1~8のいずれか一項に記載の画像処理方法に対応する動作を前記プロセッサに実行させる少なくとも1つの実行可能命令を記憶する、ことを特徴とする電子機器。
【請求項32】
プロセッサと、請求項9~16のいずれか一項に記載の画像処理装置とを含み、プロセッサが前記画像処理装置を実行すると、請求項9~16のいずれか一項に記載の画像処理装置のモジュールが実行される、ことを特徴とする電子機器。
【請求項33】
請求項1~8のいずれか一項に記載の画像処理方法のステップを実行するコンピュータプログラムが記憶されている、ことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2018年12月29日に中国特許庁に提出された、出願番号CN201811643406.6、発明の名称「画像処理方法、装置、インテリジェント運転システム及び車載演算プラットフォーム」の中国特許出願の優先権を主張するものであり、その全ての内容は、参照により本願に組み込まれるものとする。
【0002】
本願は、固定小数点技術に関し、特に、画像処理方法、装置、インテリジェント運転システム及び車載演算プラットフォームに関する。
【背景技術】
【0003】
深層畳み込みニューラルネットワーク技術のコンピュータビジョン認識における性能の向上に伴い、畳み込みニューラルネットワーク技術は、ますます頻繁に画像処理、無人運転システム、運転支援システムなどの製品に適用される。畳み込みニューラルネットワークにより処理されるのは画像データであるため、一般的に、畳み込みニューラルネットワーク技術の適用は、高性能のグラフィックスプロセッシングユニット(Graphics Processing Unit、GPU)に依存し、かつ膨大な演算量を必要とし、大きなメモリを消費する。
【発明の概要】
【0004】
本願の実施例は、画像処理方法、装置、インテリジェント運転システム及び車載演算プラットフォームを提供する。
【0005】
本願の実施例の一態様に係る画像処理方法は、
演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うステップであって、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であるステップと、
処理対象の画像を取得するステップと、
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御して、前記画像の処理結果を取得するステップと、を含む。
【0006】
本願の実施例の別の態様に係る画像処理装置は、
演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うパラメータ固定小数点モジュールであって、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であるパラメータ固定小数点モジュールと、
処理対象の画像を取得する画像取得モジュールと、
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御して、前記画像の処理結果を取得する画像処理モジュールと、を含む。
【0007】
本願の実施例の他の態様に係るインテリジェント運転システムは、車載カメラ、畳み込みニューラルネットワークサブシステム及び制御サブシステムを含み、前記制御サブシステムは、
前記畳み込みニューラルネットワークサブシステムを実行する演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行い、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であり、
前記畳み込みニューラルネットワークサブシステムが、前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて、前記車載カメラによって取得された車両走行路面の画像を処理するように制御して、前記画像の処理結果を取得し、
前記画像の処理結果に基づいて車両のインテリジェント運転を行う。
【0008】
本願の実施例のさらに別の態様に係るFPGAに基づく車載演算プラットフォームは、プロセッサ、外部メモリ、メモリ及びFPGA演算ユニットを含み、
前記外部メモリに前記ニューラルネットワークの固定小数点処理後のネットワークパラメータが記憶されるか、又は前記ニューラルネットワークの固定小数点処理後のネットワークパラメータに対応する2進値と、異なるネットワークパラメータのべき乗値に対応する2進値を指示するルックアップテーブルとが記憶され、固定小数点処理後のネットワークパラメータは、2のべき乗で表された値であり、
前記プロセッサは、前記ニューラルネットワークの固定小数点処理後のネットワークパラメータを前記メモリに読み込み、前記メモリ上のデータ及び処理対象の画像情報を前記FPGA演算ユニットに入力するか、又は前記プロセッサは、前記2進値及び前記ルックアップテーブルに基づいてルックアップして取得された固定小数点処理後のネットワークパラメータを前記メモリに読み込み、前記メモリ上のデータ及び処理対象の画像情報を前記FPGA演算ユニットに入力し、
前記FPGA演算ユニットは、前記処理対象の画像情報と固定小数点処理後のネットワークパラメータとに基づいてシフト演算結果を取得して、複数回の結果を加算演算して、前記画像の処理結果を取得する。
【0009】
本願の実施例のまた別の態様に係る電子機器は、
プロセッサ及びメモリを含み、
前記メモリは、いずれか1つの実施例に記載の画像処理方法に対応する動作を前記プロセッサに実行させる少なくとも1つの実行可能命令を記憶する。
【0010】
本願の実施例のまた別の態様に係る電子機器は、
プロセッサと、いずれか1つの実施例に記載の画像処理装置とを含み、プロセッサが前記画像処理装置を実行すると、いずれか1つの実施例に記載の画像処理装置のモジュールが実行される。
【0011】
本願の実施例のまた別の態様に係るコンピュータ可読記憶媒体には、上記第1の態様のいずれか1つの実現可能な実施形態における画像処理方法のステップを実行するコンピュータプログラムが記憶されている。
【0012】
以上の一般的な説明及び後述する詳細な説明は、例示的及び説明的なものに過ぎず、本開示を限定するものではないことを理解されたい。
【0013】
本願の実施例は、画像処理方法、装置、インテリジェント運転システム及び車載演算プラットフォームを提供し、画像処理方法は、演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うステップと、処理対象の画像を取得するステップと、演算ユニットが畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理するように制御して、画像の処理結果を取得するステップと、を含む。畳み込みニューラルネットワークのネットワークパラメータを固定小数点処理して、2のべき乗でネットワークパラメータを固定小数点処理して表すことにより、記憶空間の占有と演算過程におけるメモリ空間の占有を低減し、FPGAなどのハードウェアプラットフォームのリソースを節約することができる。同時に、2のべき乗でネットワークパラメータを表すことにより、演算複雑度を低減し、演算速度を向上させ、迅速でリアルタイムな応答を実現し、演算過程における消費電力を低減し、特に演算ユニットが、FPGAなどのハードウェアリソースが限られたハードウェアである場合、畳み込みニューラルネットワークがハードウェアに適用できないか又はハードウェア上で演算加速を実現できないという課題を解決することができる。
【0014】
以下、図面及び実施例により、本願の技術的解決手段についてさらに詳細に説明する。
【図面の簡単な説明】
【0015】
明細書の一部を構成する図面は、本願の実施例を説明し、かつ説明と共に本発明の原理を解釈するためのものである。
【0016】
図面を参照しながら、以下の詳細な説明に基づいて、本願をより明確に理解することができる。
【
図1】本願の実施例に係る画像処理方法のフローチャートである。
【
図2】本願の実施例に係る画像処理方法の別のフローチャートである。
【
図3】本願の実施例に係る画像処理装置の概略構成図である。
【
図4】本願の実施例に係る画像処理装置の別の概略構成図である。
【
図5】本願の実施例に係るインテリジェント運転システムの概略構成図である。
【
図6】本願の実施例に係るFPGAに基づく車載演算プラットフォームの概略構成図である。
【
図7】本願の実施例に係る電子機器の概略構成図である。
【発明を実施するための形態】
【0017】
以下、図面を参照しながら、本願の様々な例示的な実施例を詳細に説明する。特に具体的に説明しない限り、これらの実施例において記載された部品及びステップの相対的配置、数字表現式及び数値は、本願の範囲を限定するものではないことに留意されたい。
【0018】
同時に、説明の便宜上、図面に示された各部分の寸法は実際の比例関係に従って描いたものではないことを理解されたい。
【0019】
以下、少なくとも1つの例示的な実施例についての説明は、本質的に例示的なものに過ぎず、決して本願及びその適用又は使用を限定するものではない。
【0020】
当業者に公知の技術、方法及び機器について詳細に検討していない場合があるが、適切な場合で、上記技術、方法及び機器は、明細書の一部と見なすべきである。
【0021】
類似の符号及びアルファベットが以下の図面において類似のものを表すため、あるものが1つの図面において定義されれば、後の図面においてそれをさらに検討する必要がないことに留意されたい。
【0022】
本願の実施例は、コンピュータシステム/サーバに適用されてよく、多数の他の汎用又は専用のコンピューティングシステム環境又は構成と共に動作可能である。コンピュータシステム/サーバと共に使用することに適する周知のコンピューティングシステム、環境及び/又は構成の例は、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、ファットクライアント、手持ち又はラップトップ機器、マイクロプロセッサに基づくシステム、セットトップボックス、プログラマブル消費電子製品、ネットワークパソコン、小型コンピュータシステム、大型コンピュータシステム、及び上記任意のシステムを含む分散型クラウドコンピューティング技術環境などを含むが、これらに限定されない。
【0023】
コンピュータシステム/サーバについて、コンピュータシステムにより実行されるコンピュータシステム実行可能命令(例えば、プログラムモジュール)の一般的なコンテキストで説明してよい。一般的に、プログラムモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実現するルーチン、プログラム、ターゲットプログラム、コンポーネント、ロジック及びデータ構造などを含んでよい。コンピュータシステム/サーバは、分散型クラウドコンピューティング環境において実施されてよく、分散型クラウドコンピューティング環境において、タスクは、通信ネットワークを介してリンクされた遠隔処理機器によって実行される。分散型クラウドコンピューティング環境において、プログラムモジュールは、記憶機器を含むローカル又は遠隔コンピューティングシステムの記憶媒体に位置してよい。
【0024】
図1は、本願の実施例に係る画像処理方法のフローチャートである。本願の実施例の実行主体は、例示的には、画像処理装置、プロセッサなどの電子機器であってもよく、画像処理方法が適用される任意の装置及びシステム、例えば監視システム、インテリジェント運転システムなどであってもよい。
図1に示すように、画像処理方法は、S101~S103を含む。
【0025】
S101において、演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行う。
【0026】
固定小数点処理後のネットワークパラメータは、2のべき乗で表された値である。
【0027】
例示的に、本願の実施例における演算ユニットは、固定小数点演算をサポートする計算ユニット、例えばフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、FPGAと略称する)におけるデジタル信号プロセッサ(Digital Signal Processor、DSPと略称する)などであってよい。演算ユニットがFPGAなどのハードウェアプラットフォームである場合、FPGAなどのハードウェアプラットフォームの低消費電力、演算加速などの面に関する総合的な利点を発揮させるために、演算ユニットの固定小数点ビット幅のリソース量は一般的に限られる。いくつかの場合において、より低い消費電力を実現するために、できるだけ少ない固定小数点ビット幅のリソース量、例えば8ビット又は4ビットさらにより少ないビット幅のリソース量を選択して固定小数点演算を実現する。しかしながら、固定小数点ビット幅のリソース量が少ないと、演算速度に影響を与えることが多いため、迅速な応答さらにはリアルタイムな応答が求められるプラットフォーム、例えば自動運転用の車載演算プラットフォームなどに対しては、本願の実施例は、畳み込みニューラルネットワークに対して適応ハードウェアの固定小数点ビット幅のリソース量の最適化を行うことにより、リソースが限られたプラットフォームでの高速演算を実現する。
【0028】
畳み込みニューラルネットワークは、一般的に複数の畳み込み層を含み、処理対象の画像に対して特徴抽出を行い、抽出された特徴を分類することにより、畳み込みニューラルネットワークの様々な機能を実現する。畳み込みニューラルネットワークは、複数のネットワークパラメータを含み、畳み込みニューラルネットワークのネットワークパラメータの値は、畳み込みニューラルネットワークの性能を決定する。畳み込みニューラルネットワークの性能を向上させるために、畳み込みニューラルネットワークのネットワークパラメータは、一般的に浮動小数点数で表される。好ましくは、本願の実施例における畳み込みニューラルネットワークは、トレーニングされた畳み込みニューラルネットワークであってよい。しかしながら、浮動小数点数形式のネットワークパラメータには、記憶空間を占有し、計算複雑度が高いという課題が存在し、本願の実施例において畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うことにより、固定小数点処理後のネットワークパラメータは、2のべき乗で表された値であり、一方でネットワークパラメータによる記憶空間の占有を低減し、他方で畳み込みニューラルネットワークに基づいて画像処理を行う場合に必要な演算を簡略化する。
【0029】
例えば、2のべき乗でネットワークパラメータを固定小数点処理して表すことにより、記憶時に、ネットワークパラメータに対応するべき乗数値のみを記憶することができ、さらに記憶空間の占有と演算過程におけるメモリ空間の占有を低減し、FPGAなどのハードウェアプラットフォームのリソースを節約することができる。同時に、2のべき乗でネットワークパラメータを表す場合、畳み込みニューラルネットワークにおける大量の乗算演算について、演算ユニットは、処理速度が遅く消費電力が大きい乗算演算の代わりにシフト及び加算演算の方式を用いて、画像処理を実現することができる。2のべき乗でネットワークパラメータを表すことにより、演算複雑度を大幅に低減し、演算速度を向上させ、迅速でリアルタイムな応答を実現し、演算過程における消費電力を低減することができ、特に演算ユニットが、FPGAなどのハードウェアリソースが限られたハードウェアである場合、畳み込みニューラルネットワークがハードウェアに適用できないか又はハードウェア上で演算加速を実現できないという課題を解決することができる。
【0030】
例示的に、畳み込みニューラルネットワークのネットワークパラメータを固定小数点処理する前に、まずネットワークパラメータの形式が浮動小数点数であるか否かを検出することができ、そうであれば、ネットワークパラメータの値を固定小数点処理する必要がある。
【0031】
例示的に、可能な実施形態において、固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、Mは、1よりも大きい整数である。
【0032】
好ましくは、本実施例において、浮動小数点数をM個の2のべき乗で表してよい。例えば、浮動小数点数36.11を25+22で表してよい。例えば、浮動小数点数21.42を24+22+21で表してよい。例えば、浮動小数点数16.25を24+2-2で表してよい。M個の2のべき乗の和を用いてネットワークパラメータの値を固定小数点処理することにより、一方で、偏差が小さい場合に、ネットワークパラメータによる記憶空間の占有を低減し、畳み込みニューラルネットワークの性能を保証し、他方で、畳み込みニューラルネットワークにおけるネットワークパラメータに関連する乗算動作をシフト動作として簡略化し、畳み込みニューラルネットワークにおける演算を簡略化し、畳み込みニューラルネットワークの演算速度を向上させることができる。
【0033】
理解できるように、固定小数点処理後のネットワークパラメータは、M個未満の2のべき乗の和で表されてもよい。例えば、浮動小数点数32を25で表してよい。
【0034】
好ましくは、可能な実施形態において、Mは、2に等しい。例えば、あるネットワークパラメータの固定小数点結果を2k+2jで表してよい。
【0035】
例示的に、いずれも2つの2のべき乗で表すことにより、ネットワークパラメータの正確性を保証するとともに、過度な計算量を増加させず、メモリ及び記憶リソースの占有量を低減することができる。
【0036】
例示的に、畳み込みニューラルネットワークのネットワークパラメータの値を記憶する場合、ネットワークパラメータの数が多く、かつ各ネットワークパラメータの値が異なるため、ネットワークパラメータの値を記憶する時に、占有した記憶空間が大きいという課題が存在する。記憶空間の占有をさらに減らすために、本願の実施例は、固定小数点処理後のネットワークパラメータの可能な記憶方式を提供し、このような方式において、
固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗のとの和であり、k及びjは、いずれも整数であり、kは、jよりも大きく、かつkとjとの差は、所定の閾値よりも小さい。
【0037】
好ましくは、任意の浮動小数点数を、2k+2jで固定小数点処理して表してよく、k及びjは、いずれも整数であり、かつkは、jよりも大きい。ネットワークパラメータの固定小数点過程を簡略化し、固定小数点処理後のネットワークパラメータを記憶する時に占有した空間を低減するために、kとjとの差を所定の閾値よりも小さいように限定してよい。
【0038】
例示的に、所定の閾値を決定する過程においてまず畳み込みニューラルネットワークの全てのネットワークパラメータの初期値を決定し、次に全ての初期値の精度に基づいて最小精度値sを決定してよく、最小精度値sは、jの可能な値のうち最小値である。次に全ての初期値のうち最大初期値に基づいて最大数値を決定し、最大数値は、最大初期値を切り上げたものであってよい。例示的に、1個の2のべき乗、例えば2tで最大数値を表すか、又はM個の2のべき乗、例えば2p+2qで最大数値を表してよい。t、p、qは、整数であり、かつpは、qよりも大きい。t又はpは、kの可能な値のうち最大値である。kとjとの差が所定の閾値よりも大きい場合、jの可能な最小値を増大させ、すなわちネットワークパラメータの固定小数点精度を低下させてよい。
【0039】
好ましくは、本実施例において、固定小数点処理後のネットワークパラメータが2のk乗と2のj乗との和である場合、固定小数点処理後のネットワークパラメータを記憶する好ましい方式は、
k及びj、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、固定小数点処理後のネットワークパラメータに対応する2進値を取得することと、
固定小数点処理後のネットワークパラメータに対応する2進値を記憶することと、を含んでよい。
【0040】
例示的に、固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、kとjが異なる整数であり、かつkとjとの差が所定の閾値dよりも小さいことを考慮するため、畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータの値の全ての可能性が
【数1】
種であると決定してよい。ここで、d=k-j+1である。例えば、kとjとの間の差の所定の閾値dが7である場合、ネットワークパラメータの値は、28種ある可能性がある。28個の異なる数値を、5ビットのビット数を用いて区別してよい。したがって、異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルを構築することにより、固定小数点処理後のネットワークパラメータの記憶時に占有した記憶空間を減らすことができる。
【0041】
例示的に、固定小数点処理後のネットワークパラメータに対応する2進値を決定する場合、2logdビットを用いて固定小数点処理後のネットワークパラメータを符号化してよい。前のlogdビットは、1番目の2のべき乗を表してよく、後のlogdビットは、後の2のべき乗を表してよい。
【0042】
好ましい例において、該ステップS101は、プロセッサがメモリに記憶された対応する命令を呼び出すことにより実行されてもよく、プロセッサにより実行されるパラメータ固定小数点モジュール301により実行されてもよい。
【0043】
S102において、処理対象の画像を取得する。
【0044】
例示的に、処理対象の画像は、監視カメラで撮影された画像であってもよく、車載カメラで撮影された画像であってもよく、画像ライブラリに予め記憶された画像などであってもよく、本願の実施例は、処理対象の画像の取得方式を限定しない。
【0045】
好ましい例において、該ステップS102は、プロセッサがメモリに記憶された対応する命令を呼び出すことにより実行されてもよく、プロセッサにより実行される画像取得モジュール302により実行されてもよい。
【0046】
S103において、演算ユニットが畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理するように制御して、画像の処理結果を取得する。
【0047】
好ましい例において、該ステップS103は、プロセッサがメモリに記憶された対応する命令を呼び出すことにより実行されてもよく、プロセッサにより実行される画像処理モジュール303により実行されてもよい。
【0048】
例示的に、画像の処理結果は、オブジェクト検出/追跡結果、特徴抽出結果、分割結果、分類結果のうち少なくとも1つを含むが、これらに限定されない。
【0049】
例示的に、2進値を記憶する方式を用いて固定小数点処理後のネットワークパラメータを指示する場合、演算ユニットが、ネットワークパラメータに対して固定小数点処理が行われた畳み込みニューラルネットワークに基づいて画像を処理するように制御するステップは、S11及びS12を含んでよい。
【0050】
S11において、演算ユニットが2進値及び2進値マッピングテーブルに基づいて畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御する。
【0051】
例示的に、演算ユニットが記憶された2進値に基づいて2進値マッピングテーブルからルックアップすることにより畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するか、又は2進値マッピングテーブルからルックアップすることによりべき乗k及びjを決定することにより、固定小数点処理後のネットワークパラメータ2k+2jを決定するように制御してよい。
【0052】
S12において、畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理する。
【0053】
本願の実施例に係る画像処理方法は、演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うステップと、処理対象の画像を取得するステップと、演算ユニットが畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理するように制御して、画像の処理結果を取得するステップと、を含む。畳み込みニューラルネットワークのネットワークパラメータを固定小数点処理し、2のべき乗でネットワークパラメータを固定小数点処理して表すことにより、記憶空間の占有と演算過程におけるメモリ空間の占有を低減し、FPGAなどのハードウェアプラットフォームのリソースを節約することができる。同時に、2のべき乗でネットワークパラメータを表すことにより、演算複雑度を低減し、演算速度を向上させ、迅速でリアルタイムな応答を実現し、演算過程における消費電力を低減し、特に演算ユニットが、FPGAなどのハードウェアリソースが限られたハードウェアである場合、畳み込みニューラルネットワークがハードウェアに適用できないか又はハードウェア上で演算加速を実現できないという課題を解決する。
【0054】
例示的に、
図1に示す実施例を基に、本願の実施例は、さらに画像処理方法を提供し、
図2は、本願の実施例に係る画像処理方法の別のフローチャートである。
図2に示すように、画像処理方法は、S201~S204を含む。
【0055】
S201において、演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行う。
【0056】
S202において、トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む畳み込みニューラルネットワークをトレーニングすることにより、固定小数点処理後のネットワークパラメータを修正する。
【0057】
例示的に、トレーニングデータは、ラベルが付けられたデータであってよい。例えば、畳み込みニューラルネットワークを用いて画像における顔検出又は走行可能領域の検出を行う場合、トレーニングデータは、顔領域又は走行可能領域がラベル付けられた画像である。
【0058】
例示的に、畳み込みニューラルネットワークのネットワークパラメータのトレーニング、固定小数点及び再トレーニング過程を複数回実行することにより、ネットワークパラメータの正確性を向上させることができる。
【0059】
S203において、処理対象の画像を取得する。
【0060】
S204において、演算ユニットが畳み込みニューラルネットワークの修正後のネットワークパラメータに基づいて画像を処理するように制御して、画像の処理結果を取得する。
【0061】
本実施例に係る画像処理方法において、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行った後、トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む畳み込みニューラルネットワークを再トレーニングすることにより、固定小数点処理後のネットワークパラメータを修正し、畳み込みニューラルネットワークのネットワークパラメータの正確性を向上させることができる。
【0062】
当業者であれば理解できるように、上記方法の実施例の全部又は一部のステップの実現は、プログラム命令に関連するハードウェアにより完了してよく、前述のプログラムは、コンピュータ可読記憶媒体に記憶されてよく、該プログラムが実行されると、上記方法の実施例を含むステップを実行し、また、前述の記憶媒体は、ROM、RAM、磁気ディスク、又は光ディスクなどの、プログラムコードを記憶可能な様々な媒体を含む。
【0063】
図3は、本願の実施例に係る画像処理装置の概略構成図である。
図3に示すように、画像処理装置は、以下を含む:
【0064】
パラメータ固定小数点モジュール301は、演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行う。
【0065】
固定小数点処理後のネットワークパラメータは、2のべき乗で表された値である。
【0066】
画像取得モジュール302は、処理対象の画像を取得する。
【0067】
画像処理モジュール303は、演算ユニットが畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理するように制御して、画像の処理結果を取得する。
【0068】
好ましくは、固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、Mは、1よりも大きい整数である。
【0069】
好ましくは、Mは、2に等しい。
【0070】
好ましくは、固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗のとの和であり、k及びjは、いずれも整数であり、kは、jよりも大きく、かつkとjとの差は、所定の閾値よりも小さい。
【0071】
例示的に、
図3に示す実施例を基に、本願の実施例は、さらに画像処理装置を提供する。
図4は、本願の実施例2に係る画像処理装置の概略構成図である。
図4に示すように、画像処理装置は、
k及びj、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、固定小数点処理後のネットワークパラメータに対応する2進値を取得し、固定小数点処理後のネットワークパラメータに対応する2進値を記憶する記憶モジュール304をさらに含む。
【0072】
好ましくは、上記
図4に示す実施例における画像処理モジュール303は、
演算ユニットが2進値及び2進値マッピングテーブルに基づいて畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御し、
畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理する。
【0073】
例示的に、
図4に示すように、画像処理装置は、
演算ユニットが畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて画像を処理するように制御する前に、トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む畳み込みニューラルネットワークをトレーニングすることにより、固定小数点処理後のネットワークパラメータを修正するトレーニングモジュール305をさらに含む。
【0074】
好ましくは、画像の処理結果は、オブジェクト検出/追跡結果、特徴抽出結果、分割結果、分類結果のうち少なくとも1つを含むが、これらに限定されない。
【0075】
本開示の実施例に係る画像処理装置のいずれか1つの実施例の動作過程、設定方式及び対応する技術的効果については、いずれも本開示の上記対応する方法の実施例の具体的な説明を参照することができ、紙数に限りがあるため、ここで説明を省略する。
【0076】
本願の実施例の別の態様は、上記実施例における画像処理方法を用い、同一又は類似の技術的特徴及び技術的効果を有するインテリジェント運転システムをさらに提供する。
【0077】
図5は、本願の実施例に係るインテリジェント運転システムの概略構成図である。
図5に示すように、インテリジェント運転システムは、車載カメラ501、畳み込みニューラルネットワークサブシステム502及び制御サブシステム503を含み、制御サブシステム503は、
畳み込みニューラルネットワークサブシステム502を実行する演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行い、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であり、
畳み込みニューラルネットワークサブシステム502が、畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて、車載カメラ501によって取得された車両走行路面の画像を処理するように制御して、画像の処理結果を取得し、
画像の処理結果に基づいて車両のインテリジェント運転を行う。
【0078】
例示的に、インテリジェント運転は、運転支援、自動運転、並びに運転支援及び自動運転などの複数の運転モードの間の切り替えなどの複数の場合を含むが、これらに限定されない。
【0079】
好ましくは、固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、Mは、1よりも大きい整数である。
【0080】
好ましくは、Mは、2に等しい。
【0081】
好ましくは、固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗のとの和であり、k及びjは、いずれも整数であり、kは、jよりも大きく、かつkとjとの差は、所定の閾値よりも小さい。
【0082】
好ましくは、制御サブシステム503はさらに、k及びj、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、固定小数点処理後のネットワークパラメータに対応する2進値を取得する。
【0083】
これに対応して、インテリジェント運転システムは、記憶サブシステム504をさらに含み、
記憶サブシステム504は、固定小数点処理後のネットワークパラメータに対応する2進値を記憶する。
【0084】
好ましくは、制御サブシステム503は、
畳み込みニューラルネットワークサブシステムが記憶サブシステムに記憶された2進値及び2進値マッピングテーブルに基づいて畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御し、
畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて、車載カメラによって取得された車両走行路面の画像を処理して、画像の処理結果を取得する。
【0085】
好ましくは、インテリジェント運転システムは、トレーニングサブシステム505をさらに含み、
トレーニングサブシステム505は、トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む畳み込みニューラルネットワークをトレーニングすることにより、固定小数点処理後のネットワークパラメータを修正する。
【0086】
好ましくは、画像の処理結果は、ナンバープレート認識結果、走行可能領域検出結果、車線検出結果、車線属性検出結果、車載カメラ姿勢検出結果のうち少なくとも1つを含むが、これらに限定されない。
【0087】
本願の実施例の別の態様に係るFPGAに基づく車載演算プラットフォームは、上記実施例における画像処理方法を用い、同一又は類似の技術的特徴及び技術的効果を有する。
【0088】
図6は、本願の実施例に係るFPGAに基づく車載演算プラットフォームの概略構成図である。
図6に示すように、FPGAに基づく車載演算プラットフォームは、プロセッサ601、外部メモリ602、メモリ603及びFPGA演算ユニット604を含み、
外部メモリ602にニューラルネットワークの固定小数点処理後のネットワークパラメータが記憶されるか、又はニューラルネットワークの固定小数点処理後のネットワークパラメータに対応する2進値と、異なるネットワークパラメータのべき乗値に対応する2進値を指示するルックアップテーブルとが記憶され、固定小数点処理後のネットワークパラメータは、2のべき乗で表された値であり、
プロセッサ601は、ニューラルネットワークの固定小数点処理後のネットワークパラメータをメモリ603に読み込み、メモリ上のデータ及び処理対象の画像情報をFPGA演算ユニット604に入力するか、又はプロセッサ601は、2進値及びルックアップテーブルに基づいてルックアップして取得された固定小数点処理後のネットワークパラメータをメモリ603に読み込み、メモリ603上のデータ及び処理対象の画像情報をFPGA演算ユニット604に入力し、
FPGA演算ユニット604は、処理対象の画像情報と固定小数点処理後のネットワークパラメータとに基づいてシフト演算結果を取得して、複数回の結果を加算演算して、画像の処理結果を取得する。
【0089】
好ましくは、固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、Mは、1よりも大きい整数である。
【0090】
好ましくは、Mは、2に等しい。
【0091】
好ましくは、固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗のとの和であり、k及びjは、いずれも整数であり、kは、jよりも大きく、かつkとjとの差は、所定の閾値よりも小さい。
【0092】
好ましくは、外部メモリ602にk及びjが記憶され、
ルックアップテーブルは、異なるkとjの値の組み合わせに対応する2進値を指示する。
【0093】
好ましくは、画像の処理結果は、オブジェクト検出/追跡結果、特徴抽出結果、分割結果、分類結果のうち少なくとも1つを含むが、これらに限定されない。
【0094】
本願の実施例の別の態様は、さらに電子機器を提供し、
図7は、本願の実施例に係る電子機器の概略構成図であり、
図7に示すように、該電子機器は、プロセッサ702及びメモリ701を含み、
メモリ701は、上記いずれか1つの実施例に係る画像処理方法に対応する動作をプロセッサ702に実行させる少なくとも1つの実行可能命令を記憶する。
【0095】
例示的に、
図7に示すように、電子機器は、上記いずれか1つの実施例における畳み込みニューラルネットワークの演算を実現する演算ユニット703をさらに含む。
【0096】
本願の実施例の別の態様に係るコンピュータ可読記憶媒体には、上記いずれか1つの実施例に係る画像処理方法のステップを実行するコンピュータプログラムが記憶されている。
【0097】
本実施例における装置と前述の実施例における方法は、同一の発明概念に基づく2つの態様であり、前に方法の実施過程を詳細に説明したため、当業者は、前述の説明に基づいて本実施例におけるシステムの構造及び実施過程を明らかに理解することができ、明細書の簡潔さのために、ここで説明を省略する。
【0098】
本願に係るいくつかの実施例において、開示されたシステム、装置及び方法は、他の形態で実現されてもよいことが理解されたい。例えば、以上に説明された装置の実施例は、例示的なものに過ぎず、例えば、ユニットの分割は、ロジック機能の分割に過ぎず、実際に実現する時に、別の分割形態であってもよく、例えば複数のユニット又はコンポーネントは、組み合わせられてもよく、又は別のシステムに統合されてもよく、或は、一部の特徴は、省略されるか、又は実行されなくてもよい。また、表示又は検討された同士間の結合又は直接結合又は通信接続は、いくつかのインタフェース、装置又はユニットを介する間接結合又は通信接続であってもよく、電気的、機械的又は他の形態であってもよい。
【0099】
本願の明細書、特許請求の範囲及び上記図面における用語「第1」、「第2」、「第3」、「第4」などは、類似した対象を区別するためのものであり、必ずしも特定の順序又は優先順位を説明するためのものではない。ここで説明した実施例が、ここで図示又は説明した内容以外の順序でも実施できるように、このように使用されたデータは、適宜に入れ替えてもよいことを理解されたい。また、用語「含む」、「備える」及びそれらのいかなる変形は、非排他的な包含をカバーすることを意図し、例えば、一連のステップ又はユニットを含む過程、方法、システム、製品又は機器は、明確に示されたステップ又はユニットに限定されず、明確に示されていないか又はこれらの過程、方法、システム、製品又は機器に固有の、他のステップ又はユニットを含んでもよい。
【0100】
本明細書における各実施例は、いずれもプログレッシブな方式で説明され、各実施例について重点的に説明されているのは、いずれも他の実施例との相違点であり、各実施例の間の同一又は類似の部分については互いに参照すればよい。システムの実施例は、方法の実施例に基本的に対応するため、比較的簡単に説明され、関連部分については方法の実施例の一部の説明を参照すればよい。
【0101】
本願の方法及び装置は、様々な形態で実現されてよい。例えば、ソフトウェア、ハードウェア及びファームウェア、又はソフトウェア、ハードウェア及びファームウェアの任意の組み合わせによって本願の方法及び装置を実現することができる。上記方法のステップのための上記順序は、説明するためのものに過ぎず、本願の方法のステップは、他の方式で特に説明しない限り、以上で具体的に説明された順序に限定されない。また、いくつかの実施例において、さらに本願は、記録媒体に記録されたプログラムとして実施することができ、これらのプログラムは、本願に係る方法を実現するための機械可読命令を含む。したがって、本願は、本願に係る方法を実行するためのプログラムが記憶された記録媒体も含む。
【0102】
本願の説明は、例示及び説明のために提示されたものであり、網羅的なものではなく、もしくは本願を開示された形式に限定するものではない。多くの修正及び変形は、当業者にとって明らかである。実施例は、本願の原理及び実際の適用をよりよく説明し、かつ当業者に本願を理解させて、特定用途に適した、様々な修正を加えた様々な実施例を設計可能にするように選択され説明されたものである。
【手続補正書】
【提出日】2021-06-24
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うステップであって、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であるステップと、
処理対象の画像を取得するステップと、
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御して、前記画像の処理結果を取得するステップとを含む、ことを特徴とする画像処理方法。
【請求項2】
前記固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、前記Mは、1よりも大きい整数である、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、前記k及び前記jは、いずれも整数であり、前記kは、前記jよりも大きく、かつ前記kと前記jとの差は、所定の閾値よりも小さい、ことを特徴とする請求項1又は
2に記載の方法。
【請求項4】
前記畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行った後、
前記k及び前記j、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、前記固定小数点処理後のネットワークパラメータに対応する2進値を取得するステップと、
前記固定小数点処理後のネットワークパラメータに対応する2進値を記憶するステップとをさらに含む、ことを特徴とする請求項
3に記載の方法。
【請求項5】
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御するステップは、
前記演算ユニットが前記2進値及び前記2進値マッピングテーブルに基づいて前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御するステップと、
前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するステップとを含む、ことを特徴とする請求項
4に記載の方法。
【請求項6】
前記演算ユニットが固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御する前に、
トレーニングデータを用いて、固定小数点処理後のネットワークパラメータを含む畳み込みニューラルネットワークをトレーニングすることにより、前記固定小数点処理後のネットワークパラメータを修正するステップをさらに含む、ことを特徴とする請求項1~
5のいずれか一項に記載の方法。
【請求項7】
演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行うパラメータ固定小数点モジュールであって、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であるパラメータ固定小数点モジュールと、
処理対象の画像を取得する画像取得モジュールと、
前記演算ユニットが前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて前記画像を処理するように制御して、前記画像の処理結果を取得する画像処理モジュールとを含む、ことを特徴とする画像処理装置。
【請求項8】
車載カメラ、畳み込みニューラルネットワークサブシステム及び制御サブシステムを含み、
前記制御サブシステムは、
前記畳み込みニューラルネットワークサブシステムを実行する演算ユニットの固定小数点ビット幅のハードウェアリソース量に基づいて、畳み込みニューラルネットワークの浮動小数点で表されたネットワークパラメータに対して固定小数点処理を行い、固定小数点処理後のネットワークパラメータが2のべき乗で表された値であり、
前記畳み込みニューラルネットワークサブシステムが、前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて、前記車載カメラによって取得された車両走行路面の画像を処理するように制御して、前記画像の処理結果を取得し、
前記画像の処理結果に基づいて車両のインテリジェント運転を行う、ことを特徴とするインテリジェント運転システム。
【請求項9】
前記固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、前記Mは、1よりも大きい整数である、ことを特徴とする請求項
8に記載のシステム。
【請求項10】
前記固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、前記k及び前記jは、いずれも整数であり、前記kは、前記jよりも大きく、かつ前記kと前記jとの差は、所定の閾値よりも小さい、ことを特徴とする請求項
8又は
9に記載のシステム。
【請求項11】
前記制御サブシステムはさらに、
前記k及び前記j、並びに異なるkとjの値の組み合わせに対応する2進値を指示する2進値マッピングテーブルに基づいて、前記固定小数点処理後のネットワークパラメータに対応する2進値を取得し、
前記インテリジェント運転システムは、
記憶サブシステムをさらに含み、
前記記憶サブシステムは、前記固定小数点処理後のネットワークパラメータに対応する2進値を記憶する、ことを特徴とする請求項
10に記載のシステム。
【請求項12】
前記制御サブシステムは、
前記畳み込みニューラルネットワークサブシステムが前記記憶サブシステムに記憶された2進値及び2進値マッピングテーブルに基づいて前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータを決定するように制御し、
前記畳み込みニューラルネットワークの固定小数点処理後のネットワークパラメータに基づいて、前記車載カメラによって取得された車両走行路面の画像を処理して、前記画像の処理結果を取得する、ことを特徴とする請求項
11に記載のシステム。
【請求項13】
プロセッサ、外部メモリ、メモリ及びFPGA演算ユニットを含み、
前記外部メモリにニューラルネットワークの固定小数点処理後のネットワークパラメータが記憶されるか、又は前記ニューラルネットワークの固定小数点処理後のネットワークパラメータに対応する2進値と、異なるネットワークパラメータのべき乗値に対応する2進値を指示するルックアップテーブルとが記憶され、
固定小数点処理後のネットワークパラメータは、2のべき乗で表された値であり、
前記プロセッサは、前記ニューラルネットワークの固定小数点処理後のネットワークパラメータを前記メモリに読み込み、前記メモリ上のデータ及び処理対象の画像情報を前記FPGA演算ユニットに入力するか、
又は前記プロセッサは、前記2進値及び前記ルックアップテーブルに基づいてルックアップして取得された固定小数点処理後のネットワークパラメータを前記メモリに読み込み、前記メモリ上のデータ及び処理対象の画像情報を前記FPGA演算ユニットに入力し、
前記FPGA演算ユニットは、前記処理対象の画像情報と固定小数点処理後のネットワークパラメータとに基づいてシフト演算結果を取得して、複数回の結果を加算演算して、前記画像の処理結果を取得する、ことを特徴とするFPGAに基づく車載演算プラットフォーム。
【請求項14】
前記固定小数点処理後のネットワークパラメータは、M個の2のべき乗の和であり、前記Mは、1よりも大きい整数である、ことを特徴とする請求項
13に記載のプラットフォーム。
【請求項15】
前記固定小数点処理後のネットワークパラメータは、2のk乗と2のj乗との和であり、前記k及び前記jは、いずれも整数であり、前記kは、前記jよりも大きく、かつ前記kと前記jとの差は、所定の閾値よりも小さい、ことを特徴とする請求項
13又は
14に記載のプラットフォーム。
【請求項16】
前記外部メモリに前記k及び前記jが記憶され、
前記ルックアップテーブルは、異なるkとjの値の組み合わせに対応する2進値を指示する、ことを特徴とする請求項
15に記載のプラットフォーム。
【請求項17】
プロセッサ及びメモリを含み、
前記メモリは、請求項1~
6のいずれか一項に記載の画像処理方法に対応する動作を前記プロセッサに実行させる少なくとも1つの実行可能命令を記憶する、ことを特徴とする電子機器。
【請求項18】
請求項1~
6のいずれか一項に記載の画像処理方法のステップを実行するコンピュータプログラムが記憶されている、ことを特徴とするコンピュータ可読記憶媒体。
【国際調査報告】