果報は寝て待て: 5月 2018

2018年5月29日火曜日

奈良オクトーバーフェストに行ってきました。

毎年恒例で行ってます、奈良オクトーバーフェスト。今年は初めて平日の火曜日に行ってきました。
 平日の17時とあってさすがに席はまばらです。
 でも生演奏が始まると人も増え、少しずつ盛り上がってきます。

 モスクワから来たという夫婦と少ししゃべりました。
東京、大阪、姫路、奈良と観光してるそうです。ちょっとプーチンに似てました。
下の写真真ん中右よりのアロハシャツです。
 かなり外国人観光客が多いです。毎年外国人観光客が増加してるのが実感できます。
気候もちょうど良く、楽しいひと時を過ごしました。

2018年5月26日土曜日

長浜製作所のバランシングマシンのエンコーダ

またしても我が職場の古いバランシングマシン(バランサー)が調子悪くなった。
長浜製作所からは「はよ捨てなはれ」と言われ続けてるやつです。
修正穴の角度決めで角度がずれてしまう。との事。
エンコーダを予備品(それも中古)と入れ替えて現象が収まったようである。

ではエンコーダが悪いのか?
外したエンコーダを調べてみる。
メーカー名、品番もわからない。
蓋を開けてみる。
 5vで動作するタイプのロジックIC(インバータ)があるので、VCに5Vをつないでみる。
USBぶった切り電源     
5Vの実験回路を組む時には、これが大変便利。いちいち電源装置を準備しなくて済む。
回路を組み、出力(A,B,Z)を10kΩの抵抗で5Vにプルアップ し、オシロで確認してみた。
A相、B相を表示し、指でエンコーダの軸をクリっと回すと、位相が1/4ずれた波形が現れる。速く回してもきれいに出ている。おそらく1周で1024パルスです。1パルスが0.35度くらいになります。
 B相が必要なのは回転方向がわかるからです。
 角度の絶対値はZ相のパルスからA相で何パルス目という風に計算します。
次にA相とZ相を表示させる。何度やっても1周に1か所山ができる。速く回しても逆転させても同じところに出ます。
 Z相は円盤のある1個所のみにくると反射光の強さが変化してパルスを出す縞です。
これではZ相のパルスの位置が変わることはありえません。


 隙間からは少し分厚いCDみたいな円盤が回るのが見えます。
円盤上には3本の縞があります(A,B,Z相)。円盤の裏には発光素子が見当たらないので、発光素子と受光素子が同じ側についてるようです。
 当然、円盤をゆびで押さえると軸を回そうとしても動かず、軸と円盤はしっかりと固定されてるようです。

 この結果、バランシングマシンの修正角度がずれたり、また、その後原点の角度がずれてしまうのは、エンコーダ内部では 考えられません。

 考えられるのは   
         1 エンコーダの取り付け金具がゆるむ。
         2 エンコーダの軸とカップリングの固定がゆるむ。
         3 カップリングと、エンコーダ側プーリーの軸の固定がゆるむ。
         4  エンコーダ側プーリーと軸の固定がゆるむ。
         5  エンコーダ側プーリーと、タイミングベルトの山が飛ぶ。
         6 主軸側プーリとタイミングベルトの山が飛ぶ。
         7 主軸とプーリの固定がゆるむ。

このいずれかとなります。
 可能性の高いのはタイミングベルトの摩耗で山が飛ぶことです。こちらでもベルトを取り寄せて交換する予定です。
 また、先日、上の2が発生し、場所の特定に時間がかかりました。

まだまだ古いバランシングマシンでお困りの方は多いと思います。何かのお役に立つことがあるかもしれませんね。






2018年5月5日土曜日

初めてのはじめての深層学習プログラミング その5

 「はじめての深層学習プログラミング」を買って、自分にもできるのかどうか挑戦中です。

tiny.pyの作成方法です。初心者向け解説書でもそこまでは書いてくれてません。
  UbuntuのFilesを開いて Home/deel/example/のディレクトリを開きます。


 そこのtest.pyを同じ場所にコピーし、tiny.pyとrenameします。
それをダブルクリックしてエディタで開きます。
 この画面で本に書いてある通りに書き換えるのが手っ取り早いと思いました。
