2020年1月19日日曜日

ScanSnap S500のフィードローラ交換について

 数年前に、パッドユニットやピックローラを交換して、なんとか使ってきましたが、最近、紙送りがうまくいかないことが頻繁になりました。 よくみてみると、フィードローラーというのだそうですが、交換してないローラーが4つあることがわかりました。これが、べとべとに劣化しているのが原因ということがわかりました。
 https://p--q.blogspot.com/2019/07/scansnap-s500.html
 http://namba-reading.seesaa.net/article/463663914.html
上記のリンクを参考にさせていただき、ローラーをAliexpressで注文し交換してみました。安価な部品ですが、交換は、かなり難度が高く、4時間ぐらいはかかってしまいました。でも、交換後は、非常にスムーズでほぼ新品時のときのような動作です。
 苦労した点としては
・ローラーを軸に通すためにかなりの力が必要です。水で少しぬらすといいようでした。
・一部、コネクタから導線が抜けてしまいましたが、抜けた穴を予想してもどしたところなんとかなったようです。
・歯車にベルトをかけもどすのも、手間取ってしまいました。歯車を完全に固定してからベルトをかけるのはきつかったので、歯車にベルトをかけた状態で、軸に差し込むようにしたほうがよかったようです。
・片方の小さいコネクタ(白)で、ささなくていいものがあったようです。さし忘れたかとおもって、点検のため、時間がかかってしまいました。
 新品購入すれば、最低でも2~3万円はするスキャナなので、手間はかかるものの、その分のメリットはありそうです。

2020年1月6日月曜日

LSTMで時系列データの予想してみた

時系列データの場合、複数特徴量から予想するパターンはあまり見かけなかったので、試しに作ってみた。あまり、よい予想ができるというわけではなかった。

モデルの作成部分と結果表示の部分のみです。


2020年1月5日日曜日

詳解 ディープラーニング  で よくわからないところ

https://book.mynavi.jp/manatee/detail/id=76290

length_of_sequences = 2 * T # 全時系列の長さ
maxlen = 25 # 1 つの時系列データの長さ
data = []
target = []
for i in range(0, length_of_sequences - maxlen + 1): 
    data.append(f[i: i + maxlen])
    target.append(f[i + maxlen])

となっていますが、length_of_sequences - maxlen + 1のところは
length_of_sequences - maxlen かな??と 勘違いかもしれませんが。
length_of_sequencesが最後のインデックス値ならわかるのですが。
Lengthとなるとうまくいかないような、、、よくわかりません。

  i              data        target            maxl=2  L=4のとき data〇 target■ 
0            [0,maxl]        maxl               ⓪①■□
1            [1,1+maxl]     1+maxl      0①②■
2            [2,2+maxl]     2+maxl
3

L-maxl-1     [L-maxl-1,L-1]     L-1
L-maxl      [L-maxl,L]        L

ちなみに、直観DeepLearningでは
P177で
STEP=1
for i in range(0,len(text)-SEQLEN,STEP):
  input_chars.append(text[i:i+SEQLEN])
 label_chars.append(text[i+SEQLEN])

2020年1月1日水曜日

c#でOCR(Google)

googleのOCRも試してみました。
https://orizuru.io/blog/csharp/google-ocr/

Nugetで、Google.Cloud.Vision.V1 を入手
netcoreの最新版で、コンソールアプリとしてコンパイルしました。
googleでもAPIが使えるように登録が必要でした。秘密鍵はJSONファイルとしてダウンロードします。
対象の画像ファイルはカレントディレクトリに入れておく必要があるようでした。
(netcoreapp3.1のフォルダ内に入れておくといいようです。)

c#でPDFのOCR

認識率は、完全とはいえないですが、ほどほどに認識できるOCRが、C#でも使えるようです。NugetでIronOcr、Pdf.Ocr、IronOcr.Langueages.Japaneseを入手します。
      var Ocr = new IronOcr.AutoOcr();
                Ocr.Language = IronOcr.Languages.Japanese.OcrLanguagePack;
                var Results = Ocr.ReadPdf(@path);
                var Text = Results.Text;
                MessageBox.Show(Text);
https://ironsoftware.com/csharp/ocr/examples/pdf-ocr/