
まとめてjpegにするワンライナーを書きました。
find . -mindepth 1 -name '*.HEIC' | xargs -I@ basename @ .HEIC | xargs -I@ sips --setProperty format jpeg @.HEIC --out @.jpg
gistの方にも置いておきます。
まとめてjpegにするワンライナーを書きました。
find . -mindepth 1 -name '*.HEIC' | xargs -I@ basename @ .HEIC | xargs -I@ sips --setProperty format jpeg @.HEIC --out @.jpg
gistの方にも置いておきます。
単眼カメラの画像に対してAIを使って深度の推定をする。
FCRN-DepthPredictionというオープンソースのソフトウェアを使う。
VirtualBoxを使ってUbuntu16.04LTSをインストール。
まっさらな環境から主に下記URLの通りの手順を踏んでインストール。
$ git clone https://github.com/iro-cp/FCRN-DepthPrediction.git $ cd FCRN-DepthPrediction
virtualenvを使って、Pythonの仮想環境を使って作業を勧めていく。
# sudo apt install virtualenv $ virtualenv -p python 3.5 python 3.5 $ source 3.5/bin/activate (python3.5)$
必要なパッケージのインストール
(python3.5)$ pip install tensorflow==1.15.0 (python3.5)$ pip install opencv-python (python3.5)$ pip install matplotlib (python3.5)$ pip install Pillow (python3.5)$ pip install numpy (python3.5)$ pip install argparse
深度計算の学習済みモデルを取得、展開
(python3.5)$ cd tensorflow/models (python3.5)$ wget http://campar.in.tum.de/files/rupprecht/depthpred/NYU_FCRN-checkpoint.zip (python3.5)$ unzip NYU_FCRN-checkpoint.zip
この時点でtensorflow/modelにあるファイル一覧
__init__.py fcrn.py NYU_FCRN.ckpt.index __pycache__ fcrn.cpython-35.pyc __init__.cpython-35.pyc network.cpython-35.pyc NYU_FCRN.ckpt.meta NYU_FCRN.ckpt.data-00000-of-00001 network.py NYU_FCRN-checkpoint.zip
tensorflowディレクトリに戻り、実行する
(python3.5)$ cd .. ([クローンしたトップディレクトリ]/tensorflow に移動) (python3.5)$ ls (下記のファイル/フォルダがあるはず) models predict.py (python3.5)$ python predict.py models/NYU_FCRN.ckpt [入力画像のファイルパス]
ここで、PythonのTK_interがないというエラーが出た。
これはpipではなく、aptを使ってインストールする。
$ sudo apt-get install python3-tk
無事動作を確認。
下記URLを参考にさせていただきました。
Tensorflowの深度推定モデルを試してみる - Qiita
非常に助かりました。
ありがとうございます。
今年の末にyahooブログがサービスを終了するにともなって、そのブログをwordpressに移行したいという依頼があった。
その中で、インポート用のテキストファイルから画像ファイルのリスト化をする処理の部分でawkを使ったところ、一行に2つ以上のimgタグとsrcが存在した場合、上手く要素を取得できないという問題に行き当たった。
私は最初、キャプチャーの位置を()でグルーピングして\1,\2などで取得するという方法しかわからなかった。
しかし、これでは当然、一行に3つ以上の要素がある場合マッチできない。
結局的に以下のコードでうまく行った。
awk 'BEGIN{FS="src=";} { for(i=2;i<=NF;++i){ if(match($i,/"[^"]*"/)){ print substr($i,RSTART+1,RLENGTH-2); } } }' ./source.txt
フィールドセパレーターを"src="に設定してあげることで、一行はimgタグのsrcで分割される。
iの初期値が2から始まっているのは、awkのカウントは0オリジンではなく、1オリジンであり、なおかつ"src="で区切られたフィールドの2つ目からマッチの試行を行いたいため。
あとは行中のマッチ位置のインデックスをRSTARTとRLENGTHで取得し、substr関数で切り抜く。