2017年 6月 の投稿一覧

スクールポーカーウォーズ 3 を読んだ

続編があるとは思っていなかったから、いや~まさか3巻目が出るとは思わなかった。

すっごく面白かったんだけど、2冊に分けてもよかったんじゃないかな~とは思う。
ドタバタしながらトレーニングする過程と、大会の様子の2本立てで。

凝縮されすぎた感はあるかな

TOIEC公式問題集への低評価が解せない時がある

TOIECの試験を主催しているEducational Testing Service(通称ETS)から、年に何度か公式問題集が出版される。

TOIECで高得点を取得することを趣味とする、通称TOIECerからの信頼度は厚い。
TOIECで高得点を目指すなら、模試や参考書も大事だが、公式が出版した問題集を解くべし、という。
これは一理ある。主催者が作った問題集が、一番本試験で出るパターンに似るのは当たり前である。

ところが、AMAZONのレビューを見ると、理由がちょっと理解しにくい内容でこの公式問題集に低評価を下す人がいる。

その理由とは、日本に先駆けて韓国で出版された公式問題集と内容が同じである、という旨である。

韓国も、日本と同様社会人のビジネススキルの指標としてTOIECが各企業に取り入れられている。そして、日本よりも先にETS作成の公式問題集が出版されることが多い。

TOIECerの中には、韓国で出版されるやいなや、これを取り寄せ、各々の勉強に生かす人も多い。解説はもちろん韓国語だが、問題は全て英語なので、そこだけでも勉強に生かすのである。
韓国よりも後に出版される日本の公式問題集は、韓国版の解説が日本語というだけで、問題は全く同じということがよくある。

韓国から公式問題集を取り寄せてまで勉強することは、それはそれで素晴らしいと思うのだが、日本で出版される公式問題集に対し、「韓国と同じ内容でした」と低評価をするのはいかがだろうか。

日本で出版するのであるから、当然韓国から先駆けて取り寄せている人は想定していない。
字幕や日本語吹き替えがついた洋画が日本で公開されたとき、「本場(アメリカやヨーロッパ各国)と同じ内容だった。低評価する!」と言っているようなものである。字幕付きや吹き替え版が、元の映画と内容が同じであるのは当たり前だろう。
(字幕の日本語表現や吹き替えのうまい、下手は別として)

日本で出版されるETSの公式問題集に対し、「先日出版された韓国版と同じだった」と文句を言うのであれば、先に立ち読みをしてから買えばいいだろう。
日本語の解説があると、私のようなTOIECerじゃない人は大変助かる。

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

前回の記事

さて、2階調化された文字が手に入りました。
ここでは、例として「1」を取り扱いたいと思います。

2階調化された1はこれです。

この画像における1の、縦の長い線の太さは7ピクセルだとします。

私の文字の判定は全ての文字に対応できるわけではありませんが、数十文字程度なら対応できます。
この1の画像を1として認識する条件を、
・一番上の白の幅が7ピクセル以内
かつ
・一番下の白の部分が7ピクセル以内
とします。

まず、一番上のY座標の、一番左のX座標を取得します。
これを基点とします。
下画像の赤の部分です。(2階調にしたため白なのですが、わかりやすく赤に塗りました。)
また、それにともない黒に赤があってもみづらいため、黒の部分をグレーにしました。

次に、太さを計算します。
太さは、一番上のY座標の、一番右のXの座標を取得すればいいです。
上画像の青になります。

最後に、一番底辺のY座標の、左右の色を取得します。
下の画像の緑の部分です。
今回は、文字の太さが7ピクセルとわかっているため、左右5ピクセルの色を取得します。
わかりやすいように、ピンクのスケールをつけました。


この赤のX座標は上の赤のx座標と同じです。

これをコードにすると、下記のようになります。

def Sample():

…import cv2
…import numpy
…from PIL import Image as im
…from PIL import ImageGrab as ig

