CameraMonitor スタッフ用ガイド — 使い方と AI 利用

USB カメラで機器の液晶画面を拡大して撮る社内アプリ / AI が自分で写真を撮って確かめられる HTTP の窓口つき / 版 2026-10-18 / スタッフ限定・社外に出さないこと

資料: このページの PDF 版 / 編集用 Word 版

このガイドで分かること
  1. 動画で見る
  2. 何のアプリか
  3. 起動と 2 台の使い分け
  4. 画面の見方
  5. 動画の組み合わせ(DMX 連続試験・COM Port Scanner)
  6. 明るさ
  7. フォーカス
  8. 拡大の範囲(ROI)と Auto LCD
  9. 撮って保存する
  10. 回転
  11. 困ったとき
  12. AI から使う(HTTP の窓口と状態ファイル)

0. 動画で見る

CameraMonitor 使い方ガイド公開準備中

使い方ガイド(6 分 21 秒・音声つき・字幕あり)

  1. 何のためのアプリか・画面の見方・DMX 連続試験の窓と COM Port Scanner
  2. 明るさ・フォーカス
  3. 拡大の範囲と Auto LCD・撮って保存する・回転
  4. カメラ 2 台を同時に使う・AI から使う

動画では、CameraMonitor を 2 重起動してカメラ 2 台で 2 つの M5 の画面を写しています。M5 に出ている値は、パソコン側の DMX 連続試験(COM73 → COM74)が送っているものです。CameraMonitor の操作はすべて HTTP の窓口(localhost / 127.0.0.1)から行い、マウスは使っていません。右上の黒い窓に、送った命令と返事が出ています。照明には出していません。音声: VOICEVOX:No.7

1. 何のアプリか

CameraMonitor は、USB カメラの映像を見ながら、機器の液晶画面を拡大して撮るアプリです。M5 などの実機の表示を、カメラ越しに見張ったり記録したりできます。

CameraMonitor 2 台と試験の窓
図 1 動画の画面。左の上下が CameraMonitor 2 台(各カメラ全体の映像と Zoom 窓)、右の列が上から AI が送った命令の窓・DMX 連続試験・COM Port Scanner

2. 起動と 2 台の使い分け

スタートメニューの「CameraMonitor」を開きます(実体は E:\tool_cs\CameraMonitor\bin\Release\net10.0-windows\CameraMonitor.exe)。カメラを選んで Start を押すと映像が出ます。窓の位置・大きさは閉じたときの場所を覚えます。

もう 1 回起動すると #2 として開き、タイトルに #2 が付きます(最大 #4。--slot N で番号を指定)。番号ごとに置き場が分かれます。

番号HTTP設定ファイル状態ファイル保存先(exe と同じフォルダ)
#1localhost:8765camera_config.jsone:\tmp\ai_camera\CameraCapture\
#2localhost:8775camera_config_2.jsone:\tmp\ai_camera_2\CameraCapture_2\
#3 / #48785 / 8795camera_config_3.json などai_camera_3\ などCameraCapture_3\ など

3. 画面の見方

