2017年 3月 の投稿一覧

tesseract-OCRを使わずにPythonで画像から文字を認識させるソフトを作ってみた

画面上で表示される文字の位置が固定されている場合のみ有効なソフトだが、作ってみた。
表示される位置は固定だが、時間やマウスの操作によって表示される文字が変わるため、読んで文字をデータとして手に入れたいと思った。
Python歴1週間程度なので、間違った内容があるかもしれないけど、自分の備忘録として。

OS:Windows10 64bit

どうしても、画像から文字を認識するソフトが欲しくて、いろいろ調べてみた。
そしたら、C言語やC++、C#などのC関係、あとはVisual Basicなどはできるみたいだ。
まぁこれは当然だろう。

ただ、これらは開発にお金がかかりそうである。
無料でも開発できるかもしれないが、調べた範囲だとお金がかかる印象を受けた。

そこで、もうちょっと調べてみたら、最近人工知能などで一躍有名になったPythonという言語でも文字を認識することができ、かつメモ帳だけあれば開発可能ということで1週間挑戦してみた。

ちなみに、Python勉強前に自分が使えた言語はExcelのVBAのみであり、あと自分では書けないがちょっとだけPHPとPerlを読むことができる程度である。
ご参考までに。

最初考えていたのは、どうやらtesseract-OCRというライブラリで文字を読むことができるみたいだ。しかし、フォントが限られていたり、画像の大きさに制約があったりするみたいだ。
識字率を上げるために機械学習という方法もあるらしいが、情報が少なくて難しいので、違う方法を考えてみた。
自分がしたいのは、画像から文字を読むことであり、tesseract-OCRを使うことではないからである。

ではどうしたか。

自分の場合、読みたい文字はそれほど多くなく(数十程度)、かつ表示される位置が決まっている。

そこで、numpyという数字に強い(?)ライブラリが画像を位置と色の配列として読み込み、比較できるというのである。
numpy.array_equal(比較したいもの1, 比較したいもの2) で一致ならTrue、一致しないならFalseとして返してくれる。

そのため、1ドットでも違ったらTrueにならないが、まぁ自分の場合表示される位置は決まっているので問題ないだろう。

使うライブラリは
ImageGrab・・・デスクトップのスクリーンショットを撮る
numpy・・・画像の比較
OpenCV・・・画像の処理
である。

OpenCVでもスクリーンショットが撮れるかもしれないが、よくわからないのでググって簡単そうだったImageGrabを使うことにした。

続きますー

リカバリディスク無しの中古PCのHDDをSSDに換装してみた

先日、秋葉原でHDD320Gの中古PCを買ったので、同じく秋葉原で買ったSSDに換装してみた。
流れは以下の通り

・プロダクトキーの確認
OSディスクが付属していなかったので、予めHDDに入っているWindows7 64bitのプロダクトキーの確認ソフトのインストールから始める。
確認には ProduKeyというソフトを使った。

ちなみに、コンピュータ → プロパティ → 最下段でみることができるのはプロダクトIDであり、プロダクトキーとは違うので要注意。

・ISOファイルの入手
プロダクトキーを入手できたら、Windows公式サイトからISOを入手します。
→ Windows公式サイト

ここで、先ほど調べたプロダクトキーを入力し、ISOを入手する。
ちなみに、中古PCだったり不正に入手したOSだったりすると、このISOはプロダクトキーを入力しても入手できないらしい。
今回は中古PCだったけど、運よく(?)ダウンロードできた。
まぁ、ダウンロードできなくてもプロダクトキーがあれば違う方法もあったのだけれど
・・・

・HDDをSSDにする
裏のふた(ちょっと固かった)をパカッと空けて、ドライバー+1番でHDDをSSDに換装した。
外し方は、Youtubeで「Probook 4320s」で検索するとご丁寧にも世界のどこかのどなたかが解説してくださってます。

他にもDellなどメジャーなPCだと、型番で検索するだけで分解の手順を追った動画をいくつか見つけることができるので、もしノートパソコンを分解して中の掃除とかしたい方は、一度検索してみるといいかもしれません。

