いてづきブログ

情シスでやってみたことの備忘録

Windowsのログインパスワードを忘れた際の対処

必要なもの

Windows(7,8,10)のインストールディスク、または”システム修復ディスク”

 

これがない場合はPC初期化しかないと思います。

 

手順

Windowsのインストールを行う。

 

※WIndows10でうまくインストーラが立ち上がってこない場合は、Windowsキー→電源→shiftキーを押しながら再起動をクリックして、トラブルシューティング→ブートオプションの設定(機種やバージョンによって表示が違う)をクリックしてBiosのBoot設定をいろいろ試してみてください。

f:id:iteduki:20170525103547j:plain

この画面でShift+F10を押してコマンドプロンプトを開く。

「C:」とか「D:」を実行するとそのドライブに移るのでdirコマンドでwindowsフォルダーがあるドライブに移動して下記のコマンドを実行(D:ドライブにあった場合)

ren d:\windows\system32\utilman.exe utilman.exe.bak

copy d:\windows\system32\cmd.exe d:\windows\system32\utilman.exe

exit

 

実行したらセットアップを中止して再起動。

Windowsのログイン画面で「コンピュータの簡単操作」をクリックするとコマンドプロンプトが立ち上がってくる。

ここで下記のようなコマンドでパスワードを再設定するなり新しいアカウントを設定するなりする。

net user <ユーザー名> <新しいパスワード>

無事ログインできるようになったら同じ手順で同様に書き換えたUtilman.exeとcmd.exeを戻しておきます。 

 

ただ、Windows10のバージョンとかログインしてたユーザーの権限によっては実行できない場合もあるみたいです。その場合は諦めて初期化する。

 

 

 

 

機械学習で遊ぶ~素材準備編~

機械学習を行うためには大量の学習用データが必要ということで、デレステのMVから顔画像を切り出した。

 

元動画の準備

MacならiPhoneiPadを接続して、QuickTimePlayerの新規ムービー収録でソースにiPhoneiPadを選べば簡単に録画できる。

Windowsでは多分何かアプリがいると思う。

 

顔画像の切り出し

pythonopencvを使う。

