2014年10月27日月曜日

Windows8.1がクソな件(俺にとって)。

研究室で使うPCを買ってもらえたのでとりあえず8.1をインストールしてみた。

まずよく言われていた電源の所在・・・

確かに左端にあるアイコンを右クリックしたらでてきた。

で、とりあえずクリック、シャットダウンできたなうんうん・・・・とは行かないようだ^^;

自作PCなのでパーツの相性がわるかったのか原因は不明だが、シャットダウンして数秒後勝手に再起動してしまう問題が発生。

この件についてはまだ解決していないのだが、調査している過程でWindows8および8.1ではシャットダウンしてもシャットダウンしていないことが分かった(もしかしたらマザーボードの方の機能かもしれないけど)。

これはシステム的には正常なのだけど、従来ユーザーとしては問題。

デフォルトではシャットダウンは従来の休止状態のようなものらしい。

別途、非常に回りくどい操作をして完全にシャットダウンしなくてはならない。

さらに調べていると、一応電源オプションから標準のシャットダウンは従来通り完全にシャットダウンする設定が可能らしい。

UIもタッチパネルを意識したもののようで、従来通りのキーボードとマウスでは非常に使いにくい。慣れの問題かもしれないが。

でもいちいちデスクトップのタブ?ボタン?をクリックしないと従来のようなデストップに行けないのが面倒。

また、タッチ向けのタブ?ボタン?でアプリケーションを起動した後アプリケーションの閉じ方がわからない。

まだ調べてないけど、単に履歴なのか、バックに退避したのかよくわからん状態が非常に気持ち悪い。

他にもまだ問題は出てきそう。とりあず調査と慣れしかないのかな。

8系はシステム自体の性能は従来より高性能となっているらしいしので今はそれについては何も言わないし分からないけど・・・

もうすぐwindows10がでるそうだが、とりあえずWidows8系のUIはクソだ。

たしかこのUIの実装を強行したトップはクビになったと聞く。たぶん時期が早すぎたのだとおもうが、今は本当にクソだと思う。

2014年10月26日日曜日

ASRock Fatal1ty Z97 Killer インターネットに繋がらない問題







PCを自作したのだがネットに接続できない問題が起きた。

接続方法は有線。

デバイスマネージャを見たところネットワークアダプタの項目がない・・・インストールされていない?

調べてみるとマザーボードがおかしい?かもということでBIOSメニューからLANに関する項目を有効にしていったが、解決せず。

さらに調べているとBIOSの更新やらなんやらで解決できるかも・・・とあったの実践。

すると結果的に見かけ上解決した(根本的に解決できたかは不明)。

以下、その作業について記しておきます。

ただし一切保証できないので参考程度に、実行は自己責任です。

【スペック】
OS : Windows8.1 64bit English版
CPU : Intel Core i7-4780
GPU : NVIDIA GEFORCE GTX750
RAM : DDR3 4GBx2
M/B : ASRock Fatal1ty Z97 Killer

【1. BIOSの更新】
■1.1
別途ネットに接続できる端末からメーカーHPへ行き、BIOSのアップデートファイルをダウンロード。
http://www.asrock.com/mb/Intel/Fatal1ty%20Z97%20Killer/index.jp.asp?cat=Download&os=BIOS


■1.2
Windows版をダウンロードし、解凍後USBメモリに保存し問題のPCでwindowsを起動しexeファイルを実行。

■1.3
終わると再起動。

以上、BIOS更新作業終了。



【2. ドライバのインストール】
■2.1
BIOS更新同様。HPからドライバを落としてくる。
http://www.asrock.com/mb/Intel/Fatal1ty%20Z97%20Killer/index.jp.asp?cat=Download&os=Win8a64

↓ダウンロードしたもの
・INFドライバ
・Atheros Lanドライバ

INFドライバはよくわからない。ググって一番上あたりに出てきたページではチップセットの最適化に関するものらしく、他のドライバよりもまず一番にインストールすべきものらしい。
したがって、これを↓2.2では先に実行、インストールする。

------[追記]-------

回りくどかったですね。
別途ダウンロードしなくても、付属のCDを使えば問題無いと思います。
付属のCDの存在を完全に忘れていた。
-------------


■2.2
BIOS更新同様。USBメモリ等に解凍して持ってくる。
INFドライバのインストール後、Atheros Lanドライバをインストール。

終わったら再起動。

以上、ドライバのインストール終了。



以上の作業でとりあえずネットに繋がるようになりました。つながらない場合は他の方法を調査検討しましょう。







2014年10月23日木曜日

【動画】ディレーラー調整【バイクメンテナンス】

変速機の調整です。


お店でバイクを買った場合、調整ボルトを触ることってまず無いと思います。

一度適正に調整した場合、それが狂うことってめったにないらしいです。

調整ボルトをいじるのは1からバイクを組んだりディレーラー交換等した時くらいだと思います。



【リアディレーラー】








【フロントディレーラー】







新品価格
¥37,930から
(2014/10/23 16:55時点)

2014年10月19日日曜日

【動画】リアハブ【バイクメンテナンス】

随時更新していきます。


