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

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

【料理】 だしの素で簡単!そうめんチャンプルー

ここを参考に作りました。 cookpad.com 材料(2人分) そうめん 2束 しめじ 1パック 長ネギ 1本 ツナ 1缶 醤油 大さじ1.5 ごま油 大さじ1 塩 ひとつまみ 顆粒だしの素 小さじ0.5 作り方 鍋に湯を沸かす 長ネギは1cmの斜め切りにする しめじの石づきを切り落…

【Python】 Kerasでpix2pixを試す

先日U-Netによるセグメンテーションを試した(【Python】 KerasでU-Net構造ネットワークによるセグメンテーションをする - 旅行好きなソフトエンジニアの備忘録)のですが、ついでにDiscriminatorを作ればpix2pixを試せるということで、作ってみました。U-Ne…

【料理】 ズッキーニのシャキッとマヨ炒め

ここを見て作りました。 cookpad.com 材料 (2人分) ズッキーニ 1本 エノキ 1/3袋 ベーコン 2枚 マヨネーズ大匙 1と1/2 しょうゆ小匙 1弱 塩少々 作り方 ズッキーニを厚さ8ミリくらいの輪切りにする。 エノキは根元を切って、小房に分ける。 ベーコンは一口…

【ディープラーニング】 セマンティックセグメンテーション手法のまとめ

ディープラーニングを利用したセマンティックセグメンテーションについてまとめてあるページを見つけたのでメモします(A 2017 Guide to Semantic Segmentation with Deep Learning)。 セマンティックセグメンテーションとは? セマンティックセグメンテーシ…

【Python】 KerasでU-Net構造ネットワークによるセグメンテーションをする

ここ(Daimler Pedestrian Segmentation Benchmark)から取得できるデータセットを使って、写真から人を抽出するセグメンテーション問題を解いてみます。U-Netはここ( U-Net: Convolutional Networks for Biomedical Image Segmentation )で初めて発表され…

【WPF】 簡易動画プレーヤーを作成する

今回は動画のプレーヤーを作ってみます(簡易的なものですが)。調べてみるとWPFにはMediaElementというものがあって、これを使ってみると良さそうです。 まずはxamlが以下のようになります。

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

タイトルにあるようにスクリーンショットを撮り続けて動画に保存する方法のメモをします。 まずはスクリーンショットを撮る部分ですが、スクリーンショットをそのまま動画にすると容量がすごいことになるので、スクリーンショットを撮る⇒縮小するまでを作成…

【Python】 PythonでC#のFileSystemWatcher相当のクラスを作成する

C#側がファイルを作成し、それをトリガとしてpythonが起動するようにしたいと思っています。そのため、C#のFileSystemWatcherに相当するようなクラスが欲しいと思ったのですが、以下のサイトに書かれていました。 qiita.com import time from watchdog.obser…

【WPF】 モニターの解像度を取得する

System.Windows.PrimaryScreenWidth System.Windows.PrimaryScreenHeight で取得できます。 以下のサイトがよくまとまった情報源になります。 mseeeen.msen.jp

【WPF】 透明なウインドウの作り方

XAMLのWindowタグに下記3つを加えるだけです。作ってみると完全に透明なウインドウが作成され、ウインドウ右上部の×ボタンも消えてしまいました。そのため、例えばEscボタンを押したらWindowをCloseするような処理が必要でした。 WindowStyle=“None” Allows…

【Python】 動的なデフォルト引数を指定するときにはNoneとドキュメンテーション文字列を使う

書籍”Effective Python”項目15のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 Pythonはデフォルト引数をモジュールロード時の一回しか評価しないので、動的な値…

【Python】 クロージャ内外で変数を共有する

書籍”Effective Python”項目15のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 Pythonにはnonlocalというキーワードがあり、これによりクロージャ内外でデータを…

【Python】 サーバーの現在時刻を取得する

