カテゴリー: プログラミング

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

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

 

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

 

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

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

 

(さらに…)

OpenCVで動体検知カウンター

前回7年ぶりに再トライしているPICですが、なかなか進みません。難しい。全然したいことの情報に行き着かない。。。

って感じで案の定、頓挫中なのですが、高機能プランターを作りたいっと言った友人はビールを作りたいと言い始めました。→ブログ http://brewojisan.com/

 

その際、発酵させる過程で炭酸ガスが出るのですが、発酵状態の把握の目安として、ガス発生の推移を計測したいと言いました。

具体的には、下の動画のように、水封管がガスでコポコポする頻度を測りたいとのこと。

 

久々のOpenCVで挑戦だ!

(さらに…)

Pythonでパスツール

前回も理想のドローソフトについての記事でしたが、今だその熱を持っていて、今回はパスとかハッチングとかやってみました。

EMFやSVGなどに出力することを考えると、ライブラリが持つ機能に依存するよりは、なるだけ自前で実装したほうが良いはず。どちらのファイル形式もベジェ曲線はサポートしているので、3次ベジェ曲線によるパスのプログラミングを試みました。

 

ドローソフトと言えばこれだよね。

[ソース1](ソースは最後にあります)

制御点を無視して、直線とすることもできるようにした。

 

機能として必須なのが、パターンハッチング。
ベジェ曲線と直線の交点の計算なんてどうやるんだーっと思ったけど、情報を載せてくれる人はいるもんですなぁ。ありがたい。

斜線パターン

[ソース2]

 

5(その2):直線と曲線の交点(解の公式)
https://pgcity.jp/2010/09/05/175/

 

パターンを繰り返すハッチング

[ソース3]

これで直線ならどんな模様でもできる。いずれ楕円も加えたい。

 

虚数とか出てきてなかなか大変でしたが、出張により久々に一人の夜を過ごし、たっぷり作業できたので、なんとか形にはなりました(後々不具合が出てくるのは必至だと思いますが)。久しぶりにがっつりプログラミング、楽しい。

次にしたいと思っているのが、ブーリアン演算による差分とか合成とか。果たして僕の能力が及ぶのか。。。

(さらに…)

EMFファイルをクリップボードにコピー

いつか理想のドローソフトを作りたいっと思いつつ、意思の弱さゆえに開発を進められていないのですが、仕事の書類などでMS Officeで図形を駆使して図を描くたびに、作りたいと言う思いが再燃します。
そのたびに関連することを調べ始めまして、今回もその一環です。

 

理想のドローソフトに無くてはならない機能が、ベクタ形式のまま簡単にMS Office Word等に図を貼り付ける機能。すなわち、EMF(拡張メタファイル)形式でクリップボードにコピーする機能です。

追記:2006年以降のMS OfficeもOpen Officeもsvgのコピーに対応してるんだって。EMFはオワコンって事か。。。

(さらに…)