それを上書き保存して Home/deel/へ移動またはコピーします。
これで Home/deel/tiny.pyが焼きあがります。

tiny.pyを実行します。

 toruosada@toruosada-VirtualBox:~/deel$ python tiny.py
Loading bvlc_alexnet.caffemodel
Converting from bvlc_alexnet.caffemodel
(u'data', 5)
(u'conv1', 4)
(u'relu1', 18)
(u'norm1', 15)
(u'pool1', 17)
(u'conv2', 4)
(u'relu2', 18)
(u'norm2', 15)
(u'pool2', 17)
(u'conv3', 4)
(u'relu3', 18)
(u'conv4', 4)
(u'relu4', 18)
(u'conv5', 4)
(u'relu5', 18)
(u'pool5', 17)

(u'fc6', 14)
(u'relu6', 18)
(u'drop6', 6)
(u'fc7', 14)
(u'relu7', 18)
(u'drop7', 6)
(u'fc8', 14)
(u'loss', 21)
#1 | loupe, | 22.5%
#2 | hook, | 10.0%
#3 | corkscrew, |  5.2%
#4 | combination |  4.2%
#5 | stethoscope |  4.1%
#6 | buckle |  4.0%
#7 | face |  3.3%
#8 | stopwatch, |  2.5%
#9 | cassette |  2.0%
#10 | analog |  1.4%
#11 | knot |  1.4%
#12 | digital |  1.4%
#13 | chain |  1.2%
#14 | padlock |  1.2%
#15 | muzzle |  1.1%
#16 | magnetic |  1.0%
#17 | lens |  1.0%
#18 | sunglasses, |  0.9%
#19 | whistle |  0.8%
#20 | nail |  0.8%
toruosada@toruosada-VirtualBox:~/deel$ 

本の確率との間にばらつきがありますがそれなりの結果がでました。

次に20ページのプログラムの改造です。今回freePhotoから犬とわかりやすそうな写真を見つけてダウンロードし、 Home/deel/へ置き、dog.jpegとしました。
プログラムの”test.jpg"を”dog.jpeg"と変更しtiny.pyを実行しました。
見せた写真と結果です。
 #1 | German | 61.8%
#2 | Norwegian | 27.3%
#3 | kelpie |  3.8%
#4 | malinois |  1.9%
#5 | Eskimo |  1.6%
#6 | malamute, |  0.7%
#7 | Siberian |  0.7%
#8 | timber |  0.3%
#9 | groenendael |  0.3%
#10 | schipperke |  0.2%
#11 | dingo, |  0.2%
#12 | African |  0.1%
#13 | Cardigan, |  0.1%
#14 | Border |  0.1%
#15 | dhole, |  0.1%
#16 | tennis |  0.1%
#17 | Australian |  0.0%
#18 | Pembroke, |  0.0%
#19 | collie |  0.0%
#20 | white |  0.0%
toruosada@toruosada-VirtualBox:~/deel$

さすがにジャーマンシェパードが一位に来てます。その後も強そうな犬の名前が並びます。
では応用編です。うちのトイプードルが鏡餅の帽子をかぶらされてます。
 #1 | Maltese | 29.3%
#2 | toy | 22.3%
#3 | West | 11.5%
#4 | French |  9.6%
#5 | miniature |  7.1%
#6 | Chihuahua |  7.1%
#7 | cocker |  1.3%
#8 | teddy, |  1.3%
#9 | standard |  0.9%
#10 | Norfolk |  0.8%
#11 | kuvasz |  0.7%
#12 | boxer |  0.6%
#13 | Labrador |  0.5%
#14 | cairn, |  0.5%
#15 | toy |  0.3%
#16 | Shih-Tzu |  0.3%
#17 | seat |  0.3%
#18 | Bedlington |  0.3%
#19 | Pekinese, |  0.2%
#20 | Lhasa, |  0.2%

可愛い犬の名前がズラリと並びます。ほっとしました。
中でも面白いのが#14、日本語でケルンです。鏡餅がAIにはケルンに見えるらしいです。
なかなか楽しませてくれます。
               ケアン - Wikipediaより

 調子に乗ってDEEPな日本をアメリカ生まれのAIに「これなーんだ」します。
 奈良でお馴染みのせんとくんです。
 #1 | knee | 11.4%