・ISOをブータブルにする
先ほどのISOファイルをUSBフラッシュメモリに入れ、ブート設定でUSBドライブを優先的に読み込むようにした。
しかし、なぜかbootが見つからない旨の表示が出て、うまくいかない。
どうやら、ただUSBにISOファイルがあるだけだと、それをブートドライブと認識しないみたいである。
そういうBIOSのマザーボードと、そうではなくUSBフラッシュメモリやDVDにただISOを入れているだけでも読み込んでくれるマザーボードがあるみたいだ。

残念ながら、自分のマザボは前者のようである。

そこで、ISOイメージをブータブルにしてくれるソフトがあるということで、調べてみた。
結果、Rufusというソフトが評判よさそうなのでインストールし、ISOのブータブルUSBドライブを作った。

・インストール
先ほど作ったUSBをブスっとノートパソコンに差し、起動してみた。
今度は先ほどと違い、インストール画面まで進むことができた。
そこで、プロダクトキーを入力し、無事インストールすることができた。

以上、ささやかながらリカバリディスクがない中古PCのメインドライブ換装報告である。

HPのノートパソコンを秋葉原で買う

友人の結婚式が東京で行われるということで、時間の空いた時に電子パーツの聖地秋葉原を散策してみた。

目的は秋月電子通商のペルチェ素子の購入である。
amazonで買ってみたのだが、他の方のレビューにもある通り、中国製は当たり外れが大きく、使用開始時から動作不良を起こすものもある。

そこで、秋月電子通商で買うことにした。
ペルチェ素子についてはまたいつか述べるとして、その秋月電子通商のお店の近くに、中古ノートパソコンを店前に展示、販売しているお店があった。

イオシスである。

去年の11月くらいから、6年半前に買ってずっと使い続けてきたDell Vostro3300において、Excelマクロを数時間走らせ続けると熱で落ちるということがしばしばあった。
ちょうどいい機会だと思って、このイオシスでノートパソコンを購入することにした。

購入したパソコンは、HP Pro4320である。
CPUはCorei5の第二世代、HDDは320g、windows7の64bitで22800円である。
これは正直買いだと思った。

さすが秋葉原、この性能がこの価格で買えるなんて、ハードオフだと無理だなと思った。

HDDは自宅にあるSSDに換装し、Officeも自宅に転がってるOfficeソフトのディスクがある。
ちなみにSSDはすぐ近くのツクモで購入した。
噂に名高いツクモタンのクリアファイルもゲットできた。

大満足の秋葉原散策であった。

9cm(90mm~92mm)パソコンケースファンを調べてみた

自作でM.2.SSDを冷やすヒートパイプ、ヒートシンクを作ってみようと思う。
そこで、ざっくり設計してみたところ、ファンを9cmにすることにした。

Amazonで9cm(92mmのものも)のパソコンケースファンを調べてみたので、以下にまとめてみる。
ちなみに、回転数(毎分)を調整できるPMW形式があるやつと、騒音が大きいX-FAN社製のものは省いた。
価格は2017年3月17日時点でのものとする。

商品名:UCTB9
メーカー:ENERMAX
幅(厚さ、mm):25
価格:980円
回転数(毎分):1400
ノイズ(db):13
風量(CFM):28.18

商品名:CFY-90S
メーカー:アイネックス
幅(厚さ、mm):25
価格:718円
回転数(毎分):1400
ノイズ(db):12
風量(CFM):28.18

商品名:OWL-FY0925M
メーカー:オウルテック
幅(厚さ、mm):25
価格:979円
回転数(毎分):2200
ノイズ(db):29.5
風量(CFM):42.5

商品名:OWL-FY0925L
メーカー:オウルテック
幅(厚さ、mm):25
価格:1280円
回転数(毎分):1600
ノイズ(db):23
風量(CFM):25

商品名:OWL-FY0925S
メーカー:オウルテック
幅(厚さ、mm):25
価格:979円
回転数(毎分):1000
ノイズ(db):18
風量(CFM):21

商品名:SF9-S1
メーカー:オウルテック
幅(厚さ、mm):
価格:1827円
回転数(毎分):800
ノイズ(db):5
風量(CFM):13.4