日本語の解説動画は・・・もっとよく検索すればでてくるかもしれないけれど、海外(基本的に英語)の方が簡単にヒットするのでこちらを採用しました。

まぁとにかく視覚情報!って人は参考にどうぞ。

英語が分かる、同時に英語も勉強したいって人もどうぞ。





ディスクブレーキのローターには油分が付かないように注意しましょう。


Shimano XT rear hub service



What Is Inside A Bike Freewheel/How Does It Work?



博士の異常な鼎談 宮台真司 教育問題のウラ 平成19年5月15日






こういう話を聞くと、ゆとり教育には賛成かな。


僕はエリートではないし微積も大学院に入るまで知らなかったけれど・・・(まぁ高校は普通科じゃなかったから仕方ないけれど。で今は微積が分かってないと話にならない世界にいるから高校までで微積やベクトルくらい教えてほしかったって思いもあるのだけれど・・・)

2014年10月1日水曜日

JKの制服。



京都派
でも河原町でよく見かけてたJKは短いのが多かったような・・・修学旅行生だったのかな?



椙山かな



愛知かな
兵庫って・・・神戸行くとこんなんなんや(これも捨てがたい)。どっちかって言うと大阪のイメージがあった。田舎とはちがうのか・・・。






【kinect使ってみる。】座標のずれ

kinect記事前回では、depth画像とcolor画像の座標のズレを合わすところまで入てやりました。

↓これで座標を変換しているらしい
NuiImageGetColorPixelCoordinatesFromDepthPixelAtResolution()

しかし、それでも若干ずれている気がする~で終わりました。 

今回はそれをとりあえず直すことをやってみます。



※プログラミングスキルは初心者なので間違いや無駄等あると思います。


事前にに保存した画像でなんやかんややるので下記のプログラムではKinectは使っていません。


#include <iostream>
#include <opencv2\opencv.hpp>

using namespace std;
using namespace cv;

int main(int argc, char* argv[]){

 Mat depth, depth2; //depth2:ズラす用
 int counter = 0;
 char readBuf[256];
 char writeBuf[256];

 //動画で書き出す用
 //double fps = 15;
 //VideoWriter wDepth("wDepth.avi", CV_FOURCC('D', 'I', 'B', ' '), fps, cv::Size(640, 480), true);

 while (1){

  //事前に保存した画像の読み込み
  /*
  保存時にファイル名に連番を振っていたので
  counterで番号を回しながら読み込んで行きます。
  自分の場合、別のディレクトリに保存していました。
  */
  sprintf_s(readBuf, "..\\元画像保存ディレクトリ\\ファイル名%04d.jpg", counter);

  depth = imread(readBuf);
  depth2 = Mat::zeros(480, 640, CV_8UC3); //とりあえず真っ黒を用意
 if (depth.data == NULL) break;

  for (int y = 0; y < depth.rows; y++){

   Vec3b* ptrDepth = depth.ptr<Vec3b>(y);
   Vec3b* ptrDepth2 = depth2.ptr<Vec3b>(y); //ズラす用

   for (int x = 0; x < depth.cols; x++){

    if (x + 13 < depth2.cols)
     ptrDepth2[x + 13] = ptrDepth[x]; //ここで右に13ズラす

   }
  }


  //表示
  cv::imshow("depth", depth);
  cv::imshow("depth2", depth2);


  //静止画で書き出す
  sprintf_s(writeBuf, "保存先ディレクトリ\\保存ファイル名%04d.jpg", counter); 
  imwrite(writeBuf, depth2);

  //動画で書き出す
  //wDepth << depth2;

  //キー入力
  int key = cv::waitKey(10);
  if (key == 'q') break;


  counter++;
 }//while

 //終了
 //wDepth.release();
 cv::destroyAllWindows();
}








実行結果
元画像:



ずらした画像:





別途編集ソフト使って重ね合わせてみる
color画像:



color画像と元depth画像:




color画像とズラしたdepth画像:







画素にアクセスして x について右にズラしただけです。

ずらしたものを静止画で保存しています。

元の深度画像とカラー画像を合わせてみると横方向にずれているように見えます。

それを単純に右にずらしました。なんとなく合ってるよね?

(もし、元画像の方でdepthとcolorで取得のタイミングが異なる場合は時間とかでラベル付けしたり肉眼で比較してみて合わせてだいたい同じタイミングの画像を探してみるとか。)


きっともっとスマートな方法があるのだと思いますが、勉強不足ゆえこんな感じです。

肉眼を頼りにずれを調節しているので、正確さは保障できないと思います。とりあえずです。



今回は以上。


---[追記]-----

ある論文(出典見失った;・・・たしか阪大かどこかだったような)によると
Kinectはカラーカメラとデプスカメラは非同期らしいので、そもそもズレがあるようです。
ただ、フレームを取得する間隔はどちらも一定で、その幅がカラーとデプスでは異なるようなのでズレが生じているらしいです。

まぁだから↑のように単純に座標をズラしただけじゃダメってことだと思います。

ただXBOX版の時の話なので、今はどうなのか・・・。また調べてみようと思います。

--------


参考:
http://d.akiroom.com/2012-06/opencv-pixel-read-write-get-set/
http://kassymemo.blogspot.jp/2011/09/opencv2cvmat.html