#2 | teddy, |  7.5%
#3 | ski |  5.7%
#4 | swing |  5.4%
#5 | horizontal |  4.2%
#6 | parallel |  4.1%
#7 | neck |  3.4%
#8 | wombat |  3.3%
#9 | bonnet, |  3.0%
#10 | swimming |  2.9%
#11 | koala, |  2.2%
#12 | bucket, |  2.1%
#13 | diaper, |  1.7%
#14 | sweatshirt |  1.7%
#15 | cowboy |  1.5%
#16 | stole |  1.5%
#17 | toyshop |  1.2%
#18 | poncho |  1.2%
#19 | hamper |  1.2%
#20 | sarong |  1.2%

膝が気になるらしいです。角は帽子(bonnet)に見えるのかも

信楽町観光協会より
 #1 | toyshop | 61.3%
#2 | saltshaker, |  6.4%
#3 | oil |  5.6%
#4 | breastplate, |  5.6%
#5 | cuirass |  3.8%
#6 | thimble |  1.8%
#7 | piggy |  1.0%
#8 | knee |  0.9%
#9 | shield, |  0.8%
#10 | milk |  0.6%
#11 | football |  0.4%
#12 | go-kart |  0.3%
#13 | mask |  0.3%
#14 | padlock |  0.3%
#15 | motor |  0.3%
#16 | coffeepot |  0.3%
#17 | carousel, |  0.3%
#18 | teapot |  0.3%
#19 | chain |  0.2%
#20 | bubble |  0.2% 

おもちゃ屋に塩入れが並んでるように見えるそうです。



   



初めてのはじめての深層学習プログラミング その4

「はじめての深層学習プログラミング」を買って、自分にもできるのかどうか挑戦中です。


必要な事は
 1 Ubuntuのインストール
 2 Gitのインストール
 3 pipのインストール
 4 OpenCVのインストール
 5 CUDAのインストール (現在、ここの途中です)
 6 Chainerのインストール
 7 Deelのインストール
 8 tiny.pyの実行
先ずはここまでを目指します。

 5 CUDAのインストール
   どうしてもうまくいかず、諦めました。
    CUDAは必要性を感じてから再考する事にします。



もう一度最初からやり直します。

まずUbuntuのインストールです。
3通りあります。
 1 Windows上でのサブシステムでUbuntu(Linax)を動かす
  2  WindowsとUbuntuをデュアルブートする
  3  クリーンインストールしてしまう
  
    1 Windows上でのサブシステムでUbuntu(Linax)を動かす
   今度は 仮想環境(VirtualBox)を使用してUbuntuをインストールしてみます。

     特に注意点
              日本語を選ぶと後でコマンドの画面で困るので英語を選ぶ。
     bios上アドバンスでvirtualなんとかをenableにする。
          Ubuntuの64ビット版が表示されない。
     Ubuntuのデスクトップにターミナルを起動する時、 Ctrl+Alt+Tをクリックする。出てきたら、端末アイコンを右クリックしてLauncherに登録」をクリックする。


 6 Chainerのインストール
 7 Deelのインストール
 8 tiny.pyの実行
 ですが、なかなかうまくいきません。
   tiny.pyの実行中のエラーの例です。   
                                         Import Error:cannot import name Function Set
                                         Import Error:No module named protobuf3
                       memory error
                                         Raise EOF Error
                                         Alexnet()が見つからない
   Chainerのインストール中のエラー
              numpyがアンインストールできない
              sixがアンインストールできない



試行錯誤の結果、各プログラムのインストール順とバージョンの関係が大切とわかりました。
最終的にうまくChainerのインストールができた時の順番です。
    ① VirtualBoxを使用 バージョン 5.1.34 r121010 (Qt5.6.2)
    ② Ubuntuをインストール(14.04)
    ③ Gitのインストール
    ④ python2.7のインストール
    ⑤ pipのインストール(1.5.4)
    ⑥ pythonバージョンアップ→(2.7.12)
    ⑦ OpenCVのインストール(最新版はエラーがでるので2.4.10を指定してインストール)
    ⑧ python-devのインストール
    ⑨ Chainerのインストール(1.17.0)
    ⑩ Deelのインストール
    ⑪ tiny.pyの作成
    ⑫ tiny.pyの実行