顔写真の調整とデータ整理・加工の話


#1

いきなり泥臭い話ですが、

  • 免許証のような、顔写真入りのカードを作るために、顔写真画像をまとめる
    • 顔の位置や面積など、ある程度調整したトリミングを行う
    • 色かぶり、明るすぎ、暗すぎ、光ってる背景など目立つ不要物の除去(簡易)
    • 縦横のサイズを揃える
    • 解像度は、一定以上のものは下げるが、そのままでも良い
    • 画像フォーマット統一
  • 元データは、撮影場所、背景、ライティング、ピクセル数、画像フォーマットなどバラバラ
  • ファイル名に通し番号がついているので利用する

これを、最小限の手間で上手に処理してあげたいワケですが、どうするのがいいでしょうねーという話です。


#2

写真の点数を書いていませんが、とりあえず多いものとして考えます。
それから、この手の話は、あとでパラパラと追加が出ますので、それも含めて考えておく必要がある感じです。
品質はお察しください。

これ、皆さん、どこから手を付けます?

トリミングとサイズ調整、画像フォーマット統一を、先にPhotoshopでやってしまうか……。
文字通り免許証からスキャンしたような超ちっちゃい画像が混ざってると、ピクセル数統一しようとすると拡大になっちゃうから迷うところ。低解像度のまま、原寸を統一して使うか、アップスケールしちゃうか……。

ある程度サイズが揃ったところで色を修正するとして、どうやって作業すれば楽になるか……。

これ、まぁ実際にやるんですけど(笑)、どんな知恵があるかなと思いまして、最初のお題として投下してみました。一緒に考えていただければ幸いです。


#3

色調を揃えるのはPhotoshopにそんな機能がありませんでしたっけ?

大きさがまちまちな顔を揃えるのに、OpenCVで顔を解析してサイズ測ってxmlでメタデータとして保存してInDesignに張り込む時にそのデータ使って揃えてるっていう変態な話は聞いたことがあります


#4

そもそも自動化しろって話はよくわかります!
今のPhotoshop、「被写体を選択」とか出来るようになってますしね。

最初のサイズ調整のトコは、9割ぐらい自動で、残りを微調整すればササッと終わり、という感じにしたいものです……。

変にあらかじめ画像サイズ揃えるより、InDesignに貼ってから調整した方が楽かなぁ。


#5

OpenCVで顔写真を検出して切り出すネタ(……の続きで他の方法でやるヤツ)、この記事が面白かった!
http://memo.sugyan.com/entry/20160429/1461940277

専門業務となれば、そのためのソフトも色々あるのかなと思います。
ご存じの方がおられましたら教えてください。


#6

わたしはOpenCVを組み込んだExternalObjectを利用して顔の大きさを基準に配置しますから、色補正だけを一気にやった後はスクリプトでの配置です。全てを完璧とはいきませんが修正が必要なものはおおよそ3%程度です。
参考 https://ten5963.wordpress.com/2017/03/20/opencvをextendscriptで利用するなんとか/


#7

こりゃ凄いッ!

ほとんどサンプルのまんまで、配置位置・サイズの調整と繰り返し処理だけ自分の都合にあわせて変更すればいけちゃいますね。ちょっとスクリプトいける人は、あっというまに仕事が終わるって感じです。

色補正の方は、Lightroomみたいなまとめて処理するソフトの方がいいのかな?

手作業でやるならこうやってやるのがいいんじゃないかな、という手順も紹介していただきたいので、引き続きよろしくお願いします。


#8

ここMarkdownそのまま使えるのねー便利ー
(でも、投稿・返信ボタンに当たってるショートカットキーなんとかして外せないかな……)

一応顔の大きさ揃え、手動なら(アクションある程度いけるけど)こういうのが。

顔色揃える………って指示がたまにあるけど、顔色揃えたらとてもヘンなんだよね。むしろ 背景揃える 方が合って見える。
ただ、背景揃えるとなるとクイック選択ででも切り抜きが必要になってくるんだよね。

わしの場合、猛烈に多いんじゃなければ

  • リサイズ処理
  • USMで出てくる系のシミとか髪とか消して、
  • 色調補正。シャドウとハイライトが似てくればOK
  • 人物のみ切り抜き(簡易)して背景色合成処理
  • 全てinddにべーっと配置して違和感あるもの抜き出して修正

ってやるけど、1,000枚超えるようならどうだろうなぁ……顔写真でその枚数はやったことないでつ。
(たぶん請けないし)

