Ubuntu18.04をインストールしてPyTorchでGPUが使えるかを確認するまでの設定

Nvidia GeForce RTX 2080 Tiを搭載したOSなしのPCを買ってライブUSBを指すも、バグった画面が出てインストール画面にすら行かないという状況だったが、 なんとかNvidia Driver/CUDA/cuDNNを入れて、PyTorchでGPUを認識するに至った過程を残しておく。 1. イ…

【論文解説】Real-world Anomaly Detection in Surveillance Videos

監視カメラ映像の異常検知に関する論文。 内容が弱ラベル訓練データをmultiple instance learning (MIL) で訓練するという、 個人的にノータッチの手法だったので読んでみたが、中身は非常に分かりやすかった。 Title: Real-world Anomaly Detection in Surv…

Torchreid入門

Person ReIDライブラリーのTorchreid がいい感じだったので簡単まとめておく。 チュートリアル に色々な使い方が記載されているが、ここでは以下の3つについてまとめている。 訓練 README.mdの Get started: 30 seconds to Torchreid。 Market1501で距離学習…

PyTorch物体検出チュートリアルを魔改造

PyTorchの物体検出チュートリアルが、 個人的にいじりたい場所だらけだったので、色々と魔改造してみた。 コードはこちら。 概要 チュートリアルではTrainingだけだが、今回はTestに関するコードも実装している。 それを含めて以下が今回魔改造した点。 Trai…

バウンディングボックスの描画とcolormapによる色自動選択

バウンディングボックスを描画する度に、同じようなコードを何度も書いているので、 いい加減コピペで済むようにしたいと思ったので、ここにまとめておく。 今回はアノテーションデータを描画しているが、検出結果でもコードはほぼ同じ。 物体の色はcolormap…

ResNet18+ArcFaceでCIFAR10を距離学習

以前、「簡易モデルでMNISTを距離学習」と 「ResNet18でCIFAR10を画像分類」 を実施した。 今回はこれらを組み合わせて「ResNet18+ArcFaceでCIFAR10を距離学習」を行った。 基本的には「ResNet18でCIFAR10を画像分類」 で実施した内容と同じになる。 異なる…

ResNet18でCIAFR10を画像分類

CIFAR10の画像分類は PyTorchのチュートリアル に従ったらできるようになったのだが、 オリジナルモデルだったためResNet18に変更しようとしたら少しつまづいた。 再度つまづかないために、ここに実行手順をコード解説付きでまとめておく。 なお全コードは …

MNISTを画像検索

前回「MNISTで距離学習」 という記事を書いたが画像分類の域を出なかった。 距離学習と言えば画像検索なので、今回はそれをMNISTで行った。 概要 今回は前回 訓練したMNISTの距離学習モデルを利用して画像検索を行う。 手順は次の通り。 データ準備 モデルロ…

MNISTを距離学習

