成 瞑 大 学 理 工 学 研 究 報 告 J,Fac,Sci,Tech.,Sei/keiUniv. Vol.56No.1(2019)pp.9-14
機 械 学 習 に よ るRAW現
像 技 術 の 開 発
伊 東
直 毅*1,甲
斐
宗 徳*2
Development
of RAW Image
Format
Converter
Using Deep Learning
Naoki
ITO *', Munenori
KAI * 2
ABSTRACT : RAW development is an operation manually performed by a person in order to finish a
photograph according to his / her desire. At this time, many image adjustment parameters are set, and
confirmation and adjustment are repeated. The work requires much time and effort, and it is very difficult
to make many photos taken into the desired images. However, if deep learning is used, learning RAW images
and photographs after RAW development may create photographs of the same level as manual RAW
development. In this research, we succeeded in developing a machine learning model that performs RAW
development using RAW data as input. We also aimed to improve the processing speed of learning using
GPGPU. As a result of comparing processing in which RAW development is performed for 100 images with
a single multi-core CPU using a parallel program and processing using a GPGPU, it is shown that the latter
can be significantly faster.
Keywords
: RAW Development,
Deep Learning,
Machine
Learning,
Parallel Processing,
GPGPU
(Received May 20, 2019)
1.は じ め に最 近 で は イ ンス タ グ ラム な どの 写 真 共 有 を 目的 と した
SNSの 人 気 の 高 ま りか ら、 一 眼 レフ に代 表 され るハ イ エ
ン ドカ メ ラの 人 気 が 高 ま っ て い る。 ユ ー ザ は少 しで も 良
い 写真 に仕 上 げ よ うと画 像 の 加 工 を行 う事 が 恒 例 とな っ
て い るが 、一般 的 な 画像 形 式 で あ るJEPGで は 、画 像 の 加
工 は 画 質 の 劣 化 を招 く。 そ こで 、 カ メ ラが 受 け取 った 光
の 情 報 を 無 加 工 、無圧 縮 で 記録 したRAWデ
ー
一
一
タ を用 い て
好 きな 写真 の イ メ ー ジ を作 り出 し現 像 す る こ とで 、 よ り
高 画 質 で レベ ル の 高 い 加 工 を施 す こ とが 近 年 盛 ん にな っ
て い る。しか し このRAW現
像 で は多 くの パ ラ メー タ を手
動 で 設 定 し、 完 成 イ メー ジ を確 認 しな が ら調 整 を行 うた
め 非 常 に 多 くの 手 間 と時 間 が か か る。 そ の た め大 量 に写
真 を 撮 影 した 場 合 、そ の 全 て にRAW現
像 を行 うこ とは現
実 的 で は な い 。 そ こで 近 年 急 速 に拡 大 して い る機 械 学 習
に 注 目す る。機 械 学 習(AI)で
はニ ュー
一
一
ラル ネ ッ トワー
一
一
ク とい う人 間 の神 経 構 造 を模 した ア ル ゴ リズ ム に よ り、
独 自の 思考 回 路 を 実 装 可 能 で あ る。 近 年 で は画 像認 識 や
自然言 語処 理 の 分 野 で 幅 広 く使 用 され て お り、 従 来 ア ル
ゴ リズ ム で は対 処不 可能 、または莫大な計算量 を必要 と
して い た 分 野 に対 し て も人 間 的 思 考 回 路 を使 用 、 ま た
GPU資 源 を 最 大 限使 用す る こ とに よっ て 非 常 に 高 速 な 学
習 ・推 論 を 可能 と して い る。RAWデ
ー
一
一
タ を 自分 の 意 図 通
りの 写真 に仕 上 げ るた め に は 、 ユ ー ザ が 自分 で 加 工 を施
す 事 が 一番 確 実 で あ る。 しか し近 年 注 目 され て い る機 械
学 習 の 技術 を用 い て 、ユ ー
一
一
ザ の 意 図 を学 習 してRAW現
像
を行 う事 で 、 自分好 み の 写真 を作 り出 す 事 が 可 能 で は な
い か と考 え る。AIでRAW現
像 を行 う事 が 出来 れ ば、ユ ー
一
一
ザ は手 間 を か け ず に短 い 時 間 で 大 量 にRAW現
像 を行 う
事 が 可 能 とな る。
2.RAVV現 像 *1:理 工 学 部 情 報 科 学 科 学 生 *2:理 工 学 専 攻 教 授(kai@st .seikei.acjp)2.1RAW現
像 の 詳 細
RAWデ
ー
一
一
タ には 様 々 な形 式 が あ るが 、今 回 は 最 も汎 用
性 の あ るDNG形
式 か らRAW現
像 を行 うこ と を 目的 とす
る 。RAWデ ー一一タ に は カ メ ラ メ ー カ ー一一毎 に 独 自 の 規 格 が あ り、 そ れ ぞ れ の 規 格 に 互 換1生 は な い 。 し か し多 く のRAW デ ー一一タ はDNG形 式 へ の 変 換 が 可 能 で あ り 、そ の 際 の 品 質 ロ ス は 理 論 上 起 こ り得 な い と さ れ て い る 。 DNGデ ー タ か らRAW現 像 を 行 う際 の 主 な 処 理 事 項 を 以 下 表2.1に 示 して い る 。 本 来 処 理 の 内 容 は メ ー一一カ ー 独 自 技 術 と し て 様 々 な 技 術 が 使 用 さ れ て い る が 、 今 回 の 研 究 で は そ の ア ル ゴ リズ ム 自 体 に 詳 細 に 触 れ る こ と は な い 。 AIの 学 習 に 現 像 前 のRAWデ ー タ と 現 像 後 の デ ー一一タ を 使 用 し 、 そ の 間 に 施 さ れ る 処 理 はAIの 学 習 ア ル ゴ リズ ム に 頼 る も の と し 、 直 接 画 像 に 対 し 操 作 を 行 わ な い も の と す る 。 た だ し 、 足 りな い 色 情 報 を 周 辺 画 素 か ら補 完 す る 技 術 「デ モ ザ イ ク 」 はAIへ の 入 力 前 に 行 う も の とす る 。 表2.1:主 な 画 像 処 理 事 項
な く、 学習 へ の 効果 が 大 き くな る とは 言 えな い 。 学 習 デ
ー タ を よ り多 く用意 した い 場 合
、 単 純 に 写 真枚 数 を よ り
多 く用 意す る事 が好 ま しい。
3.機
械 学 習 技 術
● デ モ ザ イ ク ● ノ イ ズ 除 去 ● ガ ンマ 補 正 ● ホ ワイ トバ ラ ン ス 調 整● 明暗調 整
● 彩 度 ・輝 度補 正
● シ ャー プネ ス補 正
● 周 辺減 光補 正
AIへ の入 力 デ ー タ と して は 、RAWデ ー
一
一
タか ら各 画 素 の
RGB値
を 〔
縦 画 素 数 ×横 画 素 数 ×3〕の配 列 へ 入 力 し、配
列 へ の デ ー タ の 入 力 前 には デ モ ザ イ ク処 理 を施 して 足 り
な い 色 情 報 を 周 辺 画 素 か ら補 完 す る。 そ して 既 存 ア ル ゴ
リズ ム に よ るRAW現
像 後 の デ ー
一
一
タ を 教 師 デ ー タ と して
与 え、 入 力 デ ー タ に対 し、 教 師 デ ー タ と して 与 えた 画 像
に 近 くな る よ うに ニ ュー ラル ネ ッ トワー ク上 の パ ラ メー
タを 近 似 計 算 に よ り求 め 、学習 ご とに値 を 更 新 して い く。
学 習 に は 初 期 学 習 と、 ユ ー ザ 意 図 反 映 の た めの 「
ユ ー ザ
学 習 」の2段 階 を設 け る。初 期 学 習 で はRAWデ
ー タか ら
の 基 本 的 な 画 像 出 力 を 学 習 し、「
ユ ー ザ 学 習 」で ユ ー ザ の
意 図 通 りの 学 習 を行 うもの とす る。
2.2学 習 デ ー タ の 準 備 機 械 学 習 に お け る 学 習 デ ー タ の 必 要 枚 数 に 明 確 な 定 義 は な い が 、 大 量 の 学 習 デ ー タ が 必 要 と な る 。 一 般 的 に は 数 万 と い う単 位 で 学 習 デ ー タ を 用 意 す る 。 今 回 学 習 デ ー タ に は 私 自 身 が 一 眼 レ フ カ メ ラ で 撮 影 し たRAWデ ー一一タ を 用 い る が 、 そ の 総 数 は2500枚 で あ る。 こ のRAWデ ー タ に 対 し て 明 る さ や 色 味 を 変 更 し学 習 デ ー タ を 増 幅 さ せ る 「databooster」 と い う プ ロ グ ラ ム を 実 装 し 、 こ の フ。ロ グ ラ ム か ら 学 習 デ ー一一タ を10倍 に 増 幅 さ せ 総 数2万5千 枚 と し た 。 な お 、今 回 は10倍 に 増 幅 し た が 、実 際 に は よ り多 く の 増 幅 が 可 能 で あ る 。 し か し デ ー タ を よ り多 く 増 幅 さ せ た と こ ろ で 写 真 の 全 体 的 な 印 象 が 変 わ る わ け で は 3.1主 な 機 械 学 習 技 術 機 械 学 習 の 場 で 主 に 使 わ れ る プ ロ グ ラ ミ ン グ 言 語 は Pythonで あ る。Pythonが 選 ば れ る こ と の 理 由 は そ の 文 法 の 柔 軟 性 に あ る 。Pythonで は 変 数 の 型 宣 言 が 不 要 で あ り 、 外 部 ラ イ ブ ラ リ を 呼 び 出 す 際 に 複 雑 な 処 理 を 記 述 す る 必 要 が な い 。 他 の 言 語 に 比 べ コ ー ド数 も 少 な く シ ン プ ル に 記 述 す る こ と が 可 能 で あ る。 Pythonで 機 械 学 習 を 行 う に あ た っ て 、 特 筆 す べ き は 「Tensorflow」[1]と い う ラ イ ブ ラ リで あ る 。こ れ は機 械 学 習 に 特 化 し た 専 用APIで あ り、 オ ー一一プ ン ソ ー一一ス ソ フ ト ウ ェ ア ラ イ ブ ラ リで あ る 。Tensorflowで はAIの 設 計 を 容 易 に 実 現 で き る 様 々 なAPIが 容 易 され て お り、 実 行 に あ た っ て は 特 別 な 記 述 を 一 切 せ ず に 最 適 化 さ れ た マ ル チ コ ア 内 並 列 実 行 が 可 能 で あ る 。 ま た 、 近 年 注 目 さ れ て い る GPGPU(GeneralPurposecomputingonGPU)に も 対 応 し て お り、GPUを 使 用 し た 場 合 の パ フ ォ ー一一マ ン ス はCPU単 体 で の パ フ ォ ー一一マ ン ス に 比 べ 一 般 に100倍 以 上 で あ り非 常 に 有 用 な 技 術 で あ る。 い ず れ もGPUの 利 用 に あ た っ て の 特 別 な コ ー ドの 記 載 は 不 要 で あ る。 3.2開 発 要 領 本 研 究 で は 前 述 のTensorflowをPythonよ り 利 用 し 、 Tensorflowの 文 法 に 基 づ きAIモ デ ル を 一 か ら開 発 し て い る 。 な お 、 こ れ ら の バ ー一一ジ ョ ン はPython3.5.2、 Tensorflowl.12.0を 用 い た 。 入 力 され たRAWデ ー タ に 対 し 多 数 の 演 算 を 行 い 、 出 力 画 像 は 種 々 の 画 像 処 理 技 術 と 同 等 程 度 の レ ベ ル の 品 質 を 実 現 す る よ う専 用 設 計 を 行 う。 一 般 的 な 機 械 学 習 モ デ ル で は 入 力 デ ー タ の 情 報 よ り 特 徴 と な る 点 を 抽 出 し 、 そ れ を 数 値 化 す る こ と に よ っ て 高 い レ ベ ル の 予 測 を 行 うが 、 今 回 は 入 力 デ ー タ の 情 報 を 失 っ て し ま っ て は 画 質 が 落 ち て し ま う。 従 っ て 入 力 デ ー タ の 情 報 を で き る だ け 失 わ ず に 種 々 の 演 算 を こ な し た 上 で 画 像 と し て 出 力 す る こ と が 求 め ら れ る 。3.3主
な 機械 学 習 技 術
本研 究 で 実 際 に使 用 した 開 発 環 境 の概 要 を 以 下 表3,1
に 示す 。
成 践 大 学 理 工 学 研 究 報 告
Vol55No.1(2018.6)
表3.1:主 な 画 像 処 理 事 項 OS:Ubuntul6.04.5(64bit) CPU:IntelXeon(R)[email protected] RAM:DDR42600MHzl6GBx4 Total:64GB GPU:TitanVx2 CUDAコ ア:5120 Tensorコ ア:6404.機
械 学 習 モ デ ル の 開 発
AIモ デ ル の 構 築 と は 、 入 力 デ ー タ に 対 し ど の よ うな 演 算 を 行 うか 、 そ の 計 算 式 を 定1義 す る こ と で あ る 。 ニ ュ ー ラ ル ネ ッ トワ ー ク で はY=Wx+bの 形 を 基 本 と し て お り、 こ こ でxが 入 力 、Yが 出 力 で あ る 。 こ の と きWの 値 を 重 み (weight)、bを バ イ ア ス(bias)と 呼 ぶ 。 そ して こ の 重 み と バ イ ア ス が 学 習 に よ り更 新 さ れ る 値 で あ る 。 今 回 は 入 力 デ ー タ に 対 し 、 同 じサ イ ズ の 配 列 を 用 意 し、 初 期 値 と し て0.9か ら1.1の 数 値 を 乱 数 に よ り代 入 し、 入 力 デ ー タ と の 乗 算 を 行 っ た 後 に バ イ ア ス を 足 す と い う形 を 基 本 と し て い る。 以 下 こ れ を 「Multiplyレ イ ヤ ー 」 とす る 。 / r、 1叩り巨 【414、617β1 曳 ノ 麗 r、 W 【414,617,3】 \ ノ尋
r、 b l414,6▽ β 】 \.ノ■
■
〆 、 OuOP" [414,61ア,3】 \ ノ 、 ノ \ 図4.1:Multiplyレ イ ヤ ー こ のMultiplyレ イ ヤ ー を 図4.2の 通 り4層 並 列 に 展 開 し 、そ れ ぞ れ の 出 力 の 平 均 を と っ て 出 力 す る層 を 「avg_x4 レ イ ヤ ー 」 と し て 実 装 す る。 さ ら にavgメ4レ イ ヤ ー を2層 並 列 展 開 して 平 均 を と っ て1出 力 とす る層 を 図4.3の 通 り4層 実 装 し 、 そ の 計 算 結 果 をAIの 出 力 と し た 。 以 上 でavgj4レ イ ヤ ー を 合 計8 層 実 装 し 、 モ デ ル の 全 体 像 と し て い る 。 図4.4に こ の モ デ ル の 実 装 の コ ー ドを 示 す 。5.ユ
ー ザ 意 図 の 反 映
5.1ユ
ー ザ意 図 反 映 の 仕 組 み
機 械 学 習 で は 、 出 力 した 画 像 に調 整 が 必 要 な 場 合 にモ
デ ル に 対 して 微 調 整 を 行 う事 が 出 来 な い 。 これ は機 械 学
習 が 大 量 の 演 算 を 行 い 、 そ の 大 量 の 演 算 の 極 めて 細 か い
バ ラ ンス の 上 に出 力 が 成 り立 っ て い るた めで あ り、 モ デ
ル 上 の どの パ ラメ ー タ を どの よ うに 変 更 す れ ば 期 待 通 り
の 出 力 とな るか は未 知数 で あ る。
一 一 〇utput一/
1
\一
「 「 Avemge L」 「 、 Multiply Lノ:M・1t・p1→
〔M・1t・pll
ド 「 Multiply ㌧ 」叉
\∠
ノ
「 「 InDut L 4.2:avg _x4レ イ ヤ ー defavg_x4
avg_x4
avg_x4
avg_x4
Output
Input
avg_x4
avg _x4
avg_x4
avg_x4
図4.3:avg_x4レ イ ヤ ー ultiply(x): tf.Vartable(tf.random _normal([414,617,3],nean=1.O,stddev;O.05)) tf.Vartable(tf.zeros([414,617,3])) d。f5 wt ,}1' 而x各 … 茸 … ath.multiply(x,脚)+b l二.、 。,。e、dd、,g・)= 鵠 R{認 1綴1:謙 瑠 tfmthradd(x1,x3)14 roturnh defvg _x4_2(x): 1≡1己er _δdd(x) Z言reer _己dd(x) =tfnath.add(x1,x2)1z eturn dofoel(): {::1認 臨lll,、(、 。y。,(.))i ret闘rnx 図4.4:モ デ ル 実 装 の コ ー ドe劇 贈1 112い .61 516['・1 {『 一一・■,r .