#ImageGrabを使ってスクリーンショットを取る。
#今回は、座標(100,100)から(200,200)の中に、「1」という文字が1つだけ入っているとします。
#これを、test.pngとして保存します。
…img = ig.grab((100,100,200,200)).save(“test.png”)

#保存されたtest.pngを読み込みます。
#cv2ではBGRとして読み込むので、グレースケール化します。
#その後、閾値128で2階調化します。
#そしてtest.pngとして上書き保存します。
…img = cv2.imread(“test.png”)
…img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
…_ ,img = cv2.threshold(img, 128 ,255,cv2.THRESH_BINARY)
…cv2.imwrite(“test.png”, img)

#今度は、PILのImageを使ってtest.pngを読み込みます。
#RGBに変換し、画像のサイズも取得します。
…img = im.open(“test.png”)
…rgb_im = img.convert(‘RGB’)
…size = rgb_im.size

#「1」という文字の、一番上のY座標の一番左のX座標を取得します。
#座標(0,0)から1行ごとに右へ、1ピクセルずつ順に白か黒か判定します。
#もしその行に白がなければ、次の行(Y)に移ります。
#白のピクセルがあれば、繰り返しの処理を抜け出します。
#なお、RGBにおける白の値は(255,255,255)なので、rが255か0かで白か黒かを判定します。
…for y in range(size[1]):
……for x in range(size[0]):
………r,g,b = rgb_im.getpixel((x,y))
………if r == 255 :
…………break
……if r == 255 :
………break

#このxが、一番左のx(前掲した画像の赤)になります。
….x_left = x

#今度は、同じY座標において、右から左に各ピクセルが白か黒か判定していきます。ピクセルが黒であり続ける限り、x座標をどんどん左に移動させていきます。
…x = size[0] – 1
…r,g,b = rgb_im.getpixel((x,y))
…while r == 0 :
……x = x – 1

#これが前掲画像の青になります。
…x_right = x

#一番底辺のY座標を取得します。
…y = size[1] – 1
…r,g,b = rgb_im.getpixel((x_left,y))
…while r == 0 :
……y = y – 1

…y_bottom = y

#一番底辺のY座表の、左右5ピクセルのカラーを取得します。
…r2 ,g,b = rgb_im.getpixel((x_left + 5 , y_bottom))
…r3 ,g,b = rgb_im.getpixel((x_left – 5 , y_bottom))

#太さ(x_right – x_leftの差)が7ピクセル以内で、底辺の5ピクセル左右が黒なら1と判定します。
…if x_right – x_left <= 7 and r2 == 0 and r3 == 0 :
……return 1

ネットを見るならCeleron G3930で十分

サブのデスクトップパソコンが欲しくて、Celeron G3930で自作パソコンを組んでみた。

感想としては、ネットを見る分には申し分ない。
ネットを見る用に組んだわけではなく、音楽再生用に組んだわけだが。

これ(G3900でもいいが)とSSDで、とりあえずネットは不満なく見れる。
Youtubeも標準画質なら遅いとは感じないし、ニコ動も問題ない。グラボ無しの環境でも。

ITパスポート受験所見

今日、ITパスポートを受けてきました。
他社の社員さんが、会社から推奨されていると聞いたので、受けてみたくなったんです。

結果は775/1000点でしたので、合格だと思います。

思ったことをいくつか。

・過去問の勉強で通用する
時代の流れとともに、ITパスポートの問題は変わってきています。
しかし、そういう最新の情報に対応する問題は限られており、基本となる問題は変わりありません。したがって、過去問はあまり通用しないという情報も出回っていますが、基本過去問を何年か分やりこめばいいと思います。

・イヤーマフがあった
私が受験した会場では、遮音するためのイヤーマフが用意されていました。
ネットの情報でも受験票でも記載が無かったので驚きましたが、使わせていただきました。

