axinc-ai / ailia-models

The collection of pre-trained, state-of-the-art AI models for ailia SDK
2k stars 318 forks source link

Fix resize function to be bilinear in clap. #1395

Closed AcculusSasao closed 6 months ago

AcculusSasao commented 7 months ago

clapサンプルで、メルスペクトログラム(2次元)をresizeして一定チャンクサイズにするコードが、 np.resize (インデックス0から詰め直すだけ) で実現されており、 目的は torchvision.transforms.Resize (線形補間) のため、2D線形補間となるよう修正します。

skimage.transform.resize を用い、オプション引数も torchvisionの結果に近くなるようなオプションを選んでいます。 完全一致はしませんが、似たような結果が得られることを確認済。 他の候補としては cv2.resize, scipy.interpolate.interp2d, RegularGridInterpolator などがありますが、 1行で済み、cv2よりskimageのほうがinstallしやすいと思われるため、こちらにしました。

参考: https://pytorch.org/vision/stable/generated/torchvision.transforms.Resize.html https://numpy.org/devdocs/reference/generated/numpy.resize.html https://scikit-image.org/docs/dev/api/skimage.transform.html#skimage.transform.resize https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html