商品名:SF9-S4
メーカー:オウルテック
幅(厚さ、mm):
価格:1900円
回転数(毎分):1750
ノイズ(db):17
風量(CFM):29.3

商品名:SF9-S7
メーカー:オウルテック
幅(厚さ、mm):
価格:1827円
回転数(毎分):3000
ノイズ(db):32
風量(CFM):50.1

商品名:Silent9
メーカー:サイズ
幅(厚さ、mm):25
価格:897円
回転数(毎分):1500
ノイズ(db):20
風量(CFM):31.32

それで、人によってどこに価値を置くか、購入するポイントにするか違うと思うんだけど、僕なら風量とノイズ、あとは値段かなと思ってる。
風量は大きいほどいいが、その分ノイズも大きくなる。
今回は、パソコンケース内の排気や空気循環が目的じゃなく、ヒートシンクに直接当てるため、そこまで風量は多くなくていい。
ヒートシンクもケースファンやM.2.SSDに対して小さいものをつける気はないし。

そこで、アイネックスのCFY-90Sを購入することにした。
風量がCFMで28.18に対し、ノイズが13dbは秀逸だと思う。

「われ思う」のはだれか

「われ思う、ゆえにわれあり」
これはデカルトが残した有名なセリフの一つで、哲学にまったく興味がない人でも聞いたことがあるはずである。

これはどういう意味なのか、世に出回っている程度の知識しか私ももっていなかったが、ここでいう「われ」は自分ではないのではないか、とふと疑問に思ったので考察してみた。

まず世に出回っているこのセリフの意味について、説明しておく。
デカルトは、本当に疑いえない真実を見つけ出すために、一度すべてを疑うということをしてみた。その結果、世の中のありとあらゆるものはその存在を疑うことができ、存在していると証明することはできない。しかし、唯一その「疑っているという自分の思考」自体は間違いなく存在している。だから、自分の存在は証明できる、ということらしい。

これは高校の倫理で学んだものをうろ覚えで書き起こしたものだが、ネットで見かける情報も微妙な違いはあるが、自分の存在を証明しているセリフということでは違いはない。この意味を最初に聞いたとき、正直かっこいいと思った。こういうアプローチで自分の存在を証明したのかー、と。さすが歴史に名前を残す哲学者は違うなと思った。
このセリフは、国語の長文問題でも取り上げられるくらいの有名さである。

しかし、つい最近これは本当に自分の存在を証明したセリフなのだろうか、と疑問に思うようになった。私の疑問を突き詰めていくと、このセリフに出てくる「われ」は自分ではないし、あの偉大なデカルトがそれに気づかないわけがない、と思っている。あの偉大なといってもデカルトについては高校倫理程度しか知識がないが。

私が、この「われ」が「自分」を指していないのではないか、と思った理由について述べる。

哲学者ではない我々一般人による一般的に世の中に出回っている解釈でいえば、「全てを疑った結果、この疑っている自分という存在は疑いえない」とある。
この疑っているという思考は存在しているかもしれないが、はたしてそれは自分から発生してるものだろうか、とデカルトが疑わないはずがない。なぜなら、全てを疑ったからである。

もし仮に、この疑っているという思考が自分から発生してるものだとしたら、デカルトはそもそも存在を疑うことができない「疑っているという思考」とともに、自分の存在も疑っていないことになる。
自分の存在は疑っていないのに、結論とし「われ有り」と自分の存在を肯定していることにはならないだろうか。

疑っているという思考をしているからこそ、自分は存在している

ではなく、

自分という存在が疑っているという思考をしているからこそ、自分は存在している

ということになりえるのではないだろうか。
デカルトは本当にこの矛盾に気付かないのだろうか。

この「われ思う」の「全てを疑っているという思考」は誰目線なのか、ということである。
自分目線だとおかしくなる。なぜなら、自分の存在も疑わしいのに、自分が「全てを疑っているという思考」を認識したとしても、その認識自体も疑わしいではないか。

そして、存在が怪しい自分から発生された「全てを疑っているという思考」もまた、本当に存在するのであろうか。