・捨てる問題は捨てる
得意不得意が人によって違うと思います。満点は取らなくていいので、捨てるべき問題は捨てましょう。それは本番だけの話ではなく、勉強中もそうです。
私の場合、簿記や財政に関する問題はバッサリ捨て、一切勉強しませんでした。

・技術評論社、教科書多すぎ(笑)
ITパスポート対策としては、教科書的な参考書1冊と、過去問1冊をやりこめばいいと思います。逆に、あまり手を広げすぎない方がいいです。

教科書的なものはどれを使ってもいいのですが、私が使ったのは
80テーマで要点整理 ITパスポートのよくわかる教科書
です。

これを選んだ理由は特にありません。なんとなくです。
この本の出版社である技術評論社からは、これのほかにもたくさんの教科書が出ています^^;

キタミ式イラストIT塾
ITパスポート
ITパスポート合格教本
イメージ&クレバー方式でよくわかる 栢木先生のITパスポート教室
ITパスポート最速合格術

おすすめは、栢木先生のITパスポート教室です。自分は使っていませんが(爆)

ITパスポートは、覚えることがたくさんあります。
この栢木先生のITパスポート教室を立ち読みしたところ、○○ときたらこれ!という風に、キーワードと回答となる選択肢をセットで教えてくれます。この立ち読みした時点ですでに80テーマで~を買っていたので購入は見送りましたが。
ITパスポートでは、選択肢自体は難関国家資格に見られるような紛らわしいものがほとんど見られません。

例:SFA
SFA(Sales Force Automation)という単語についての問題が出たとします。これは、営業を支援するシステムなのですが、選択肢に「営業」と来たらそれが正解です。

難関国家資格なら、SFAについて説明した選択肢が4つあれば、そのうち3つには「営業」という単語が入ってきます。
しかし、ITパスポートの場合、4つともバラバラの事柄を説明しており、「営業」という単語が入るのは、おそらく1つだけだと思います。
あまりいい方法ではないですが、問題にSFAがあれば営業と入る選択肢を探すだけなので、選択肢を読まなくても即答できます。

今日もこのような感じで即答できた問題がいくつかありました。

そういう意味で、この栢木先生の○○といったらこれ!みたいな教科書は、点に結びつきやすいと思います。
(立ち読みしかしていませんが)

・過去問は見開きで
大学受験でも資格試験でも、勉強の仕方に関する本をいくつか買って読んだことがあります。
それらの中で推奨されているのが、「問題集は問題とその回答および解説が、見開きになっているものを選ぶこと」である。
問題は問題部分だけ、回答や解説は巻末で、という本を見かけるが、ガリガリ暗記するタイプの試験では、見開きのほうが頭に入りやすいし、何回もやりこめる。

おすすめは
ITパスポート パーフェクトラーニング過去問題集
である。

見開きで左が問題、右が回答と解説になっていてわかりやすい。
また、技術評論社のページで、今までIPA(ITパスポートの試験運営団体)から公開されている過去問全ての問題と解説もPDFで手に入れることができる。
自分はやっていないが、やれば確実に力が付くと思う。
ちなみに、自分はこの過去問4回分とオリジナル問題の計5回分を回して合格した。

思ったことはこれくらいですかね。以上。

Pythonで日本語を(printで)表示させる方法

Pytohnで日本語を表示させる方法をご紹介いたします。

私は、Pythonの.pyファイルの冒頭でutf-8の宣言をしてコードを書き始めます。

冒頭:
# -*- coding: utf-8 -*-

しかし、これだけだと
print ”あ”
が文字化けします。

いろいろ検索して調べてみたところ、どうやら文字列の前に「u」(半角u)を入れるといいみたいです。
なぜこれだと表示されるのか、仕組みはよくわかっていません^^;
uをつけることによって、Unicodeになるみたいです。

コード:
# -*- coding: utf-8 -*-
print u”あ”

表示結果:

以上、仕組みとかいいから、方法だけ教えてくれっていう人向けの情報でした。