番号つきの画面
図 2 画面の各部(番号は下の表)。黄色い枠は動画の「見る場所」の印
番号部品役目
1カメラの選択DirectShow の名前。開くたびに一覧を取り直す
2Start / Stop映像の開始・停止
3Captureカメラ全体の絵を JPEG で保存(8 章)
4回転Landscape / Portrait CW 90° / Upside-down 180° / CCW 270°(9 章)
5Zoom(紫)・Auto LCD(水色)・AI Debug(オレンジ)拡大の範囲をドラッグで決める・液晶を自動で探す・検出の途中経過を保存する(7 章)
6戻すAuto LCD をかける前の範囲と向きに戻す(1 回分)
7APIこの窓の HTTP の番号(#1 は 8765)
8Auto Focus / Focus自動フォーカスの入り切りと、手動のフォーカス 0〜255(6 章)
9Auto Exp / Exposure自動露出と露出 -13〜0。動かさないのが安全(5 章)
10Brightness明るさの底上げ(5 章)
11保存先と命令の一覧保存するフォルダと、HTTP の主な命令
12カメラ全体の映像緑の枠が拡大の範囲(ROI)
13下の行いま何をしたか(Zoom の範囲、Auto LCD の結果、回転など)
14Zoom 窓拡大の範囲を大きく出す。右クリックで補間(なめらか ⇄ ドット)を切り替え
15Capture ROI拡大の範囲だけを PNG で保存(Ctrl+S でも同じ)
16(動画用)命令の窓AI が送った HTTP の命令(黄)と返事(緑)。CameraMonitor の部品ではない
17(動画用)DMX 連続試験4 章
18(動画用)COM Port Scanner4 章
右の列
図 3 右の列

4. 動画の組み合わせ(DMX 連続試験・COM Port Scanner)

動画では、CameraMonitor が写している 2 つの M5 に、パソコン側の試験で DMX を流しています。パソコンで試験をしながら、本物の機器の表示をカメラで見張る使い方です。

DMX 連続試験と COM Port Scanner
図 4 DMX 連続試験(上)と COM Port Scanner(下)
M5 の画面
図 5 カメラ 0 が写した M5 の画面(ch1-60 の値)。試験の値がそのまま出ている

5. 明るさ

Brightness(0〜255。カメラにより効く範囲が違う)は、露出を上げても暗いときの底上げです。動画ではカメラ 0 を 48 → 80 → 48、カメラ 1 を 32 → 48 → 32 にしました。値は設定ファイルに保存され(変えてから 2 秒ほどで書く)、次に開いたときも同じになります。

明るさ 80
図 6 カメラ 0 の Brightness を 80 に上げたところ。全体が明るくなる
露出(Exposure・Auto Exp)は動かさないのが安全です。カメラ 1(USB Camera)では、露出を変えると映像が真っ黒のまま戻らないことがありました。黒くなったときの直し方は 10 章。

6. フォーカス

Auto Focus に印があると自動フォーカス。印を外すか Focus のつまみ(0〜255)を動かすと手動になります。動画ではカメラ 0 の自動を切って 80 にするとぼけ、32 に戻すとくっきりしました(最後に自動を入れ直す)。カメラ 1 は手動フォーカスで使っていて、22 から 40 にするとぼけ、22 に戻すと合います。

フォーカス 80
図 7 Focus 80。Zoom 窓の文字がぼける

AI は、Focus を少しずつ変えながら拡大の絵を読み、いちばんくっきりする値(ラプラシアン分散が最大の値)を選ぶこともできます。

7. 拡大の範囲(ROI)と Auto LCD

範囲を決める

Zoom を押して、映像の上をドラッグすると範囲が決まり、Zoom 窓に大きく出ます(8×8 画素以上)。座標は回転した後の画像の画素です。画像の大きさは /status の image で分かります。

範囲を上半分に
図 8 拡大の範囲を M5 の上半分の数字だけにした(AI からは /roi?x=930&y=290&w=650&h=330)

Auto LCD と戻す

Auto LCD は、液晶の画面を自動で探して、向き(4 方向)を直し、範囲を決めます(暗い背景に明るい表示が前提)。カメラ 0 では M5 の画面を見つけました。カメラ 1 では、画面全体ではなく、明るい一部の帯(バーグラフや経過時間の所)だけを選びました。思った所を選ぶとは限らないので、結果を確かめ、違えば「戻す」か範囲の指定で直します。

カメラ 1 の Auto LCD
図 9 カメラ 1 の Auto LCD。M5 の画面の一部だけを選んだ

AI Debug は Auto LCD と同じことをして、検出の途中の絵と選んだ理由を CameraCapture\ai_debug_<日時>\(frame.png・mask.png・contours.png・roi.png・info.json)に保存します。うまく選ばないときの調べに使います。

8. 撮って保存する

操作保存するものファイル名
Capture(AI: /capture)カメラ全体の絵(JPEG)cap_<日時>_<連番>.jpg
Zoom 窓の Capture ROI・Ctrl+S(AI: /zoomcapture)拡大の範囲だけ(劣化の無い PNG)zoom_<日時>_<連番>_<x>x<y>_<w>x<h>.png
連写(AI: /burst)決めた時刻の前後をカメラの全部のフレームで(最大 120 秒)burst_<開始時刻>\ に JPEG と index.csv

保存先は exe と同じフォルダの CameraCapture\(#2 は CameraCapture_2\)。AI から保存したときは、返事に保存した場所が出ます。

保存の返事
図 10 /capture と /zoomcapture の返事(保存したファイルの場所)

9. 回転

カメラの付け方に合わせて、表示を 90 度ずつ回します。動画のカメラ 0 は逆さに付けているので 180 度、カメラ 1 は縦に付けているので 90 度です。拡大の範囲は回した後の座標なので、向きを変えると別の所が映ります。

回転 0 度
図 11 カメラ 0 を 0 度にした。映像が上下逆さになり、Zoom 窓には別の所が映る

10. 困ったとき

症状見るところ・直しかた
映像が真っ黒のまま(/meter?full=1 の max が 0)そのカメラを開き直す。#2 なら curl "localhost:8775/camera?i=1"(i はカメラの番号)。5 秒ほど待って /meter?full=1 で確かめる。カメラ 1 では、露出を触っていないときにも起きたことがある
下の行に「⚠ 映像が来ない」USB の帯域。2 台を同じ USB 2.0 ハブにつないでいないか
2 台目が別のカメラを開いた・開かない別の CameraMonitor が使っているカメラは開かない。/cameras の used_by_other_instance
Auto LCD が違う所を選ぶ「戻す」か範囲を手で指定。液晶が光っているか、フォーカスが合っているか。AI Debug の contours.png で候補を見る
暗いBrightness を上げる(5 章)
ぼけるAuto Focus を切って Focus を合わせる(6 章)

11. AI から使う

CameraMonitor は、AI(Claude Code など)が HTTP の窓口から読み取り・操作できます。動画の操作もすべてこの方法で行っています。窓口はこのパソコンの中だけ(localhost)、#1 は 8765、#2 は 8775 です。どれも GET で呼べます。

パス内容
/help全部の命令と使い方(JSON)。AI はまずこれを読む
/status状態(JSON): running・slot・camera_name・focus・autoFocus・exposure・autoExposure・brightness・rotate・image・roi・captures・burst
/snap?q=80 /zoomsnap?q=92全体 / 拡大の範囲の絵を JPEG で直接返す(保存しない)。範囲が無いと 409
/capture /zoomcapture全体 / 拡大の範囲を保存して場所を返す
/roi?x=&y=&w=&h= /roi /roi?clear=1拡大の範囲を決める(Zoom 窓が開く)・今の範囲・範囲を消す(Zoom 窓が閉じる)
/autolcd[?debug=1]Auto LCD。debug=1 で ai_debug を保存
/brightness?v= /focus?v= /autofocus?v=0|1 /rotate?v=0|90|180|270明るさ・フォーカス(自動は切れる)・自動フォーカス・回転
/meter[?full=1]拡大の範囲(full=1 で全体)の明るさの数字(mean・max・min・saturation_pct・hist16)。照明の調光カーブを測るときに使う
/cameras /camera?i=N /start /stopカメラの一覧と使われ方・カメラ N を開く・開き直す・止める
/burst?at=HH:mm:ss&pre=5&post=10連写(8 章)
/exposure /autoexposure /gamma /gain /wb露出など。カメラ 1 で映像が黒くなることがあったので、ふだんは触らない
curl -s http://localhost:8765/status
curl -s "http://localhost:8765/roi?x=900&y=225&w=705&h=700"
curl -s "http://localhost:8765/zoomsnap?q=92" -o roi.jpg
curl -s http://localhost:8765/meter
curl -s http://localhost:8775/cameras
cameras の返事
図 12 /cameras の返事。カメラ 0 は別の CameraMonitor(#1)が使っている
状態ファイル
図 13 /help の先頭と、状態ファイル latest.txt の中身

状態ファイル

e:\tmp\ai_camera\(#2 は ai_camera_2\)に 2 秒ごとに書き出しています。AI はここを読むだけで、カメラの様子が分かります。

AI への頼み方の例

止まっているときや再ビルドは、AI が tools/restart_app.ps1 -AppName CameraMonitor で強制停止 → ビルド → 起動できます(開発担当の作業です)。

CameraMonitor 2026-10-18 / スタッフ限定。図と動画の画面は、カメラ 2 台で M5 の画面を写し、CameraMonitor を HTTP(localhost)から操作して撮った画面です(図は動画から切り出したもの)。概要は同じフォルダの OVERVIEW.md、以前の取説は 取扱説明書_CameraMonitor.html。