※ Keyboard Maestroで、indd選択画像を必ずPhotoshopで開くショートカットキー作っとくととても便利〜


#9

良い記事ですねぇ、ホント良い記事……。

「切り抜いたピクセルを削除」のチェックはずしておくなんて、昔から使ってるとかえって気がつかないかもしれない。便利すぎる……。

たしかに、全員を無理矢理揃えたりしない方がいいですね。
そういうところは、こちらからご理解いただくようにしたいです。

我々が操作を挟む場合、反復処理ですし、やはりKeyboard Maestroなどでショートカットは作っておきたいですね。


#10

証明写真風の顔写真の撮影方法、がっこで授業に組み入れてる。
昔もんのすごく苦労したから。

  • 壁に被写体くっつけるな!
    • 影出るやん。
  • 「白」だからってプロジェクターのスクリーンの前で撮るな!
    • 顔、真っ黒やん
  • 照明買え!
    • 全然違うから…………

一番困るのがフルオートで撮ることね。色も露出も全員違うから絶対やめれ……

一般の会社の照明は、ヒトを撮るのに全く不向きなんすよ。光量は圧倒的に足りないし、角度も悪いから顔に影ができる。鼻先だけ光った写真、よく見るよね。

※ところで不適切な文章だ、って投稿はねられたんだけど、どこらへんだったのだろうw

企画段階から関われれば、みんなラクできるのにねっ


#11

Mac OSにはもともと顔矩形認識機能がついていて,丸腰のMacでもAppleScript/JXAなどで呼び出せます。下のコード参照。

色補正やフォーマット統合は,大まかな下ごしらえ処理を何種類かPhotoshopのドロップレットで作っておいて,手動で「これを適用」と振り分けていくのが比較的楽です。

// 画像から顔のエリアを取得する処理
ObjC.import(‘Quartz’) ;

function run() {
return faceDetect(new CIImage(’~/Desktop/img.jpg’)) ;
}

function CIImage(imgPath) {
const imgPathStr = $.NSString.stringWithString(imgPath) ;
const fileURL = $.NSURL.fileURLWithPath(imgPathStr) ;
return $.CIImage.alloc.initWithContentsOfURL(fileURL) ;
}

function faceDetect(ciImageRef) {
const opts = $({‘CIDetectorAccuracy’ : $.CIDetectorAccuracyHigh}) ;
const detector = $.CIDetector.detectorOfTypeContextOptions($.CIDetectorTypeFace, $(), opts) ;
const faceList = ObjC.unwrap(detector.featuresInImageOptions(ciImageRef, opts)) ;

// 出力用に加工する
let res = [] ;
let bounds ;
faceList.forEach(function(aFace) {
// ここで得られる座標originは左下原点で,顔矩形の左下
bounds = aFace.bounds ;

// rectangles.add(top, left, width, height)用にArrayを作る。左上原点になるように変換する
res.push([ciImageRef.extent.size.height - (bounds.size.height + bounds.origin.y), bounds.origin.x, bounds.size.width, bounds.size.height]) ;

}) ;

return res ;
}


#12

最初から入ってるとか……。
確かに写真.appとか認識機能標準でついてるよね……。

さっき実際に試してみましたが、本当に座標を拾ってきますね! ひえー。

Webも含めてそうですが、基盤となるOSや公開されているWebサービス、ライブラリなどが本当にレベルアップしていて、それらの技術を活用できる人と、アプリケーションに用意された機能で仕事する人の、アウトプットの差が著しいですね。


#13

お邪魔致します。
とあるサッカーの大会プログラムで全16チームの登録選手プロフィールを各チーム30名前後というものが
昨年から制作を担当することになっておりますが支給元のjpegと選手プロフィールをIdのデータ結合で配置まで行い、
まずは枠一杯まで写真が配置されるようにして各チームに確認しています。
その間に襟元辺りから頭部が収まる様にリサイズをしていますがこちらで話題になっている
顔認識という話もご提案いただいたことがありましたがいつか自動化できたらと思った次第です(^_^;
今回色かぶり等も懸念材料でしたがそのまま通ってしまったのであっけに取られましたが
レタッチはともかく腰から上の写真を簡単にリサイズできたらどれだけ楽なのだろうと思います。

三脚固定で決まった場所に立って撮影したものであれば、
眉間より上辺りで拡大ツールで%を決めてしまえばほぼその数値で同じ場所くらいで拡大して
髪の毛のボリュームは首の長さで決めていますが微調整もあるのでなかなか大変です。。。