pinebook proにmecabをインストールする [人工知能(ディープラーニング)]
Pinebook ProというマニアックなLINUXパソコン(MANJAROインストール版)も持っているのですが、そもそもCPUにARMを搭載したlinuxパソコンなのでいろいろなところでつまづきます。
インテル系じゃないんです。情報がありません。
ちなみにスーパーコンピュータ「富嶽」はARMでも特殊なものなので、一緒にはできません。
スマホとかで使われている低電力消費CPUです。
で、最近では、Mecabという形態素解析のライブラリをインストールしようとした時に躓きました。
Mecabのサイトで配布されているプログラムの一部が古くて、
configure cannot guess build type
という警告が出て止まるのです。
なので、これをarm系CPUでインストールする場合には、一部のファイルを手動で新しいものに更新してあげないとインストールできません(makeが動きません)。
#mecabのフォルダに移動
cd mecab-0.996
#古いファイルを削除
rm config.guess
#ネットを通じて新しいファイルをダウンロード
wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess
これでmakeできるようになります。
あとはインストールの手順通りに
./configure
make
make check
sudo make install
でインストールできます。
※このほか辞書のインストールも忘れないでください。
tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz
cd mecab-ipadic-2.7.0-*****(実際にあるフォルダ名にしてください)
./configure --with-charset=utf8
make
sudo make install
※辞書の文字コードはデフォルトがeucなので、utf-8に変更しています。
この部分です。
./configure --with-charset=utf8
もし、makeで文字コードの指定を変えたいときは、make cleanとしてから
./configure --with-charset=utf8
もしくは
./configure --with-charset=sjis
と設定しなおして、makeとsudo make installをすれば大丈夫です。
あとはpythonで使うライブラリをpipでインストールすればOKです。
pip install mecab-python3
辞書のmakeがlibmecab.so.2が見つからないとかで失敗したり、
pythonで import MeCab とした時に
ImportError: libmecab.so.2: cannot open shared object file: No such file or directory
とエラーが出た場合には、
基本的には「.profile (場合によりけりで.bashrc)」に以下のように一文を追加してください。
(※libmecab.so.2は/usr/local/libに存在しているはずです)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
pinebookはいろんなところで躓いて、やっぱりmecabでもつまづきますが大丈夫です。
Pinebook PROで動きます。
Pinephone(mobian)でも使えます。
インテル系じゃないんです。情報がありません。
ちなみにスーパーコンピュータ「富嶽」はARMでも特殊なものなので、一緒にはできません。
スマホとかで使われている低電力消費CPUです。
で、最近では、Mecabという形態素解析のライブラリをインストールしようとした時に躓きました。
Mecabのサイトで配布されているプログラムの一部が古くて、
configure cannot guess build type
という警告が出て止まるのです。
なので、これをarm系CPUでインストールする場合には、一部のファイルを手動で新しいものに更新してあげないとインストールできません(makeが動きません)。
#mecabのフォルダに移動
cd mecab-0.996
#古いファイルを削除
rm config.guess
#ネットを通じて新しいファイルをダウンロード
wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess
これでmakeできるようになります。
あとはインストールの手順通りに
./configure
make
make check
sudo make install
でインストールできます。
※このほか辞書のインストールも忘れないでください。
tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz
cd mecab-ipadic-2.7.0-*****(実際にあるフォルダ名にしてください)
./configure --with-charset=utf8
make
sudo make install
※辞書の文字コードはデフォルトがeucなので、utf-8に変更しています。
この部分です。
./configure --with-charset=utf8
もし、makeで文字コードの指定を変えたいときは、make cleanとしてから
./configure --with-charset=utf8
もしくは
./configure --with-charset=sjis
と設定しなおして、makeとsudo make installをすれば大丈夫です。
あとはpythonで使うライブラリをpipでインストールすればOKです。
pip install mecab-python3
辞書のmakeがlibmecab.so.2が見つからないとかで失敗したり、
pythonで import MeCab とした時に
ImportError: libmecab.so.2: cannot open shared object file: No such file or directory
とエラーが出た場合には、
基本的には「.profile (場合によりけりで.bashrc)」に以下のように一文を追加してください。
(※libmecab.so.2は/usr/local/libに存在しているはずです)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
pinebookはいろんなところで躓いて、やっぱりmecabでもつまづきますが大丈夫です。
Pinebook PROで動きます。
Pinephone(mobian)でも使えます。
PytorchでHSV画像を扱う(RGB⇒HSV変換) [人工知能(ディープラーニング)]
Pytorchで画像を扱う時、輝度と色情報を分離して、色情報だけを抜き出したり、加工したい時があります。
そもそも一般的なRGBの形式だと、明るさ(輝度情報)と色の情報がRGBの各色情報に含まれているので単純に明るさを変えるとしても、RGBの3つのデータを扱う必要があります。
明るさの変更くらいならばRGBでも良いのですが…例えば、白黒画像をカラーにするとか、色だけを他の画像から持ってきたい、とかの場合には、RGB形式ではとんでもなく複雑な処理が必要になります。
ですがHSV形式のように色相(Hue)、彩度(Saturation・Chroma)、明度(Value・Brightness)で構成される画像だと、色の情報(HとS)と、輝度で作られる画像の情報(V)を別々に取り扱うことが出来ます。
色の情報だけを抜き取って、他の画像に色だけを移し替える事も簡単です。
他にも、白黒画像に色を追加してカラーにしたり、という場合にはRGBではなくて、HSVの方が効率的です。
明るさだけを変える場合には、明度(Value・Brightness)だけを変えれば良くて、色への影響がないのも便利です。
このHSV画像の取り扱いも、torchvisionとPILを組み合わせることで簡単に出来ます。
RGB→HSV変換、HSV→RGB変換も簡単です。
######----- pytorch、ptorchvision、PILのインポート
import torch
import torchvision
from PIL import Image
####画像の読み込み
a=Image.open('NEKO.JPG')
####RGB形式からHSV形式へ変換
neko2=a.convert('HSV')
####HSVのデータをTensor形式のデータに変換
tneko=torchvision.transforms.ToTensor()(neko2)
#これで、tnekoにHSV形式の3次元のTensorに変換されます。
####輝度を半分にしてみる場合にはこんな感じで直接データをいじることが出来ます。
tneko[2]=tneko[2]/2
####HSV形式のPILイメージに変換
neko3=torchvision.transforms.ToPILImage('HSV')(tneko)
####HSVからRGB形式へ変換
rgbneko=neko3.convert('RGB')
####表示してみる
rgbneko.show()
こんな感じで扱えます。
●注意点としては、torchvisionには、RGB画像を扱う、とても似た機能の命令があります。
※こちらを使うと、HSV形式などでの変換が出来ないので注意してください。
###PILイメージからTensorへ変換(RGB)
ttt=torchvision.transforms.functional.to_tensor(a)
###TensorからPILイメージへ変換(RGBのみ)
aa=torchvision.transforms.functional.to_pil_image(ttt)
opencvを使う人もいますが、(おそらく)この方法が簡単です。
そもそも一般的なRGBの形式だと、明るさ(輝度情報)と色の情報がRGBの各色情報に含まれているので単純に明るさを変えるとしても、RGBの3つのデータを扱う必要があります。
明るさの変更くらいならばRGBでも良いのですが…例えば、白黒画像をカラーにするとか、色だけを他の画像から持ってきたい、とかの場合には、RGB形式ではとんでもなく複雑な処理が必要になります。
ですがHSV形式のように色相(Hue)、彩度(Saturation・Chroma)、明度(Value・Brightness)で構成される画像だと、色の情報(HとS)と、輝度で作られる画像の情報(V)を別々に取り扱うことが出来ます。
色の情報だけを抜き取って、他の画像に色だけを移し替える事も簡単です。
他にも、白黒画像に色を追加してカラーにしたり、という場合にはRGBではなくて、HSVの方が効率的です。
明るさだけを変える場合には、明度(Value・Brightness)だけを変えれば良くて、色への影響がないのも便利です。
このHSV画像の取り扱いも、torchvisionとPILを組み合わせることで簡単に出来ます。
RGB→HSV変換、HSV→RGB変換も簡単です。
######----- pytorch、ptorchvision、PILのインポート
import torch
import torchvision
from PIL import Image
####画像の読み込み
a=Image.open('NEKO.JPG')
####RGB形式からHSV形式へ変換
neko2=a.convert('HSV')
####HSVのデータをTensor形式のデータに変換
tneko=torchvision.transforms.ToTensor()(neko2)
#これで、tnekoにHSV形式の3次元のTensorに変換されます。
####輝度を半分にしてみる場合にはこんな感じで直接データをいじることが出来ます。
tneko[2]=tneko[2]/2
####HSV形式のPILイメージに変換
neko3=torchvision.transforms.ToPILImage('HSV')(tneko)
####HSVからRGB形式へ変換
rgbneko=neko3.convert('RGB')
####表示してみる
rgbneko.show()
こんな感じで扱えます。
●注意点としては、torchvisionには、RGB画像を扱う、とても似た機能の命令があります。
※こちらを使うと、HSV形式などでの変換が出来ないので注意してください。
###PILイメージからTensorへ変換(RGB)
ttt=torchvision.transforms.functional.to_tensor(a)
###TensorからPILイメージへ変換(RGBのみ)
aa=torchvision.transforms.functional.to_pil_image(ttt)
opencvを使う人もいますが、(おそらく)この方法が簡単です。