1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【備忘録】pythonのパッケージ 「hog」でWarningが出る

Last updated at Posted at 2018-12-13

##概要
画像からHOG特徴量の抽出しようとして、Pythonのパッケージの一つである「hog」をpip使ってインストールしてHOG特徴量を抽出するプログラムを作成した。
以下ソースコード例

.py
import cv2
import numpy as np
from skimage.feature import hog

hog_image1 = cv2.imread("./data/image1.jpg")
fd, hist1 = hog(hog_image1, orientations=8, pixels_per_cell=(128, 128),cells_per_block=(2, 2), visualize=True, multichannel=True)
print(str(hist1))

実行すると以下のような警告文が出た。

/Users/User/.pyenv/versions/3.6.0/lib/python3.6/site-packages/skimage/feature/_hog.py:150: skimage_deprecation: Default value of `block_norm`==`L1` is deprecated and will be changed to `L2-Hys` in v0.15. To supress this message specify explicitly the normalization method.

エラー文を読まずとりあえずパッケージをアップデートしたが、ダメだった。

pip install -U hog

対処法

エラー文を読むと

デフォルト値の`block_norm`==`L1`はバージョン0.15で廃止され、今では`L2-Hys`に変更されている。
実行するには正規化方法を明確に指定して。

と記述されているようだ。
正規化法の指定の仕方を調べるためにScikit-imageのモジュール説明を読むと、HoGモジュールを用いる場合では以下のような引数を与えることができる。

skimage.feature.hog(image, orientations=9, pixels_per_cell=(8, 8), cells_per_block=(3, 3), block_norm=None, visualize=False, visualise=None, transform_sqrt=False, feature_vector=True, multichannel=None)

ということで、skimageのHoGモジュールを呼び出す際のパラメータにhog(..., block_norm='L2-Hys')のようにblock_normをL2-Hysを指定してあげれば良さそうだ。

以下のようにソースを修正して再度実行したら警告は出なくなった。

.py
import cv2
import numpy as np
from skimage.feature import hog

hog_image1 = cv2.imread("./data/mouth_img13.jpg")
fd, hist1 = hog(hog_image1, orientations=8, pixels_per_cell=(128, 128),cells_per_block=(2, 2), visualize=True, multichannel=True, block_norm='L2-Hys')
print(str(hist1))
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?