(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024000704
(43)【公開日】2024-01-09
(54)【発明の名称】画像生成方法、プログラム及び画像生成装置
(51)【国際特許分類】
G06T 7/49 20170101AFI20231226BHJP
D03C 19/00 20060101ALI20231226BHJP
G06T 1/00 20060101ALI20231226BHJP
【FI】
G06T7/49
D03C19/00 B
G06T1/00 500A
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022099559
(22)【出願日】2022-06-21
(71)【出願人】
【識別番号】304023994
【氏名又は名称】国立大学法人山梨大学
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【弁理士】
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【弁理士】
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】豊浦 正広
【テーマコード(参考)】
5B057
5L096
【Fターム(参考)】
5B057AA01
5B057BA02
5B057CA08
5B057CA12
5B057CA16
5B057CB02
5B057CB06
5B057CB12
5B057CB16
5B057CC01
5B057CD08
5B057CE06
5B057CE12
5L096AA07
5L096BA03
5L096BA18
5L096CA01
5L096DA01
5L096EA39
5L096EA43
5L096FA54
5L096FA59
5L096FA66
5L096GA10
5L096GA51
5L096GA55
5L096JA07
(57)【要約】
【課題】織物パターン画像に内在する可能性がある不具合を取り除くことを容易にする、画像生成方法、プログラム及び画像生成装置を提供することを目的としている。
【解決手段】出力パターン画像生成ステップを備え、前記出力パターン画像生成ステップでは、損失関数を用いて織物パターン画像に補正処理を行うことで、前記織物パターン画像から出力パターン画像を生成し、前記織物パターン画像の各画素値は、経糸及び緯糸の上下関係が特定されるように第1及び第2画素値のうちの一方の画素値に二値化され、前記損失関数の値は、画素ごとに算出され、前記補正処理では、補正前後において前記損失関数の値が低下する画素が、補正対象の画素となり、前記補正対象の画素の画素値は、第1及び第2画素値のうちの一方の画素値から他方の画素値へ反転される、画像生成方法が提供される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
出力パターン画像生成ステップを備え、
前記出力パターン画像生成ステップでは、損失関数を用いて織物パターン画像に補正処理を行うことで、前記織物パターン画像から出力パターン画像を生成し、
前記織物パターン画像の各画素値は、経糸及び緯糸の上下関係が特定されるように第1及び第2画素値のうちの一方の画素値に二値化され、
前記損失関数の値は、画素ごとに算出され、
前記補正処理では、補正前後において前記損失関数の値が低下する画素が、補正対象の画素となり、
前記補正対象の画素の画素値は、第1及び第2画素値のうちの一方の画素値から他方の画素値へ反転される、画像生成方法。
【請求項2】
請求項1に記載の方法であって、
前記補正処理は、補正前パターン画像から補正後パターン画像を生成することを繰り返し、
前記補正後パターン画像は、前記補正前パターン画像うち前記補正対象の画素の画素値が反転した画像であり、
繰り返しの初回の前記補正処理では、前記補正前パターン画像が前記織物パターン画像であり、
繰り返しの最終回の前記補正処理では、前記補正後パターン画像が前記出力パターン画像である、方法。
【請求項3】
請求項2に記載の方法であって、
前記補正処理における前記補正対象の画素は、補正前後における前記損失関数の値の差分が損失関数閾値より大きく、
前記補正処理は、前記損失関数の値の差分が前記損失関数閾値より大きい画素がなくなるまで繰り返す、方法。
【請求項4】
請求項1~請求項3の何れか1つに記載の方法であって、
前記補正処理における前記補正対象の画素は、補正前後における前記損失関数の値の差分が最大の画素である、方法。
【請求項5】
請求項1に記載の方法であって、
設定ステップを更に備え、
前記出力パターン画像生成ステップの前記補正処理では、複数の損失関数が用いられ、
各前記損失関数の値は、画素ごとに算出され、
前記設定ステップは、前記出力パターン画像生成ステップの前に行われ、且つ、前記設定ステップでは、各前記損失関数の重み係数を設定可能であり、
前記出力パターン画像生成ステップの前記補正処理では、補正前後における前記複数の損失関数の値の総和が低下する画素が、前記補正対象の画素となる、方法。
【請求項6】
請求項5に記載の方法であって、
前記設定ステップでは、前記織物パターン画像中の注目画素の画素値を反転させたときにおいて、前記複数の損失関数の値の総和の差分が損失関数閾値より大きい画素を強調表示する、方法。
【請求項7】
請求項1~3,5,6の何れか1つに記載の方法であって、
入力画像取得ステップと織物パターン画像生成ステップとを更に備え、
前記入力画像取得ステップでは、入力画像を取得し、
前記織物パターン画像生成ステップでは、マスク処理を行うことで前記入力画像から前記織物パターン画像を生成し、
前記マスク処理では、前記マスク処理の対象の画像の各画素の画素値に対してマスクを用いて閾値処理をし、
前記マスクには、前記入力画像の各画素に対応付けられた各閾値が予め設定されている、方法。
【請求項8】
請求項7に記載の方法であって、
前記損失関数は、第1損失関数が加味されており、
第1損失関数は、画素値差分に基づいており、
前記画素値差分は、補正前後における画素値の差分に基づいている、方法。
【請求項9】
請求項7に記載の方法であって、
前記損失関数は、第4損失関数が加味されており、
第4損失関数は、閾値差に基づいており、
前記閾値差は、補正後マスクの補正閾値と、前記織物パターン画像生成ステップで用いられる前記マスクの前記閾値との差分に基づいており、
前記補正後マスクの前記補正閾値は、前記マスク処理をしたときに、前記出力パターン画像生成ステップの前記補正処理で補正されたパターン画像が生成されるように設定されている、方法。
【請求項10】
請求項1~3,5,6の何れか1つに記載の方法であって、
前記損失関数は、第2損失関数が加味されており、
第2損失関数は、画素間距離に基づいており、
前記画素間距離は、注目画素と反転画素との間にある画素の数に基づいており、
前記注目画素と前記反転画素との間にある画素の画素値は、前記反転画素の画素値とは異なる、方法。
【請求項11】
請求項1~3,5,6の何れか1つに記載の方法であって、
前記損失関数は、第3損失関数が加味されており、
第3損失関数は、交差回数に基づいており、
前記交差回数は、注目画素を含む予め定められた範囲内において、画素値が反転している対をなす画素の数に基づいている、方法。
【請求項12】
請求項1~3,5,6の何れか1つに記載の方法であって、
前記損失関数は、第5損失関数が加味されており、
第5損失関数は、自己相関度に基づいており、
前記自己相関度は、第1画像領域内の画素と、第2画像領域内の画素とのうち画素値が異なる画素の数に基づいており、
第1画像領域は、注目画素を含む予め定められた領域内の画像であり、
第2画像領域は、第1画像領域と同じ形状の領域であって第1画像領域から予め定められた距離内に位置する領域である、方法。
【請求項13】
コンピュータに請求項1~3,5,6の何れか1つに記載の画像生成方法を実行させるためのプログラム。
【請求項14】
出力パターン画像生成部を備え、
前記出力パターン画像生成部は、損失関数を用いて織物パターン画像に補正処理を行うことで、前記織物パターン画像から出力パターン画像を生成するように構成され、
前記織物パターン画像の各画素値は、経糸及び緯糸の上下関係が特定されるように第1及び第2画素値のうちの一方の画素値に二値化され、
前記損失関数の値は、画素ごとに算出され、
前記補正処理では、補正前後において前記損失関数の値が低下する画素が、補正対象の画素となり、
前記補正対象の画素の画素値は、第1及び第2画素値のうちの一方の画素値から他方の画素値へ反転される、画像生成装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成方法、プログラム及び画像生成装置に関する。
【背景技術】
【0002】
織物は、経糸と緯糸を上下させて織ることで模様が表現される。そして、経糸と緯糸を組み合わせて平織や綾織等の基本組織で形成した模様は、織物パターンと呼ばれる。この織物パターンのデザインは、職人により手作業で行われていたため、写真やイラスト等のデジタルデータ(入力画像)を用いて織物のデザインを可能とした技術が提案されている(非特許文献1参照)。非特許文献1に記載の技術では、ディザマスクを用いて入力画像の各画素の画素値を二値化し、織物パターン(織物パターン画像)を半自動的に生成することを可能としている。なお、二値化された各画素は、経糸及び緯糸の格子点に対応しており、経糸と緯糸の表裏の関係を特定している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】M. Toyoura et al., "Generating Jacquard Fabric Pattern with Visual Impressions," IEEE Trans. Industrial Informatics, Vol.15, No.8, pp.4536-4544 (2019)
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1における織物パターン(織物パターン画像)を用いて実際に織物を製造すると、織物パターン自体に起因する不具合が織物に発生する場合がある。このような不具合を取り除くには、織物バターンを目視し、不具合を生じさせ得る画素を見極めて適宜反転させる等の作業が必要となる。
【0005】
本発明はこのような事情に鑑みてなされたものであり、織物パターン画像に内在する可能性がある不具合を取り除くことを容易にする、画像生成方法、プログラム及び画像生成装置を提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明によれば、出力パターン画像生成ステップを備え、前記出力パターン画像生成ステップでは、損失関数を用いて織物パターン画像に補正処理を行うことで、前記織物パターン画像から出力パターン画像を生成し、前記織物パターン画像の各画素値は、経糸及び緯糸の上下関係が特定されるように第1及び第2画素値のうちの一方の画素値に二値化され、前記損失関数の値は、画素ごとに算出され、前記補正処理では、補正前後において前記損失関数の値が低下する画素が、補正対象の画素となり、前記補正対象の画素の画素値は、第1及び第2画素値のうちの一方の画素値から他方の画素値へ反転される、画像生成方法が提供される。
【0007】
本発明によれば、出力パターン画像生成ステップにおいて、損失関数を用いて織物パターン画像に補正処理を行うことで出力パターン画像を生成することができる。つまり、作業者による目視や技術・経験に頼らなくても、不具合が取り除かれた出力パターン画像を生成することができ、不具合を取り除くことが容易になっている。
【0008】
以下、本発明の種々の実施形態を例示する。以下に示す実施形態は互いに組み合わせ可能である。
(1)出力パターン画像生成ステップを備え、前記出力パターン画像生成ステップでは、損失関数を用いて織物パターン画像に補正処理を行うことで、前記織物パターン画像から出力パターン画像を生成し、前記織物パターン画像の各画素値は、経糸及び緯糸の上下関係が特定されるように第1及び第2画素値のうちの一方の画素値に二値化され、前記損失関数の値は、画素ごとに算出され、前記補正処理では、補正前後において前記損失関数の値が低下する画素が、補正対象の画素となり、前記補正対象の画素の画素値は、第1及び第2画素値のうちの一方の画素値から他方の画素値へ反転される、画像生成方法。
(2)(1)に記載の方法であって、前記補正処理は、補正前パターン画像から補正後パターン画像を生成することを繰り返し、前記補正後パターン画像は、前記補正前パターン画像うち前記補正対象の画素の画素値が反転した画像であり、繰り返しの初回の前記補正処理では、前記補正前パターン画像が前記織物パターン画像であり、繰り返しの最終回の前記補正処理では、前記補正後パターン画像が前記出力パターン画像である、方法。
(3)(2)に記載の方法であって、前記補正処理における前記補正対象の画素は、補正前後における前記損失関数の値の差分が損失関数閾値より大きく、前記補正処理は、前記損失関数の値の差分が前記損失関数閾値より大きい画素がなくなるまで繰り返す、方法。
(4)(1)~(3)の何れか1つに記載の方法であって、前記補正処理における前記補正対象の画素は、補正前後における前記損失関数の値の差分が最大の画素である、方法。
(5)(1)に記載の方法であって、設定ステップを更に備え、前記出力パターン画像生成ステップの前記補正処理では、複数の損失関数が用いられ、各前記損失関数の値は、画素ごとに算出され、前記設定ステップは、前記出力パターン画像生成ステップの前に行われ、且つ、前記設定ステップでは、各前記損失関数の重み係数を設定可能であり、前記出力パターン画像生成ステップの前記補正処理では、補正前後における前記複数の損失関数の値の総和が低下する画素が、前記補正対象の画素となる、方法。
(6)(5)に記載の方法であって、前記設定ステップでは、前記織物パターン画像中の注目画素の画素値を反転させたときにおいて、前記複数の損失関数の値の総和の差分が損失関数閾値より大きい画素を強調表示する、方法。
(7)(1)~(6)の何れか1つに記載の方法であって、入力画像取得ステップと織物パターン画像生成ステップとを更に備え、前記入力画像取得ステップでは、入力画像を取得し、前記織物パターン画像生成ステップでは、マスク処理を行うことで前記入力画像から前記織物パターン画像を生成し、前記マスク処理では、前記マスク処理の対象の画像の各画素の画素値に対してマスクを用いて閾値処理をし、前記マスクには、前記入力画像の各画素に対応付けられた各閾値が予め設定されている、方法。
(8)(7)に記載の方法であって、前記損失関数は、第1損失関数が加味されており、第1損失関数は、画素値差分に基づいており、前記画素値差分は、補正前後における画素値の差分に基づいている、方法。
(9)(7)又は(8)に記載の方法であって、前記損失関数は、第4損失関数が加味されており、第4損失関数は、閾値差に基づいており、前記閾値差は、補正後マスクの補正閾値と、前記織物パターン画像生成ステップで用いられる前記マスクの前記閾値との差分に基づいており、前記補正後マスクの前記補正閾値は、前記マスク処理をしたときに、前記出力パターン画像生成ステップの前記補正処理で補正されたパターン画像が生成されるように設定されている、方法。
(10)(1)~(9)の何れか1つに記載の方法であって、前記損失関数は、第2損失関数が加味されており、第2損失関数は、画素間距離に基づいており、前記画素間距離は、注目画素と反転画素との間にある画素の数に基づいており、前記注目画素と前記反転画素との間にある画素の画素値は、前記反転画素の画素値とは異なる、方法。
(11)(1)~(10)の何れか1つに記載の方法であって、前記損失関数は、第3損失関数が加味されており、第3損失関数は、交差回数に基づいており、前記交差回数は、注目画素を含む予め定められた範囲内において、画素値が反転している対をなす画素の数に基づいている、方法。
(12)(1)~(11)の何れか1つに記載の方法であって、前記損失関数は、第5損失関数が加味されており、第5損失関数は、自己相関度に基づいており、前記自己相関度は、第1画像領域内の画素と、第2画像領域内の画素とのうち画素値が異なる画素の数に基づいており、第1画像領域は、注目画素を含む予め定められた領域内の画像であり、第2画像領域は、第1画像領域と同じ形状の領域であって第1画像領域から予め定められた距離内に位置する領域である、方法。
(13)コンピュータに(1)~(12)の何れか1つに記載の画像生成方法を実行させるためのプログラム。
(14)出力パターン画像生成部を備え、前記出力パターン画像生成部は、損失関数を用いて織物パターン画像に補正処理を行うことで、前記織物パターン画像から出力パターン画像を生成するように構成され、前記織物パターン画像の各画素値は、経糸及び緯糸の上下関係が特定されるように第1及び第2画素値のうちの一方の画素値に二値化され、前記損失関数の値は、画素ごとに算出され、前記補正処理では、補正前後において前記損失関数の値が低下する画素が、補正対象の画素となり、前記補正対象の画素の画素値は、第1及び第2画素値のうちの一方の画素値から他方の画素値へ反転される、画像生成装置。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施形態に係る画像生成装置1を含む織物製造システム100の機能ブロック図である。
【
図2】
図2は、
図1に示す出力パターン画像生成部4の機能ブロック図であって、変数設定処理時におけるデータの流れを示している。
【
図3】
図3は、
図1に示す出力パターン画像生成部4の機能ブロック図であって、補正処理時におけるデータの流れを示している。
【
図4】
図4Aは、入力画像d1の一例である。
図4Bは、
図4Aに示す入力画像d1から生成される織物パターン画像d4の一例である。
【
図5】
図5は、
図4Bに示す織物パターン画像d4から生成される出力パターン画像d5の一例である。
【
図6】
図6は、
図4Bに示す織物パターン画像d4から、
図5に示す出力パターン画像d5を生成するときにおいて、織物パターン画像d4のうち画素値を反転させる画素を模式的に示している。
【
図7】
図7は、入力画像の各画素の画素値(P)、マスク(ディザマスク)の各画素の閾値(M)、及び、織物パターン画像の各画素の画素値(O)の一例を示している。
【
図8】
図8は、織物パターン画像d4から参照パターン画像dTが生成されることを説明するための図である。
【
図9】
図9は、織物パターン画像d4から、順次、暫定パターン画像が生成されることを説明するための図である。
【
図10】
図10は、織物パターン画像d4から第1暫定パターン画像dn
1が生成されることを説明するための図である。
【
図11】
図11は、織物パターン画像d4及び第1暫定パターン画像dn
1から第1差分マトリクスSm
1が得られることを説明するための図である。
【
図12】
図12は、第1暫定パターン画像dn
1及び第2暫定パターン画像dn
2から第2差分マトリクスSm
2が得られることを説明するための図である。
【
図13】
図13Aは、変数設定処理時におけるフィルタ部4Cのデータ処理の説明図である。
図13Bは、補正処理時におけるフィルタ部4Cのデータ処理の説明図である。
【
図14】
図14Aは、第2損失関数の意義を説明するための模式図である。
図14Bは、各画素が二値化された画像と当該画像中の注目画素ptとを模式的に示している。
図14Cは、
図14Bに示す注目画素ptにおける第2損失関数の右方向成分の算出方法の説明図である。
【
図15】
図15Aは、第3損失関数の意義を説明するための模式図である。
図15Bは、各画素の反転数(画素値が異なる隣接画素の数)を示している。
【
図16】
図16Aは、織物パターン画像d4中に、注目画素ptや周辺画素p1~周辺画素p8を示した図である。
図16Bは、
図16Aに示す注目画素ptにおける第5損失関数の値の算出方法の説明図である。
【発明を実施するための形態】
【0010】
以下、図面を用いて本発明の実施形態について説明する。以下に示す実施形態中で示した各種特徴事項は、互いに組み合わせ可能である。また、各特徴事項について独立して発明が成立する。
【0011】
実施形態
1 全体構成説明
図1に示すように、織物製造システム100は、画像生成装置1と、出力装置20と、織物製造装置30とを備えている。画像生成装置1は、取得部2と、織物パターン画像生成部3と、出力パターン画像生成部4と、出力部5と、記憶部6とを備えている。
織物パターン画像生成部3は、前処理部3Aと、マトリクス生成部3Bと、二値化処理部3Cとを備えている。
また、出力パターン画像生成部4は、損失関数処理部4Aと、決定部4Bと、フィルタ部4Cと、設定部4Dとを備えている。また、
図2に示すように、損失関数処理部4Aは、第1算出部4A1と、第2算出部4A2と、第3算出部4A3と、第4算出部4A4と、第5算出部4A5とを有する。決定部4Bは、画素決定部4B1と、画像決定部4B2とを有する。
【0012】
上記の各構成要素は、ソフトウェアによって実現してもよく、ハードウェアによって実現してもよい。ソフトウェアによって実現する場合、CPUがコンピュータプログラムを実行することによって各種機能を実現することができる。プログラムは、内蔵の記憶部に格納してもよく、コンピュータ読み取り可能な非一時的な記録媒体に格納してもよい。また、外部の記憶部に格納されたプログラムを読み出し、いわゆるクラウドコンピューティングにより実現してもよい。ハードウェアによって実現する場合、ASIC、FPGA、又はDRPなどの種々の回路によって実現することができる。第1実施形態においては、様々な情報やこれを包含する概念を取り扱うが、これらは、0又は1で構成される2進数のビット集合体として信号値の高低によって表され、上記のソフトウェア又はハードウェアの態様によって通信や演算が実行され得るものである。
【0013】
出力装置20は、例えば、モニターやプリンター等の画像を出力可能な装置から構成される。ユーザーは、後述する入力画像d1、織物パターン画像d4、参照パターン画像dT及び出力パターン画像d5等の各種画像を出力装置20において目視で確認しながら、画像生成作業を進めることができる。
織物製造装置30は、出力パターン画像d5に基づいて、織物を織り上げることができるように構成されている。
【0014】
2 画像生成装置1の構成説明
画像生成装置1は、入力画像d1から織物パターン画像d4を生成する第1機能と、織物パターン画像d4から出力パターン画像d5を生成する第2機能とを有する。第1機能は、織物パターン画像生成部3で発揮され、第2機能は、出力パターン画像生成部4で発揮される。
【0015】
図4Aに示す入力画像d1のコンテンツは、特に限定されるものではなく、例えば、写真やイラスト等の各種のデジタル画像データを採用することができる。
図4Bに示す織物パターン画像d4は、織物製造装置30で織物を織るときに使用される、各画素が二値化された画像データである。なお、実施形態において、織物は、ジャカード織物である。ジャカード織物は、多数並列化された経糸に対して、緯糸を任意に上下させて織ることで、複雑な模様を織り出すことができる。織物パターン画像d4において、経糸と緯糸の上下関係は、格子点(経糸と緯糸とが交差する点)において上下関係を特定するための二値データによって定義される。実施形態において、織物パターン画像d4は、ジャカード組織図に対応する画像であり、また、織物パターン画像d4は、後述する前処理後画像d2を二値化処理したパターン画像である。二値データは、経糸と緯糸のうちのいずれかを表に出すかを示すデータである。織物の色は、経糸と緯糸が表に出る頻度や、経糸及び緯糸の色等に基づいて、表現される。
図5に示す出力パターン画像d5は、織物パターン画像d4に対して、後述の損失関数Lを用いた補正処理を行うことで生成される画像である。補正処理は、織物パターン画像d4の一部の画素の画素値を反転させる処理である。このため、出力パターン画像d5も、織物パターン画像d4と同様に、ジャカード組織図に対応する画像であり、また、各画素の画素値が二値化された画像である。なお、実施形態において、出力パターン画像d5は、織物パターン画像d4とは異なるとは限らない。つまり、織物パターン画像d4に補正処理がなされた結果、出力パターン画像d5が織物パターン画像d4とは一致しないことが多いが、損失関数の値の計算結果によっては、一致することもあり得る。
図5に示す出力パターン画像d5は、
図4に示す織物パターン画像d4について、
図6に示す画素の画素値(色)が変更(補正)されることで得られる。
【0016】
2-1 取得部2
取得部2は、入力画像d1や入力データdinを取得可能に構成されている。なお、入力データdinは入力装置(不図示)によって取得部2に取得され、入力装置は、例えばマウスやキーボード等の操作部に対応する。また、入力画像d1が記憶部6に予め格納されており、取得部2が記憶部6から入力画像d1を取得してもよい。入力データdinは、後述する重み係数等を設定するためのデータであり、設定部4Dを用いられる。
【0017】
2-2 織物パターン画像生成部3
織物パターン画像生成部3は、入力画像d1に基づいて織物パターン画像d4を生成することが可能である。換言すると、織物パターン画像生成部3は、入力画像d1を、織物製造装置30において織物を織り上げることができるような形式へ変換する機能(上述の第1機能)を有する。この機能は、公知となっている各種の方法(例えば、特開2015-212440号公報)を採用することができる。以下、織物パターン画像生成部3の機能の一例を説明する。
【0018】
実施形態では、織物パターン画像d4を生成するにあたり、グレースケール画像を白と黒の二値で表現するハーフトーニング法を用いる場合を一例として説明する。ハーフトーニング法とは、一定領域内の白と黒の画素の面積の割合を利用して階調を表現する方法である。また、実施形態では、組織的ディザ法を用いるものとして説明する。組織的ティザ法では、閾値が予め設定されたティザマスク(織物用閾値マトリクス)を用いて、画像を二値化処理する。
【0019】
2-2-1 前処理部3A
前処理部3Aでは、入力画像d1を、例えば256階調のグレースケール画像データに変換する機能を有する。これにより、前処理部3Aは、グレースケール画像データである前処理後画像d2を生成する。なお、階調数は、予め定められていてもよいし、ユーザーが適宜選択することができてもよい。この場合、前処理部3Aは、取得部2を介して入力装置から階調数を取得することができる。
【0020】
2-2-2 マトリクス生成部3B
マトリクス生成部3Bは、ティザマスクに対応する織物用閾値マトリクス(マトリクスデータd3)を生成する。
図7に示すように、織物用閾値マトリクスは、入力画像d1(前処理後画像d2)の各画素に対応付けられた各閾値が予め設定されている。つまり、織物用閾値マトリクスの行数及び列数は、入力画像d1(前処理後画像d2)のサイズに対応している。織物用閾値マトリクスは、前処理後画像d2を二値化処理した後の画像が織物組織(パターン画像)となるように作成されたマトリクスである。例えば、マトリクス生成部3Bは、織物用閾値サブマトリクスを複数配置することで織物用閾値マトリクスを作成することができる。織物用閾値サブマトリクスの行数及び列数は、任意に定めることができる。織物用閾値サブマトリクスにおける各成分には、前処理後画像d2を二値化処理するための閾値が設定される。そして、織物用閾値サブマトリクスの各成分の閾値は、ユーザーが適宜選択することが可能である。この場合、マトリクス生成部3Bは、取得部2を介して入力装置から各成分の閾値を取得することができる。
【0021】
2-3-3 二値化処理部3C
二値化処理部3Cは、マトリクス生成部3Bが作成した織物用閾値マトリクス(マトリクスデータd3)を用いて、前処理後画像d2(マスク処理の対象の画像の一例)を二値化処理する機能を有する。換言すると、二値化処理部3Cは、前処理後画像d7に織物用閾値マトリクスを用いたマスク処理を行うことで、入力画像d1(前処理後画像d2)から織物パターン画像d4を生成する。前処理後画像d2の任意の画素の画素値が織物用閾値マトリクスの対応する成分の閾値を超えている場合には、この画素は白(二値化データは1)と処理される。また、前処理後画像d2の任意の画素の画素値が織物用閾値マトリクスの対応する成分の閾値を未満である場合には、この画素は黒(二値化データは0)と処理される。前処理後画像d2の任意の画素の画素値が織物用閾値マトリクスの対応する成分の閾値と同じ値である場合には、この画素は黒又は白と処理される。黒と処理されるか、白と処理されるかについては、二値化処理部3Cにおいて予め定められている。
【0022】
2-3 出力パターン画像生成部4
出力パターン画像生成部4は、損失関数Lを用いて織物パターン画像d4に補正処理を行い、織物パターン画像d4から出力パターン画像d5を生成するように構成されている。出力パターン画像生成部4が実行可能な処理には、変数設定処理と、上述の補正処理とが含まれる。出力パターン画像生成部4は、変数設定処理を実行して後述する重み係数等の変数を設定した後に、補正処理を実施して織物パターン画像d4に補正処理を行い、最終的に出力パターン画像d5を生成する。
【0023】
・変数設定処理
補正処理では、以下の式(6)の損失関数Lに基づいて画素値を反転させる画素が適宜決定され、出力パターン画像d5が生成される。これにあたり、損失関数Lは複数の変数(後述する重み係数等)を有しており、当該変数は、予め、ユーザーの意向に沿うようにユーザーに適切化される。つまり、変数設定処理は、複数の変数を設定する処理である。変数設定処理は、後述の決定処理1を含んでいる。
【0024】
具体的には、式(6)の損失関数Lは、以下の式(1)~式(5)に係る第1~第5損失関数の値LI,LJ,LD,LM,LCに、各重み係数wI,wJ,wD,wM,wCを乗じた値の総和で表される。また、第2損失関数では、閾値dthが用いられる。画素値を反転させる画素の選定については、ユーザーの経験等が加味されるため、ばらつく可能性がある。このため、実施形態では、パラメータとしての重み係数wI,wJ,wD,wM,wC及び閾値dthをユーザーが自由に変更(設定)することができるようになっている。つまり、実施形態では、出力パターン画像d5の出力結果がユーザーの経験等に沿って適切化されるように、重み係数wI,wJ,wD,wM,wCと閾値dthとを設定する。
【0025】
実施形態に係る変数設定処理では、ユーザーが、重み係数等を調整することで、出力パターン画像d5にどのような影響があるかを視覚的に確認しながら、重み係数等を設定することが可能になっている。つまり、実施形態では、ユーザーの意向に沿うように、重み係数等を対話的に決定することが可能である。ユーザーが、重み係数wI,wJ,wD,wM,wCと閾値dthを設定する様子については、後述の「3 動作説明」の「設定ステップ」で説明する。
【0026】
【0027】
【0028】
【0029】
【0030】
・補正処理
補正処理では、変数設定処理において設定完了した重み係数wI,wJ,wD,wM,wC及び閾値dthを用いて、損失関数Lの値を算出する。補正処理において、損失関数Lは、画素ごとに算出される。また、補正処理では、補正前後において損失関数の値が低下する画素が、補正対象の画素となる。そして、補正対象の画素の画素値は、反転される。つまり、補正対象の画素の画素値が、1(白)の場合には0(黒)になり、0(黒)の場合には1(白)になる。なお、画素値:1及び画素値:0のうちの一方が第1画素値の一例であり、他方が第2画素値の一例である。補正処理は、後述の決定処理2,3を含む。
【0031】
なお、実施形態に係る補正処理では、逐次、補正する画素(画素値を反転させる画素)が選定される。つまり、実施形態に係る補正処理では、複数の画素が補正される可能性があるが、各補正時において、一度に画素値が反転する画素の数は、1つである。つまり、
図9に示すように、織物パターン画像d4の画素値を1つ反転させた第1暫定パターン画像dn
1を生成する、次に、第1暫定パターン画像dn
1の画素値を1つ反転させた第2暫定パターン画像dn
2を生成する、・・・という処理を順次繰り返していく。換言すると、補正処理では、織物パターン画像d4の画素値を1つ反転させた第1暫定パターン画像dn
1を生成した後に、第N暫定パターン画像dn
Nの画素値を1つ反転させた第N+1暫定パターン画像dn
N+1を生成する、という処理を順次繰り返す(Nは1以上の整数)。そして、画像決定部4B2が、ある暫定パターン画像を出力パターン画像d5とすることを決定すると、当該暫定パターン画像が最終的に出力パターン画像d5として出力される。
【0032】
2-3-1 損失関数処理部4A
損失関数処理部4Aは、複数の損失関数(実施形態では第1~第5損失関数)が加味された損失関数Lの値を算出可能に構成されている。損失関数処理部4Aは、画素ごと(注目画素ptごと)に損失関数Lを算出する。実施形態において、画像中の任意の画素(画像中の全て画素)は、注目画素ptとなり得るが、これに限定されるものではなく、画像中の予め定められた範囲の画素のみが、注目画素ptであってもよい。
【0033】
<第1算出部4A1>
第1損失関数は、出力パターン画像d5の明るさを入力画像d1の明るさに近づけるような関数である。なお、出力パターン画像d5は、二値化処理されているため、入力画像d1の画素値と出力パターン画像d5の画素値との差分と算出すると、当該差分が大きくなり過ぎてしまい、有効な損失関数とならない可能性がある。このため、実施形態では、フィルタ部4Cにおいて各種画像にフィルタ処理をおこなって各種画像をぼかしておき、ぼかした画像の画素値同士の差分を算出する。
【0034】
第1算出部4A1は、画素ごと(注目画素ptごと)に第1損失関数の値L
Iを算出可能に構成されている。各画素の第1損失関数は、式(1)のように表され、画素値差分に基づいている。
式(1)において、pは、画像d1fの任意の座標tの画素(注目画素pt)の画素値である。ここで、画像d1fは、入力画像d1をフィルタ部4Cでフィルタ処理した画像である。
式(1)において、оは、画像dtf等の任意の座標tの画素(注目画素pt)の画素値である。ここで、画像dtf等とは、画像dtf及び画像dn
Nfである。
図13Aに示す画像dtfは、変数設定処理時において、反転パターン画像dtをフィルタ部4Cでフィルタ処理した画像である。
図13Bに示す画像dn
Nfは、補正処理時において、第N暫定パターン画像dn
Nをフィルタ部4Cでフィルタ処理した画像である。
【0035】
<第2算出部4A2>
図14Aの左側に模式的に示すように糸が飛び過ぎていると、織物に不具合が生じやすくなる。そこで、第2損失関数は、
図14Aの右側に模式的に示すように糸の飛びが一定間隔以内になるように定められている。なお、糸の飛びは、小さければ問題ないため、閾値d
thを設定し、注目画素ptから反転画素pt2までの距離が閾値d
thより大きい場合に損失としてカウントする。
【0036】
第2算出部4A2は、画素ごと(注目画素ptごと)に第2損失関数の値LJを算出可能に構成されている。各画素の第2損失関数は、式(2)のように表され、画素間距離(後述する距離d)に基づいている。
式(2)を用いた値LJの具体的な算出方法について説明する。値LJは、注目画素ptを起点する各方向(上方向、下方向、右方向、左方向)の成分max(0,d-dth)の総和で表される。
ここで、閾値dthは、正の整数である。
また、距離dは、注目画素ptと、反転画素pt2との間の画素数に対応している。ここで、反転画素pt2は、注目画素ptの隣接画素pt1を起点とする各方向において、初めて、隣接画素pt1に対して画素値が反転している画素である。なお、注目画素ptと反転画素pt2との間にある画素値は、反転画素pt2の画素値とは異なっている。
【0037】
一例として、
図14Cを参照して、右方向成分の算出方法について説明する。ここでは、閾値d
thは3であるとする。距離d(t,→)は、注目画素ptと、反転画素pt2との間の画素数であるため、5である。このため、右方向成分は、max(0,5-3)=max(0,2)=2となる。同じ要領で、上方向成分、下方向成分及び左方向成分を算出し、これらの総和から第2損失関数の値L
Jを取得することができる。
【0038】
<第3算出部4A3>
図15Aの左側に模式的に示すように糸に交差が多すぎると、織物にしたときに布が固くなる不具合を発生させる。そこで、第3損失関数は、
図15Aの右側に模式的に示すように交差回数を抑えるように定められている。つまり、
図15Bに示すように、第3損失関数では、注目画素ptを含む予め定められた範囲Rg内の画素の反転数を損失としてカウントする。予め定められた範囲Rgは、適宜、設定することができる。
【0039】
第3算出部4A3は、画素ごと(注目画素ptごと)に第3損失関数の値LDを算出可能に構成されている。各画素の第3損失関数は、式(3)のように表され、糸(経糸と緯糸)の交差回数に基づいている。
式(3)を用いた値LDの具体的な算出方法について説明する。式(3)において、оは、パターン画像の任意の座標tの画素(注目画素pt)の画素値である。また、式(3)において、(1,0)及び(0,1)は、注目画素ptの隣接方向(実施形態では、上方向及び左方向)に対応し、N(t)は、注目画素ptの周囲の予め定められた範囲Rgに対応している。
【0040】
一例として、任意の画素(注目画素pt)の値L
Dの算出方法について説明する。
図15Bに示すように、注目画素ptを起点として上方向及び左方向に隣接する反転画素の数を算出する。具体的には、注目画素ptの左方向に隣接する画素ptxと上方向に隣接する画素ptyは、注目画素ptの画素値に対して反転した画素値を有するため、共に反転画素である。このため、注目画素ptの反転数は2である。同じ要領で、注目画素pt以外の、予め定められた範囲Rg内の画素についても、反転数を算出する。注目画素ptの値L
Dは、予め定められた範囲Rg内の反転数の総和であり、
図15Bの例では、1+0+1+1+2+0+1+2+0=8である。
【0041】
<第4算出部4A4>
織物パターン画像を補正して画素値を変更することは、ディザマスクの閾値を変更(補正)することに対応している。ここで、ディザマスクは職人の経験等が反映されて作られているため、ディザマスクが大きく変わってしまうことは好ましくないと考えられる。そこで、第4損失関数は、織物パターン画像を補正して得られるパターン画像に対応するディザマスクが、織物パターン画像生成部3で使用するディザマスクから外れることを損失としてカウントする。
【0042】
第4算出部4A4は、画素ごと(注目画素ptごと)に第4損失関数の値LMを算出可能に構成されている。各画素の第4損失関数は、式(4)のように表され、閾値差に基づいている。
注目画素ptの閾値差とは、補正後のディザマスク(補正後マスクの一例)における注目画素ptに対応する補正閾値(式(4)のMに対応)と、織物パターン画像生成部3で使用するディザマスクにおける注目画素ptに対応する閾値(式(4)のmに対応)と、の差分である。
【0043】
なお、補正後のディザマスクとは、織物パターン画像d4の画素値を反転して得られる(補正して得られる)パターン画像を生成するようなディザマスクである。
第4算出部4A4は、織物パターン画像生成部3で使用するディザマスクを織物パターン画像生成部3から受け取る。また、第4算出部4A4は、変数設定処理における反転パターン画像dtや、補正処理における第N暫定パターン画像dnNに基づいて、補正後のディザマスクを生成可能に構成されている。
【0044】
<第5算出部4A5>
ディザマスクで生成した織物パターン(織物パターン画像)は規則的で整っており、視覚的に綺麗に見えることが多い。補正して得られるパターン画像が織物パターン画像から外れしまうと、画像中の規則性が損なわれて、職人の経験等にそぐわなくなる可能性が高まるため、規則性が損なわれることを損失としてカウントする。
【0045】
第5算出部4A5は、画素ごと(注目画素ptごと)に第5損失関数の値LCを算出可能に構成されている。各画素の第5損失関数は、式(5)のように表され、自己相関度に基づいている。
【0046】
式(5)を用いた値L
Cの具体的な算出方法について
図16A及び
図16Bを参照して説明する。
自己相関度は、第1画像領域Art内の画素と、第2画像領域Ar1~Ar8内の画素とのうち画素値が異なる画素の数に基づいている。
図16Aにおいて、第1画像領域Artは、注目画素ptを含む予め定められた領域内の画像(注目画素pt、周辺画素p5、周辺画素p7及び周辺画素p8からなる画像)である。なお、式(5)中のN(t)は、注目画素ptの周囲の予め定められた範囲を定義している。
図16Aにおいて、第2画像領域Ar1~Ar8は、第1画像領域と同じ形状の領域であって第1画像領域から予め定められた距離内に位置する領域である。なお、式(5)中の[-w
x,w
x]×[-w
y,w
y]は、予め定められた距離を定義している。[-w
x,w
x]は、注目画素ptを基準とする横方向の距離、[-w
y,w
y]は、注目画素ptを基準とする縦方向の距離を指す。
図16A及び
図16Bの例では、w
x及びw
yは、1である。
なお、第1画像領域Artの予め定められた領域の広さや、第1画像領域Artと第2画像領域Ar1~Ar8との間の予め定められた距離については、適宜、設定することができる。
【0047】
例えば、
図16Bにおいては、第1画像領域Art内の画素と第2画像領域Ar1とのうち画素値が異なる画素の数、第1画像領域Art内の画素と第2画像領域Ar2とのうち画素値が異なる画素の数、・・・第1画像領域Art内の画素と第2画像領域Ar8とのうち画素値が異なる画素の数、といった8つの数を算出することができる。
ここで、第1画像領域Art内の画素と第2画像領域Ar1とのうち画素値が異なる画素の数は、4である。また、第1画像領域Art内の画素と第2画像領域Ar2とのうち画素値が異なる画素の数は、3である。同様にして、残りの6つ数も算出することができる。式(5)の値L
Cは、これらの8つの数のうち、最も小さい値である。
【0048】
2-3-2 決定部4B
<画素決定部4B1>
変数決定処理時において、画素決定部4B1は、式(6)に示す損失関数の値に基づいて、画素値が二値化されたパターン画像中の画素のうち、強調表示する画素を決定するように構成されている。強調表示する画素の決定方法は、以下の決定処理1の通りである。
補正処理時において、画素決定部4B1は、式(6)に示す損失関数の値に基づいて、画素値が二値化されたパターン画像中の画素のうち、画素値を反転させる(画素値を補正する)画素を決定するように構成されている。反転1回目における反転の対象画素の決定方法は、以下の決定処理2の通りであり、反転2回目以降における決定方法は、以下の決定処理3の通りである。
【0049】
・決定処理1:変数設定処理
画素決定部4B1は、任意の画素(注目画素pt)の画素値を反転させる前後(補正前後)における損失関数の値の差分を算出する。ここで、変数決定処理時に関して、
図8に示す左上の角に位置する画素(ここでは、当該画素と称する)を例に説明する。
【0050】
画素決定部4B1は、入力データdinを受け取っているため、重み係数w
I,w
J,w
D,w
M,w
Cは設定されている。なお、このときの重み係数w
I,w
J,w
D,w
M,w
Cは仮決めであり、ユーザーは調整可能である。そして、画素決定部4B1は、式(6)に基づいて当該画素の損失関数の値L1(
図8参照)を算出する。この値L1が、当該画素の補正前の損失関数の値に対応し、式(6)から算出することができる。
【0051】
次に、織物パターン画像d4のうち当該画素の画素値を反転させて得られる画像(補正後のパターン画像)が生成される。画素決定部4B1は、式(6)に基づいて、当該画像の画素の損失関数の値L1t(
図8参照)を算出する。値L1tが、当該画素の補正後の損失関数の値に対応し、式(6)から算出することができる。
更に、画素決定部4B1は、当該画素の補正後の損失関数の値L1tと、当該画素の補正前の損失関数の値L1との差分を算出する。この損失関数Lの差分の大きさが、変数決定処理時において、画素を強調表示させるか否かを決定するために用いられる。
【0052】
以上は、左上の角に位置する画素についての説明であったが、その他の残りの画素についても同様に、損失関数Lの差分を算出する。一例として、当該画素の右隣りの画素について計算する場合について説明する。
画素決定部4B1は、式(6)に基づいて、当該右隣りの画素の損失関数の値L2を算出する。また、織物パターン画像d4のうち当該右隣りの画素の画素値を反転させて得られる画像(補正後のパターン画像)が生成される。画素決定部4B1は、式(6)に基づいて、当該補正後のパターン画像における、右隣りの画素の損失関数の値L2tを算出する。その後、画素決定部4B1は、値L2tと、値L2との差分を算出する。
【0053】
変数決定処理時では、損失関数Lの差分(第1~第5損失関数の値L
I,L
J,L
D,L
M,L
Cの総和の差分)が、予め定められた閾値(損失関数閾値の一例)より大きい画素の全てが、対象画素(強調表示の対象となる画素)と決定される。つまり、この対象画素は、強調表示されることになる(
図8参照)。変数決定処理において、予め定められた閾値より大きい画素の全てが対象画素となっているのは、重み係数等の変数の値を調整することで、反転する画素の傾向を把握し、変数がどのように効いてくるかをユーザーが確認するためである。
【0054】
・決定処理2:補正処理時の反転1回目
補正処理時の開始時において、重み係数w
I,w
J,w
D,w
M,w
C等の変数は決定されている。損失関数Lの差分を算出する過程は、決定処理1と同様である。つまり、
図10に示すように、画素決定部4B1は、式(6)に基づいて当該画素の損失関数の値L1を算出する。この値L1が、当該画素の補正前の損失関数の値に対応し、式(6)から算出することができる。
【0055】
次に、織物パターン画像d4のうち当該画素の画素値を反転させて得られる画像(補正後のパターン画像)が生成される。画素決定部4B1は、式(6)に基づいて、当該画像の画素の損失関数の値L1t(
図10参照)を算出する。値L1tが、当該画素の補正後の損失関数の値に対応し、式(6)から算出することができる。
更に、画素決定部4B1は、当該画素の補正後の損失関数の値L1tと、当該画素の補正前の損失関数の値L1との差分を算出する。この損失関数Lの差分の大きさが、補正処理時の反転1回目において、画素値を反転させるか否かを決定するために用いられる。以上は、左上の角に位置する画素についての説明であったが、その他の残りの画素についても同様に、損失関数Lの差分を算出する。
【0056】
補正処理時の反転1回目では、損失関数Lの差分が予め定められた閾値(損失関数閾値の一例)より大きい画素のうち、最も大きい画素のみが対象画素(反転させる対象となる画素)と決定される。つまり、この対象画素の画素値のみが、反転される(
図10参照)。
損失関数Lの差分が大きいほど、画素の画素値を反転させることで損失関数Lの値を低減できる。このため、当該画素値を反転させることは、職人やデザイナーによる織物パターンの修正作業に沿う可能性が高い、ということになる。つまり、損失関数Lの差分が、予め定められた閾値よりも大きい画素については、職人やデザイナーによる織物パターンの修正作業に適合するため、画素決定部4B1は、画素値を反転させる画素として決定する。
【0057】
図10に示すように、補正処理時の反転1回目において、織物パターン画像d4中の1つの画素の画素値が反転(補正)されたものとする。織物パターン画像d4中の1つの画素の画素値が反転されたパターン画像を、第1暫定パターン画像dn
1と定義する。「暫定」は、このパターン画像が、最終的な出力パターン画像d5となるかがまだ決定されていないことを意味する。
なお、決定処理2において、織物パターン画像d4及び第1暫定パターン画像dn
1は、補正前パターン画像及び補正後パターン画像の一例である。
【0058】
・決定処理3:補正処理時の反転2回目以降
図11に示すように、第1暫定パターン画像dn
1について、各画素の損失関数Lの値を更新する。つまり、補正処理時の反転1回目では、各画素の画素値が反転することを前提として、各画素の損失関数の値を算出している。しかし、反転1回目において反転させる画素が決定したので、反転2回目以降については、反転する画素をより適切に決定できるよう、各画素の損失関数Lを算出し直すということである。
図11において、更新された損失関数の値は、L1'と示されている。
そして、
図11に示すように、画素決定部4B1は、当該画素の補正後の損失関数の値L1'と、当該画素の補正前の損失関数の値L1との差分S1を算出する。また、その他の残りの画素についても同様に、損失関数Lの差分SN(ここではNは2~100)を算出する。
図11に示す第1差分マトリクスSm
1には、各画素の差分SNが特定されている。
【0059】
画素決定部4B1が画素値を反転させる画素(
図11の画素ptr参照)は、損失関数Lの差分SNのうち、予め定められた閾値(損失関数閾値の一例)より大きく、且つ、最も値が大きい画素である。画素決定部4B1が画素値を反転させることで、第2暫定パターン画像dn
2が生成される。なお、予め定められた閾値を設けることで、補正処理において、暫定パターン画像を逐次生成する繰り返し演算の収束性を確保することができる。
【0060】
画素決定部4B1は、生成した第2暫定パターン画像dn
2について、各画素の損失関数を算出する。
図12において、例えば、左上の角に位置する画素の損失関数の値が、L1''として示されている。画素決定部4B1は、第1暫定パターン画像dn
1の損失関数の値L1'と、生成した第2暫定パターン画像dn
2の損失関数の値L1''とを用いて、第2差分マトリクスSm
2中の差分S1'を算出することができる。その他の画素についても、同様に差分SNを算出し、第2差分マトリクスSm
2を完成させる。そして、画素決定部4B1が画素値を反転させる画素(
図12の画素ptr参照)は、損失関数Lの差分SN(Nは1~100)のうち、予め定められた閾値より大きく、且つ、最も値が大きい画素である。以上を繰り返すことで、第N暫定パターン画像dn
Nを逐次、生成する。
なお、決定処理3において、第N暫定パターン画像dn
Nは、第N-1暫定パターン画像dn
N-1は、補正前パターン画像及び補正後パターン画像の一例である。
【0061】
ところで、暫定パターン画像を逐次、生成することを繰り返す過程において、既に反転済みの画素の損失関数Lの値が再び増加する場合がある。このような場合には、既に反転した画素が、再度、反転の対象となる可能性がある。このため、同じ画素が、反転できる回数に制限を設けないと、補正処理が収束しにくくなる可能性がある。そこで、実施形態では、1つの画素が、補正処理内で反転できる回数を予め定められた回数までとし、反転回数が当該予め定められた回数を超えないようにしている。つまり、画素決定部4B1は、反転回数が予め定められた回数に到達した画素を反転対象の画素から除外する。なお、予め定められた回数は、具体的には例えば、2,3,4,5,6,7回であり、ここで例示した数値の何れか2つの間の範囲内であってもよい。
【0062】
<画像決定部4B2>
画像決定部4B2は、反転させる画素のデータ(座標や画素値)に基づいて、生成するパターン画像を決定し、当該決定したパターン画像を出力するように構成されている。
【0063】
画像決定部4B2は、変数設定処理時においては、反転パターン画像dtを生成する。反転パターン画像dtは、織物パターン画像d4から生成される。織物パターン画像d4が例えば100つの画素を有する場合には、反転パターン画像dtは100種類存在することになる。画像決定部4B2は、各反転パターン画像dtをフィルタ部4C及び損失関数処理部4Aに出力する。フィルタ部4Cに出力された各反転パターン画像dtは、第1損失関数L
Iの値の算出に活用されることになる。また、損失関数処理部4Aに出力された各反転パターン画像dtは、第1~第5損失関数の値L
I,L
J,L
D,L
M,L
Cの算出に活用されることになる。
また、変数設定処理時において、画素決定部4B1は、損失関数Lの差分(第1~第5損失関数の値L
I,L
J,L
D,L
M,L
Cの総和の差分)が、予め定められた閾値より大きい画素の全てが反転対象画素と決定している。画像決定部4B2は、反転対象画素を強調表示した参照パターン画像dTを生成し、出力部5に出力する。参照パターン画像dTは、織物パターン画像d4に重畳するように、反転対象画素を強調表示した画像である(
図8参照)。
【0064】
画像決定部4B2は、補正処理時においては、画素決定部4B1において反転すると決定された画素のデータ(例えば、座標や画素値)に基づいて、第N暫定パターン画像dnNを生成する。第1暫定パターン画像dn1は、織物パターン画像d4から生成される。また、第N暫定パターン画像dnNは、第N-1暫定パターン画像dnN-1から生成される。また、画素決定部4B1が、損失関数Lの差分SNのうち予め定められた閾値より大きいものがないと判定した場合、画像決定部4B2は、最後(繰り返しの最終回)に生成した暫定パターン画像を出力パターン画像d5と決定し、出力部5に出力する。
【0065】
2-3-3 フィルタ部4C
フィルタ部4Cは、受け付けた各種のパターン画像にフィルタ処理を施すように構成されている。実施形態において、フィルタ部4Cは、ガウシアンフィルタを採用しており、各種のパターン画像をぼかすことが可能となっている。
【0066】
2-3-4 設定部4D
設定部4Dは、入力データdinを受け付けるように構成され、また、設定部4Dは、入力データdinに基づいて、重み係数wI,wJ,wD,wM,wC及び閾値dthの値を設定するための設定データdpを決定部4Bに出力するように構成されている。変数設定処理において、設定部4Dは、随時、入力データdinを受け付けている。このため、ユーザーが入力データdinを変更することに応じて、重み係数wI,wJ,wD,wM,wC及び閾値dthの値が変更される。これにより、参照パターン画像dTにおいて強調表示される画素が、リアルタイムで変更される。
【0067】
2-4 出力部5
出力部5は、入力画像d1、織物パターン画像d4及び出力パターン画像d5等の各種画像を出力装置20に出力可能に構成されている。また、出力部5は、出力パターン画像d5を織物製造装置30に出力可能に構成されている。
【0068】
2-5 記憶部6
記憶部6は、各種データを記憶する機能を有する。記憶部6には、例えば、入力画像d1、織物パターン画像生成部3で用いられる織物用閾値マトリクス、出力パターン画像生成部4で用いられる損失関数等の各種データが格納されている。記憶部6に格納されている各種データは、織物パターン画像生成部3や出力パターン画像生成部4で読み出される。
【0069】
3 動作説明
実施形態に係る画像生成装置1の画像生成方法は、入力画像取得ステップと、織物パターン画像生成ステップと、重み係数設定ステップと、出力パターン画像生成ステップとを備える。
【0070】
3-1 入力画像取得ステップ
入力画像取得ステップでは、取得部2が、入力画像d1を取得する。取得部2は、画像生成装置1の外部装置から入力画像d1を取得してもよいし、記憶部6から入力画像d1を取得してもよい。
【0071】
3-2 織物パターン画像生成ステップ
織物パターン画像生成ステップでは、織物パターン画像生成部3が、マスクを用いた閾値処理を行うことで入力画像d1から織物パターン画像d4を生成する。具体的には、前処理部3Aは、入力画像d1から、256階調のグレースケール画像データである前処理後画像d2を生成する。そして、二値化処理部3Cは、マトリクス生成部3Bから受け取った織物用閾値マトリクス(マトリクスデータd3)を用いて、前処理後画像d2を二値化処理し、織物パターン画像d4を生成する。
【0072】
3-3 設定ステップ
設定ステップでは、織物パターン画像生成ステップの後であって出力パターン画像生成ステップの前に行われる。設定ステップでは、設定部4Dが、ユーザーにより操作される入力装置から入力データdinを受け付ける。なお、入力データdinは、第1~第5損失関数の重み係数wI,wJ,wD,wM,wCや、第2損失関数LJの閾値dthといった変数を設定するためのデータである。そして、設定ステップでは、設定部4Dは、入力データdinに基づいて、これらの変数の設定値(設定データdp)を画素決定部4B1に出力する。なお、設定ステップにおいて、設定部4Dは、随時、入力データdinを受け付け、対応して設定データdpを出力するように構成されている。
【0073】
設定ステップでは、画素決定部4B1は、受け付けた入力データdinに応じて上述の変数決定処理を実行する。すなわち、画素決定部4B1は、上述の決定処理1を実行して強調する対象画素を決定し、画像決定部4B2は参照パターン画像dTを生成する。なお、入力データdinが変更されると、参照パターン画像dTにおいて強調表示される画素がリアルタイムで変更される。これにより、ユーザーは、重み係数wI,wJ,wD,wM,wC及び閾値dthを調整することが、出力パターン画像生成ステップにおける補正処理において、どのように効いてくるかといった傾向を把握することができる。つまり、ユーザーは、参照パターン画像dTを参照しながら、後段の補正処理において使用する重み係数wI,wJ,wD,wM,wC及び閾値dthを決定することができる。設定ステップにおいて、ユーザーが最終的な入力データdinを決定すると、設定部4Dは対応する設定データdpを出力し、実施形態に係る制御は、出力パターン画像生成ステップに移行する。
【0074】
3-5 出力パターン画像生成ステップ
出力パターン画像生成ステップの反転1回目では、画素決定部4B1は、上述の決定処理2を実行して損失関数Lの値を算出し、画素値を反転させる対象画素を決定し、画像決定部4B2は、第1暫定パターン画像dn1を生成する。
続いて、出力パターン画像生成ステップの反転2回目以降では、画素決定部4B1は、上述の決定処理3を逐次実行して損失関数Lの値を逐次算出し、画素値を反転させる対象画素を逐次決定し、画像決定部4B2は、第N暫定パターン画像dnNを逐次生成する(ここで、Nは2以上の整数)。
そして、画素決定部4B1が、損失関数Lの差分のうち予め定められた閾値より大きいものがないと判定した場合、画像決定部4B2は、最後に生成した暫定パターン画像を出力パターン画像d5と決定し、出力部5に出力する。
【0075】
このように、暫定パターン画像を生成するごとに損失関数を算出し、新たな暫定パターン画像を逐次生成していくことは、職人やデザイナーが、最も目立つ画素から織物パターンの修正を図ることに対応している。つまり、実施形態の処理は、人間による織物パターンの修正作業に近づけられており、最終的な出力パターン画像d5を職人やデザイナーの意向に沿った内容に近づけやすくなる効果が期待できる。
ここで、従来、職人やデザイナーは二値化された織物パターン画像から織り上がりを想像することによって、或いは、実際に試し織りすることによって、織物パターンの修正を行っている。糸の張り具合や糸の色のバランスなどといった条件を考慮する必要があるため、作業者には技術と経験が求められる上に作業時間も増大しやすい。一方、実施形態に係る画像生成方法は、上述のような修正を自動的に実施することが可能であるため、織物パターン画像d4に内在する可能性がある不具合を容易に取り除くことができる。これにより、作業者に対する技術や経験の要求水準を軽減させたり、作業時間を抑制させたりする効果が期待できる。
【0076】
5 その他実施形態
・実施形態では、損失関数Lが第1~第5損失関数を加味しているものとして説明したが、これに限定されるものではない。例えば、損失関数Lは、第1~第5損失関数のうちの少なくとも2つを加味するものであってもよい。また、重み係数の調整はできなくなるが、損失関数Lは、第1~第5損失関数のうちのいずれか1つのみで構成されたものであってもよい。
・実施形態では、織物パターン画像生成部3と出力パターン画像生成部4とが1つの装置内に搭載されているものとして説明しているが、これに限定されるものではない。例えば、画像生成装置1は、出力パターン画像生成部4を備えており、織物パターン画像生成部3を備えていなくてもよい。この場合には、織物パターン画像生成部3が画像生成装置1とは別の装置に搭載されており、画像生成装置1は、当該別の装置から、織物パターン画像d4等を取得すればよい。
・実施形態では、画像生成装置1が前処理部3Aを備えるか否かは任意である。例えば、入力画像d1がグレースケール画像データであれば、画像生成装置1は前処理部3Aを備えていなくてもよく、この場合、入力画像d1が、マスク処理の対象の画像である。
・変数設定処理の決定処理1で用いる予め定められた閾値(損失関数閾値の一例)は、補正処理の決定処理1,2で用いる予め定められた閾値と同じであるものとして説明したが、異なっていてもよい。
【符号の説明】
【0077】
1 :画像生成装置
2 :取得部
3 :織物パターン画像生成部
3A :前処理部
3B :マトリクス生成部
3C :二値化処理部
4 :出力パターン画像生成部
4A :損失関数処理部
4A1 :第1算出部
4A2 :第2算出部
4A3 :第3算出部
4A4 :第4算出部
4A5 :第5算出部
4B :決定部
4B1 :画素決定部
4B2 :画像決定部
4C :フィルタ部
4D :設定部
5 :出力部
6 :記憶部
20 :出力装置
30 :織物製造装置
100 :織物製造システム