TensorFlow, PyTorchで共通のCUDA, Cudnnを利用する

・PyTorchPyTorchのCuda対応バージョンを確認。2022/3現在、10.2と11.3。以下では11.3を例に説明。https://pytorch.org/ ・TensorFlow「テスト済みのビルド構成」で上記CUDAバージョンより新しくて、最も近いバージョンを選択。CUDA11.3の例であれば、tensor…

TensorFlow Javaの使い方

・Maven RepositoryMaven Repository: org.tensorflow » tensorflow-core-platform※旧版と間違えないよう注意・Example1Python学習 import tensorflow as tffrom tensorflow.keras import Modelclass MyModel(Model): def __init__(self): super().__init__(…

kotlin opencvでkmeans

fun main() { val img = imread("yutaka.png", -1) val channels = MatVector() split(img, channels) val alpha = channels[3] val rgb_img = Mat() cvtColor(img, rgb_img, COLOR_BGRA2BGR) val samples = rgb_img.reshape(1, img.rows() * img.cols()) va…

javascriptお勉強

Visual Studio Code を使った JavaScript プログラミング – HEROIC 2021

CLionでビルド済み配布OpenCVを利用する

・CMakeLists.txt include_directories( C:/opencv/build/include )link_directories( C:/opencv/build/x64/vc15/lib )add_executable( test opencv_test.cpp )target_link_libraries( test opencv_world420d.lib) ・CLion設定 File->Settings->Build, Execu…

Kotlin OpenCVのMat操作

val buffer = mat.createBuffer<IntBuffer>()でBufferを取得して一次元配列としてアクセス(IntBuffer部分は元のmatの型に合わせる)</intbuffer>

Kotlin(Gradle)でOpenCV

implementation "org.bytedeco:javacv-platform:VERSION"org.bytedeco:opencv単体では使えない。javacv-platformをbuildすると、opencvも自動でbuildされる

Open3Dでテクスチャマッピング

import open3d as o3dimport numpy as npimport cv2from copy import deepcopydef main(): img = cv2.imread('lenna.bmp') img = deepcopy(img[:, :, ::-1]) vert = [[-1, 1, 0], [-1, -1, 0], [1, 1, 0], [1, -1, 0]] faces = [[0, 1, 2], [1, 3, 2]] uvs =…

ffmpegでGIF変換

・gif→mp4 + cropffmpeg -i input.gif -pix_fmt yuv420p -vf crop=640:720:320:0 output.mp4・パレット作成ffmpeg -i input.mp4 -vf palettegen palette.png・mp4→gif + loop無しffmpeg -i input.mp4 -i palette.png -filter_complex paletteuse -loop -1 ou…

音声信号処理のお勉強

・スペクトル解析スペクトル(スペクトラム) 信号を周波数変換したものスペクトログラム 短時間のスペクトルを時間軸に沿って並べたもの(三次元データ)対数スペクトル スペクトルの対数をとったもの。音源対数スペクトルと声道対数スペクトルの和ケプスト…

Blender Pythonスクリプト集

・参考Blender 2.8 で Python スクリプトを実行してみる ・Sceneの抽出(どちらも同じ)bpy.context.scenebpy.data.scenes['Scene']・Objectsの抽出(どちらも同じ)bpy.context.scene.objectsbpy.data.objects・Object種類の抽出for o in bpy.data.objects:…

CycleGAN

import osimport globimport randomimport cv2import torchfrom torch import nnimport torch.nn.functional as Ffrom torch.utils.data import Dataset, DataLoaderfrom torch.utils import tensorboardimport torchvisionfrom tqdm import tqdmimport iter…

GANで大きな顔を描く

import osimport globimport cv2import torchfrom torch import nnimport torch.nn.functional as Ffrom torch.nn.utils.spectral_norm import spectral_normfrom torch.utils import tensorboardfrom torch.utils.data import Dataset, DataLoaderimport to…

GANで顔を描く

import osimport globimport cv2import torchfrom torch import nnimport torch.nn.functional as Ffrom torch.utils import tensorboardfrom torch.utils.data import Dataset, DataLoaderfrom tqdm import tqdmclass CelebDataset(Dataset): def __init__(…

GANで0を描く

import torchimport torch.nn.functional as Ffrom torch import nnfrom torch.utils import tensorboardfrom torch.utils.data import DataLoaderfrom torchvision import datasets, transformsimport cv2class Generator(nn.Module): def __init__(self, l…

scipy.signal.firwinのsimple example

import numpy as npfrom scipy.io import wavfilefrom scipy.signal import lfilter, firwinimport matplotlib.pyplot as pltsample_rate, x = wavfile.read('combined_sine.wav')sample_interval = 1.0 / sample_rateN = x.shape[0]nyquist = sample_rate /…

scipy.signal.lfilterのsimple example

import numpy as npfrom scipy.io import wavfilefrom scipy.signal import lfilterimport matplotlib.pyplot as pltsample_rate, x = wavfile.read('combined_sine.wav')sample_interval = 1.0 / sample_rateN = x.shape[0]filtered = lfilter([0.5, 0.5], …

wave, scipy.io.wavfile, librosaでwaveファイル入力

waveはpylabを介すので分かりにくい。 librosaはサンプリングレートを与えないといけない。 scipy.io.wavfileが一番使い勝手が良さそう。 import numpy as npimport matplotlib.pyplot as plt# import wave# from pylab import frombuffer# wf = wave.open('…

メルスペクトラムとデータ水増しでESC50の精度を上げる

以下の記事の改良。 test accuracyが8%から30%くらいまで上がりました。 ESC50音声分類をシンプルなCNNでやってみた - LeMU_Researchの日記 import osimport pandas as pdimport numpy as npimport randomimport librosaimport torchfrom torch import optim…

numpyでスペクトル包絡の算出(ケプストラム分析)

・引用/データ メル周波数ケプストラム(MFCC) - Miyazawa’s Pukiwiki ・スペクトル import numpy as npfrom scipy.io import wavfileimport matplotlib.pyplot as plt# waveファイル入力sample_rate, wave_data_orig = wavfile.read('a.wav')# 切り抜きcut…

離散フーリエ変換への最短経路

サンプリング数Nの離散時間信号をフーリエ変換したい。 引用:6. 離散フーリエ変換 (やる夫で学ぶディジタル信号処理) 入出力が離散信号でないといけないので、離散フーリエ変換を利用する。 本来、離散フーリエ変換は周期時間信号にしか適用できないが、周…

Juliusの認識結果をpythonで受信する

・Juliusサーバの起動 .\bin\windows\julius.exe -C main.jconf -C am-dnn.jconf -dnnconf julius.dnnconf -module ・Pythonクライアントコード import socketwith socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.connect(('127.0.0.1', 10500)…

pythonでsocket通信

・サーバ import socket# ソケット作成# AF_INET : IPv4# SOCK_STREAM : TCPwith socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: # 接続待ちするIPアドレスとポートを指定 s.bind(('127.0.0.1', 50007)) # 接続待ち数1 s.listen(1) # 接続待ち co…

pykakasiでcsvファイルの中身をローマ字に変換

from pykakasi import kakasiimport pandas as pdimport rekakasi = kakasi()kakasi.setMode("H", "a") # ひらがなkakasi.setMode("K", "a") # カタカナkakasi.setMode("J", "a") # 漢字kakasi.setMode("r", "Hepburn") # ヘボン式ローマ字conv = kakasi.get…

ESC50音声分類をシンプルなCNNでやってみた

※改良記事書きました。 メルスペクトラムとデータ水増しでESC50の精度を上げる - LeMU_Researchの日記 ・npy化 import osimport pandas as pdimport numpy as npfrom scipy.io import wavfileimport pyworld as pwimport cv2data_dir = 'data'df = pd.read_c…

pyworldでピッチ・フォルマントシフト(+wav入力、音声再生、周波数プロット)

import numpy as npfrom scipy.io import wavfileimport simpleaudio as saimport pyworld as pwimport matplotlib.pyplot as plt# wavファイルの入力sample_rate, data_int = wavfile.read('input.wav')# 基本周波数、スペクトル包絡、非周期性指標の抽出da…