Loading [MathJax]/extensions/tex2jax.js

2024-12-31

WindowsにChromaDBをインストールする際の注意点

ChromaDBは、オープンソースのベクトルデータベースです。主にベクトル検索や類似性検索を目的としており、埋め込みベクトル(例えば、テキストや画像などから生成される特徴量ベクトル)を効率的に保存、検索、管理するためのデータベースとして設計されています。 

インストール方法

1.Microsoft C++ Build Toolsのインストール

Windowsでは標準でCのコンパイラはありませんので、インストール時のコンパイル処理(pipが自動的にやってくれます)行うために別途インストールする必要があります。

インストーラーが実行されるので、この際、「C++によるデスクトップ開発」を選んで、MSVCの最新版とWindows11 SDKを入れておきましょう。

2.pipでインストール

  • pip install chromadb
でOKです。




2024-11-11

Python:Google Classroom APIから授業リスト(コース一覧)を取得する処理

 以下の通りになります。serviceのインスタンスは生成済みとします。あとは特に特筆するところはないかと思います。

def getCourseList():
# Google Classroom APIから授業リストを取得する処理
global service #serviceのインスタンスは別で生成済みとします
# クラスルームの一覧(コース一覧)を取得
results = service.courses().list(pageSize=10).execute()
courses = results.get('courses', [])
#出力の例
# for course in courses:
# print(course['name'],course['id'])
return courses


2024-11-06

縦長のスクリーンショットをA4に分割してPDFにする

ウェブページをPDFファイルにして提出する場合に、ページ全体をPDF(またはPNG)として保存したいときがあります。最近はWebページを印刷処理すると、変なレイアウトになったりするので、スクリーンショットでなんとかするなど面倒なことをよくしていました。Edgeでは標準でその機能がありますが、細長い画像ファイルになったりして、書類の一部として提出するのには不適切なケースが多々あります。

そこで見つけたソフトが、

というEdgeのアドオンです(Chromeでも同じものがあるはずです)。使い方のコツは、本アドオンでページを記録した直後の画面で、オプションでファイルサイズをA4にしてからPDFダウンロードを押すという点です。これで出張書類作成も捗ります。





2024-09-24

OBS が固まる現象がようやく解決

1年ほど前の記事で、

という記事を書きました。で、これ以降もだましだましで使ってましたが(NVIDIAドライバを古いままにして)、ついにOBS側が、

NVIDIA users may need to update their GPU drivers to 531.61 (Windows) 

とうことを言い出して、録画もできなくなったので、仕方なくドライバを更新に踏み切りました。しかし固まる状況は変わらず。。。さてどうしたものかと。。。

初期化することで解決

結論は、OBSの初期化です。ここでいう初期化とは、設定フォルダにあるファイルを全部消すことです。【ファイル】→【設定フォルダを表示】で出てくるファイルをすべて消してから起動しましょう。もちろん各種設定は全て消えますので自己責任で。個人的には、使えないよりましと判断しました。なお、単に再インストールしてもだめというのが曲者でしたね(設定ファイルが残ったままになる)。

(余談)

初期化をする前に、録画ができなくなったことへの緊急的な策として、映像エンコーダーを変更して対処したのですがドツボに嵌りました。なにかよくわからないエンコーダを選んだら録画ができて、プレイヤーでも再生できるからオッケイと思っていたら、各種動画編集ソフトでなぜか扱うことができず、Macでは映像が再生されないし、コーディック未対応の問題に直面してしまいました。で。。。なんとか動画を編集できるようになったのですが、これは気を付けて方が良いですね。エンコーダー類は安易に変えないほうがいいです。

何はともあれ、これでGPUドライバも最新、OBSも最新で、自宅PCはまだまだ使えそうです。





2024-08-08

Googleフォームで投稿されたファイルから学生の名前を削除する

Googleフォームで投稿されたファイルには、元のファイルだけでなく、学生の名前が自動的に付く仕様になっています(for Educationなどでログイン指定をした場合)。これは、はっきりいって邪魔なので削除するPythonスクリプトです。なお、ファイルはダウンロードしたうえでローカルで処理するアプローチです。Googleドライブ上でやってしまう場合は、GASかな。

