Photoshop と16bit tiff 画像の取り扱い

16 bit tiff 画像を扱う場面に遭遇したのですが、普段使用しているツールが対応しておらず、編集に苦労したので個人的にメモ。

Photoshop は 16 bit 値を直接指定できない

32 bit モードであれば、専用のカラーピッカーで値を指定できるが、16 bit モード時は従来の 8 bit と同じカラーピッカーが起動するため 0-255 の階調までしか扱えない。白 (255, 255, 255) を指定して塗れば、16 bit の最大値扱いとなり編集できないことは無いが、16 bit の階調が使えないのであまり意味がない。

Photoshop の情報タブの値は 32768 まで

なぜか、Photoshop の情報タブで 16 bit 画像の最大値の色を取得すると、32768 が表示される。なぜ、65536 では無いのか疑問だったけど、ググったらディジタル・フロンティアさんが、答えとなるリンクを紹介していた。

徒然なるままに #2 [AfterEffects: 16bitモードでexrの範囲外の値を取ってくる方法]
https://dftalk.jp/?p=10207

Photoshop CS の情報パレットを 16bit 表示にする方法
http://kb2.adobe.com/jp/cps/224/224128.html

ただ、ミッドポイントが何かはわからない。

Python tifffile で 16bit int 操作

他に対応するツールを探すのが大変だったのと、16 bit でペイントしたかった訳ではなく、16 bit tiff に必要な情報さえ詰め込めれば良かったので、簡単に導入可能な Python の tifffile モジュールを使って直接ピクセルを計算した。

Anaconda の Python 3.6 で、pip install tifffile で導入。

tifffile であれば 16 bit tiff の read, wriet も問題なく扱えた。また、Photoshop で 35536 と表示されていた箇所も、きちんと 65536 の値が返ってきた。

WordPress での Permanent Link 設定

.htaccess

WordPress が設置されている ルートディレクト直下 /var/www/html などに、.htaccess ファイルを作成(編集)。下記を記述。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

httpd.conf

Apache の設定ファイルがある、/etc/httpd/conf に移動して、httpd.conf を編集する。

<Directory "/var/www/html">
    # None になっている箇所を All に変更する
    AllowOverride All
</Directory>

Apache Restart

service httpd restart

参考
貴重な情報に感謝です。
https://qiita.com/nnmr/items/ac7599b356f9bcb511cc

「モデル化」という言葉

「モデル」という言葉の定義そのものが、自分の中で怪しい。

「モデル」という言葉の使い方に、若干の難を感じている。色んな使われ方があると思うが「抽象」と考えるのが一番しっくりきた。モデル化というと抽象化することを指す。

数学で言えば、現実世界の具体的な事象を、数式という抽象的な言葉で表現する事をモデル化という。

機械学習で使われるモデル化というのも、AI を使って解きたい現象を、抽象的なロジックにする(アルゴリズムに落とす)ことをモデル化と呼んでいる。

ただ、人によっては、ニューラルネットワークを使って数字の分類を行いたい場合に、ネットワークの構造までを含めて(問題を解く、動作するプログラムまでの事を)モデル化すると呼ぶ場合もあれば、「ニューラルネットワークというモデルを使って、AI をモデル化する」などと言う事もある。

個人的にはニューラルネットワークやサポートベクターマシンのようなものは「AI アルゴリズム」と呼び、CNN や RNN のようなものは「AI アーキテクチャ」と呼び、それらを使って問題を解くために構築した実装を「AI モデル」、その一連の工程を「モデル化する」と認識すれば、理解しやすかった。

macOS の環境構築

使っている mac が 128GB しか SSD 容量が無いため、定期的にクリーンインストールして環境を再構築している。その度にやり方を忘れるのでメモ。

# US-Keybord での日本語
標準だと Command + Space には Spotlight 検索
Control + Space には入力切り替えが割り当たっている。これらのショートカットキーは System Preferences -> Keyborad -> Shortcuts で設定する。

ABC と Hiragana などの入力切り替えのショートカットを行うには Input Sources -> Select the previous input source にチェックを入れる。その上で、標準だと Command + Space になっているが、キーが離れているため入力がやりづらいため、Command + Space に変更する。その後に、ショートカットキーが衝突していると言われるので、Spotlight 検索の方を Option + Space へと変更する。

# Function Key
デフォルトだと、F1, F2 などのキーは fn+F1, fn+F2 というキーを押した時に動作する。開発時のデバッグキーが F5 や F10 とかになるため mac だと押しづらい。

System Preference から Keyboard を選択し、Use F1, F2 etc のチェックを入れる。

# F11 全画面の解除
F11 全画面表示のショートカットがデバッグキーと競合しているため、Keyboard -> Shortcuts -> Mission Control から Show Desktop のショートカットを解除する。

# docker
インストール後に Sign In するときは、メールアドレスだと docker pull に失敗する現象があった。ユーザー名で Sign In する。

docker は標準だと、何もしなくても 64GB 容量を確保している。多すぎて辛いので最小の 16GB に変更する。

# miniconda
Python 3.7 pkg ファイルをダウンロードしてインストール
https://docs.conda.io/en/latest/miniconda.html

# unity
最近だと Unity Hub を DL, Install してから、その中から Unity 本体の Version を指定して Install するみたい。デフォルトだと、Visual Studio for Mac がインストールにチェックが入っているが、容量がきついのでチェックを外す。代わりに Visual Studio Code が使える。

# Terminal 名の変更
System Preferences -> Sharing から変更できる。

数学の大切さ

DirectX とか OpenGL とか、シェーダー言語は割とどうでも良くて、jpeg が圧縮できる仕組みを数学で説明できたり、クォータニオンが回転できる仕組みを数学で説明できる方が、価値がある知識だと思う。

Amazon Go の発想

近所のサミットで買い物をしていて、混んでいるレジに並んでいた時に、ふと Amazon  がレジを通らなくても商品を買える店を出していたことを思い出した。

今までは技術的な問題 (商品の識別。購入可否の判別)で、人がレジを通して商品を識別するしか無かったが、センサー類やAI技術の発展がカメラに映るだけ?で、商品の識別を可能にした。

商品をカゴに入れ、レジに持っていくという事に疑問を感じ、最適化・自動化できるだろうという発想に至ったのは凄いし、机上の空論では無く、それを実現するだけの体力と技術も合わせているのも凄い。