SwiftOCRというOCRライブラリを試してみた
某所で紹介されていたSwiftOCR
というライブラリ付属のサンプルを試してみたので一応?
Tesseract より高速、省メモリらしい。一応昨年末の時点でSwift 3にも対応している。
一行のテキスト、それもシリアルナンバーのようなランダム英数字に向いているとのこと。
githubのissueトラッカーを見る限り、複数行のテキストのOCRには対応していない模様。
日本語の解説は以下が詳しい(というか他に発見できず)。
Swiftで書かれたOCRライブラリ「SwiftOCR」をiOS実機で試してみた - Qiita
付属のプロジェクトを試す
まずは付属のサンプルを試す。shu223氏の記事によると、アルファベットの大文字と数字のみ学習した状態とのこと。
$ git clone https://github.com/garnele007/SwiftOCR.git $ cd example/iOS/SwiftOCR\ Camera/ $ open SwiftOCR\ Camera.xcodeproj
Xcode が起動するので、スキーマをSwiftOCR Camera
に切り替えてビルドしてやれば起動する。
下記のエラーに遭遇した場合は、プロジェクトナビゲーターの画面から"Provisioning Profile" を設定する。
Signing for "SwiftOCR Camera" requires a development team. Select a development team in the project editor. Code signing is required for product type 'Application' in SDK 'iOS 10.2' Code signing is required for product type 'Application' in SDK 'iOS 10.2' Code signing is required for product type 'Application' in SDK 'iOS 10.2'
実行した結果。
薄いグレーの帯状のエリアにテキストが入るようにして"Take Photo"を押すと画面の上部に認識結果のテキストが表示される。
真ん中下のスライダで拡大倍率を調整できる。
“ISBN4"という文字列に対して"TSBN4"になっている。数字の"3"をすんなり読んでくれないなど不安定。
学習ツールと他の文字種
小文字アルファベット
一度Xcodeを閉じて、SwiftOCR\ Training
に移動。
$ cd ../../OS\ X/SwiftOCR\ Training $ open SwiftOCR\ Training.xcodeproj
テキストフィールドに文字列が入力されているのでアルファベットの小文字と数字ハイフン、円記号を追加。
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-¥0123456789
書体は"Times New Roman" とは “Tahoma” とかメジャーな英語用フォントのみ。
小文字と記号の一部を追加しておもむろに"Start Training"。終了すると表示が元に戻るので、"Test"を実行。
“Save"をクリックするとデスクトップにOCR-Networkというファイルが出力される。
むやみに書体を増やすと"Test"の時点で認識率が下がる……。
トレーニング時点で79.2%は不満だけどとりあえず小文字対応版のデータをコピーして実機テスト(斜体フォントなし)
$ cp ~/Desktop/OCR-Network ../../../framework/SwiftOCR/OCR-Network
パスは環境に応じて変更。
swiftOCR.swift
の開いて、 recognizableCharacters
を修正
public var recognizableCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-¥0123456789"
必ずトレーニングした時と同じ文字列にすること。
文字の種類や順序が学習させた時と異なると、"Take Photo"の直後にエラーで落ちる。
イマイチ認識できていない上に、単語と単語のスペースを無視している。
数字はそこそこ認識するが、小文字との混同が発生している。
ただ、文字を認識した位置と、他の候補の情報を出力してくれるので、前後が数字なら数字の候補を優先するような後処理ロジックを仕込むことは可能。
SwiftOCR.SwiftOCRRecognizedBlob(charactersWithConfidence: [("a", 0.398129016), ("2", 0.382261425), ("3", 0.0667025894)], boundingBox: (262.0, 20.0, 19.0, 27.0)),
カタカナ
この辺から文字のリストをサクッと借用。
ヒラギノフォントとか游明朝・游ゴシック体あたりを学習させてみた。
「ひらがな」は試す気が起きず。
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ
長音符(ー)と中黒(・)が抜けているので注意。
トレーニングの時点で43%。小書きカナを除去すると改善するはずだけど、それはそれで違う気もする。
全部「ポ」になって使い物にならず。アルゴリズムの限界なのか?
気になった点
- アルファベットの小文字を学習させると認識率が下がる(例えば"x"と"X"、"v"と”V”など形状が同じで大きさが違うもの)
- イタリック体を学習させると認識率が下がる(特にBold Italic)
- 数字とのゼロと小文字の"o"の判別ミス
- 小文字を学習させると数字の認識率も下がる
- 文字と文字がくっついていると認識できない
- 文字と文字のスペースを認識していない
- 文字列が複数行になっている場合、1行目しか認識しない
最大の欠点は複数行の認識に対応していない点。
まとめ
認識結果が安定しない印象。確かにメモリ消費も少ない。認識対象の文字がアルファベットの大文字と数字、記号の一部に限定できるケースならなんとか使えそう。ただし、二値化処理と行の検出を自力でやる必要がある。
ただ、Tesseract 3.x も単語辞書をオフにしてやれば似たような使い方はできるし、シリアルナンバー用の学習データも存在している*1。
Tesseract もバージョン4系はLSTMベースのニューラルネットワークを採用した結果、高速化しているはずなのでリソース消費量だけが長所だとあまりメリットにはならない。
中途半端な記事になってしまったけど今後に期待。
それでは。
*1:Homebrew のtesseactパッケージのオプションで"snum.traineddata"というファイルをダウンロードできる
ラズパイをプロキシサーバー(キャッシュサーバー)として使う( Raspbian & Squid )
大したネタではないですが備忘録。
複数の仮想マシンでapt
(あるいはyum
とかHomebrewも含めて)で同じパッケージをダウンロードをするケースが結構ある。
Ubuntu 16.04の仮想マシンが複数あるとして、どっちも同じようにapt upgrade
を実行すると、同じ修正パッケージを取得することになり、明らかに無駄。
ホスト側でプロキシサーバーを動かして、透過型プロキシもありかと思ったけど、ちょっと面倒だなってことでラズパイを活用してみる。
構成
仮想化ホストマシンと同じサブネット上に接続したラズパイをキャッシュサーバーとして使う。
スループットの面からすると激しくイマイチだけど、どのみち外向けの回線がWiMAX2+なので問題ない。
ラズパイのイーサネットポートは100MbpsなのでIEEE 802.11n のWifiの方が速度は出るかもしれない。
要件
- LAN内部に設置
- ローカルホストおよび仮想マシン(ゲスト)から接続できればOK
- ある程度大き目のファイル(100MB〜200MBぐらい)もキャッシュさせたい
- ラズパイの microSD の空き領域の有効活用(10GBぐらいはキャッシュに使って問題ない)
インストール
$ sudo apt update $ sudo apt upgrade $ sudo apt install squid $ sudo apt install squidclient
squidclient
は動作状態をチェックするためのツールです。なくても動作します。
設定
$ sudo vi /etc/squid/squid.conf
修正結果の差分は以下のとおり。
$ sudo diff -N /etc/squid/squid.conf.orig /etc/squid/squid.conf 609,611c609,611 < acl localnet src 10.0.0.0/8 # RFC1918 possible internal network < acl localnet src 172.16.0.0/12 # RFC1918 possible internal network < acl localnet src 192.168.0.0/16 # RFC1918 possible internal network --- > #acl localnet src 10.0.0.0/8 # RFC1918 possible internal network > #acl localnet src 172.16.0.0/12 # RFC1918 possible internal network > acl localnet src 192.168.0.0/24 # RFC1918 possible internal network 676c676 < #http_access allow localnet --- > http_access allow localnet 1738c1738 < # cache_mem 8 MB --- > cache_mem 16 MB 1747c1747 < # maximum_object_size_in_memory 8 KB --- > maximum_object_size_in_memory 16 KB 1945c1945 < # cache_dir ufs /var/spool/squid 100 16 256 --- > cache_dir ufs /var/spool/squid 8196 16 256 1988c1988 < # maximum_object_size 20480 KB --- > maximum_object_size 204800 KB 3392a3393 > visible_hostname unknown 4699c4700 < # forwarded_for on --- > forwarded_for off
要点は、
- ローカルネットワーク(192.168.0.0/24)からのアクセスを許可
- キャッシュするファイルのサイズを大きく(
maximum_object_size
) - 使用するディスク領域の上限を大きく(
cache_dir
) - プロキシ経由であることをアクセス先に通知しない(
forwarded_for
)
下記のコマンドで設定ファイルの書式のチェック。
$ sudo squid -k parse
エラーが出なければプロセスを起動。
$ sudo systemctl start squid
設定ファイルのリファレンス:squid : Optimising Web Delivery
有効化
問題なく動くようなら自動的にsquid
起動するようにする。
$ sudo systemctl enable squid
クライアント側の設定
ブラウザからは利用するようにしてもいいが、基本的にapt
やgit
で同じファイルをダウンロードするケースを高速化できればいいので環境変数のみセットする。
VirtualBox 上のゲスト
VirtualBoxの「環境設定」から「プロキシ」タブを選択して「手動設定」で設定する。ゲスト側は気にする必要がない。
コンソール系のツール
一度実行すればあとはコマンド履歴から再実行すればいい。ノートPCを持って外出する場合は環境変数の値を空にする。
export http_proxy=http://プロキシサーバーのIP:3128 export https_proxy=$http_proxy export ftp_proxy=$http_proxy export rsync_proxy=$http_proxy export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com"
ポート番号をデフォルトの"3128"から変更している場合はそれに合わせて修正する。
手作業で環境変数をセットするのが面倒ならArch Linuxにオンオフを切り替えるスクリプトの例が記載されているのでこれを参考にする。
sudo
経由で実行するコマンドは設定しない限り環境変数は引き継がないので注意する(Arch Linux のWikiを参照。
動作状態のチェック
悲しいことにsquidclient
コマンドを実行するとIPv6のポートへ接続しようとするのでエラーになる。
$ squidclient -h localhost mgr:mem client: ERROR: Cannot connect to [::1]:3128: Connection refused
対処法としては-h
でIPv4のアドレスを指定する。
$ squidclient -h 127.0.0.1 mgr:mem Sending HTTP request ... done. HTTP/1.0 200 OK Server: squid/2.7.STABLE9 Date: Thu, 09 Mar 2017 19:30:52 GMT Content-Type: text/plain Expires: Thu, 09 Mar 2017 19:30:52 GMT X-Cache: MISS from unknown X-Cache-Lookup: MISS from unknown:3128 Via: 1.0 unknown:3128 (squid/2.7.STABLE9) Connection: close Current memory usage: Pool Obj Size Allocated In Use Idle Allocations Saved Hit Rate (bytes) (#) (KB) high (KB) high (hrs) impact (%total)(#) (KB) high (KB) portion (%alloc) (#) (KB) high (KB) (number) (%num) (%vol) (%num) (number) 2K Buffer 2048 2 4 4 0.42 2 2 4 4 100 0 0 2 28 0.52 5.89 93.33 30 4K Buffer 4096 4 16 16 0.35 7 1 4 16 25 3 12 16 61 1.13 25.65 93.85 65 Store Client Buffer 4096 1 4 4 0.05 2 1 4 4 100 0 0 4 3 0.06 1.26 75.00 4 acl 48 11 1 1 0.42 0 11 1 1 100 0 0 0 0 0.00 0.00 0.00 11 acl_ip_data 16 5 1 1 0.42 0 5 1 1 100 0 0 0 0 0.00 0.00 0.00 5 acl_list 12 23 1 1 0.42 0 23 1 1 100 0 0 0 0 0.00 0.00 0.00 23 CacheDigest 24 1 1 1 0.42 0 1 1 1 100 0 0 0 0 0.00 0.00 0.00 1 <skip>
他にも確認できる項目の一覧を表示する場合は、squidclient -h 127.0.0.1 mgr:
を実行。
関連URL
- squid : Optimising Web Delivery
- FrontPage - Squid Web Proxy Wiki
- rasbianにSquidをインストール - Qiita
- プロキシ設定 - ArchWiki
- Squid - ArchWiki
今更な感じもしますが、ないよりマシでしょうってことで。
[2017/03/12 追記] よく考えたらgithub経由のダウンロードはHTTPS経由なんで(プロキシではキャッシュできないので)大した効果はない……。
それではまた。
Tesseract OCR 3.05 のインストールと新機能
2月16日付でオープンソースのOCRエンジンである Tesseract OCR の3.05がリリースされています。
2月中に記事にしようと思いつつ結局3月になってしまいました。
Ubuntu 17.04 の Feature Freeze に間に合わせたいという要望が出た結果、唐突にリリースされたようです*1。
実際のところ、Ubuntu 17.04 に採用されるのかどうかは不明です。
変更点
ざっくりいうと一番のメインはTSV出力。あとは諸々のバグ修正。HTML形式の出力*2についても改善しているようです。あとはバグ対応など。
以下、リリースノートからのざっくり訳。
- hOCR 出力 における改善(微調整)
- 新しい出力オプションとしてTSVを追加
- バージョン 3.04.00における
AnalyseLayout()
メソッドのABI非互換を修正 - text2image tool : すべてのOpenType リガチャが有効に(この機能にはPango 1.38以降が必要)
- Training tools :
assert
関数をtprintf()
とexit(1)
に置き換え - Cygwin 環境における互換性問題を修正
- マルチページのTIFFファイル処理の改善
- 埋め込みpdfフォントについての改善 (pdf.ttf)
- コマンドラインからOCRエンジンモード指定するオプションを追加(
--oem
オプションの追加)) tesseract
コマンドの、オプション指定形式を ‘-psm’ から ‘–psm’ (ハイフン2つ)に変更- 新しいC APIの追加と古いAPIの削除( for orientation and script detection )
- ビルドに必要なautoconf のバージョンを 2.59 に変更
- 不要なコードの削除
- 多数のコンパイラの警告に対処
- メモリリークおよびリソースリーク*3を修正
- ‘Cube’ OCR エンジンのバグ修正
- openCL 関連のバグを修正
- CMake によるビルドに対応
- Windows環境向けに CPPAN supportを追加
オプションの指定方法ですが、従来と同じく-psm
でもエラーにはなりません。将来的には--psm
のようにハイフン2つに移行するはず。
また、--psm
オプション*4に指定できる値が追加されています(詳細はtesseract -h
で確認)。
text2image
コマンドのmac環境におけるバグは修正されたかと思いきや、4系からのバックポートの余波でリグレッションしているので要注意*5。
各種ラッパーの対応状況
すんなり対応したのはJava/Android 系ぐらいで全然進んでいないようです。TSV出力を使わないのであれば、tesseract
コマンドを呼び出すタイプのライブラリは普通に動くと思います。
新機能
新機能であるTSV出力を試してみます。認識結果をタブ区切りテキストとして出力する機能という認識です。普通の文書よりは表とか本の目次のような画像データ向き。
$ tesseract -v tesseract 3.05.00 leptonica-1.74.1 libjpeg 8d : libpng 1.6.28 : libtiff 4.0.7 : zlib 1.2.8
手頃な画像が見つからないので適当な画像で試します。
電子書籍版の『[改訂第7版]LaTeX2ε美文書作成入門』のp.225の表の一部を切り抜いたもの(実際は幅640pxに拡大)。
実際にtesseract
コマンドで試すには、コマンドラインの末尾にtsv
を追加して実行。
$ tesseract -l eng resize_table.tiff stdout tsv 2> /dev/null level page_num block_num par_num line_num word_num left top width height conf text 1 1 0 0 0 0 0 0 640 146 -1 2 1 1 0 0 0 55 11 30 119 -1 3 1 1 1 0 0 55 11 30 119 -1 4 1 1 1 1 0 55 11 30 16 -1 5 1 1 1 1 1 55 11 30 16 79 pbk 4 1 1 1 2 0 55 45 30 16 -1 5 1 1 1 2 1 55 45 30 16 79 pbk 4 1 1 1 3 0 55 79 30 17 -1 5 1 1 1 3 1 55 79 30 17 78 phk 4 1 1 1 4 0 55 113 30 17 -1 5 1 1 1 4 1 55 113 30 17 79 pbk 2 1 2 0 0 0 220 45 18 12 -1 3 1 2 1 0 0 220 45 18 12 -1 4 1 2 1 1 0 220 45 18 12 -1 5 1 2 1 1 1 220 45 18 12 66 it 2 1 3 0 0 0 220 113 18 12 -1 3 1 3 1 0 0 220 113 18 12 -1 4 1 3 1 1 0 220 113 18 12 -1 5 1 3 1 1 1 220 113 18 12 79 it 2 1 4 0 0 0 303 8 209 118 -1 3 1 4 1 0 0 303 8 209 118 -1 4 1 4 1 1 0 303 8 147 20 -1 5 1 4 1 1 1 303 8 97 15 78 Bookman— 5 1 4 1 1 2 402 8 48 20 74 Light 4 1 4 1 2 0 303 43 186 18 -1 5 1 4 1 2 1 303 43 186 18 75 Bookman—Lighfltalic 4 1 4 1 3 0 303 76 155 15 -1 5 1 4 1 3 1 303 76 155 15 67 Baum-Dem! 4 1 4 1 4 0 303 110 209 16 -1 5 1 4 1 4 1 303 110 209 16 72 Boahmul-Dzmfltaflc
ちょっと認識ミスト取りこぼしが発生してますが、一列目の一行目のセルから順に出力されています(最後の列が認識したテキスト)。 拡大倍率としきい値処理をちゃんとやればちゃんと認識してくれるはずですが、とりあえず確かこんな感じだったはず。
それぞれの列ですが、level
とpar_num
というのはよくわかりませんが、ヘッダのconf
は確からしさ、あとはそのまま。
TSV出力させるために必要なのはtessedit_create_tsv
というパラメータなので、さらに挙動をコントロールすることも可能です。
上記のコマンドラインで指定しているtsv
の実態は、tessdata/configs
ディレクトリ配下にあるtsv
という設定ファイルです。
$ cat /usr/local/share/tessdata/configs/tsv tessedit_create_tsv 1 tessedit_pageseg_mode 1
ある程度複雑なレイアウトの画像からテキストを認識する場合に有効だと思います。
各種OS向けパッケージ
Linux
Arch Linux はすでにパッケージが提供されています。
githubのリリースページで配布されているアーカイブは以前と異なり、configure
スクリプトが含まれないので./autogen.sh
を実行する必要がある点に注意。もしくはcmake
を使うことも可能。
Ubuntu 17.04 に採用されるのかと思いきや、17.04 Beta 1 の時点では3.04系のままのようです。
Arch Linux
記憶違いでなければ新バージョンリリースの翌日だか翌々日にはパッケージが提供されていたはず。
$ sudo paceman -S tesseract $ sudo paceman -S tesseract-data-{eng,jpn}
他の言語についてはpacman -Ss tesseract-data
で検索してインストール。なお、向き判定のosd.traineddata
ファイルは(Arch Linux のパッケージの場合)、本体と一緒に/usr/share/tessdata
にインストールされる。
Ubuntu 16.04
バイナリパッケージは提供されていないのでソースからインストール。 Leptonica についてはバージョン 1.74系が必要です。
まずは必要なライブラリを一式インストールする。
sudo apt install autoconf automake libtool sudo apt install autoconf-archive sudo apt install pkg-config sudo apt install libpng12-dev sudo apt install libjpeg8-dev sudo apt install libtiff5-dev sudo apt install zlib1g-dev sudo apt install libleptonica-dev
学習用のツールが必要なら下記もインストールしておく。
sudo apt install libicu-dev sudo apt install libpango1.0-dev sudo apt install libcairo2-dev
せっかくなのでcmake
を使いたいところだが、CMakeLists.txt
というファイルにinstall
ターゲット用の記述がないのでmake install
できない……。
Leptonica のインストール
Ubuntu 17.04用のパッケージをビルドし直すのもありかもしれないが、上書きしてほしくはないのでソースコードからビルドする。
Releases · DanBloomberg/leptonica · GitHub
$ tar zxf leptonica-1.74.1.tar.gz $ cd leptonica-1.74.1/
ソースアーカイブを展開すると、`autobuild`というスクリプトがあるのでまずこいつを実行。
$ ./autobuild $ ./configure $ make -j2 $ sudo make install $ sudo ldconfig
/usr/local
配下にインストールされるはず。
Tesseract のインストール
$ tar zxf tesseract-3.05.00.tar.gz $ cd tesseract-3.05.00.tar.gz
以前は不要だったような気がするが、./autogen.sh
を実行してconfigure
スクリプトを生成。
$ ./autogen.sh $ LDFLAGS="-L/usr/local/lib" CFLAGS="-I/usr/local/include" ./configure --with-training-tools $ make $ sudo make install $ sudo ldconfig
学習用のツールが不要な場合はconfigure
スクリプトの、--with-training-tools
は必要ない。
$ tesseract --version tesseract 3.05.00 leptonica-1.74.1 libjpeg 8d (libjpeg-turbo 1.4.2) : libpng 1.2.54 : libtiff 4.0.6 : zlib 1.2.8
macOS
Homebrew はプルリク投げてみた結果、コメントを削除してマージされた。MacPports は3.04のまま。
以下はHomebrew の場合。
$ brew update $ brew install tesseract --with-training-tools
既存の学習済みの言語データしか使わないのであれば--with-training-tools
は不要。
途中でglib
がらみでエラーになる場合は、表示されるメッセージの通りにする。
Error: You must `brew link glib` before tesseract can be installed
以下のようにbrew link
コマンドを実行してから上記のコマンドを再度実行する。
$ brew link glib
標準では英語とテキストの方向判別データしかダウンロードされないので、/usr/local/share/tessdata
配下にそれぞれの言語別のデータファイルを(3.04用)ダウンロードしてコピーする(後述)。
このパッケージではtesstrain.sh
関連ファイルはインストールされないので必要であればソースアーカイブから適当な場所にコピーする。
バグ対策
mac環境固有のバグ対策。
text2image
を実行する、あるいはtesstrain.sh
を使う場合は、環境変数PANGOCAIRO_BACKEND
に値としてfc
をセットする。
export
コマンドでもいいし、コマンドの先頭にPANGOCAIRO_BACKEND=fc
を付加していい。
参考:
$ PANGOCAIRO_BACKEND=fc ./training/tesstrain.sh --lang jpn --langdata_dir ../github_tesseract/langdata/ --training_text ../github_tesseract/langdata/jpn/jpn.training_text --fonts_dir /Library/Fonts/
それぞれのファイルのパスは環境に応じて修正。
なお、mac環境ではtesstrain.sh
をエディタで編集してmktemp
をgmktemp
に置き換える必要あり。
Windows
公式ページからリンクされているのは今のところアルファ版であるバージョン4.0になっています。
ドイツの大学の方がビルドしたWindows 向けの開発版バイナリが以下より入手できるようです(3.05devと4.0dev)。ご利用は自己責任で。
“training tool"に関してはビルドした張本人がWindowsバイナリを使用していないようなので他の環境で。
Cygwin 版の方がトータルで見るとまともかもしれません。
それぞれの言語別のデータファイル
パッケージ管理ツール経由で取得できる場合はそちらから入手。Homebrew の場合は全部まとめてダウンロードするか、英語と向き判別用のデータだけの2択…。
[2017/03/11 追記]
公式ページに各バージョン(3.03rcを除く)向けのダウンロード用のリンクが記載されたページがあるので必要ならそこからダウンロード。
Data Files · tesseract-ocr/tesseract Wiki · GitHub
[追記ここまで]
GitHub - tesseract-ocr/tessdata at 3.04.00
リポジトリにある最新版は4.00用のファイルなので、3.04.00
タグのツリーから取得する。
あるいは、言語コードが明らかな場合はwget
でURL直打ち。
$ wget https://github.com/tesseract-ocr/tessdata/raw/3.04.00/jpn.traineddata
jpn
の部分を必要な言語に置き換えれば他の言語も取得できます。
ソースからビルドした場合は、/usr/local/share/tessdata
にコピー。それ以外の場合はおそらく/usr/share/tessdata
*6。
もしくは、環境変数 TESSDATA_PREFIX
にtessdata
ディレクトリの一つ上の階層のディレクトリを指定する。
まとめ
もう少しまともな検証用の画像を用意してみたいと思いますがひとまずここまで。
認識精度については3.04系と比較して特に改善していない印象です。バージョン4系に期待しましょうとしか。
何はともあれiOS向けのラッパーの安定板が新規リリースされて欲しいと思う今日この頃です。
それではまた。
言われてみればもう十年
ちょっとよそのブログで十年前に環境が変わって云々というエントリを読んでしまったので。
言われてみれば痛恨の判断ミスしたのは2007年なのか。
某大学の大学院受験を諦めて内部進学にしたのもこの時期。
そんで研究室選びで失敗したのが4月か。
ある意味十一年前の時点でミスっているとも言えるし、2000年の時点でもミスっていたのかもしれない。
まあ十年前の研究室選択はかなり大きいターニングポイントだったと思う。あの時材料系への未練を捨てて情報系にシフトしていたらどうだったのかと思うとモヤモヤする。
情報系にシフトしていたら大学院の推薦は取れなかっただろうし、研究室によっては某ベンチャーでのアルバイトどころではなかったか。
そしてまたもうそろそろ現状打破のための判断を要求されているのか。
なんというか、3月、4月はどうも鬼門らしい。
おしまい。
この冬の光熱費対策の結果について(冷気ストップライナー)
たいした話ではないけど参考記録として。
- 出版社/メーカー: ニトムズ
- 発売日: 2013/08/21
- メディア: ホーム&キッチン
- この商品を含むブログを見る
11月末に冷気ストップカーテンライナーという製品を6畳間のベランダ*1側の部屋取り付けたので大まかな光熱費の結果報告。
ニトリとかホームセンターで売っているビニールシート状のカーテンです。そしてホームセンターなどで販売されている類似商品の方がAmazonで購入する方が数百円やすかったみたいです(無念)。
この製品をレースのカーテンの下(窓の表面に接触する方)に取り付け、その上にベージュの遮光カーテンという構成。
そもそも昨年より自宅にいる時間減っているようなところもあるので厳密な比較ではないし、まともな対照実験ではない点に注意。
薄いビールでカーテンと窓の隙間を塞いだぐらいで効果があるのか疑問でしたが、冒頭の大阪ガスの料金データを見る限り、前年比マイナス20パーセント。
その他に考えられるガス代の減少要因としては下記の通り。
- ガスファンヒーターの設定温度を前年比-2℃
- ひざ掛け毛布の活用
- パスタを茹でる頻度を減らした
3番目がかなり効いている可能性は否定できませんが、さすがにお湯を沸かしてパスタを茹でるぐらいでそこまでインパクトはないと思います。
この製品の欠点としたは、
- 掃除する際にめくりあげないといけないので少し不便
- 開封後数日は窓に近づくたびにビニール臭*2がする
という点。後者は風呂場で洗っても効果がなく、2、3日陰干しするしかないです。
そのうち匂いが抜けるのか、気にならなくなります。
普段のガス代は春先が3,000円ぐらいで夏場は2,000円代。一昨年は電気ファンヒーターで乗り切ろうとして電気代の請求が来てからびっくりする羽目になった事もありました。
ガス料金自体が値上げされていることも計算に入れると、確実に商品代金の元は取れているはず。
この冬、光熱費が高くついたという方の参考になれば幸いです。
それでは。