サムネイル作成ツールを作成

あけましておめでとうございます。新年一発目の記事がこんなんになってしまいましたが、ソフトウェアサイトにサムネイル作成ツールを追加しました。

https://software.tiblab.net/pc/img_thumbs_console/

 

なぜこんなソフトを作ったかと言いますと、会社のストレージが1年半ほど前にNASからオンラインストレージサービスに切り替わったのですが(コロナ前でラッキーでした)、サムネイルの表示が遅くなったというか、実質的にできなくなって、ほしい画像を見つけるのが大変で仕方がなくなったからです。

 

特に、エクスプローラのファイル検索が機能しないのが不便で、特定の画像を探したいとき、ファイル検索で拡張子を指定して、表示をサムネイルにし、次々と生成されるサムネイルをスクロールしながら探し出すという技が使えなくなりました。

 

そこで、その技を代替する方法として、下層フォルダを含めて存在する全ての画像のサムネイル画像を、一つのフォルダに集約するツールを作りました。まぁ、生成にめっちゃ時間がかかるので事前に作成しとかなくてはいけないんですが。
また、そのフォルダをオフライン編集可の設定しとくとか、キャッシュに残っている内はエクスプローラでサムネイル表示できるんですが、そうでないときはできないので、HTMLを作成して、ブラウザでサムネイル一覧を見れるようにしました。

 

今回、GUIを作るでもなくコンソールプログラムです。
元々は、サムネイルを作成・表示するビュアーを作ろうしたのですが、動的にサムネイルを追加していくとスクロールがカクカクするとか、ウィンドウ幅を変えた際のサムネイルの再配置が劇遅とか、GUI制御絡みで詰まりそうだったので、一旦、GUIなし最低限機能で完成させることにしました。

ビュアーが欲しいことには変わりないので、作りたいとは思いますが・・・、いつになるやら。

PyTorchニューラルネットワークのライブラリ化の試み

前回、PyTorchでニューラルネットワークを組んで手書き数字の認識を行いまして、9割くらいの正解率になりました。
昔、勉強にニューラルネットワークをPythonで組んだことがありますが、実用的な使い方がわからず、書いてみた仕舞いでしたが、初めて実用性を実感しました。

そこで、学習させたネットワークのライブラリ化ができないかなぁと思って、実施したことのメモです。

 

要約すると、実行ファイル(exe)化はできなかったので、PyTorchで学習させた重み等のパラメータを、Cythonで組んだ自前のニューラルネットワークライブラリに読み込ませるということを行いました。

 

(さらに…)

休止状態から復帰できない→仮想メモリ不使用が原因でした

メインPCである下記のパソコンで、長らく発生していた「休止状態から復帰できない」問題が、ふとしたことから解決しました。どうやら原因は、仮想メモリ(ページファイル)の不足だったようです。中には役立つ人もいるかもしれないと思って、一応記事にしておきます。

(さらに…)

Pythonで手書き数字のORCにトライ(その2)

前回、TesseractおよびPyTorchのニューラルネットワークで手書き数字の認識をやってみました。
今回は前回のPyTorchのニューラルネットワークに角度情報を加えて、手書き数字認識をやってみました。

 

具体的には、MNISTの28×28画像から、数字を線化処理し、8×8の2値画像に8段階の角度情報加えた8×8×8のデータで、512x1000x10の3層ニューラルネットワークを作り、自分の手書き数字をさせました。
結果、前回6~8割くらいだった正解率が9割くらいになりました。

追記:畳み込みニューラルネットワークもやってみたら更に高い正解率でした。

(ソースコードは記事の最後にあります)

(さらに…)

Pythonで手書き数字のORCにトライ

プラント屋の友人曰く、現場では計測値を手書きで記録して、後でデータ入力なんてのを日常的にやってることもままあるらしく、OCRで効率化したいそうで、(無料で)できるかどうか試してみました。

 

記事の内容を要約すると、
・Tesseractで手書き数字の認識にトライ→Bad
・ニューラルネットワークで手書き数字の認識にトライ→Bad
(環境:Windows10)

追記:畳み込みニューラルネットワークだといい感じです

 

最初、オープンソースのOCRライブラリTesseractで自分の文字を試したものの、正解率が低くく、自分の字の正解率は4、5割程度でした。

そのあと試しにPyTorchによるニューラルネットワークで、手書き数字のデータ集MNISTを使って機械学習した結果、MNISTデータ上は正解率95%以上だけども、自分の字だと79%くらいになりました。4などの特定の文字が苦手らしく、実用は難しそうでした・・・。

 

(さらに…)