Raspberry PiからサーバーのMySQLデータベースにセンサデータを書き込む時に、センサデータ取得時刻も書き込んでいるのですが、Raspberry Pi側の現在時刻がやたらずれるため、サーバーの現在時刻を取得して補正しておくことにしました。サーバーの現在時刻を…

【Python】 enumerateのカウンタ初期値を設定する

書籍”Effective Python”項目10のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 enumerateは知っていたのですが、カウンタの初期値を第二引数で設定できることを…

【Python】 ジェネレータ式の生成

書籍”Effective Python”項目9のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 リスト内包表記は入力が大量な時に膨大な量のメモリを消費しかねない問題があるとの…

【Python】 リストから一つおきにデータを取り出す

書籍”Effective Python”項目6のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 サンプリングレートが高すぎるセンサのデータ数を減らしたいことがあったので、この…

【Python】 リストのコピー方法

書籍”Effective Python”項目5のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 リストのスライスの時に添え字startとendを省略するとコピーになる。 a = [1, 2, 3,…

【Python】 PEP8スタイルガイドに従う

書籍”Effective Python”項目2のメモです。Pythonを始めて半年経ちますが、真面目に言語自体の勉強をしていなかったので空き時間使ってまだ知らなかった事のメモをします。 名前付けの規約 関数、変数、属性 ⇒ lowercase_underscore protected属性 ⇒ _leadin…

【Raspberry Pi】 時刻を設定する

下記コマンドで設定できます。 date --set='2017/07/10 15:48:20' 下記サイトを参考にしました。 手動で時刻合わせ | katz+

【WPF】 OxyPlotでグラフを描画する簡単な例

WPFでグラフを描きたい時はOxyPlotを利用しているのですが、頻繁に使うわけでもないため、使う度に同じことを調べる事態になってしまっています。そのため、OxyPlotの使い方に関する単純な例をメモしておきます。 1. NuGetからOxyPlot.Wpfをインストールする…

【Raspberry Pi】 "service samba restart"で"Unit samba.service is masked."のエラー

下記の方法で解決できます。 sudo service smbd restart sudo service nmbd restart 参考にしたのは以下のサイトです。 blog.livedoor.jp

【アイトラッキング】 オフラインフィルタの実装

PONTUS OLSSON著, “Real-time and Offline Filters for Eye Tracking"に書かれている疑似コードをプログラムに落としました。この論文では視線データから固視データを抽出するための方法が書かれています。 まずは視線データをGazePointクラスとして実装しま…

【C#】 C#からDOSコマンドでPythonスクリプトを呼び出す

C#

C#からPythonを呼び出す方法はいくつかあるようで、IronPythonを利用する方法がまずヒットしたのですが、IronPythonではサポートされていないライブラリを利用したスクリプトを呼び出したいと考えています。そのため、こちら(DOSコマンドを実行し出力データ…

【OpenOffice】 作成したグラフを削除する

Excelが入っていないPCがあって、そこでOpenOffice Calcを使っているのですが、Excelとは勝手が違って面倒です。今日は作成したグラフを削除できず調べてみると解決策が書かれていました。 blog-orion110.at.webry.info 一旦グラフと異なる場所をクリックし…

【アイトラッキング】 I-DTアルゴリズムの実装

Salvucci & Goldberg著 "Identifying Fixations and Saccades in Eye-Tracking Protocols"に記述されているI-DTアルゴリズムの実装メモになります。 まずは視線データを保存するためのクラスを定義します。 public class GazePoint { public double X; // 視…

【料理】 ゴーヤチャンプルー

ここを元に作成。 www.sirogohan.com 材料(二人分) ゴーヤ 1/2本 木綿豆腐 300g 豚バラ肉 100g 卵 1個 塩コショウ 適量 サラダ油/ごま油 醤油 作り方 1. 木綿豆腐をキッチンペーパーでくるんで水切りする 2. 卵1個をといておく 3. ゴーヤを縦半分に切る 4…

【数学】 フィッシャーの線形判別を理解するのに有効なサイトのメモ

フィッシャーの線形判別について調べていたのですが、分かりやすく書いてくれているサイトを見つけたのでメモします。 理論についてはこちらが分かりやすいです。 s0sem0y.hatenablog.com コードが必要であればこちらにコード付きで記事を書かれています。 a…

【Python】 LSTMによる時系列データの予測

前回SimpleRNNによる時系列データの予測を行いましたが、今回はLSTMを用いて時系列データの予測を行ってみます。 ni4muraano.hatenablog.com LSTMはSimpleRNNと比較すると長期依存性の高いデータに有効とのことなので、50回に一回パルスが発生する信号に対す…

【Python】 SimpleRNNで月平均気温を予測する

画像だけでなく時系列データにも手を出してみたい、ということで書籍「詳解ディープラーニング」を購入しました。書籍第5章から時系列データを扱っているのですが、そこで紹介されているSimpleRNNの例を写経します。書籍ではノイズの入ったサイン波の予測を…

【料理】 たらこパスタの実装

下記を参考に作りました。 cookpad.com 用意するもの(二名分) たらこ 2腹 バター 30g 牛乳 大さじ4 醤油 大さじ1 きざみのり 適量 パスタ 180g 1 お湯を沸かす 2 ボールにたらこ、バター、牛乳、醤油を入れてソースを作る 3 パスタを茹でる 4 お湯…

【アイトラッキング】 オンラインスムージングフィルタの実装

アイトラッカーから取得したデータにオンラインでスムージングフィルタをかけようとしています。Manu Kumar著 “GUIDe SACCADE DETECTION AND SMOOTHING ALGORITHM"に書いてある疑似コードを参考に実装しました。プログラムの注意点としては論文の疑似コード…

【ディープラーニング】 不均衡データへの対処法

ディープラーニングというより、機械学習全般で起こりうる問題として不均衡データ問題があります。例えばラベル0のデータが99個あり、ラベル1のデータが1個しかない、といったように教師データのバランスが悪い場合、モデルは「とりあえず0と回答すれば99%の…

【WPF】 Contentに改行付きのテキストを書く

Contentに改行を付けたくて、その方法がここ(【WPF】コントロールのContentプロパティにテキストを改行して表示する - Microsoft.NET WPF - Project Group )で分かったのでメモします。 <Button Content="Hello World&#10;\(^o^)/" IsHitTestVisible="False"/></button>

【OpenCV】 画像を合成する(アルファブレンディング)

// 画像を読み込む Mat lenna; imread("lenna.jpg").copyTo(lenna); if (lenna.empty()) { throw runtime_error("Failed to open image"); } // 画像を読み込む Mat clock; imread("clock.jpg").copyTo(clock); if (clock.empty()) { throw runtime_error("F…

【Python】 ndarrayのインデキシング

書籍「科学技術計算のためのPYTHON入門」のメモです。ndarrayのインデキシングについて今まで何も意識せず使っていたのですが、書籍にまとめられていたのでメモします。 基本インデキシング(ビューが生成される) # ndarray_viewの変更がndarrayにも影響を…

【OpenCV】 照明ムラがある環境での二値化

照明ムラがある環境下で二値化を行い対象物を抽出しようとする場合、普通に二値化処理を行うと大抵上手く抽出できません。 下の画像はその例で、画像上部が明るめ、画像下部が暗めのになっています。この画像から米粒を抜き出そうとして大津の方法を適用する…

【料理】 鶏肉のカリカリ焼き・ネギ塩レモンソース

たまに料理を作るのですが、また作る事があるかもしれないのでメモしておきます。 recipe.rakuten.co.jp 材料(2人分) 鶏もも肉 2枚 ⇒ 1枚(350~400g、小食なので二枚は多い) ネギ 1本 ごま油 大さじ2 塩 小さじ1/2 こしょう 適量 レモン汁 大さじ1 ⇒ 大…

【OpenCV】 forループを使わずに指定した色を別の色に変更する

ディープラーニングの前処理として、画像のある色を別の色に変更しようとしていました。ただ、NumPyではforループをなるべく使用しないことが推奨されているため、どうやって実現すれば良いのか悩んでいましたが、ここ(Replace a range of colors with a sp…

【Python】 行列積の演算子

行列積はNumPyのdotメソッドを利用しますが、Python3.5/NumPy1.10からは@演算子でも行列積を表現できると知ったのでメモします。 import numpy as np A = np.array([[1, 2], [3, 4]]) B = np.array([[5, 6], [7, 8]]) # a_dot_bとa_at_bは同じ結果になります…

【Python】 csv数値データファイルの読み書き

csv数値データファイルの読み書きはnumpyを使うと簡単にできます。 import numpy as np # csvファイルの読み込み(ヘッダがある場合はskiprowsを1にする) data = np.loadtxt('file.csv', delimiter=',', skiprows=0) # csvファイルへの書き込み(%0.2fで小…

【OpenCV】 バイラテラルフィルタの引数について

輪郭をぼかさずにノイズを除去する方法としてバイラテラルフィルタを紹介されたのですが、今一つパラメータの意味が理解できていませんでした。 void bilateralFilter(const Mat& src, Mat& dst, int d, double sigmaColor, // 何これ? double sigmaSpace, …

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture13のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。 www.udemy.com レクチャー13からPandasの話になるのですが、Pandasは使えた方が良いのでしょうか。。。今のところ特に困って…

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture10のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。 www.udemy.com 1. 線形方程式はnp.linalg.solveで解ける import numpy as np A = np.array([[1,2], [3,4]]) b = np.array([3…

【Python】 "Deep Learning Prerequisites: The Numpy Stack in Python" Lecture4のメモ

udemyで無料オンラインコースがいくつかあるのですが、Numpyの無料講座を受講中です。その中で知らなかった事をメモしておきます。 www.udemy.com 1. ベクトルのユークリッドノルムの計算はnp.linalg.normで出来る import numpy as np vec = np.array([1, 2,…

【WPF】 RadioButtonをユーザーが触れないようにする

IsHitTestVisibleとIsTabStopをFalseに設定します。IsHitTestVisibleのみをFalseにした場合、Tabキーを押してRadioButtonに移動し、スペースキーを押すとRadioButtonをチェックできてしまうため、両方Falseにする必要があります。 <RadioButton Content="ReadOnlyRadioButton" IsHitTestVisible="False" IsTabStop="False"/></radiobutton>

【OpenCvSharp】 ポインタを利用してMatクラスの画素にアクセスする

OpenCvSharpのMatクラスを走査する時、いつもAtメソッドを利用していたのですが、ポインタを使って走査する方法を見つけたのでメモします。 gist.github.com リンク先はカラー画像に対して走査していますが、自分はグレースケール画像を走査したかったので、…

【OpenCV】 画像に傾いた四角形を書き込む

RotatedRectは直線を利用して描くしかないようです。。。 // 画像を読み込む Mat source; imread("lenna.jpg").copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } // RotatedRectを描画する Mat destination; source.c…

【OpenCV】 画像に楕円を書き込む

ellipseというメソッドを利用すると画像に楕円を書き込めますよ、というメモです。 // 画像を読み込む Mat source; imread("lenna.jpg").copyTo(source); if (source.empty()) { throw runtime_error("Failed to open image"); } Mat destination; source.co…

【WPF】 時間のかかる処理を実行する時にアニメーションを表示する

アプリケーションで時間のかかる処理を実行している時に「今処理を実行中ですよ」とユーザーに知らせたい時、実行中に表示するアニメーションがあると便利です。幸いアニメーション自体は既に作成してくれている人がいるので、それを拝借します。 www.trilli…

【C#】 平滑化スプラインを実装する

波形に乗ったノイズを取り除く方法はいくつかあるのですが、今回は平滑化スプラインを実装します。ソースはどこかの論文に書いてあったものをC#に移植したものです。まずは平滑化スプラインを行うSplineSmoothingクラスを作成します。 public class SplineSm…