ECサイトの運営は、85-Store が初めてではありません。前職では数年間、ひたすら Photoshop で商品写真を仕上げていました。
露出の調整、レベル補正、コントラストの調整、トリミング、マジック消しゴムで小さなゴミを消す。などなど。
まあまあ面白い作業で、なんとなくクリエイティブ感もあるので、イケてる仕事っぽいんですけれど、何千枚とかやっているとマジで飽きてきます。
この記事は、その作業を 85-Store ではまるごと自動にした記録です。
いまは iPhone で撮って、まとめて上げて、ボタンを押すだけで、商品ページの写真がそろいます。
同じ日に撮って、自動で補正した14着回り道で出会った知識
今の職場では、ステレオカメラを使って、ネジやケーブルを認識する技術をひたすらやっています。
これがまあ極限の性能を追求するので、CMOSの限界、レンズの限界、HDRや10bit階調などをゴリゴリに使うので、いい感じに撮れればそれでいい「写真」の世界とは全く違う知識がいるんですよね。
その流れで、レンズの歪みの補正、色の補正、CMOS センサーの特性、OpenCV を使ったさまざまなノウハウ、キャリブレーションの考え方といった、一眼レフと Photoshop や Lightroom をやり込んでいるだけではたどり着かない知識に出会いました。
Hi-Fi の追求は、クリエイティブではない
フィルターをかけたり、カーブを変えたりするのは、クリエイティブな感じがします。でも、見たままに近づけて、ECサイト全体の雰囲気を同じにする取り組みは、単なる作業です。だから、全部自動化できます。
そのためには基準が要ります。85-Store では、壁に貼った2つの道具がそれにあたります。
・カラーカード(24色):色の見本。写真の中のカードの色を、決まった色に合わせれば、ほかの色も合います。
・ArUco マーカー(4隅):位置の見本。10cm 角の板を壁の4隅に貼り、写真を「壁を正面から見た図」(1px = 0.5mm)に直します。三脚の置き方が日によってずれても、同じ構図・同じ縮尺になります。
基準さえあれば、iPhone で適当に(DNG 48MPにだけは設定)撮れば一眼レフはいりません。
というか、一眼で撮ったものを素人に毛が生えた程度の私がphotoshopで補正するよりも、プログラムでゴリゴリに補正するこちらのほうが全然きれいです。
iPhone(ProRAW)で撮ったまま。壁にマーカーとカラーカード自動で補正したあと 歩み
始まりは10月7日。「Raspberry Pi のカメラ(Arducam IMX519)で、Canon EOS R6 の画質に勝つ」という計画でした。
被写体が動かない洋服の物撮りに絞って、露出を変えた連写の合成や、少しずつずらした写真を重ねる超解像で、小さなセンサーの弱点を補う設計です。AI で「それっぽく」描き足す超解像は、実物とのギャップがクレームにつながるので使わない、と最初に決めました。
10月18日に、iPhone で撮った1枚を補正するモードを足しました。
マーカーとフックの位置を何枚かの写真でまとめて較正し、マーカーの位置の誤差は平均 0.3〜0.7mm。
11月上旬に、背景の明るさと色味をそろえる仕上げ、照明のむら取り、服に隠れたマーカーの位置合わせを足して、いまは iPhone が主役です。
11月14日に、商品の入力画面(CMS)とつなぎました。
しくみ
人がするのは、撮る・まとめて上げる・確かめてボタンを押す、の3つだけです。
写真を商品ごとに分けるのと、タグの文字を読むのは AI、補正は店の PC が、1分ごとに取りに来て進めます。
正面と背面の写真は、次の順に処理します。
① 色:RAW をリニアのまま現像し、カラーカードの24色から、色ごとの倍率と 3×3 の行列を求めます。
② 形:4隅のマーカーから、写真を壁の正面図に直します。
③ 構図・掃除・仕上げ:ハンガーのフックを基準に縦 2:3 で切り出し、マーカーの板とカードを壁で埋めて消し、背景の明るさと色味をほかの商品写真にそろえます。
色の正確さは、カードの24色との差(ΔE2000)で測っています。
11月14日の正面・背面31枚で、平均 7.0 から 5.4 になりました。
使っているカードは互換品なので、カードそのものの色のずれも、この誤差に含まれています。
アップの写真の色をそろえる
タグや生地のアップには、カードもマーカーも写っていません。
そこで、同じ服の正面で求めた色の補正を、アップにも当てます。
ただ、iPhone は1枚ごとに明るさを変えて撮ります。
DNG に残っている露出時間・ISO・F値と、iPhone が付ける「BaselineExposure」(明るさの持ち上げ)から、写真ごとの明るさの比を出してそろえると、同じ服の正面・背面・アップの色がそろいました。
iPhone の自動の色のまま正面のカードの補正を当てたものところが、襟の奥のタグを撮った写真は、真っ暗になりました。
調べると、iPhone はその1枚だけ、正面より 7.3段(約160倍)明るく持ち上げて撮っていました。
明るさをそろえると、実際の暗さに戻ってしまうわけです。
タグのアップだけは、字が読める明るさまで持ち上げることにしました(色の比は変えないので、色はそろったまま)。
数字
11月14日の撮影は15着・112枚。補正は1枚 2〜4秒ほどで、112枚で約9分でした。
商品ごとの分け方は15着すべて正解で、同じ服の正面を撮り直したものも、2枚が同じ服かを AI に見比べさせて、1着にまとめています。
まだのこと
・採寸:正面図は実寸なので、写真から着丈や肩幅を測れるはずです。手で測った値を正解にして、学習用のデータを貯め始めました。
・服の形の検出:壁に近い色の服(明るい迷彩など)では、服の形が欠けます。
・JPEG:iPhone が色を仕上げたあとの画像なので、アップの色まではそろえられません。ProRAW で撮ります。
僕はズボラなノンクリエィブワーカーなので、このやり方が性に合っています。