というか、ここのスクリプトをそのまま使わせてもらった(ノ∀`)

github.com

 

 

あとは切り出した画像を手動で分類して学習データを作ればOK.

ちなみに約3000枚を切り出して5種+その他に分類したら1時間くらいかかりました…。

 

これで学習データの準備は完了です。

 

機械学習で遊ぶ~マイグレーション編~

セミナーでtensorFlowの解説をしてもらってようやく機械学習の流れみたいなものがわかったので再開。

 

ひとまずネット上に公開されてる様々なコードを実行して動きを確かめてみようとしてつまづいたのでメモ。

 

以前はbashで実行するための準備だったが、Windowsでもネイティブで動くようになったので再度準備する。

 

最終的に頼りになるのはやはり公式のドキュメント

Installing TensorFlow on Windows  |  TensorFlow

 

  1. python3.5をインストール(3.6はダメ)
  2. pip3 install --upgrade tensorflow
  3. pip9が必要なので更新
  4. python -m pip install --upgrade pip
  5. 再度インストール
  6. pip3 install --upgrade tensorflow
  7. pip install opencv-python (画像を読み込んだり素材を準備するのに必要)

 

環境を作った後、公開されてるコードをコピペして実行すると様々な場面でAttributeErrorが発生して落ちるが、これは公開されたコードが書かれたときのtensorFlowのバージョンが古いことに起因しているらしい。

下記のページにマイグレーションの一覧が記載されているのでこちらを参考に最新版の実装に書き換える。

qiita.com

 

コピペコードの意味はぼんやりとしか理解できてないけどとりあえず正常に動かすことが出来るようになった。

 

ちなみに学習させているのは前回も書いたデレステの画像判定である。

画像収集と素材準備のスクリプトも書いたので次回こそは載せる予定(フラグ)

 

 

 

オブジェクトの配列の各要素に同じ処理をする方法

C#で配列やコレクションのすべての要素に処理を行うでググると色々出てくるけど大抵の場合intとかstringみたいな基本型のものだったりする。


こんな感じ。

IEnumerable<int> intAry = new List<int>() { 1, 2, 3, 4, 5 };  
// 各要素を2倍にする
intAry = intAry.Select(x => x * 2);


ところが、あるクラスオブジェクトのコレクションで各要素の何らかの属性に一括で何か処理をしようとすると話が変わってくる。

IEnumerable<Person> list = new List<Person>(){   
        new Person(){
            Code = 1,
            Name = "hoge"
        },
        new Person(){
            Code = 2,
            Name = "moge"
        }
    };

こんなListに対して、各要素のNameの末尾に"moge"をつけようとすると、

// ビルドエラー
list = list.Select(x => x.Name += "moge");

戻り値がIEnumerable<string>と解釈されてビルドエラーになる。


いろいろ試した結果delegateを使えばできるようだ。

list = list.Select(delegate (Person p)
{
    p.Name += "moge";
    return p;
});


LINQは奥が深い…。

Ext JS Reactorを試す

ReactでExtJSコンポーネントを扱える。

Sencha Roadshow 2016でやってたやつだと思う。

 


とりあえずサンプルを動かすところまでやったので備忘録に残しておく。

環境はWindows10 64bit.

 

node.jsをインストール

https://nodejs.org/ja/

これをインストールすることでコマンドプロンプトからnpmが使えるようになる。

 

ExtJSとSencha Cmdを入手

ExtJSGPL版が下記サイトからダウンロード出来る。

メールアドレスを登録するとダウンロードリンク付きのメールが来る。

重いので早めのダウンロード・解凍しておく。

https://www.sencha.com/legal/gpl/

 

Sencha Cmdを下記サイトからダウンロードしてインストールしておく。

https://www.sencha.com/products/extjs/cmd-download/

 

プロジェクトのダウンロード

上記のGitHubからプロジェクトをクローンなりダウンロードして解凍するなりしておく。

https://github.com/sencha/extjs-reactor

 

コマンドプロンプトを開く

ダウンロードしたプロジェクトの extjs-reactor-master/packages/reactor-boilerplate でコマンドプロンプトを開く。

エクスプローラーからならShiftを押しながら右クリックすると「コマンドウィンドをここで開く」が使える。

 

実行する

reactor-boilerplate フォルダでnpm installコマンドを実行する。

先程ダウンロード、解凍したExtJSをフォルダ名を「ext」にしてreactor-boilerplateに配置する。

npm startコマンドを実行するとSencha Cmdが走り、[INF] Waiting for changes... と表示されたらブラウザで http://localhost:8080 を開く。

f:id:iteduki:20170119174228p:plain

 

グリッドが表示されれば成功。

ソースはsrcフォルダ内にある。

 

 

機械学習で遊ぶ~環境準備編~

Windows10で機械学習で遊んで見るための準備編

いろいろあれこれ試したあとに書いてるので抜け漏れがあるかもしれない。

 

経緯

前々からPython機械学習に興味があったが、これらを利用してアニメでの顔認識をやっている記事が幾つかあったので勉強がてら試してみることにした。

デレステMVという最適な素材が入手できる環境が準備できたというのもある。)

 

参考記事

参考というか、下記記事をそのまま実行する。

qiita.com

 

これで、実行環境自体は準備できる。

 

OpenCVのインストール

上記記事ではtensorFlowの実行までしか書かれていないが、自分用に素材を作ったり、素材画像を読み込むためにOpenCVをインストールする。

 

下記ページに沿ってBashからコマンドを入力してインストールできる。

簡単です。

opencv.blog.jp

 

次回

これで環境の準備は出来た(はず)

次回はMVから顔画像を切り出して保存するということをやってみます。

 

補足

今回やるまでPythonは全く触ったことなかったけど、 とりあえずドットインストールのPythonレッスンくらいは見ておくことをオススメする。

結構インデントやスコープなど独特な感じがする。

 

本では下記のものがオススメ。

入門 Python 3

入門 Python 3

 

 

Windows10でupdate後に自動で再起動されるのを無効にする

Windows10になってから、デフォルトだとWindows update後にアクティブ時間外に自動で再起動されるようになってしまいました。

 

勝手に再起動されると正直かなり迷惑なので無効化します。

 

・ローカルグループポリシーエディターを開きます。

Cortanaに聞いてグループポリシーの編集をクリックするか、あるいはコマンドプロンプトで「gpedit.msc」と入力します。

f:id:iteduki:20161027102944p:plain

 

・「スケジュールされた自動更新のインストールで、ログオンしているユーザーがいる場合には自動的に再起動しない」を有効にする

左メニューのコンピュータの構成→管理用コンポーネントWindowsコンポーネントWindows Updateから進み、ダブルクリックして左上あたりに出てくる「有効」を選択します。

※設定後、再起動することで有効になります。

f:id:iteduki:20161027103251p:plain

 

再起動まで自動とか、勝手にやられるのってすごく迷惑だと思うんですが、一般ユーザーにはこれくらい親切にしたほうがいいってことなのかな。

 

どこまで自動でやってもらうかってのいうのは難しいところですね。

 

あと、あくまで自動再起動しなくなるだけなので、更新の適用のためにも手動での再起動は必要ですよ。