Exifでの写真の縦・横方向指定問題、画像認識ソフトウェアに影響 39
ストーリー by hylom
分かる 部門より
分かる 部門より
Anonymous Coward曰く、
JPEGなどの画像ファイルに埋め込まれているメタデータ「Exif」では画像の方向(縦もしくは横)を指定できる項目がある。これを利用することで、画像部分のデータを変更することなしに表示方向を制御できるのだが、これを正しく処理できない画像認識ソフトウェアが存在していると言う(GIGAZINE)。
昔はWebサービスでもそういうのがあったけど、人工知能関連だと確かに注意して実装しないとだめだな。
たとえば、画像データは横向きになっていてExif情報でそれを縦に表示するよう指定している場合、それを考慮して90度回転させて処理させなければならないが、そういった処理を行なっていないソフトウェアは少なくないという。
デジカメのビューワーだと (スコア:0)
表示するときに無視して常に横位置表示するか、従って回転表示するかの設定項目があるね。
真下を撮るとどっちになるかは神のみぞ知る状態だし、単純にExifに従えばいいという問題ではない。
画像認識できないなんてのは、色々な角度で回転させつつ学習してないのが問題であってExifの問題じゃない。
カメラが傾いただけで認識率が大きく変わっちゃうゴミAI作るなよw
Re: (スコア:0)
画像認識ライブラリには古い画像ビューアーと同様にExifを参照しないものが多く存在する
ライブラリがゴミ。もちろんそんなライブラリを使用しているAIもゴミなんだけど。
ベタ画像ならまだしも、圧縮画像を読み込むライブラリならそれぐらい対応しろと。
Re: (スコア:0)
逆だな。ライブラリを使う側がゴミ。
画像認識ライブラリは「画像」(RGBや輝度の情報のみ)を処理するものであって「写真」(Exifを含む情報)を処理するものではない。
だから費用に応じてライブラリを呼ぶ側がExifを処理するべき。
Re: (スコア:0)
画像の回転は破壊的処理なのでライブラリが勝手にやったらそれこそゴミ
Re: (スコア:0)
勝手にやってしまうのは問題だけど、指定すればできてもいいんじゃない。
破壊的処理なの?劣化なしに回転させるソフトはあったので、JPEG劣化なしに編集で反転と回転はできたと思う。
量子化されたデータのまま、入れ替え編集するんだと思うが詳しくはしらん
Re: (スコア:0)
JPEGからビットマップに復元してそいつで学習するんじゃないの
だったらビットマップを回転させればいいだけで、それくらいは簡単にロスレスできるよね
ロスレスJPEG回転を要求する必要はないだろ
Re: (スコア:0)
AIは普通ビットマップから学習するが、画像処理ライブラリはAIにしか使わない訳ではない。
勝手に回転されて嬉しいとは限らないから指定されなければ余計なことはしなくて当然。
> JPEG劣化なしに編集で反転と回転はできたと思う
Exif情報を変更するのかな?
Re: (スコア:0)
>> JPEG劣化なしに編集で反転と回転はできたと思う
> Exif情報を変更するのかな?
https://www.vector.co.jp/soft/win95/art/se171449.html [vector.co.jp]
> 画像劣化が起こる可能性のある、「DCT(離散コサイン変換)処理」をバイパスすることによって、まったく劣化の行わない処理を行います
らしいよ
Re:デジカメのビューワーだと (スコア:1)
8x8のブロック内では、DCT後のデータの並べ替えや符号反転で、無劣化に、縦横入れ替え(45度軸反転)、左右反転、上下反転ができるので、
その組み合わせで回転させられるというのは理解できるし、
さらに、ブロック単位での配置も並べ替えれば、全体の画像を回転させれる、ということになるんだけど
解像度が8の倍数(というかU/Vを考えると16の倍数)じゃない場合はどうしてるんだろう。
JPEG的データ上では、エンコード時にはブロック単位になるようパディングしてからDCTにかけてるから、
上や左にパディング分のゴミ表示が入ってしまうはず。
Re: (スコア:0)
回転対称な構造のニューラルネットワークは訓練がおっそいから誰も使わんの
スラドのコメント欄は機械学習に関して異常に無知なやつばっか書いてるよな
Re: (スコア:0)
機械学習に限った話か?
Re: (スコア:0)
確かに。人間も横向きの文字や図形は認識率が低下するし
機械学習に限らないな
# ボケ
Re: (スコア:0)
GINPだと、開く時、時たま、「縦横変えますか」とか
聞いてきます。
機会学習をやっているとも思えず(AIが流行る前からだった)
何か、いくつか矛盾する値が有る?
ただ、「変えます」では無いので、確定的な矛盾では無い?
Re: (スコア:0)
×GINP
○GIMP
でした。
Windows 7 がまさに (スコア:0)
エクスプローラでExifの回転方向を考慮してくれないので取引先から「どうして横向きなんだ」とお叱りを受けたことも多々ありました……。
Re:Windows 7 がまさに (スコア:1)
>エクスプローラでExifの回転方向を考慮してくれないので取引先から「どうして横向きなんだ」とお叱りを受けたことも多々ありました……。
どうしてまともなビューワーを使わないんだろう。
ワザワザ不自由な環境で仕事をしないといけないシバリがあるんだろうか。
Re: (スコア:0)
Re:Windows 7 がまさに (スコア:1)
前例はたくさんありますね。
Re: (スコア:0)
ビューアの前にファイラーでサムネイルチェックするの普通だよね。
みんなやるよね?
Re: (スコア:0)
ライブラリ供給する側のOSシェルで無視すんのはどうかと思うけど
スタティックリンクで自前処理してる古いソフトウェアでありがちよね
EXIF端折るに留まらずパラメータ処理しきれず不正処理で落ちたりさ
情報量に対して妙にでかいPDF分解してみたらメガサイズのJPGのごく一部をクリッピング表示してたり
90年代を生きた経験からするとなんかモヤモヤする
Re: (スコア:0)
バグってる取引先を修正するのはどうでしょう
Re: (スコア:0)
縦写真なら回転して渡すもんだと思ってましたが
※劣化なしでjpegを90度回転するソフトとかもありましたし
スマートフォンだと (スコア:0)
そもそも天地を気にせずに使う人が多いと思う。なので EXIF の通りに処理したら方向があってないなんて写真は大量にあるのでは。
機械学習に使いたいなら EXIF には頼らずちゃんと人間が見て天地をそろえてあげないとダメだと思う。
まぁ天地をそろえる AI なんかも出てくるのかもしれませんが……
Re: (スコア:0)
スマートフォンは各種センサーが豊富なので、かなり正確に天地をExifに設定できるはず。
回転方向が怪しいのはデジタルカメラの方じゃないか?
Re: (スコア:0)
天地の情報なしで手ブレ補正なんてできねーんだから
いや別に天地の情報は知りたくもないけど、一般相対論でそっちが下なのか加速方向なのかは区別できないもんで
Re: (スコア:0)
手ブレ補正は自由落下状態(本当に1Gで加速してる)でも特に変わりなく動作する気がする
あと重力方向は言うほど鉛直の算出方法としてアテにならんってVR関連で聞いた気がする
Re: (スコア:0)
天地判定に精度はそんないらないよね45度単位でわかればいいだけだし
Re: (スコア:0)
対地速度が分からないと手ブレ補正できない理論に従えば
乗り物に乗ったりドローンに取り付けたりすると一切効かないことになるが
んなこたーないわけで
Re: (スコア:0)
必要なのは被写体との相対速度だからね
ただ通常のカメラに被写体の速度を取得する方法はないので
Re:スマートフォンだと (スコア:1)
手ぶれで「カメラの向き」がほんの1度でもずれたら、5m先の被写体は9cm(=tan(1度)×5m)分ぶれて写ることになりますが、
「向きはそのまま、位置が平行移動」するようなぶれはそう何ミリも移動したりしないし、その場合は移動量そのものが被写体のぶれになるので、
手ぶれに対しては回転の方が支配的。
だから、手ぶれ補正に、加速度センサは必須ではありません。角速度センサで回転の検出ができればいい。(2軸補正とか3軸補正)
まあ、一眼とかの高級なやつだと、回転だけでなく移動も検出する5軸手ぶれ補正とかがあるので、加速度センサの出番もありますが、
流し撮りに対応するため、単にカメラの動きを止めるように補正するのではなく、
動きがなめらかになるように補正する(つまり、加速度センサの「変化」をキャンセルするように補正する)ような動作になりますので、
> 電源投入前から自由落下状態が続いて他の移動がない状態
は、たぶん問題なくいけるんじゃないかな。
その程度 (スコア:0)
回転しただけで、認識できなくなるようなトレーニングが間違ってんだよ
縦横の概念を学習の段階で取り除いとけよ
簡単な話 (スコア:0)
現実問題として機械学習 == ディープラーニング == TensorFlow == (Google Colab || Cloud AutoML)
だからこうなる
import numpy as np
import cv2
img = cv2.imread('gazou.jpg',0)
この時cv2は画像を回転しません
以上
Re: (スコア:0)
cv2、使われてる割にはこういう基本機能足りないですよね
一見簡単に操作できるけど、ちょっと何かしようとするとはまることが。
#EXIF認識しないってより読む機能がそもそも以下略
画像認識ソフトがExifを参照するのがそもそも間違い (スコア:0)
画像そのものから縦横の判断ができない認識ソフトになんの意味があるのか。
画像データ以外を参照するなら、それは画像認識ソフトではないだろう。
Re: (スコア:0)
動画から静止画を切り出したものは動画のピクセル数そのままに保存されるけれど、アスペクト比を考慮するとピクセル数のままでは問題になる動画も珍しくない。
コレとか最低品質の画像生成とか (スコア:0)
いまさら感のあるJPEGネタが続くな
なんか15年くらい巻き戻った気分
「それを考慮して90度回転させて処理させなければならないが、」 (スコア:0)
-90度回転させる場合もあるのではないかな?
Re: (スコア:0)
はいはいそうですね
非正方ピクセルの認識も難しいのかな (スコア:0)
古いビデオから抽出した画像もそうみたいだけど、
個人的にはファミコンのスクリーンショット(256×240)を、古いテレビ画面(4:3)へ投影した感じになるようにピクセルアスペクト比を設定して保存しているから、非正方ピクセルがどのように処理されるか(古いビデオに写った人間は一律スリムに認識されているのか?)興味がある。
# 劣化なし、ファイルサイズも最小にして保存できるのはやはり非正方ピクセルなのでAC