備忘録的な何か

忘れそうなことを書いていく予定

Elasticsearch練習中...

memo.

index template

  1. component_templateを作っておく(あらかじめ使い回せるパターンがあるなら) https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-component-template.html
  2. index_templateを作る https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-template.html
  3. simulate_templateでindexを入れた時に何が適用されるか確認する https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-simulate-index.html

shards, replicas等の設定等もここでできるので、作る前に評価が必要。

https://discuss.elastic.co/t/shard-replica/141128

RHEL9.1 Installしてみた

ゴールデンウィーク初日にポチったPC(MINISFORUM NAB5, RAM 32GB, Storage 512GB)に ようやっとRHEL 9.1インストールできました。

Amazon.co.jp: MINISFORUM Venus Series NAB5ミニPC 第12世代 Core i5-12450H 32GB 512GB PCIe4.0 SSD コンパクトpc Windows 11 Pro 小型pc インテル UHD Graphics Wi-Fi6 BT5.2 デュアル2500Mbps LAN HDMI×2 /USB-C×2 4K@60Hz 4画面出力 小型デスクトップパソコン : パソコン・周辺機器

activate

やりたいことは雑にElastic stack動かすことかなぁ。 ただいきなり素でInstallするとミスった時に消すのが面倒ですし、 折角のRHELなのでpodman使ってdocker-composeを動かす辺りを試そうかと思います。

rheb.hatenablog.com

この辺から読み始めようかな。

--- 2023/5/18 追記 ---

RHEL上でコンテナを動かす場合はPodmanが基本で、 複数コンテナを同時に管理するとなった場合はPodman podで管理するのが良さそう。 というのがなんとなくレベルで分かってきたので、試そうかなぁ

www.redhat.com

qiita.com

RustでOpenCV使う

概要

Windowsでvcpkgを使ってOpenCVをRustから使えるようにする。

環境

OS: Windows 11 [Version 10.0.22621.1105]
rustc: 1.63.0

手順

基本的にはcrate.ioのopencvクレートのreadmeを読んで実行することになると思うが、 トラブルシューティングに書かれているようにハマるポイントがあるので回避する必要がある。

https://crates.io/crates/opencv

私が実行した手順は以下の通り。

  • vcpkgを入れる。vcpkgのリポジトリreadme.mdのQuick Start: Windowsの箇所を読んでその通りに実行

https://github.com/microsoft/vcpkg

  • vcpkgでllvm, opencv4を入れる。tripletの指定をopencvはx64-windows-static-mdにしておくと静的リンクできるようになる。
vcpkg install llvm:x64-windows opencv4[contrib,nonfree]: x64-windows-static-md
  • OpenCV周りの環境変数を指定しておく(永続ならsetx)。なお今回はvcpkgのgit clone先をEドライブ直下としている。
set VCPKG_ROOT=E:\vcpkg
set LIBCLANG_PATH=E:\vcpkg\packages\llvm_x64-windows\bin
set LLVM_CONFIG_PATH=E:\vcpkg\packages\llvm_x64-windows\tools\llvm
set CLANG_PATH=E:\vcpkg\packages\llvm_x64-windows\tools\llvm\clang.exe

以上で完了。
RustのOpenCVクレートをビルドするときにVCPKG_ROOTの指定があれば、
OpenCVの必要なinclude, bin周りを探してくれるのでVCPKG_ROOTの指定があれば良い。
後はLLVMの上記3つは手動で設定すれば通った。

Designセンス皆無

久しぶりにブログを書いた気がします
なんやかんやで前回のブログで購入して読むぞ宣言したPRML君は積み本と化してます。
ただし一部お仕事で非常に役立ったので投資した甲斐はあった気がします。

さてここからが本題
普段のおしごとではC#, C++あたりの言語しか触らないし、
個人的に何かしら作って公開して世に広めたいという気は1umも無かったため
HTML/CSS/JSとかのWebフロントエンド周りとDBとかは全く勉強する気もおきませんでした。
ただ…このままだと食いっぱぐれそうなんで
ちょいちょいやってこうかと思う次第であります。
テキスト周りのコンテンツ用意するのは苦痛なので…
とりあえずmarkdownでテキトーに文書書いてpandocに以下コマンドで変換

pandoc -s -f markdown  -T hoge -t html5 -c <css filename> <Markdown filename> -o memo3.html

趣味でやってるゲームのBGAから色合いのヒントを頂戴してよく分からんものを作成中…

デザインセンス皆無の私だとなかなか難しいですね・・・
PSYCHIC FLASH感出せるようなスタイルシート作りたい、絶望的に視認性悪そうだけど
実用面重視なら表、図、ソースコード周りをきっちり見やすく表示してくれるシートかなぁ
先にそっち作ったほうが良いかもですね。

giste8fd688d1f47a50000db24bfdb57fc06

以上

PRML買ってしまった

タイトルの通りです。

購入の最たる動機としては仕事の方でデータ解析(そこそこ量が多そう?ってのと解析手法が未定すぎる)を求めらそうになっているからかな?

実は、大学院にいたときにML-EM(Maximum Likelihood Expectation Maximization)というアルゴリズムを用いて研究している同期がいたり、 教授からNeural Networkでなんかできねーかなぁ…とか言われていたので、少しだけは興味はありました。ただ、その時の私は 行列?知らない子ですね…となっていたのと、自分の研究で明らかに使い所が無かったため実際に勉強する気は全く起きてませんでしたが…

それはそうと買ってしまったので読まないともったいないですね。

f:id:endorsement_a:20180722213348p:plain

PRML

VS2017においてOpenCV3.3.0を使う

動機

自分がアホ過ぎるので備忘録としてメモ

前提条件

  1. Visual Studio 2017のC++によるデスクトップ開発がインストールされていること
  2. 使用言語はPythonではなくC++
  3. 使用するバージョンはタイトルの通り3.3.0

方法

  1. OpenCV library から OpenCV 3.3.0 Win Packをダウンロードする。
  2. ダウンロードしたファイルは自己解凍形式で解凍先を聞いてくるので適宜選択する。
  3. [置いた場所]/opencv/build/x64/vc14/binにPATHを通す。
  4. VS2017でコンソールアプリケーション(多分C++ならなんでも良さそう)を作成する。
  5. プロジェクトのプロパティページで[構成] すべての構成、[プラットフォーム] x64を選択しインクルードディレクトリに[置いた場所]/opencv/build/include、ライブラリディレクトリに[置いた場所]/opencv/build/x64/vc14/libを入力する。
  6. [リンカー]→[追加の依存ファイル]で[構成] debugにopencv_world330d.libを、Releaseにopencv_world330.libを入力する。

以上

OpenCVとPythonでラベリングを使ってみる

動機

研究で要り用になったのとPython使いたかったから

処理内容

読み込んだ動画に対して二値化(cv2.threshold)してラベリング処理(cv2.connectedComponentsWithStats)を行いその重心位置、面積、フレーム番号を表示するプログラム

動作確認環境

コード

gist.github.com

思ったこと

OpenCVライブラリはC++の方がリファレンス豊富だし分かりやすいと思う…
またPythonの場合C++のOutputArrayが返り値になっていると考えると大体あってるので積極的にリファレンスを読むべきだと感じた
あとImageJで読んだ時とcv2.VideoCapture()の特にsetしてない状態で読んだ場合でピクセルの値が違ってる気がするのは気のせい?(今後調べたい所)