起床。

工事が続いており一日中部屋が揺れている。さっきびっくりしたが夜中も工事を続けているようだ。交通量が多い道の工事は夜間も工事するようなスケジュールで進めるものらしい……。昨日の夜に地震が来たと思ったのはそれだったのか……。今日は緊急地震速報まであり賑やかな一日だった。
前に日記でも言及したレシピを見ないために読む料理本(https://www.amazon.co.jp/gp/product/B0788G7L4K/ref=dbs_a_def_rwt_hsch_vapi_tkin_p1_i0)の順番が回って手元に来たのでぱらぱら眺めた。大体イメージしていたような本ではあった。買うか……?
前から順番に料理を作っていくと腕が上がる問題集をくれとどこかで言った気がするが、それって単純にレシピ本のことだなと最近ようやく気がついた。だが問題は世に無数にある料理本の中からどの料理本を買うかということだ。上記本にしたって、私はこの作者のことを何も知らないのにそんな日々の暮らしに関わる全面の信頼を置いていいんだろうか……。これが小説だったら到底考えられないようなことだ……。多分レシピ本を信頼できるか決めるためにレシピを試作してみるというプロセスが必要なのだ。なんという長い道のり……。
長い道のりと言えば、この本を借りるのも割と長い道のりだった。全然知らなかったのだがどうやら人気の本らしい。レシピを一時的に所有してもしょうがないので私はちょっと中身が見たかっただけなのだが。多少のサーバー代は負担してもいいから30分くらいオンラインで「立ち読み」ができるサービスができないものか。電子書籍では出版社のセールで近いことをやっている例はよくあるのだから技術としては全然問題なさそう。全書籍でそれができればいよいよ本の分野はオンラインストアの完全勝利と言えると思う。是非とも私が生きている間に勝利してくれ。
ダンガンロンパ2を始めた。1は最終章の犯人というでかい事前情報があった(「プレイの予定がある人はこの先を絶対に読んではいけません!」とかいう注意書きなんて無力な代物なんだ)のだが、2は白い髪のキャラが人気であることしか知らない。ファーストインプレッションだがあまり愛着が持てそうなキャラがいないぞ……。大丈夫か……。

起床。二度寝してしまった。そういう日もある。在宅の何がいいって9時まで寝ていても余裕で始業時刻に間に合うことだ。

ここ数ヶ月の私の生活を開示しておくと、出社回数1回、平均外出頻度は3日に1度と言ったところだ。

そもそも外出が得意ではなく、前に一ヶ月日記を書いた時もつぶさに行動を記すことで自分の外出頻度の低さが露呈することを恥じていた嫌いがある。しかし瞬く間に世界がこんなことになってしまい、外食や旅行ができなくなってしまい苦しむ人を目の当たりにして、自分は本当に外に出ないことが苦にならない人間なのだということが明らかになってしまった。こう書くとすごく厨二っぽいんですけども……。言いたいのはそういうことではなく、相対的な位置を確認したことによってこれも一つの個性であると認める気概が湧いたということだ。
でも全く変化がないかというとそうでもなく、一人言が増えた気がする。漫画やゲームをしながら結構な大声で「マジか~」とか「そうね~」などと言っている。一人で。窓が開いている。これは大丈夫な状態なのか?どうなんだ?
それからこれは前からだが、一層ラジオを聞くようになった。特にコードを書いている時は都合がいい。同じラジオを延々と聞くので友達に気色悪がられた。作業用BGMだって同じものを繰り返し聞くのだからそれと変わらないと思うのだが、如何。ちなみにこれも聞きながら一人で笑っている。ずっと同じラジオを聞いていると笑いどころが事前にわかるので笑う準備をすることができる。
粛々と職。
なんだかずっと目眩がしていて怖いんだがどういうことだと思っていたら、午後になる頃にようやっと揺れているのは自分ではなく家だと気がついた。すぐ先でしている工事のせいで揺れているらしい。そんなに簡単に家って揺れるものなのか。違う意味でちょっと怖くなったが、地盤が弱いと建物に問題がなくてもそういうことがあるらしい。
読者はどこにいるのか–書物の中の私たち (河出ブックス)   石原 千秋
頑張って(頭脳を動員して、の意)読んでいる。読み終わったら全体の感想を書く。
本題とは逸れるが(純文学では)文章中の表現をありきたりなものからずらすことで(文章量と理解の観点から?)読者が文章を読むスピードをコントロールできるという話があって面白かった。
バエル – メギド72攻略wiki
この前のアップデートで適性のある霊宝が来たのが嬉しすぎて意味もなく眺めている。「奥義の後列チャージ付与は多くのメギドとシナジーを形成する~」から始まる文章、かなり良い。
この手の攻略wikiのページが好きらしく、今やプレイしていない艦これもたまに嫁のページを覗きに行く。

また一ヶ月くらい日記書こっかな。
起床。
昨日夜更しをしたが、8時までに掃除機のフィルタを掃除してそのままゴミ捨てをしなければいけないのが不安だったらしく早く目が覚めた。そういうところがある。数日前に床に盛大にこぼしたコーヒーの粉をを掃除して以来、掃除機の排気臭が酷いことになっていたのでゴミ捨てついでにフィルタの掃除をしたかったのだ。こぼしたコーヒーの粉を吸う時、ひょっとしたら茶葉を掃除に使うようにコーヒー粉によって元々していた排気のホコリ臭が取れるのではないかと期待したが全くそんなことはなく、存在の耐えられない臭さになっただけだった。結局フィルタを掃除してもホコリ臭は取れなかった。10年くらい使っているからなぁ。
掃除機と同時期に買った家電は他に冷蔵庫、電子レンジが挙げられるがどいつもぴんぴんしており、タフさにしみじみする。冷蔵庫はそろそろ買い替えてもう少し大きくしたいのだが、こういう物はいつ買い換える許可が降りるんだろう。掃除機のフィルタが臭うのは買い換える理由として妥当なのか?まだ動くのにな。でもそう言いながら一生動いていたらどうしよう。
掃除機のメンテナンスをして気が大きくなったので4月に買ったドラム式洗濯機も塩素系洗剤で洗った。説明書通りにボタンを押したらこれから8時間かけて洗浄すると主張してきて目を疑った。洗剤には2、3ヶ月起きにこのような掃除をするべきとあったのでなんとなく1時間くらいで終わる作業と思っていた。8時間て。まぁ洗剤を入れてしまえば私がすることはなにもないので構わないのだが。長生きしろよと思いながらスタートボタンを押した。
職。担当していた作業は順調に終わったが、今後の自学自習のことを考えていたら何者にもなれない人間について思いを馳せてしまいやや落ち込んだ。落ち込むとリストを作りがちなのだが、まさしくそのようにしてやや落ち着いた。現職についてどういうスタンスで語るかまだ考え中である。
自作キーボードが特集されていると聞いたので「マツコの知らない世界」のアーカイブを見た。バラエティというものを久々に見たのだが大柄の女性がオタクに次々と酷いことを言うので怖かった。
番組自体はそう大したことはなかったのだが、見ていたらまたふつふつと二台目が欲しくなってしまいしばらく自作キーボードカタログ(https://booth.pm/ja/items/2022662)を眺めていた。一代目を買うときは秋葉原に行く前にこのカタログを舐め回して候補を定めていたのだが、実機に触ってみたらロープロスイッチに撃ち抜かれてしまったのでキャップをいじるための2台目が欲しいのだ。うーむ、でもできればLily58(一台目)からは離れたデザインがいいなぁ。でも結局めちゃめちゃ欲しいキャップがある訳じゃないからなぁ。

ソシャゲのシナリオをテキストデータに変換する(OCR編)

本日若干突破口が見えたので書きますかね。
さて、前回は動画を切り抜いてテキストボックスだけの画像を保存することができました。これをテキストデータにしたいと思います。画像から文字を認識してテキストに変換する技術はOCR (Optical character recognition) と呼ばれるやつですね。pythonの場合はTesseractというソフトをpyocrモジュールから使うのが普通みたいですね。
このTesseract(てっせらくと)が厄介でバージョンによってやれることが全然違います。
v3.0x系はjTessBoxEditorというソフトを組み合わせてフォントを使った学習ができます。フォントがインストールされていれば(全ユーザーに対するインストールが必要)画像作るところから学習データを作るところまでやってくれます。認識する画像にゴミを加えることもできる。
ちなみにメギドのフォントはスキップEらしいのでLETSを契約していれば使うことができます(https://lets-site.jp/)。学生のうちに入っておけということです。
アイドリッシュセブンのフォントはアプリ内にクレジットされているようにニタラゴルイカなのでなんとBOOTHで買うことができます(https://typelabo.booth.pm/)。ウェイトはわからんが等幅04辺りではないか。ニタラゴルイカ、全然意識してなかったけどゲーム頻出フォントなんですねぇ(https://note.com/tsugumiarai/n/ndc0a9cf10a86)。
で、スキップEはほとんど上手く認識できたのですが何故かニタラゴルイカの認識が全然上手くいかず……。文字の種類が少なければ学習の回数を増やして精度を上げられるみたいだが、日本語だとそういう訳にもいかないし……。そう思うとアルファベットに対して漢字を含む日本語はOCRにおいて圧倒的なハンデ不利があるな……まぁ中国語に比べたらマシか……。
Tシャツに英語を書いてばっかの国みたいな話がありますが、日本語フォントがスタイリッシュになれないのはひらがなカタカナ漢字という全然形状の違う文字を含んでいる時点でもう全然まったくどうしようもないんだよな。勝てっこないのよ、アルファベットとか、アラビア語とか、あぁいう文字にさ。日本語のことは好きだが表記体系は好きじゃねぇ……。ちなみにTesseractの学習済みデータも日本語データには標準でアルファベットが入ってくる。入れないとまともに文章を識別できないもんな。すいませんね、お手数おかけしてね……。
話が逸れた。
それでニタラゴルイカが識別できなくてふてくされていたのですが一つ上のバージョンがあることを思い出しました。これが昨日。
v4.x系は安定バージョンの中では最新で、LSTMを使ったエンジンを搭載しています。響きがかっこいいですね。
LSTM (Long short-term memory) は自然言語処理モデルの一種で……私の理解するところで喋るとRNNの発展版で今まで入力された単語を適宜覚え適宜忘れながらも次にくる単語を予想するモデルです……。三ヶ月の付け焼き刃だからあまり突っ込まないでくれ。
要するにv3では文字を認識して一文字一文字テキストを認識していたのに対して、v4では読み取ったそれらをある程度固まった文章として認識して、自然な文章になるかどうかで文字認識の結果を調整……ということをしているんでしょう……おそらく……。
ただ問題はv4系ではフォントを使った学習ができないという点です。いや、正確にはあれ、Linux?あれを使えばできるっぽいんですけど、私はあれ系が全然できないのでできません。ターミナル、怖いよね。コントロールCが効かない時点でだいぶ怖い。
フォントのデータがあるんだから学習した方が精度いいに決まってると思っていたが盲点でしたね。フォントがせっかく手元にあったしね。使いたかったんだよね。わかるよ。
そういう訳でv4.1で試したら簡単でした。ニタラゴルイカの方はもう少し整形が必要そうなので(動画中でフェードアウトされたりするとフレーム抽出が厳しい)引き続きスキップEでいきましょう。
#モジュール呼び出し
from PIL import Image
from IPython.display import display_png
import pyocr
import pyocr.builders
import pprint
#OCR
def ocr(img, languages):
    tools = pyocr.get_available_tools()
    tool = tools[0]
    builder = pyocr.builders.TextBuilder(tesseract_layout=6)
    txt = tool.image_to_string(img, lang=languages, builder = builder)
    return txt
#フレーム抽出からOCRまで
def frame_ocr(frame_sel_list, c_max, language):
    text_list = []
    languages = language
    
    for i in frame_sel_list:
        temp = level_cor(i, c_max)
        temp = pil_con(temp)
        txt = ocr(temp, languages)
        text_list.append(txt)
    return text_list
OCR前にグレースケールをさらに白黒画像に変換してます。日本語学習データは2種類あるけど重いデータの方がいい訳ではないっぽい……。
結果。
blog_img4.jpg
壊れたラジオになってる部分はキャラ名が出てるところなのでしょうがないですね。白抜きの上に影付きになっているからなんか別の画像処理が必要そう。
肝心の台詞部分は……うーん7割くらいはあってる……?スキップEはv3の方がいいかもな……。
blog_img6.jpg
v3ではこんな感じ。
v4ではベレトの一人称が「僕」になってるのに対してv3は「濃」なのがそれぞれの特徴が出ていて面白いですね(本来は「儂」)。
これから調整はしますが大枠はできたということでよしとしましょう。
録画ファイル作るの面倒だな~。
参考文献

4コマ漫画を描くぞ

創作の話しよっかな。

さっき上げた4コマ漫画。
https://twitter.com/osmnkih/status/1271793355396009985/photo/1

元ネタツイ。
すっぱいコーヒー @osmnkih 6月10日
冗談のつもりで「役作りで髪切ることになったよ」って言ったらショックを受けて「切った髪貰ってもいい……?大事にするから……」などと口走るモモ
この時点では漫画にできると思ってなかったけど、(「切った髪の毛を貰う」っていうテンプレート的ヤンデレ仕草にもいろんな感情があるけどモモの場合は「グッズ」みたいなもんだよな……。なんなら出会った頃から伸ばしてるから「思い出のグッズ」だな……。年輪みたいに髪に思い出が詰まっているのかもしれん……。その場合ユキはあんまり引かないだろうからヤンデレ台詞と状況の落差が面白いな……。)まで考えたら4コマ漫画にできる気がしてきた。
【1コマ目】
「切ることになったよ」より、切り終わった後の会話にした方がショックがでかくていいな。髪の長さも「思い出のグッズ」を連想させる会ったばかりの頃の長さの方がいい。でもユキが髪短いと一瞬いつの時代の話かわかりにくくなっちゃうな……。この前同居時代の4コマ描いたし……。あっ背景におかりん置いて事務所の会話にすればいいか。最後モモもユキもボケっぱなしになって終わりそうだったけど、おかりん出せばツッコミが入るしな。いいぞ。これはRe:vale4コマ頻出テクニックなので覚えておいた方がいい。他、大神万理、九条天などでも同等の効果が見込める。
髪切った直後じゃないと「貰っていい?」が現実的じゃなくなっちゃうな。「さっき」って言わせとくか。テンポ崩れそうだし描き文字で。
【2コマ目】
「大事にするから……」の「そういう問題じゃねぇよ!」感が気に入ってるけどそこまでツッコミを入れるのは野暮か……。スタンダードでいいや。
なんか毎回こういう表情のモモ描いてる気がする。上手に描けるようになってきたかも。描き文字は台詞メモの中に一緒に突っ込んでおくと描く時忘れなくて便利だよ。
【3コマ目】
髪を中心に持ってきて顔も隠したくないから構図はこれ一択。あ~これ年輪ちょっと浮いてない!?ここにもおかりんのツッコミ欲しいんだけど……そうするとモモとおかりんの会話が漫画の中心になっちゃうな……。2コマ目、4コマ目のツッコミは削れないからおかりんはここには出せない……。例えがなくても通じるかなぁ……でも木もう描いちゃったしな……。うーん、さらっとモモの台詞として書いてツッコミは読者に任せるか……。補助として(?)入れとこっかな……。モモの台詞だとすると年輪って単語は出てこないな。えーと、切り株?開くか?きりかぶ?
【4コマ目】
「いじらしいじゃないか^^」系でもよかったが素直に喜んでた方が落差があっていいな。おかりんのポーズ1コマ目と被っちゃった。まぁいいか。Re:valeの戯れを前に微動だにしてないという表現になるし。
ウィッグであることには突っ込まないのがおかりんスタイル。今書きながら気がついたけど、年輪だとしても思い出が詰まっているのは頭頂部の髪であるべきだよな。まぁツッコミにしては難解すぎるからどうせ不採用だしいいか……。
【5コマ目】
この4コマの脇のやつという概念が好きなんだけど大抵全部描き終わった後に付け足すから結構面倒でサボりたくなる。サボると意図のわからない空白地帯が生まれてしまうよ……。
こんな感じでネームを描いてあとは線を引いてバケツで色を塗る。ここに関して今述べることは特にない。最近3Dモデルを導入して複雑な構図を描くのがちょっと楽しくなりました。
できた!
https://twitter.com/osmnkih/status/1271793355396009985/photo/1

4コマ漫画は4コマという縛りの中で一つネタを成立させるというルールがあるので、そういうゲームとしてはなかなか面白いと思っている。
このツイートも読んでほしい。
すっぱいコーヒー @osmnkih 6月10日
脱皮殻で抜いてるとこ見られて本体に尻尾の裏の鱗が柔らかいから使っていいですよって言われたホプ!?