Person ReIDが必要になったので、まずはMNISTを題材に距離学習を勉強している。 あと、これまでKerasを使ってきたけど、PyTorch使えないと厳しい世の中になってきたので、 PyTorchについて色々調べつつ実装してみた。 なお今回はこちらの記事(以下、参照記…

【論文解説】SinGAN: Learning a Generative Model from a Single Natural Image

1枚の画像に対して様々な操作が可能な SinGAN の論文を簡単にまとめた。 SinGANはSingle GANの略。 個人的には、ICCV 2019でbest paperだったのと、GANだけど必要な訓練データが1枚なのでリソースが少なくて嬉しいのと、実写画像でも調和的な編集や画像合成…

TensorFlow GPU版をWindows 10にインストール

Window 10にTensorFlowをインストールして使っていたのだが、PyTorchで遊ぶ環境を作っていたら、 (たぶんPython 3.6にしたことが原因だけど)いつの間にかTensorFlowが動かなくなっていたので、再インストールした。 ここに、その手順を備忘録として残して…

PythonでOCR

Netflixの字幕がダウンロードできると知ったので実行してみたが、 日本語字幕が画像だった※ため、PythonでOCRにかけて文字列に変換した。結果は微妙。 ※ 後でエピソード単位だと日本語字幕を文字列で取得できることに気付いた。。。作品単位だと画像になる模…

Inverse Trasnsformation of multihot matrix with DataFrame

When dealing with attributes in classification problem etc, there are some data saved in onehot or multihot matrix despite attributes are too many. Such data is too large to handle, I want to get only the target attributes and hold the dat…

Saving a image has no axis and no margin

When saving an image processed with matplotlib, the image axes and margins are not necessary. So I surveyed how to remove them and summarized them. Code from scipy.misc import imread import matplotlib.pyplot as plt img = imread('IMG_1382.J…

GitHubリポジトリーの一部のフォルダーをダウンロードする

DeepLabV3+がTensorFlowで利用できるようになった。 とりあえず、DeepLabV3+関連のファイルだけ欲しいだが、GitHubにはそうゆう機能がないので、 Chrome拡張機能のGitZipを使って、DeepLabV3+のフォルダーだけをダウンロードしてみた。 手順 Chromeブラウザ…

動画からの音声抽出と動画への音声結合

testpy.hatenablog.com 上記の記事で、動画を左右反転させて、新たな動画を生成した。 生成した動画には音声がないため、元の動画から音声を抽出して、結合してみた。 コード # coding: utf-8 import sys import cv2 import moviepy.editor as mp class Test…

OpenCVで動画を作成する

OpenCVで動画を作成できる。 動画を左右反転させて、新たな動画を作成してみた。 コード # coding: utf-8 import sys import cv2 class VideoMaker: def __init__(self): pass def main(self): # Set video names. input_video = sys.argv[1] output_video =…

膨張差分法とキャニー法による線画の比較

アニメや漫画を線画にする際、白を膨張させてグレースケールとの差分を取る方法(以下、膨張差分法と呼ぶ)が多く用いられている。 しかし、実写に膨張差分法を適用したところ、実写の描写の細かさが影響してノイズが残りやすいことが分かった。 そこで膨張…

ビットコイン対円のティッカーを可視化

前回、pybitflyerを利用して bitFlyerからビットコイン対円のティッカーを2秒ごとに10分間分取得した。 testpy.hatenablog.com ティッカーを取得、とかさらっと言っているが、実はFX初めて。 ただ株は少しやったことがあって、そうゆう人間からすると、 ティ…

bitFlyerからビットコイン対円のティッカーを取得

かなり前からビットコインが熱かったけど放置してたら完全に乗り遅れた。 今更ながらビットコインの波に乗ろうと思う。 まずは対円の情報をbitFlyerから取得しようと思う。 簡単のため、pybitflyerというPythonライブラリーを使う。 コード api = pybitflyer…

Twitter APIを使った検索方法

Twitter分析をすることになったため、APIを使った検索について調査検証を行った。 結論から言うと、公式のAPIは、パラメーターが少なくロクな検索ができないのだが、 クエリにパラメーターを含めることで様々な検索が可能になることが分かった。 以下にその…

Playerと複数生成されるSpawnerの位置を取得

UnityでFlappy Birdを作ってみたが、すぐにPlayer(Flappy Bird)を自動制御したくなったので、まずはPlayerとSpawner(土管)の位置を取得してみた。 Flappy Bird Made with Unity Spawnerの設定 Spawnerは土管で、1秒ごとにY軸をランダムにずらして生成し…

GitHub Desktop for Windowsの"failed to sync this branch"の対処

GitHub Desktopを立ち上げた状態で別作業をしていたら、GitHub Desktop関連のエラーを示すポップアップが4つ連続で出てきた。 ポップアップを消した後も何度か出てきて、実際、GitHub Desktopで同期するとfailed to sync this branchと表示され、 GitHubと同…

Windows10でMongoDBの設定

Windows10でMongoDBを使おうとしたら、少しつまづいたのでメモとして残しておく。 1. ダウンロードとインストール MongoDB Download Centerから Windows Server 2008 R2 64-bit and later, with SSL support x64をダウンロードしてインストール。 2. パスを…

Swiftで写真を撮影して保存するiPhoneアプリを作成

iPhoneのカメラ機能を利用する入門的なアプリをサクッと作る。 フレームワークの各関数の使い方をよく忘れるのでメモ代わりに記録として残しておく。 画面 画面は1つのみで、プレビュー用のView(cameraView)とシャッター用のButton(take)の2つの部品だけを配…

V-REPのLine TracerをPythonで制御する

急に3Dシミュレーションやりたい欲が出てきたのでV-REPというのを使ってみた。 V-REPを選択した理由は次の通り。 Pythonで制御できる いろんなリアルロボットをシミュレートできる 以下の記事があったのでハードルが低かった chachay.hatenablog.com この記…

複数画像をKerasのVGG16で特徴抽出してk-means++でクラスタリング

VGG16, VGG19, ResNet50, InceptionV3など、 ImageNetで学習済みのモデルがKerasで使える。 物体認識だけでなく特徴抽出にも使えるので、 複数画像をVGG16で特徴抽出して、これをk-means++でクラスタリングしてみた。 なお複数画像は、ハワイで撮影したフラ…

listやarrayからPandas DataFrameを作成

カラム名をkey、listやarrayをvalueにして辞書を作成して、DataFrameに突っ込むとできる。 import numpy as np import pandas as pd def make_df_from_list_and_array(): col1 = [0,1,2,3,4] col2 = np.array([5,6,7,8,9]) df = pd.DataFrame({'col_list':co…

Pythonでディレクトリー内から特定の拡張子のファイルを取得

listdirを使ってディレクトリー内のファイルを取得し、リスト内包表記を使って条件付きでファイルを読み込む。 if文を変えれば拡張子に限定されない。 例えば、接頭語を指定するとか。 import os def get_target_files(dir_path='./image_dir/'): files = [f…

Python-OpenCVで動画をフレーム分割して画像として保存

動画をフレームに分割して画像として指定したディレクトリーに保存する操作をまとめた。 動画を読み込んで、フレームごとに存在を確認して、確認できれば画像として保存する、という手順。 引数は適宜変えてください。 import os import shutil import cv2 d…