def removeStudentNameInFile(directory):
"""
Googleフォームで投稿されたファイルから学生の名前を削除する
Args:
directory (str): ファイルが保存されているディレクトリのパス
"""
# ディレクトリ内のすべてのファイルを処理
for filename in os.listdir(directory):
# " - "の位置を検索
pos = filename.find(" - ")
if pos != -1:
# 新しいファイル名を生成
new_filename = filename[:pos] + filename[filename.rfind("."):]
# ファイル名を変更
os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
print(f'Renamed: {filename} to {new_filename}')


2024-08-05

科研:e-Radへの研究インテグリティの登録

 たまには、事務的な話でも。。。。

2025年度科研費公募から、e-Rad に登録された研究インテグリティに係る情報が科研費電子申請システムへ連携されることとなったようです。結論として、やるべきことは

  • e-Radにログインして、右上の自分の名前をクリックして研究者情報の確認・修正より、所属研究機関のタブで必要な情報を入力(確認)し、「制約状況」にチェックを入れる(ここが入ってない場合がある?)
というのが必要ということなのですが、e-Radの研究者情報画面ってどこよ?と、戸惑う人は少なくないはず(自分がそうだったので)。以下手順です
  1. 科研電子申請システムで「研究者ログイン」からログインする
  2. 応募者メニューが出てくるが、そこの画面右下の「e-Radへ戻る」をクリック(ここがポイント)
  3. そうするとe-Radの画面がでてくるので、右上の自分の名前が出てくるので、あとは最初の指示通り
と書きながら思いましたが、科研費申請の時にいつもe-Radにログインしているのなら迷うことはないのかなという気もしてきました。私は普段は、「科研電子申請システム」にブックマークをしてそこからログインしていたので、e-Rad=科研申請システムと勘違いしていたことに気づきました。

というわけで、レアケースな記事だったかもしれませんが、これで誰か一人でも救われれば幸いです。



2024-07-14

MediaPipeでFacemesh処理を実行する

 ラボでは最近、Mediapipeをよく使っていますが、そのサンプルです。

import cv2
import mediapipe as mp
mp_face_mesh = mp.solutions.face_mesh
face_mesh = mp_face_mesh.FaceMesh(static_image_mode=False, max_num_faces=1, min_detection_confidence=0.5, min_tracking_confidence=0.5)
mp_drawing = mp.solutions.drawing_utils
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
cap = cv2.VideoCapture(1)
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = face_mesh.process(frame)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
if results.multi_face_landmarks:
for face_landmarks in results.multi_face_landmarks:
mp_drawing.draw_landmarks(
image=frame,
landmark_list=face_landmarks,
connections=mp_face_mesh.FACEMESH_TESSELATION,
landmark_drawing_spec=drawing_spec,
connection_drawing_spec=drawing_spec)
cv2.imshow('Face Mesh', frame)
if cv2.waitKey(5) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
view raw mp_facemesh.py hosted with ❤ by GitHub


2024-05-24

javacコマンドで複数のjavaファイルを同時にコンパイルしたい

 

複数のjavaファイルを同時にコンパイルしたい場合は、javacコマンドの引数に複数のjavaファイル名を書いていくだけですが、数が多くなると面倒です。

よって、以下の通り、findコマンドとの組み合わせ技で解決します。

javac $(find <ここにトップディレクトリ名を書く> -name "*.java")


2024-04-12

Zoom: Screen share presenter layout 登場

Zoomのバージョンを上げたら、Screen share presenter layout が使えるようになってました。今まで、OBSとかVCamとか使って重ね合わせてましたが、そういう小賢しいテクニックも不要ですね。

画面共有をすると、右側にレイアウト設定が出てくるのでそれを設定するだけです。

いくつかパターンが選べる感じです。




2024-01-10

VCam.ai 出てます

 先日の記事で

を紹介しましたが、どうやら、VCam.aiというのをXSplitが出しているようです。もしかして、こっちの方に注力してるのかなぁ。Sonomaでも動きます。こっちのほうがやっぱり背景除去のクオリティは高い。。当たり前だけど。