これが、「われ思う ゆえにわれ有り」の「われ」は本当に自分なのか疑問に思った点である。

ここからは持論となる。

全てを疑った際に、その疑うという思考は存在するという前提におく。この思考が存在しないと、疑っていないことになるからである。
そもそも、この前提に異論がある人もいるだろうが、話を進めさせていただきたい。

そして話の前提としてもう一つ。
まだ自分の存在は疑わしいということである。
疑っているからこそ疑うという思考は存在するが、その思考は自分でなければならないということはない。誰かが疑っていても、疑うという思考は存在し、かつ自分はまだ存在を証明できていない状態はありえるからである。

この疑うという思考が、自分によるものかもしれないし、だれかによるものかもしれないが存在するとして、その疑うという思考は誰が観察しているのだろうか。
誰が把握している?誰が疑うという存在を認識している?

他人が疑うということをしていたとして、自分はそれを知ることができるだろうか。
A君が「僕、全てを疑ってますよー」と言ったところで、A君の脳をカパっと開けて中を見ることはできないし、仮にできたとしてもそれが現実かどうかはわからない。

デカルトは、夢の中で何かが起きた時、それは夢の中では現実だと思っているはずである。だから、現実で起きていることも夢かもしれないし、現実だと思っていることを現実の出来事だと決めつけることはできない。とか言っていた気がする。

これは映画「マトリックス」で一躍有名になった現実に起きていないことを現実だと思い込む考え方である。最近だとVRという単語で広まっている仮想現実の可能性である。

話を戻すが、A君の思考を完全に「自分」が理解したとしても、それ自体が夢かもしれない。
「自分」は仮想現実に生きているかもしれないし、仮想現実ではないにしてももしかしたら今もまだ夢の中かもしれないので「自分」の存在は証明できない、他者の「全てを疑っているという思考」も疑わしい。
それなのに「疑っているという思考」自体は存在している。

では自分でも他者でもないだれが「全てを疑っている」?

それは、「全知全能の何か」ではないだろうか。

哲学では、しばしば言葉で表せないものを言葉で表そうとする試みがなされる。
自分でも他者でもない疑える全ての存在の枠の外の、疑いようのない何者かが全てを疑うという思考をしていると考えられる。

中世のヨーロッパでいうならば、それを「神」と表現したのではないだろうか。
この「神」は「全てを疑う」という思考自体も創造した。
だから自分で全てを疑った場合、自分の存在は不確かだが疑うという思考は存在し、その疑うという思考を認識、もしくは観察しているのは「神」の目線ではないだろうか。
今は仮に「神」と表現しているが、つまり全知全能の全てを作った創造主である。

創造主の存在は不確かではないか

と疑問にも思ったが、つまり創造主が全てを疑うという思考を創ったのではなく、ここでは全てを疑うという思考を創った何者かを創造主としている。
疑うという思考が何から発せられたかではないのである。
それは、自分という不確かな存在からかもしれないし、他者という不確かな存在からかもしれない。
しかし、不確かなものから発せられたとしても、その疑うという思考自体は存在しているのは間違いなく、存在しているからには言葉では表せない何者かがその存在を認識している。

言葉で定義できない何者かを、仮ではなく正式に定義してしまったら、それは不確かな存在かもしれない自分による定義になってしまう。だから、創造主でも神でもいいのだが、仮としてそういう言葉でここでは置き換えておく。

創造主(仮名)
神(仮名)

みたいな感じで。

全てを疑うことによって、疑うという思考自体の存在はゆるぎないものであることがわかったので、その思考を認識している言葉では定義できない存在の枠の外の何者かがいるのではないか

だから「われ思う ゆえにわれ有り」でいうところの「われ」とは自分のことではなく、言葉で定義できない何者かを指すことによって、神の存在を証明したのではないだろうか。

この記事では、デカルトの考えが正しいとかどうかを書きたかったのではなく、あくまでデカルトは「われ思う ゆえにわれ有り」で自分の存在を証明したわけではない、ここでいう「われ」は自分のことではないんじゃないか、という考察を述べたかっただけである。