はじめに 空気や水といった流体のシミュレーションに関する学問である数値流体力学(CFD)の勉強も兼ねて、水の数値流体解析コードの構築に必要な知識などを(複数の記事で)まとめていきたいと思います。 初心者にもわかりやすいように書いていきたいと思います。間違い等多々含まれていると思われますので、発見された際にはご連絡していただいけると幸いでございます。また、どこがわかりにくいとかをコメントして頂けたらありがたいです。随時更新していきます。 対象読者 Pythonを使える人 数値計算に興味がある人 流体力学に興味がある人 基本的な大学物理や数学を理解している人(微分方程式くらい?) シリーズ 1章 :この記事 2章 :【Python】流体シミュレーション:拡散方程式を実装する 2章の補足的な立ち位置:【Python】疎行列計算が高速にできるようになる記事 3章:【Python】流体シミュレーショ
pythonとopencvを使って画像処理を勉強していきます。 今回はschikit-learnやschikit-imageなども使用します。 前回 python+opencvで画像処理の勉強6 2値画像処理 領域処理のための特徴量 領域のテクスチャ 繰り返しの輝度パターンをテクスチャと呼びます。 コンピュータがテクスチャを扱うためにはその特徴量を数値化する必要があります。 2次元フーリエ変換による周波数特徴量 2次元フーリエ変換の結果$F(u,v)$を用いて、パワースペクトル$p(u,v)$、その極座標$p(r,\theta)$を求めます。 さらに、幅$\Delta\theta$を持つ角度\thetaの扇状領域$p(\theta)$と、幅$\Delta r$を持つ半径$r$の同心円状領域$p(r)$を、以下の式により求めます。 p(\theta)=\sum_{\theta'=\theta
TL;DR faulthandler.enable() を使おう。これを実行した部分以降は、Python自体がクラッシュするような状況(=シグナルが飛んできた など) になると、スタックトレースが標準エラーに出力された上でクラッシュするようになる。 背景 macOSで requests.getを使うスクリプトをデーモン化したところ、何も出力せずにクラッシュするようになって困った。 タチの悪いことに、このクラッシュはデーモン化した時だけに起こる。 (環境は Python 3.11, macOS 12.6.5) from daemon import DaemonContext from daemon.pidfile import PIDLockFile import requests import time pid = PIDLockFile(path.join(home_dir, 'pidf
picamera2でカメラの映像を表示できるようになると、やはりそれを保存したくなってきます。保存する対象は「動画(video)」と「静止画(image)」があります。今回は静止画について見て行きましょう。 手っ取り早く保存する 静止画をファイルとして保存する方法は実はいくつかあります。これ正直picamera2の静止画保存をちょっとややこしくしている感がある気がしてます(^-^;。多分一番分かりが良さそうかなと思う方法は、Picamera2.capture_fileメソッドを使う方法です: from picamera2 import Picamera2 import time pc2 = Picamera2() pc2.start() # カメラをスタートした後安定するまで少し時間を置いた方が良いです time.sleep( 1 ) # 現在のカメラの映像を静止画(jpg)として保存 #
この記事について Raspberry PiにUSBカメラを接続してOpenCVで読み込むと、速度(FPS)が非常に遅いことがあります。また、PiCameraを使っても、解像度が高いと速度が出ないことがあります。 これを高速化します。対策は、単に圧縮フォーマットを指定するだけです。 速度が必要な場合は、非圧縮フォーマットじゃなくて、H264フォーマットなどを指定しましょう cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc('H', '2', '6', '4')); [追記(2020/7/15)] 最近のOpenCV or Raspbianだと、H264フォーマットが指定できなくなってるっぽい ?? H264非サポートなWebカメラの場合には、MJPGが使える可能性があります。だけど、MJPGだとCPUパワーを結構使います CAP_PROP
はじめに PyTorchで開発をしていると、テンソルデータをバイト列に変換(シリアライズ)して保存や転送を行う必要に迫られることがあります。本記事では、一般的な3つのシリアライズ方法について、その特徴とパフォーマンスを解説します。 シリアライズの3つの方法 1. numpy().tobytes() def tensor_to_buffer_numpy(tensor: torch.Tensor) -> bytes: if tensor.device.type != "cpu": tensor = tensor.cpu() return tensor.numpy().tobytes() def buffer_to_tensor_numpy(buffer: bytes, shape: tuple[int, ...], dtype: np.dtype) -> torch.Tensor: array
Overview 画像/音声処理をリアルタイムで行う、Webブラウザから利用できるアプリをStreamlitで作る方法を解説します。 StreamlitのおかげでPythonだけでwebアプリが作れます。さらに、一番簡単な例なら10行程度のPythonコードで、webカメラを入力にしてブラウザから利用できるリアルタイム画像処理アプリケーションになります。 Webベースなのでクラウドにデプロイでき、ユーザに簡単に共有して使ってもらえ、UIもイマドキで綺麗です。 人物・物体検知、スタイル変換、画像フィルタ、文字起こし、ビデオチャット、その他様々な画像・音声処理の実装アイディアをデモ・プロトタイピングするのになかなかハマる技術スタックではないでしょうか。 Webブラウザから利用できる物体検知デモの例。実行中に閾値をスライダーで変えられる。オンラインデモ🎈 同様にスタイル変換デモの例。実行中にモ
はじめに 論文やその解説記事を読んでdeep learnigのアーキテクチャに関しての概要は理解できたけど、その実装コードは読んでも複雑でよくわからないという場面も多いかと思われます。 そこで、論文の実装コードを題材としてpytorchの実装力を磨くための問題をまとめることが本記事の目的としています。 題材 今回は画像認識で有名な「Vision Transformer」に注目してその中でもAttention処理を行うクラスの実装を題材に紹介していきたいと思います。 また、今回は実装コードの紹介がメインとなるためAttentionについて詳細な説明は割愛します。 以下に、参考文献を紹介するので必要に応じてそちらも参照ください。 参考文献 https://github.com/lucidrains/vit-pytorch ← 本記事での実装において参考としたリポジトリ https://deve
pyinstallerとpy2exeを使ってpythonファイルをexe化した過程をここに書き記します。最近はexe化する人はほぼいないらしく需要はないと思いますが、自分が忘れないようにするためにまとめておきます。 なのでいつものように図解したり、ネチネチ解説したりはしません。 exe化の流れと、参考にしたサイトをまとめるだけになると思います。 pyinstallerでexe化pip install pyinstallerexe化したいpythonファイルを用意して pyinstaller python.py --onefile同じディレクトリに色々ファイルやらフォルダやら作成される 運が良ければdistフォルダの中にあるpython.exeは起動するかも、、 おそらくエラーが出る 作成されたpython.specファイルを開いて、以下のように編集する hiddenimports=[] ↓
はじめに Ryeで始めるPythonプロジェクトを執筆してから半年近く経ちました。 (よければ、まずRyeの記事から読んでいただけると嬉しいです) この半年でuvが大きく成長し、Ryeと同等かそれ以上のプロジェクトおよびパッケージ管理ができるようになりました。そのため、今度はuvを使って開発を進めたい方向けの記事も上げてみようと思いました。 本稿はRyeの記事同様、ハンズオン形式で誰でも気軽にプロジェクトを作れるようになっています。また、Ryeとの違いについても簡単にですが、言及します。 ハンズオン環境 Ubuntu / MacOS uv : 0.4.24 0. uvとは? Rustで書かれた非常に高速なPythonパッケージとプロジェクト管理ツールです。 以前に、Ryeの記事を執筆した際には、「パッケージインストーラー(pip等)の代替」ような位置づけでuvを利用していました。実際にRy
なお, @staticmethod のデコレータを用いて,静的メソッドとして定義してあります. sigmoid() は数学関数であり,値はその引数だけに依存し,オブジェクトやクラスの内容や状態には依存しないので,このように静的メソッドとして定義しました. それでは,実行してみましょう. sigmoid() は静的メソッドなので,オブジェクトを生成しなくても実行できます. In [10]: from lr1 import LogisticRegression In [11]: LogisticRegression.sigmoid(0.0) Out[11]: 0.5 In [12]: LogisticRegression.sigmoid(1.0) Out[12]: 0.7310585786300049 In [13]: 1.0 / (1.0 + 1.0 / np.e) Out[13]: 0.7
Tojiが動作している様子 概要 YouTubeなどの動画サイトを開くと、最近流行りのVTuberやゲーム実況などで、音声合成や声質変換を活用している様子を見かけることが多くなりました。私はゆっくり実況を見すぎて逆にあれが自然に思えてくるくらいの人間なのですが、自然な音声合成や声質変換の技術発展には目を見張るものがあります。 私も興味があってそうした音声情報処理の世界に片足を突っ込み始めているのですが、ディープニューラルネットを利用した各種タスクでは、ドメインが変わったとしてもデータ量が物を言う世界には違いがないようです。音声に関する代表的なデータセットとしては、Common Voice、声優統計コーパス、JUSTコーパス、JVSコーパスなどがあります。こうしたコーパスや音源を利用することで気軽に各種タスクに適用することができますが、既存製品と肩を並べたり実用に耐えうるものを作ったり、また
windowsサービス化[pywin32] Pythonプログラムをbatで実行してもいいが、何を起動させているかわからなくなるので起動しているプログラムをサービス化できるとユーザーにやさしい。 Windows サービスはバックグラウンド(コマンドプロンプトや画面などには出ない)で実行されるプログラムです。 例えるなら、ウイルス対策ソフトなど起動した覚えはないけど、PC起動したら動いているし、異常があったら報告してくれますよね。同じようにPythonのプログラムをバックグランドで動くサービスに登録したり削除したりするのがこの記事の目的です。 こんな方に Pythonで自動処理など作ったが、 この黒い画面はどの処理をしているんだ?状態になってる エンジニア以外の人でも自動処理しているPythonプログラムの状態を確認したい という人向け。 ついでに、サービスは 「Windows管理ツール」⇒
import os, sys, winshell from win32com.client import Dispatch def main(): if len(sys.argv) != 2: return # スクリプトの存在確認をする target_path = sys.argv[1] if os.path.isfile(target_path) is False: return save_path = target_path + ' - shortcut.lnk' # python の場所を探す python_work = None paths = os.environ["PATH"].split(os.pathsep) for path in paths: if path.split(os.path.sep)[-2][:6] == 'Python': python_work = p
pythonのsqlite3モジュールでトランザクションする方法をメモしておきます。なんか、ネットで調べてもなかなか日本語のサンプルが出てこなかったので。 sqlite3.connect()のisolation_levelオプション引数に分離レベルに対応する値を渡すだけです。 こんな形になります。以下サンプル。 import sqlite3 conn = None #conn = type('foo', (object, ), {'rollback':lambda self:None, 'commit':lambda self:None})() try: conn = sqlite3.connect(dbpath, isolation_level='EXCLUSIVE') # do something for i in range(10): conn.execute('insert int
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く