旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【Python】 Perceptual Hashを使って画像の類似度を調べる

一年くらい前にヒストグラムを使って画像の類似度を調べる方法をメモしていたのですが、今回はそれとは別の方法を見つけたのでその記事をメモしておきます。 ni4muraano.hatenablog.com tech.unifa-e.com 上記の記事で取り上げられているimagehashというライ…

【Python】 VAE(Variational Auto Encoder)の写経

書籍「Deep Learning with Python」にMNISTを用いたVAEの実装があったので写経します(書籍では一つのファイルに全部書くスタイルだったので、VAEクラスを作ったりしました)。 VAEの解説は以下が詳しいです。 qiita.com 実装ですが、まずは以下をvae.pyに書…

【WPF】 バインドした数値の表示する桁数を指定したい

TextBoxに表示する数値データを小数点一桁目までしか表示させたくなかったのですが、以下のようにStringFormatを利用することで指定可能でした(ここを参考)。 <TextBox Text="{Binding Value, StringFormat={}{0:N1}}"/></textbox>

【Python】 KerasでConditional DCGANを実装する

前回DCGANを実装しましたが、今回はConditional DCGAN([1411.1784] Conditional Generative Adversarial Nets)を実装します。 DCGANの例は入力からどのような数字が生成されるかコントロールできませんでしたが、Conditional DCGANは付加情報を足すことで…

【Python】 KerasでDCGANを試す

DCGANでMNISTの手書き数字画像を生成する、ということを今更ながらやりました。元々は"Deep Learning with Python"という書籍にDCGANでCIFAR10のカエル画像を生成させる例があり、それを試してみたのですが、32×32の画像を見ても結果が良く分からなかったの…

【WPF】 矢印を描きたい

UIに矢印を描いて欲しいと言われたので、矢印を絵にしてImageに表示させようと思ったのですが、直接描くという方法もあるようです(以下リンク先参照)。 stackoverflow.com

【C#】 レジストリへの書き込み処理でUnauthorizedAccessExceptionが発生する

C#

レジストリにSetValueメソッドで書き込みを行おうとするとレジストリ自体は書き込み可能な設定なのにUnauthorizedAccessExceptionが発生しました。原因は以下の記事にあるように、レジストリを開く時に書き込み可能という事を明示しないといけなかったようで…

【Python】 処理時間の計測

前処理にどのくらい時間がかかっているか調べたかったので、pythonで時間をかかる処理を調べて以下の記事のように書けば良いことが分かりました。 qiita.com 記事を読んで勝手に秒単位でしか計測できないと勘違いしていたのですが、実際に実行してみると単位…

【Python】 Keras開発者の著書

Keras開発者による著書「Deep Learning with Python」が発売されています。今はクーポンコード"CTWNIPS17"で40%オフなのでお得です。 www.manning.com

動画と音声を分離/結合する方法のメモ

動画と音声を分離/結合する方法についてメモします。ffmpegというフリーソフトで可能なようです。 動画と音声を分離する [ffmpeg] 動画から音声を抜き出すには – 端くれプログラマの備忘録 kobiwa.net 動画と音声を結合する kobiwa.net

【C#】 JPEGの品質を変更する

OpenCVSharpのImWriteを使うことで画像を保存できますが、品質レベル(デフォルト値95)を変えたい時どうすれば良いのか調べました。 下記のようにエンコード⇒デコード⇒ImWriteという手順で良いようです。 // 画像の読み込み Mat image = Cv2.ImRead("lenna.…

【異常検知】 GMM(Gaussian Mixture Model)による外れ値検知

GMMによる外れ値検出手法を試してみます。LOFやiForestのようにずばりそのものを見つけることが出来なかったので、scikit-learnにあるGaussianMixtureクラスを流用して作成します。 まずは、GMMを用いて外れ値検出を行うクラスをGMMAnomalyDetectorクラスと…

【異常検知】 One class SVMによる外れ値検知

外れ値検出手法の一つであるOne class SVMを試したのでメモします。 import numpy as np import matplotlib.pyplot as plt from sklearn import svm np.random.seed(42) # Generate train data X = 0.3 * np.random.randn(100, 2) # fit the model clf = svm…

【異常検知】 Fast ABOD(Angle Based Outlier Detection)による外れ値検知

