
妹がFacebookに写真をupしていたので自分のMacに取り込んでみました。
いつ撮影したのかな?
と思い、先日作成したjavaコマンドで画像のメタ情報を読み込んでみました。
すると、、、、
な、ない!!!
画像ファイルにメタ情報がついていないのです。
そんなバカな!
と、おもい、すべてのメタ情報をダンプしてみました。
すると、ほとんどメタ情報がついていないのです。
どういうこと?
うーむ?
と、いうことは、FaceBookはアップロードされた画像をそのまま掲載しているのではなく、いらないと判断したメタ情報を削除しているということですよね。
ということは、FaceBookが必要と判断したメタ情報はFaceBookが自身で格納しているかもしれないということですよね。書き換えることもできますよね。
少なくとも技術的には。
■FaceBookの利用規約
■Facebookが受け取る情報の用途
を確認してみました怪しいです。
FaceBook自身がこういうメタ情報を使っていますね。
神様にでもなったつもりなのか?
怖くなってきました。。。。
投稿者: howdi
-
FaceBookにアップされた画像って。。。
-
JPEGメタ情報を取得したい!そんな時どうする?(Java編)

Perlで書いたexif読み取りアプリ、個人的には結構役に立っています。
そこで、このExif読み込みアプリ,もう少し極めてみようとおもいはじめました。
GGプログラマーとして、exif取得アプリを、なるべく近い外部仕様という条件で、いろんな言語で作る修行に挑戦してみます。Java,Scalr,C++,pythonなどなど。
この挑戦によって、自分の腕を維持することは無論、各言語自体の特徴を把握する比較言語学的なアプローチや、各言語を取り巻くエコシステムを比較文化論的に見渡ことができる気がしてきています。
そうそう、あとから、プロセスを検証できるように、実験ノートもちゃんと書きましよう。
まずは、java編。
Javaはprocessingでもお世話になっているので、私のMacBookの中ではPerlの次に慣れている言語と開発環境ですが、かなり苦戦.時間を使いましたが、ようやくできました。
できてしまえばなかなかいい使い心地です。
Javaの方がPerlより小回りがききますね。欲しいデータを欲しい形式でとりだすのはJavaのほうが楽。
ただ,Javaで書くと行数が増える気がします。そんなたいした処理じゃないのに。
javaの場合、PerlがCPANとして用意してくれたライブラリ相当のツールはいろんなところにあるようです。Apache projectだったり。エコシステムがしっかりしています。
ソースは、こんな感じ。import com.drew.imaging.ImageMetadataReader; import com.drew.imaging.ImageProcessingException; import com.drew.metadata.exif.ExifIFD0Descriptor; import com.drew.metadata.exif.ExifIFD0Directory; import com.drew.metadata.exif.ExifSubIFDDescriptor; import com.drew.metadata.exif.ExifSubIFDDirectory; import com.drew.metadata.xmp.XmpDescriptor; import com.drew.metadata.xmp.XmpDirectory; import com.drew.metadata.Metadata; import com.drew.metadata.Directory; import java.io.File; import java.io.IOException; public class Read_Min_Tag { public Read_Min_Tag(String fileName) { File file = new File(fileName); try { Metadata metadata = ImageMetadataReader.readMetadata(file); // obtain a specific directory Directory directory = metadata.getDirectory(ExifSubIFDDirectory.class); // create a descriptor ExifSubIFDDescriptor descriptor = new ExifSubIFDDescriptor((ExifSubIFDDirectory) directory); // obtain a specific directory Directory directory2= metadata.getDirectory(ExifIFD0Directory.class); ExifIFD0Descriptor descriptor2 = new ExifIFD0Descriptor((ExifIFD0Directory) directory2); // obtain a specific directory Directory directory3 = metadata.getDirectory(XmpDirectory.class); XmpDescriptor descriptor3 = new XmpDescriptor((XmpDirectory) directory3); //カメラ機種:Model String Model = descriptor2.getDescription(ExifIFD0Directory.TAG_MODEL); //レンズ種別:Lens String Lens= descriptor3.getDescription(XmpDirectory.TAG_LENS); //ISO:ISO String ISO= descriptor.getDescription(ExifSubIFDDirectory.TAG_ISO_EQUIVALENT); //焦点距離:FocalLength String FocalLength = descriptor.getFocalLengthDescription(); //絞り:FNumber String FNumber = descriptor.getFNumberDescription(); //シャッタースピード:ShutterSpeed String ShutterSpeed = descriptor.getShutterSpeedDescription(); System.out.println("Model---->"+Model); System.out.println("Lens---->"+Lens); System.out.println("ISO---->"+ISO); System.out.println("FocalLength---->"+FocalLength); System.out.println("FNumber---->"+FNumber); System.out.println("ShutterSpeed---->"+ShutterSpeed); } catch (ImageProcessingException e) { System.err.println("error 1a: " + e); } catch (IOException e) { System.err.println("error 1b: " + e); } } public static void main(String[] args) throws IOException{ if(args.length == 1){ new Read_Min_Tag(args[0]); } else { System.err.println("usage: java Read_Min_Tag filename"); } } }出力結果は、こんな感じ。
Model---->NIKON D5100 Lens---->18.0-55.0 mm f/3.5-5.6 ISO---->100 FocalLength---->18.0 mm FNumber---->F8 ShutterSpeed---->1/159 sec
Perl版にそっくりにできます。
おお!■実験ノート■ 5/10:apache commons imagesを発見。インタフエースが汚そう。 5/10:保守が止まっているみたい。なので不採用。 5/10:metadata-extractorを発見。Drew Noakes氏がメンテ。 5/10:他にも面白そうな画像処理系ソフトを公開しているようす。 5/10:metadata-extractorはgoogle-code上でメンテが続いている。 5/10:インタフェースも軽そうなので、まず採用。 5/11:eclipseのプロジェクト環境整備に苦戦。 5/11:落としてきたbuild.xmlではant-buildが失敗.adobe-xmpのjarが必要 5/11:javacのメッセージが文字化け。エンコードを正す。 5/12:プロジェクトを作成する。jarをbuild pathにくわえる。 5/12:buil.xmlを読み始める。手修正。参照しているjarのフォルダー名が不一致 5/12:ecllipseは所詮、開発支援レベル。でも、それでいい。 5/12:junitが古い。最新をプロジェクトのライブラリにimport。 5/13:junitが失敗。成功5シナリオ、失敗1シナリオ。 5/14:junit成功。build.xmlに記述されているテストセットのパス定義がいい加減。 5/14:javaコマンドでの実行に失敗。クラスパス定義。 5/14:classファイルにはパスまで、jarファイルにはパス+ファイル名を記述。 5/15:javaコマンド成功。
-
May the 4th be with you!

今日は、新聞の朝刊にスターウオーズの全面広告が入ってきました。
StarWars の中でジェダイが言い交わす合い言葉、
“May the force be with you”.
の中の”May”と”force”を使って”5月”、”4日”にちなんだイベントを創ろうとしたようです。
いよいよEpisode VIIの制作発表もされたので、勢いをつけたいんでしょうね。
Episode VIIを見るまで、達者でいないと!! -
月の光(冨田勲)Ultimate Edition
シンセサイザー演奏家富田勲の「月の光」。
中学生の時、初めて買ってもらったLPがこれでした。
電器屋だった実家の店の売り物のステレオで何回きいたことか。
今週、ふと、近所の図書館で
「Clair De Lune Ultimate Edition」
を見つけ、さっそく、借りてきました。
iTunesにも載っているんですね。
ほぼ30年ぶりのご対面。
音は色褪せていませんね。
電子音を使ってここまでドビッシーの世界がもつ音の色彩感を再構築した人は居ないと思います。
・亜麻色の髪の乙女
・月の光
・夢
・沈める寺院
・ゴリウォーグのケークウォーク
・アラベスク第一番
普通にピアノできいても良い曲です。
このアルバムをきっかけに、
音楽の世界にもちょっとだけ足を伸ばすきっかけをくれたアルバムでした。
自分は変わっていないつもりだけど、
自分も周りもずいぶん変わってしまいました。
40年という、時間が過ぎていきました。 -
JPEGメタ情報を取得したい!そんな時どうする?

ネットでFaceBookやFlickrを見ていると、「いいね!」と感心し、私も同じような画像をとってみたい、どうやって撮っているんだろうと気になります。撮影に使ったレンズの焦点距離、絞り、シャッタースピードがわかれば、私でもこういう映像が撮れるチャンスが高まるかな?と思いました。
そういうとき、どうしますか?
PhotoShopのような画像ソフトで見れば確かにわかります。だけど、重いソフトを起動してちょっと触っておわり。なんか、高級車でとなりのスーパーに買い物にいくような気がします。こういうときは、気軽で身軽なサンダルが便利です。
フリーウエア?そんな危ないもの使いたくないです。Java?作れそうでしたがなんか大変そうです。そう、こういうときはPerlです。
ちょっとGoogleで捜しました。そうすると、同じような事を考え実行している先達はたくさんいるんですね。良いツール”Image::ExifTool”を紹介してもらいました。CPANで落としてちょっとスクリプトを書けば準備は終わり。
はい、やりたいこと、欲しい情報が取り出せるようになりました。
ソースはこんな程度です。#!/usr/bin/perl use Image::ExifTool; my $img; my $file; my @tag=qw(Model Lens ISO FocalLength FNumber ShutterSpeed); $file=$ARGV[0]; open ($img, "< $file"); my $exifinfo = Image::ExifTool ->new->ImageInfo($img); close($img); foreach (sort @tag){ print "$_ ----->$$exifinfo{$_}\n"; }はいこの通り。カメラ機種、レンズ種別、焦点距離、絞り、シャッタースピードがわかりました。
FNumber ----->8.0 FocalLength ----->18.0 mm ISO ----->100 Lens ----->DT 18-200mm F3.5-6.3 Model ----->SLT-A77V ShutterSpeed ----->1/800
情報を処理することに、大がかりなツールがいることは、個人ユースの場合には殆どないとおもいます。こういう身軽なツールをインターネットを介し、世界中の人とフリーに共有し、文房具感覚で使いこなす方が、個人ユースとしては正しい気がします。これぞ、次世代のソフトウエアの使い方の気がします。構築そもののにITベンダーの入る余地はほとんどないけれど、なにが便利なのか、どう使いこなせばいいのか、詳しい人、見識の確かな人が、参謀として隣にいて欲しい事があります。今後はそういう所かもしれません。
追伸
SyntaxHighlighterを使う:桂馬弐のブログ
ありがとうございます。ソースコードを整形してCocologに表示できるようにするため、
大変参考になりました。大感謝です。

-
さくらまつり2014

今年は桜が咲き始めてから天気が安定しませんでした。
例年よりも開花期間が短かった気がします。

今日も午前中は晴れていました。このまま、お天気が保つ事を期待していたのですが、やはり、寒気が入り込んでくるので大気が不安定になるはずだという、天気予報の通り、午後からは1時間おきに雨が降っては晴れ、降っては晴れ。三時過ぎには雷と豪雨。模擬店は、みなさん、はやめに撤収。

でも、おかげで静かな日常が早めに戻ってきました。
むろん、我が家は、花より団子。

-
デジタル画像のホワイトバランス調整。。。

先週の三連休、横浜みなとみらいに行ってきました。
目的は、横浜美術感で開催されていた版画の企画展「魅惑のニッポン木版画」をみにいくことでした。こちらの展示会もおもしろかったので、様子はおいおい、ご紹介させていただきます。今回はこのとき、久しぶりに一緒にもっていったデジカメで撮影した画像に関することをご紹介させてください。
その日は天気があまり良くなく曇り空でした。持参したデジカメを使って最後に撮影したのが蛍光灯下の室内でしたので、デジカメのホワイトバランス設定が、蛍光灯モードのままでした。そのことに気がつかなかったので、とった写真がすべて青みががってしまいました。困りました。
PhotoShopはもっていますが、トーンカーブを試行錯誤的にいじくっているだけで、偶然、成り行きに結果を任せていました。うまくいったのか、このやり方がベストな方法なのか、手探りでした。
ふと、自宅にPhotoShoopのマニュアル本があることを思い出し、もう一度、ホワイトバランスの調整のところを読み返してみました。
それによると、ホワイトバランスは白を調整することでなく、灰色を灰色に見えるように調整すること。なので、中間色のRBG値を調整するとホワイトバランスが決まるとかいてありました。本当かな?と思い、Photoshopのトーンカーブのパネルで中間色をスポイトツールで選択すると、”おお!、感動的にぴったりと色味があってきました。
何故なのだろう?と、不思議におもいました.灰色というものがどういういろなのか?Photoshopのマニュアル本を読み、実際に自分で灰色のRGBコード値を見てみて、わかりました。灰色という色そのものは、以下の図のように、RBGコードでいうと、RとGとBの値が同じ色なんですね。

ところが、ホワイトバランスの設定に失敗し撮影した画像のなかで灰色に見えて欲しい部分のRGBコードをみると、RとGとBの値が異なってるんです。ホワイトバランスを補正することとは、この撮影し生成した画像PIXELのRBGコードを、物体そのものの持つRGBコードに補正することだったんですね。
三次元から二次元への置換における作業なんですね。
それが、わかると、これまで、うまくホワイトバランスを調整できなかった画像も短い時間で確実にホワイトバランスを補正できるようになりました。
他の人はどうしているのか、Google検索してみました。
おもしろいやり方をおしえてくれるサイトも2,3ありました。
■Photoshop 中間調を整える
■写真の秘訣 グレーカード撮影法(Lightroom仕上げ) – YouTube
■ColorChecker パスポート
■Color Management Fundamental
グレーカードというもので色補正もできるんですね。
ということがわかり、Amazonで検索してみると、なるほど、いろんなところがグレーカードをだしていますね。とくにKodakがまだ販売していることには驚きました。なるほど、グレーカードというのは、こうやって使うんですね。いままで、こんなカードがどうして必要なのかわかりませんでした。
ホワイトバランスという言葉の意味を考えているとき、もう一つ、他の世界から関係のある言葉を読んでいたことをおもいだしました。最近、画家の山口晃さんが書いた「へんな日本美術史」という本を読んでいたのですが、この本の中に、円山応挙が展開した絵画論を記載した文書「萬誌」を紹介している文章がありました。
応挙の言葉に以下のような言葉があったそうです。
「自分が描いた絵の出来上がりを点検するときは白日のもとにその絵を床に懸けてて見なさい」
これ、作品はキチンと白日の光、つまり、ホワイトバランスの撮れた光の下で点検しなさい。という意味にとれます。デジタルの事など関係のない昔から、絵を描く人はホワイトバランスの事を知識として持っていたんですね。この応挙という人は、絵画論の中でどんな技術論を展開しているんだろう、もっとデジカメで撮影した画像を上手に補正する手段のヒントになることは書き残していないのかと円山応挙に俄然、興味がわきました。
昨日、円山応挙の専門家である美術史家の佐々木丞平さんのPDF論文をCiNiiからダウンロードし読んでみました。おもしろかったです。
アナログとデジタルが300年の時を越え「色」という言葉でつながりそうです。さて、その事は、次回ご報告します。

-
ワーク・シフト
■ワーク・シフト
■リンダ・グラットン (著)
■池村 千秋 (翻訳)
■プレジデント社
Lynda GrattonのWORK SHIFT,
いい時期に、いい本に出会えました。
彼女が唱える、5つの因子、32の要素。
1.テクノロジーの進化
・テクノロジーが飛躍的に進化する
・世界の50億人がインターネットで結ばれる
・地球上の至る所で「クラウド」が使われる
・生産性が向上しつづける
・ソーシャルな活動が活発になる
・知識のデジタル化が進む
・メガ企業とミニ起業家が台頭する
・バーチャル空間で働き「アバター」を利用することが当たり前になる
・人工知能アシスタントが普及する
・テクノロジーが人間の労働者に取って代わる
2.グローバル化の進展
・24時間x週7日休まないグローバルな世界の出現
・新興国の台頭
・中国とインドの経済の目覚ましい成長
・倹約型イノベーションへの道
・新たな人材輩出国の出現
・世界中で都市化が進行する
・バブルの生成と崩壊が繰り返される
・世界中のさまざまな地域に貧困層御が出現する
3.人口構成の変化と長寿化
・Y世代(1980-1995頃の生まれ)の影響力が拡大する
・寿命が長くなる
・ベビーブームの世代の一部が貧しい老後を迎える
・故郷を越えた移住が活発になる
4.社会の変化
・家庭のあり方がかわる
・自分を見つめ直す人が増える
・女性の力が強まる
・バランス重視の生き方を選ぶ男性が増える
・大企業や政府に対する不信が強まる
・幸福感が弱まる
・余暇時間が増える
5.エネルギー・環境問題の深刻化
・エネルギー価格が上昇する
・環境上の惨事が原因で住居をおわれる人が現れる
・持続可能性を重視する文化が形成されはじめる
これら32の要素はけっして、学者さまの空言でなく、私も日常の仕事のなかで、常々感じています。
これらをどのように使いこなすのか、使われてしまうのかで、「主体的に築く未来」と著者が呼ぶ、明るい人生を作り出すのか、「漫然と迎える未来」と著者が呼ぶ、絶望的な世界を受動的に受け入れるのか、一つの要因がコインの表と裏のように異なる結果を導き出す事が書かれていて、印象に深かったです。
主体的に生き、自ら選択し、みずからの人生をシフトさせていき続けることが大切。
そのためには、
・継続的に自分の専門領域を深め広げる努力を続けて、みずからの活躍領域を変え続ける続けること。(第一のシフト)
・主体的に実世界での人間関係を育てつづけること。それにより、いつでも相談でいる仲間、いつでも一緒に仕事に参加してくれる仲間を育て続けること(第二のシフト)
・そして、金銭的な収入や、どんなブランドが好きか、などに消費の重きをおく生き方から、創造的に自ら何かを生み出し、経験をたのしむ生き方に切り替えること(第三のシフト)
が大切。と、著者は説いています。
その先のリスクにも自らが責任を保つ事、それが彼女の主張でしょう。
彼女の主張に沿って展開されるグローバルな営みの数々、ジル(ロンドン)、ローハン(ムンバイ)、アモン(カイロ)、ブリアナ(オハイオ)、アンドレ(リエージュ)、ミゲル(リオデジャネイロ)、ジョンとスーザン(バングラデッシュ)、シュイ・リー(河南省)、これらのユースケースによってそれが裏付けられており、非常に読みやすいです。
最後に、以前、スマントラ・ゴジャールという学者の書いた「個を活かす企業」という本を読んでいました。その記述内容に私も共鳴しました。Lynda Grattonは、スマントラ・ゴジャールと多くの共同作業をやってきていたようです。けっして、偶然ではないのでしょう。
彼女の語るような未来を見据えている人は決して彼女一人ではない気がします。

-
オープン&クローズ戦略(その2)
■オープン&クローズ戦略 日本企業再興の条件
■小川 紘一 (著)
■翔泳社
セミナー後、実際に本を手に取り、読んでみました。
本を書いた著者本人から直接話しをきいたので、本の構成は頭に入っていましたが、本を読んだからといって、すべてが頭の中に入り、体が動き、自分の組織を動かせるわけではないですね。
■フロントランナー型事業の知的財産の公理■
公理1.1
その知的財産に価値があり、これを回避・迂回する知的財産が存在しないとき、その企業は競争優位を築くことができる。
公理1.2
自社のコア領域とオープン化すべき領域との境界を定め、そのコア領域でクロスライセンスを排除できて、コア以外の領域で他社の知的財産を回避・迂回できるのであれば、その企業は競争優位を獲得できる。
公理1.3
自社のコア領域と他社技術をつなぐ境界に知的財産がすり込まれ、知的財産権利を維持しながら知的財産と境界仕様を公開し、他社へ強い影響力を持たせることができれば伸びゆく手の作用によって、その企業はさらに強力な競争優位を築くことができる。
と、わかっているんですが、どうやって「ダントツの誰にも負けないコア領域」をみつけるのか?、企業と市場の境界の領域で特許を創り出すのか?自分の属する組織、企業のコア領域が何なのか?わかっているようで、わかっていないです。自分の会社が持つ技術、知財、販売チャネル、ブランドのどこかにありそうだが。自分自身が行動し見つけ、実践しなければいけないのでしょうね。数学の公理と実際に問題を解く違いですかね?
かたや、著者が本書の中で記述している市場に「伸びゆく手」が何者か?それはわかってきた気がします。牧歌的でお気軽なオープン戦略ではなく、生き残りをかけた生態系の形成のことなんてすね。珊瑚礁の生態系のようなものなのでしょう。ただ、産業構造がビジネスエコシステム型に変わり、企業間がオープンに連携し始めた現在、それ以前から生存し、総合商社的に全てを取り揃え、社内で連携しすりあわせ、モノコック型の垂直統合を提供するために、複数の事業部を抱えている国内大企業はどうなるんでしょうか?生き残れるんでしょうか?ブティック的に専門技術で光っているモジュラー型の中小企業の集合体に負けてしまうのではないでしょうか?
複雑な技術体系全体を見渡し、最適なモジュールを選択し、全体仕様を設計する能力、つまり、アーキテクト力、これが、これからのコア領域なのかでしょうか? -
オープン&クローズ戦略

2014年度の年初計画策定で今週は煮詰まっています。たまに、対流試合に挑むのも刺激になっていいかと思い、雨の中、秋葉原まで行ってきました。
・AICOS(アキバイノベーションカレッジ オープンセミナー) 2013 第11回
・2014年3月5日(水)18:30~21:30
・講師 : 小川紘一氏(東京大学政策ビジョン研究センター・シニアリサーチャー)
会場は、100人くらいが入る会議室でしたが,おじさんたちで満員。おじさんたちの熱気ムンムンです。経済産業省のお役人さんや前特許庁長官、元アップルジャパンの役員さんも参加していましたようです。内容は、講師の小川さんが最近出版した本に関する本人自身による解説でした。21世紀の製造業がとるべき知財戦略マネジメントが本当のテーマでした。
まず、90年代以降の日本の製造業、特に電機メーカがどのように不調であるのか?その背景にあるのは製造業がソフトウエアリッチ型になり、モジュール化と技術伝搬のスピードが格段に短縮されたと、解説してもらいました。
次に本題、オープン&クローズ戦略とは何なのか?その具体的な説明いただきました。
利益を生み出すコア領域をクローズにする一方で、市場との境界をオープンにして多くの企業を巻き込み、自社に優位な産業生態系を形成すべきとのこと。つまり、オープンな領域で市場形成を加速し、クローズド領域に収益を引っ張り込むとのこと。特にオープンとクローズドを繋ぎ混む境界領域を知財でがっちり守り、コア領域から市場をコントロールする仕組みを構築し、ここから新興国(オープンパートナー)の成長を自身の成長に取り込む「伸びゆく手」の形成が重要。特許出願件数をノルマにしている企業は終わっていますね。
全体、かなり強い刺激をいただきました。
明日、社内で開催される戦略会議の参考にさせていただきます。
■オープン&クローズ戦略 日本企業再興の条件
■小川 紘一 (著)
■翔泳社