Gradioにおけるステート管理を考える
2.2k{icon} {views} Gradioは簡単にデモアプリを作るときは便利ですが、アプリケーションが複雑になってきたときにステート管理が問題になってきます。ステート用のクラスを用意して、それでラップするのが良さ […]...
Pythonで表をHTMLに変換する
3.3k{icon} {views} Pythonで表をHTML形式に簡単に変換するための手法です。特定条件を強調表示するという、スタイリング周りも込みでPandasで可能です。インデックスの非表示や抽出周りがややこしか […]...
Chrome Driverとバイナリーのバージョンを一致させるためのDockerfileの書き方
2.3k{icon} {views} Seleniumでスクレイピングするには、Chrome Driveとバイナリーの両方が必要になりますが、両者のバージョンの一貫性をDockerfile内で保つことにややハマったので自 […]...
Jupyter Lab上からChatGPTを使える「Jupyter AI」をDockerから利用する
1.4k{icon} {views} Jupyter Lab上から簡単にChatGPTを使える「Jupyter AI」をカスタムDockerで動かしてみました。使用するライブラリに応じてオリジナルな開発環境を自在に構築す […]...
ディープラーニングの動画読み込みをいい感じにしてくれる「Decord」の紹介
2.7k{icon} {views} ディープラーニングでの動画解析向けの読み込みライブラリ、Decordを紹介します。OpenCVよりもフレーム間のスキップやバッチ化が簡単にできるようになっています。PyTorchと連 […]...
colorsysでライブラリ不要でRGB→HSV変換をする
3.7k{icon} {views} PythonでRGB値から色相、彩度、明度への変換は画像処理ライブラリを使わないで行うことができます。ビルトインのcolorsysというモジュールを使います。 きっかけ コード書くの […]...
Gradioでセッションの概念を導入する
2.8k{icon} {views} Gradioでユーザー名などセッションごとに変数を記録したいときはよくあります。gr.Stateで簡単にできるので、アンチパターンとセットで紹介していきます。 アンチパターン:グロー […]...
Gradioでログイン認証を入れる方法
5.9k{icon} {views} Gradioで作ったアプリにログイン認証を入れる必要があったので、方法を調べてみました。launchの引数にauthを追加するだけで簡単にできます。 はじめに Hugging-Fac […]...
OpenCVで「 (-5:Bad argument) in function ‘rectangle’」と怒られた
12k{icon} {views} OpenCVでcv2.rectangleを実行したところ、「-1: error: (-5:Bad argument) in function ‘rectangle̵ […]...
ffmpeg-pythonでサクッとNumPy配列から動画を出力する
8k{icon} {views} ffmpeg-pythonを使って、NumPy配列から動画を生成する方法を説明します。OpenCVのVideoWriterよりも、コーデックの問題が発生しづらかったり、画質を柔軟に選択で […]...