外れ値検出手法の一つであるABODの論文を読んだので試してみようと思ったのですが、scikit-learnにそれっぽい手法を見つけることが出来なかったので、Fast ABODを作成しました。ABODはに対して、Fast ABODはなので、計算量の面で優位となります(ただし近似…

【アイトラッキング】 解析のために保存しておきたいデータ

これを読んでいてTobii Studio 2.0が以下のパラメータを出力していることが分かりました。KeyPressed等のイベントも記録しているようです。 Timestamp Number FixationIndex GazePointX GazePointY Event StimuliName AoiNames 267 16 4 674 374 xxx.png Con…

【異常検知】 Isolation Forestによる外れ値検知

外れ値検出手法の一つであるIsolation Forestに関する以下の資料を読んで試してみたいと思っていたところ、scikit-learnに例題があったのでメモします。 外れ値検出のアルゴリズム Isolation Forest from 翔吾 大澤 www.slideshare.net import numpy as np i…

【異常検知】 LOF(Local Outlier Factor)による外れ値検知

外れ値検出手法の一つであるLOFに関する以下の資料を読んで試してみたいと思っていたところ、scikit-learnに例題があったのでメモします。 外れ値検出のアルゴリズム Local Outlier Factor from 翔吾 大澤 www.slideshare.net import numpy as np import mat…

【UWP】 コルタナを起動しようとすると"アクセスが拒否されました"というエラーがでる

コルタナを使うためにSpeechRecognizerのContinuousRecognitionSession.StartAsyncメソッドを呼び出すと"アクセスが拒否されました"というエラーが出ました。これはデフォルトでアプリケーションにマイクにアクセスする権限が無いことが理由のようです。 ア…

【UWP】 KeyDownイベントが発生しない

注意:UWP初心者のため正しい方法ではないかもしれません MainPage.xamlにKeyDownイベントを追加したのですが、いくらキーを押してもイベントが発生しませんでした。この問題については以下のリンクの二番目の方の方法で解決しました。 stackoverflow.com pu…

【Python】 Kerasのエラー:'rawunicodeescape' codec can't decode bytes in position xx-xx: truncated \uXXXXの対処法

表題のエラーに出くわしたのですが、StackOverflowの情報ではPython3、Windowsで発生するようです。自分の場合はチェックマークが付いている回答ではなく、二番目の人の回答で解決しました。 stackoverflow.com keras/utils/generic_utils.pyの code = marsh…

リモートデスクトップでWindows Server 2012 R2にログインした時に、日本語キー配列が認識されない問題への対処法

以下の記事の人と全く同じ状態で、同じ方法で解決できました。感謝です。 qiita.com

【C#】 Bスプライン曲線の実装

Bスプライン曲線を実装する必要があったので作ってみました(次数は3固定にしています)。使い方は以下の二通りを想定しています。 制御点を指定して曲線を描く 指定した点を通るような曲線を描く まずはBスプライン曲線を描くクラスをBSplineとして実装しま…

【WPF】 WindowStyle=NoneでWindowState=Maximizedにするとタスクバーが隠れる問題の対処法

タイトルの通りなんですが、WindowStyle=NoneでWindowsState=Maximizedにすると完全なフルスクリーン状態となりタスクバーも隠れてしまいます。アプリケーションによってはこれで問題無いのですが、自分の場合はタスクバーは表示させたいと思い、解決方法を…

【WPF】 拡大した画像上でクリックした座標の取得

今回やりたいことは文章だと説明が難しいのですが、下図の青丸部分をクリックするとクリックした箇所の座標はになります。 次に上図のオレンジで囲った箇所を以前ブログに書いた方法で拡大表示して下図が得られたとします(【WPF】 Imageを拡大/平行移動さ…

【WPF】 Imageを拡大/平行移動させる

表示している画像をマウスのホイールを使って拡大したり、ドラッグして平行移動させたいと思ったところ、以下の回答が評価が高かったです。 stackoverflow.com ただ、リンクの通りに実装するとTransformGroupへキャストする時にキャストエラーが出て動作させ…

【OpenCVSharp】 ヒートマップを作成する

OpenCVSharpを使ってヒートマップを描くプログラムのメモです。ヒートマップは赤⇒緑⇒青の順で遷移するため、HSV空間を使い、その後RGB空間に戻すと簡単に作成できます(OpenCVでは0が赤、60が緑、120が青に相当します)。 // 画像サイズ const int size = 10…

【WPF】 ボタンのサイズをリソースで指定する

作っているアプリケーションにボタンが沢山あるのですが、それらの幅、高さは全て共通なのでハードコーディングではなく一括管理したいと考えました。そのやり方ですが、以下の2ステップになります。 ① App.xamlに以下を追加(xmlns:sysと<sys:Double ...>の三行を追加して</sys:double>…

【WPF】 続・スクリーンショットを撮り続けて動画に保存する

以前スクリーンショットを撮り続けて動画に保存する記事を書いたのですが、実はMicrosoft Expression Encoderを使えばやりたいことは出来たようです。 ni4muraano.hatenablog.com Microsoft Expression Encoderはここからダウンロードできます。NuGetからも…

【WPF】 BitmapSourceクラスをbitmapとして保存する

BitmapSourceクラスをbitmapとして保存する方法を探していたのですが、以下に書かれていたのでメモします。 stackoverflow.com public void SaveBitmapSourceToFile(BitmapSource bitmapSource, string filePath) { using (var fileStream = new FileStream(…

【WPF】 UIElement上のマウスイベントが発生しない

Imageの上にCanvasを置いて、CanvasにLineやEllipseをマウス操作を通じて描くことで、仮想的にImage上に絵を描いたように見えるようにしたいと思っています。 <Image .../> <Canvas .../> そこでCanvasにMouseDownイベントを付けたのですが、Canvasをクリックしても一向にMouseDownイ</canvas></image>…