csi --- カメラセンサー

csi モジュールは、OpenMV Cam 上のカメラセンサーに対する、現代的でオブジェクト指向のインターフェースです。各物理センサーは CSI インスタンスで表現されるため、カラーセンサーとサーマルセンサーまたはイベントセンサーを組み合わせたマルチスペクトルイメージャーボードでは、コンストラクタに異なる cid を渡すことで各センサーを独立して制御できます。単一センサーのカメラでは CSI を1つだけインスタンス化します。

CSI オブジェクトは、ピクセルフォーマット、フレームサイズ/ウィンドウ、露出/ゲイン/ホワイトバランス、ハードウェアによるミラーおよびフリップ、カラーバーテストパターン、フレームレートクロック、自動露出用のROI、チップ固有の ioctl コマンドなど、センサー設定全体を所有します。フレームは CSI.snapshot() でキャプチャされ、フレームバッファに裏付けられた image.Image を返します。

このモジュールは、従来の sensor モジュール(同じ機能を、単一の隠れたセンサーに紐付いたモジュールレベルの関数として公開していたもの)を置き換えます。新しいコードでは CSI を使用してください。

使用例:

import csi

# Setup camera.
csi0 = csi.CSI()
csi0.reset()
csi0.pixformat(csi.RGB565)
csi0.framesize(csi.QVGA)
csi0.snapshot(time=2000)  # skip frames

# Take pictures.
while(True):
    csi0.snapshot()

asyncio での使用

上記のブロッキングな CSI.snapshot() ループは、asyncio イベントループと協調しません。snapshot が次のフレームを待っている間、プログラム内の他のすべてのコルーチンは凍結されます。キャプチャループを他の並行作業(UARTクライアント、ボタン監視、ネットワークタスクなど)と共存させるには、CSI を小さなアダプタでラップし、snapshot(blocking=False) をポーリングしてチェックの合間にイベントループへ制御を譲ることで、snapshotawait 可能なコルーチンに変換します:

import asyncio
import csi


class AsyncCSI:
    def __init__(self, *args, **kwargs):
        self._csi = csi.CSI(*args, **kwargs)

    def __getattr__(self, name):
        return getattr(self._csi, name)

    async def snapshot(self):
        while True:
            img = self._csi.snapshot(blocking=False)
            if img is not None:
                return img
            await asyncio.sleep_ms(0)

__getattr__ は他のすべての属性(resetpixformatframesize、各センサー調整項目)を、その下にある CSI へ転送するため、このラッパーはそのまま置き換えて使えます。最初の非ブロッキング呼び出しでは、カメラのDMAキャプチャがまだ動作していなければそれも開始されるため、追加の初期化処理は不要です。

キャプチャループは、より大きな asyncio プログラムの中に、もう1つのコルーチンとして組み込めます:

async def capture_loop(cam):
    while True:
        img = await cam.snapshot()
        # process img here

async def main():
    cam = AsyncCSI()
    cam.reset()
    cam.pixformat(csi.RGB565)
    cam.framesize(csi.QVGA)

    asyncio.create_task(some_other_task())
    await capture_loop(cam)

asyncio.run(main())

この形でも framebuffers 設定は依然として重要です。単一バッファモードでは、次のフレームがキャプチャされるまで snapshot(blocking=False)None を返しますが、ダブルバッファまたはトリプルバッファではそれが平滑化され、通常ラッパーは最初のポーリングでバッファ済みのフレームが待機しているのを見つけます。完全な手順については、asyncio チュートリアルの AsyncCSI キャップストーンを参照してください。

class CSI -- カメラセンサーインターフェース

CSI クラスは、カメラセンサーを制御するために使用します。

class csi.CSI(cid: int = -1, delays: bool = True, fflush: bool = True, stream: bool | None = None)

カメラセンサーと通信するオブジェクトを作成します。複数のセンサーを搭載したボードでは、FLIR Lepton センサーモジュールを選択するために csi.LEPTON のような cid を渡すことで、特定の CSI オブジェクトを選択できます。cid が -1 の場合は、プライマリセンサー(マルチセンサーボードでは通常カラーカメラモジュール)が選択されます。

delaysFalse の場合、csi ドライバ内のすべての安定化待ち時間が無効になります。デフォルトでは、CSI.snapshot が破損したフレームを返さないように、センサードライバはリセットやモード変更の後に待機します。遅延を無効にすると、更新をまとめて行い、CSI.snapshot を呼ぶ前に最後に一度だけ遅延を適用できます。

fflushFalse の場合、CSI.framebuffers で言及されている自動フレームバッファフラッシュが無効になります。これにより、フレームバッファFIFO内のフレームに対する時間制限がなくなります。

stream は、この CSI を IDE へ送るストリームソースにするかどうかを選択します。None(デフォルト)の場合、この CSI がプライマリ(非補助)センサーである場合にのみストリームソースになります。True を渡すとこの CSI を強制的にストリームソースにし、偽値を渡すと既存のストリームソースを変更しません。

メソッド

reset(hard: bool = True) None

カメラセンサーを初期化します。hardTrue の場合、カメラモジュールへの RESET 信号 GPIO をトグルしてハードウェアリセットを実行します。プライマリモジュールと同じ RESET 信号 GPIO を共有する補助カメラセンサーをリセットする場合は、hard を false に設定してください。

shutdown(enable: bool) None

カメラをスリープよりも低い消費電力モードにします(ただし、復帰時にカメラをリセットする必要があります)。

sleep(enable: bool) None

enable が True の場合、カメラをスリープさせます。それ以外の場合は再び起動します。

flush() None

現在のフレームバッファの内容を IDE のプレビューにコピーします。スクリプトが終了する際に IDE が最後のフレームを表示するように、最後の CSI.snapshot の後にこれを呼び出してください。

snapshot(time: int = -1, frames: int = -1, blocking: bool = True, image: image.Image | None = None) image.Image | None

カメラで写真を撮影し、image.Image オブジェクトを返します。

time および/または frames が渡された場合、snapshot はその time ミリ秒および/またはカメラからキャプチャした frames フレーム分だけブロックします。両方の引数を同時に使用することもできます。time および/または frames が経過すると、snapshot は None を返します。

blockingFalse にすると非ブロッキング動作が有効になり、カメラからの次の画像が準備できていない場合、snapshot は待機する代わりに None を返します。

image には、新しい image.Image オブジェクトを返す代わりに、カメラからキャプチャした新しい画像で更新する別の image.Image オブジェクトを指定できます。以前の画像内容はディープコピーによって上書きされます。

CSI.auto_rotation が有効な場合、このメソッドは既に回転された image.Image を返します。

width() int

センサー解像度の幅を返します。

height() int

センサー解像度の高さを返します。

cid() int

カメラモジュールのチップ ID を返します。csi.OV2640csi.OV5640csi.OV7670csi.OV7690csi.OV7725csi.OV9650csi.MT9V022csi.MT9V024csi.MT9V032csi.MT9V034csi.MT9M114csi.BOSON320csi.BOSON640csi.LEPTONcsi.HM01B0csi.HM0360csi.GC2145csi.GENX320EScsi.GENX320csi.PAG7920csi.PAG7936csi.PAJ6100csi.FROGEYE2020csi.SOFTCSI のいずれかと比較してください。

readable() bool

CSI.snapshot で返せる画像が準備できている場合、つまり snapshot の呼び出しがブロックしない場合に True を返します。

pixformat(pixformat: int | None = None) int | None

カメラモジュールのピクセルフォーマットを csi.GRAYSCALEcsi.RGB565csi.BAYERcsi.YUV422csi.JPEG(OV2640/OV5640 のみ)のいずれかに設定します。

引数なしで呼び出された場合は、現在の pixformat を返します。

framesize(framesize: int | Tuple[int, int] | None = None) int | None

カメラモジュールのフレームサイズをサイズ定数のいずれか(例: csi.QVGAcsi.VGAcsi.HD など --- 定数のセクションを参照)に設定します。

あるいは、カスタムフレームサイズを (w, h) タプルとして渡すこともできます。CSI.snapshot が呼び出されると、カスタムフレームサイズが DMA ルールに照らして評価されます。一般に、フレームサイズは8ピクセルおよび/または16バイトの倍数である必要があります。

引数なしで呼び出された場合は、現在の framesize を返します。

framerate(rate: int | None = None) int | None

カメラモジュールのフレームレートを Hz 単位で設定します。

引数なしで呼び出された場合は、現在の framerate を返します。

注釈

CSI.framerate は、カメラモジュールから受信したフレームを破棄することで、フレームレートを指定したレート以下に保つように動作します。デフォルトでは、カメラは最大フレームレートで動作します。特定のカメラセンサーで実装されている場合、CSI.framerate はカメラセンサーのフレームレートを内部的にも下げ、消費電力を抑えるとともにセンサーの露出を増やすことで画質を向上させます。一部のカメラでは、CSI.framerateCSI.auto_exposure と競合する場合があります。

window(roi: Tuple[int, int] | Tuple[int, int, int, int] | None = None) Tuple[int, int, int, int] | None

カメラの解像度を現在の解像度のサブ領域に設定します。roi(x, y, w, h) タプルです。(w, h) を渡すこともでき、その場合ウィンドウは中央に配置されます。

引数なしで呼び出された場合は、現在の (x, y, w, h) タプルを返します。

gainceiling(gainceiling: int) bool

カメラ画像のゲインシーリングを 2、4、8、16、32、64、128 のいずれかに設定します。

成功時には True、失敗時には False を返します。

brightness(brightness: int) bool

カメラ画像の明るさを設定します。

成功時には True、失敗時には False を返します。

contrast(contrast: int) bool

カメラ画像のコントラストを設定します。

成功時には True、失敗時には False を返します。

saturation(saturation: int) bool

カメラ画像の彩度を設定します。

成功時には True、失敗時には False を返します。

quality(quality: int) bool

カメラ画像の JPEG 圧縮品質を設定します。0 ~ 100 です。

成功時には True、失敗時には False を返します。

注釈

OV2640/OV5640 カメラのみ対応します。

colorbar(enable: bool) bool

カラーバーモードをオン(True)またはオフ(False)にします。デフォルトはオフです。

成功時には True、失敗時には False を返します。

auto_gain(enable: bool, gain_db: float | None = None, gain_db_ceiling: float | None = None) None

enable は自動ゲイン制御をオン(True)またはオフ(False)にします。カメラは自動ゲイン制御がオンの状態で起動します。

enableFalse の場合、gain_db で固定ゲインをデシベル単位で設定できます。

enableTrue の場合、gain_db_ceiling で自動ゲイン制御アルゴリズムの最大ゲインシーリングをデシベル単位で設定できます。

注釈

カラーを追跡したい場合は、ホワイトバランスもオフにする必要があります。

gain_db() float

現在のカメラゲイン値をデシベル単位で返します。

auto_exposure(enable: bool, exposure_us: int = -1) None

enable は自動露出制御をオン(True)またはオフ(False)にします。カメラは自動露出制御がオンの状態で起動します。

enableFalse の場合、exposure_us で固定露出時間をマイクロ秒単位で設定できます。

注釈

カメラの自動露出アルゴリズムは露出値の調整量についてかなり保守的で、一般に露出値を大きく変更することを避けます。代わりに、変化する照明に対応するためにゲイン値を大きく変更します。

exposure_us() int

現在のカメラ露出値をマイクロ秒単位で返します。

auto_whitebal(enable: bool, rgb_gain_db: Tuple[float, float, float] | None = None) None

enable は自動ホワイトバランスをオン(True)またはオフ(False)にします。カメラは自動ホワイトバランスがオンの状態で起動します。

enableFalse の場合、rgb_gain_db で赤、緑、青の各チャンネルの固定ゲインをそれぞれデシベル単位で設定できます。

注釈

カラーを追跡したい場合は、ゲイン制御もオフにする必要があります。

rgb_gain_db() Tuple[float, float, float]

現在のカメラの赤、緑、青のゲイン値をデシベル単位で表したタプル (r, g, b) を返します。

auto_blc(enable: bool, regs: List[int] | None = None) None

カメラの自動ブラックレベルキャリブレーション(BLC)を設定します。

enable には True または False を渡して BLC をオンまたはオフにします。通常は常にオンにしておくのが望ましいです。

regs を無効にした場合、以前の CSI.blc_regs の呼び出しから得た BLC レジスタ値を手動で設定できます。

blc_regs() List[int]

センサーの BLC レジスタを整数のリストとして返します。CSI.auto_blc で使用します。

hmirror(enable: bool | None = None) bool | None

水平ミラーモードをオン(True)またはオフ(False)にします。デフォルトはオフです。

引数なしで呼び出された場合は、現在の設定を返します。

vflip(enable: bool | None = None) bool | None

垂直フリップモードをオン(True)またはオフ(False)にします。デフォルトはオフです。

引数なしで呼び出された場合は、現在の設定を返します。

transpose(enable: bool | None = None) bool | None

転置モードをオン(True)またはオフ(False)にします。デフォルトはオフです。

  • vflip=False, hmirror=False, transpose=False -> 0度回転

  • vflip=True, hmirror=False, transpose=True -> 90度回転

  • vflip=True, hmirror=True, transpose=False -> 180度回転

  • vflip=False, hmirror=True, transpose=True -> 270度回転

引数なしで呼び出された場合は、現在の設定を返します。

auto_rotation(enable: bool | None = None) bool | None

自動回転モードをオン(True)またはオフ(False)にします。デフォルトはオフです。

引数なしで呼び出された場合は、現在の設定を返します。

注釈

このメソッドは、OpenMV Cam に imu が搭載されている場合にのみ動作し、自動的に有効になります。

framebuffers(count: int | None = None) int | None

画像データの受信に使用するフレームバッファの数を設定します。デフォルトでは、OpenMV Cam は確保できる最大数のフレームバッファを割り当てようとします。再割り当ては、CSI.pixformatCSI.framesizeCSI.window が呼び出されるたびに発生します。

count が 1(単一バッファ)、2(ダブルバッファ)、3(トリプルバッファ)の場合、対応するキャプチャモードを選択します。4 以上を渡すと、ドライバは count 個のバッファをキューに入れるビデオ FIFO モードになります --- SD カードへのビデオ録画に便利です。フレームドロップ時には、アクティブなものを除くすべてのフレームバッファがクリアされるため、CSI.snapshot は常に最近のフレームを返します。

引数なしで呼び出された場合は、現在の count を返します。

special_effect(effect: int) bool

特殊なデジタルエフェクト(csi.NORMAL または csi.NEGATIVE のいずれか)を設定します。

成功時には True、失敗時には False を返します。

lens_correction(enable: bool, radi: int, coef: int) bool

enableTrue を指定すると有効、False で無効になります。radi は補正するピクセルの半径(整数)です。coef は補正の強さです。

成功時には True、失敗時には False を返します。

vsync_callback(cb: Callable[[int], None] | None = None) Callable[[int], None] | None

カメラモジュールが新しいフレームを生成するたびに(ただしフレームを受信する前に)、コールバック cb が(割り込みコンテキストで)実行されるように登録します。

cb は1つの引数を取り、変化後の vsync ピンの現在の状態が渡されます。

引数なしで呼び出された場合は、登録されたコールバックを返します。コールバックをクリアするには、呼び出し不可能な任意の値を渡してください。

frame_callback(cb: Callable[[], None] | None = None) Callable[[], None] | None

カメラモジュールが新しいフレームを生成し、そのフレームが CSI.snapshot で読み取れる状態になるたびに、コールバック cb が(割り込みコンテキストで)実行されるように登録します。

cb は引数を取りません。これを使って、後で micropython.schedule() でフレームを読み取るようにスケジュールします。

引数なしで呼び出された場合は、登録されたコールバックを返します。コールバックをクリアするには、呼び出し不可能な任意の値を渡してください。

ioctl(request: int, *args) Any

センサー固有のリクエストを実行します。requestIOCTL_* 定数のいずれかで、残りの位置引数と戻り値はリクエストによって異なります。サポートされているリクエストは、以下にセンサーファミリーごとにグループ分けされています。

汎用(任意のセンサー):

ioctl(IOCTL_SET_READOUT_WINDOW, (x, y, w, h))

ioctl(IOCTL_SET_READOUT_WINDOW, (w, h))

センサーの読み出しウィンドウを設定します。ウィンドウを小さくすると、視野を犠牲にフレームレートが向上します。

ioctl(IOCTL_GET_READOUT_WINDOW)

現在の読み出しウィンドウを (x, y, w, h) タプルとして返します。

ioctl(IOCTL_SET_TRIGGERED_MODE, enable)

MT9V034 のトリガーモードを有効(True)または無効(False)にします。

ioctl(IOCTL_GET_TRIGGERED_MODE)

現在のトリガーモードの状態を bool として返します。

ioctl(IOCTL_SET_FOV_WIDE, enable)

True の場合、framesize() にフレームレートよりも視野を優先して最適化するよう指示します。

ioctl(IOCTL_GET_FOV_WIDE)

現在の FOV ワイド状態を bool として返します。

ioctl(IOCTL_SET_NIGHT_MODE, enable)

センサーの低照度「ナイトモード」を有効(True)または無効(False)にします。OV7725 と OV5640 のみ対応します。

ioctl(IOCTL_GET_NIGHT_MODE)

現在のナイトモードの状態を bool として返します。

ioctl(IOCTL_GET_RGB_STATS)

センサーから読み取った生の RGB チャンネル統計の4タプル (r, gb, gr, b) を返します(通常はホワイトバランス調整に使用されます)。

OV5640 FPC -- オートフォーカス:

ioctl(IOCTL_TRIGGER_AUTO_FOCUS)

OV5640 FPC モジュールでオートフォーカススイープを開始します。

ioctl(IOCTL_PAUSE_AUTO_FOCUS)

進行中のオートフォーカススイープを一時停止します。

ioctl(IOCTL_RESET_AUTO_FOCUS)

オートフォーカス位置をデフォルトにリセットします。

ioctl(IOCTL_WAIT_ON_AUTO_FOCUS)

ioctl(IOCTL_WAIT_ON_AUTO_FOCUS, timeout_ms)

現在のオートフォーカススイープが完了するまでブロックします。timeout_ms を省略した場合のデフォルトは 5000 です。

FLIR Lepton:

ioctl(IOCTL_LEPTON_GET_WIDTH)

Lepton 画像の幅をピクセル単位で返します。

ioctl(IOCTL_LEPTON_GET_HEIGHT)

Lepton 画像の高さをピクセル単位で返します。

ioctl(IOCTL_LEPTON_GET_RADIOMETRY)

Lepton のタイプ(放射計測対応かどうか)を int として返します。

ioctl(IOCTL_LEPTON_GET_REFRESH)

Lepton のリフレッシュレートを Hz 単位で返します。

ioctl(IOCTL_LEPTON_GET_RESOLUTION)

Lepton の ADC 解像度をビット単位で返します。

ioctl(IOCTL_LEPTON_RUN_COMMAND, cmd)

FLIR Lepton SDK コマンドを実行します。cmd は SDK で定義された16ビットのコマンド ID です。

ioctl(IOCTL_LEPTON_SET_ATTRIBUTE, attr_id, payload)

Lepton SDK 属性を書き込みます。attr_id は16ビットの属性 ID、payload は長さが16ビットの倍数でなければならない bytesbytearray です。

ioctl(IOCTL_LEPTON_GET_ATTRIBUTE, attr_id, words)

Lepton SDK 属性を読み取ります。attr_id は16ビットの属性 ID、words は読み取る16ビットワードの数です。bytearray を返します。

ioctl(IOCTL_LEPTON_GET_FPA_TEMP)

Lepton の焦点面アレイ温度を摂氏で返します。

ioctl(IOCTL_LEPTON_GET_AUX_TEMP)

Lepton の補助温度を摂氏で返します。

ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled)

ioctl(IOCTL_LEPTON_SET_MODE, measurement_enabled, high_temp_enabled)

Lepton を AGC と直接温度出力の間で切り替えます。measurement_enabled=True で直接温度出力が有効になります。オプションの high_temp_enabled フラグは高温レンジを選択します。

ioctl(IOCTL_LEPTON_GET_MODE)

2タプル (measurement_enabled, high_temp_enabled) を返します。

ioctl(IOCTL_LEPTON_SET_RANGE, (min_celsius, max_celsius))

測定モードが有効なときに 0..255 にマッピングされる温度範囲を設定します。

ioctl(IOCTL_LEPTON_GET_RANGE)

現在の (min_celsius, max_celsius) 範囲を返します。

Himax HM01B0 -- モーション検出:

ioctl(IOCTL_HIMAX_MD_ENABLE, enable)

HM01B0 のオンセンサーモーション検出ブロックを有効(True)または無効(False)にします。

ioctl(IOCTL_HIMAX_MD_WINDOW, (x, y, w, h))

ioctl(IOCTL_HIMAX_MD_WINDOW, (w, h))

HM01B0 のモーション検出ウィンドウを設定します。

ioctl(IOCTL_HIMAX_MD_THRESHOLD, threshold)

モーション検出のしきい値(0255)を設定します。

ioctl(IOCTL_HIMAX_MD_CLEAR)

モーション検出の割り込みラッチをクリアします。

ioctl(IOCTL_HIMAX_OSC_ENABLE, enable)

HM01B0 の内蔵オシレーターを有効(True)または無効(False)にします。

Prophesee GENX320 -- イベントセンサー:

ioctl(IOCTL_GENX320_SET_BIASES, preset)

バイアスプリセットを適用します。presetGENX320_BIASES_* 定数のいずれかです。

ioctl(IOCTL_GENX320_SET_BIAS, bias, value)

単一のバイアスを設定します。biasGENX320_BIAS_* 定数のいずれか、value は整数の設定値です。

ioctl(IOCTL_GENX320_SET_AFK, enable)

ioctl(IOCTL_GENX320_SET_AFK, enable, freq_low_hz, freq_high_hz)

アンチフリッカーフィルタを設定します。enable は bool で、オプションの周波数引数はフィルタの通過帯域を設定します。

ioctl(IOCTL_GENX320_SET_STC, mode)

ioctl(IOCTL_GENX320_SET_STC, mode, arg1[, arg2])

時空間コントラストフィルタを設定します。modeGENX320_STC_* 定数のいずれかで、最大2つのさらなる引数はモード固有です。

ioctl(IOCTL_GENX320_SET_MODE, mode)

ioctl(IOCTL_GENX320_SET_MODE, mode, evt_res)

センサーをフレームモードとイベントモードの間で切り替えます。modeGENX320_MODE_* 定数のいずれかです。イベントモードの場合、evt_resIOCTL_GENX320_READ_EVENTS に渡されるイベントバッファの行軸方向の長さです。

ioctl(IOCTL_GENX320_READ_EVENTS, buf)

イベントを、形状 (EVT_res, 6)uint16 型の ndarray である buf に読み込みます。EVT_res は 1024 から 65536 の間の2のべき乗です。各列は次のとおりです:

  • [0] -- イベントタイプ(PIX_OFF_EVENT / PIX_ON_EVENT / トリガー)。

  • [1] -- 秒。

  • [2] -- ミリ秒。

  • [3] -- マイクロ秒。

  • [4] -- x 座標。

  • [5] -- y 座標。

書き込まれたイベントの数を返します。

ioctl(IOCTL_GENX320_READ_EVENTS_RAW)

GENX320 からの生のイベントフレームを含む image.Image を返します。

ioctl(IOCTL_GENX320_CALIBRATE, iterations, sigma)

ノイズが正規分布から sigma 標準偏差を超えるピクセルをオフにします。iterations はキャリブレーションパスの整数回数です。無効にされたピクセルの数を返します。

color_palette(palette: int | None = None) int | None

FLIR Lepton のグレースケールから RGB565 への変換や GENX320 のイベント可視化などに使用するカラーパレットを設定します。image.PALETTE_RAINBOWimage.PALETTE_IRONBOW、および(サポートされている場合)image.PALETTE_DEPTHimage.PALETTE_EVT_DARKimage.PALETTE_EVT_LIGHT のいずれかです。

引数なしで呼び出された場合は、現在の設定を返します。

__write_reg(address: int, value: int) None

value をカメラの address のレジスタに書き込みます。

注釈

レジスタ情報についてはカメラのデータシートを参照してください。

__read_reg(address: int) int

address のカメラレジスタを読み取ります。

注釈

レジスタ情報についてはカメラのデータシートを参照してください。

関数

csi.devices() List[int]

検出されたセンサーのチップ ID のリストを返します。

定数

csi.BINARY: int

BINARY(ビットマップ)ピクセルフォーマット。各ピクセルは1ビットです。マスクの保存に便利で、image.Image() で使用できます。

csi.GRAYSCALE: int

GRAYSCALE ピクセルフォーマット(YUV422 の Y)。各ピクセルは8ビットです。

csi.RGB565: int

RGB565 ピクセルフォーマット。各ピクセルは16ビット(赤5ビット、緑6ビット、青5ビット)です。

csi.BAYER: int

RAW BAYER 画像ピクセルフォーマット。

csi.YUV422: int

YUV422 ピクセルフォーマット。各ピクセルは、グレースケールの8ビット Y 値の後に、2つの Y 値間で共有される交互の8ビット U/V カラー値が続く形で保存されます(Y1, U, Y2, V, ...)。一部の画像処理メソッドのみが YUV422 に対応しています。

csi.JPEG: int

JPEG モード。カメラモジュールは圧縮された JPEG 画像を出力します。JPEG 品質を制御するには CSI.quality を使用してください。OV2640/OV5640 カメラでのみ動作します。

csi.OV2640: int

OV2640 カメラの場合、CSI.cid はこれを返します。

csi.OV5640: int

OV5640 カメラの場合、CSI.cid はこれを返します。

csi.OV7670: int

OV7670 カメラの場合、CSI.cid はこれを返します。

csi.OV7690: int

OV7690 カメラの場合、CSI.cid はこれを返します。

csi.OV7725: int

OV7725 カメラの場合、CSI.cid はこれを返します。

csi.OV9650: int

OV9650 カメラの場合、CSI.cid はこれを返します。

csi.MT9V022: int

MT9V022 カメラの場合、CSI.cid はこれを返します。

csi.MT9V024: int

MT9V024 カメラの場合、CSI.cid はこれを返します。

csi.MT9V032: int

MT9V032 カメラの場合、CSI.cid はこれを返します。

csi.MT9V034: int

MT9V034 カメラの場合、CSI.cid はこれを返します。

csi.MT9M114: int

MT9M114 カメラの場合、CSI.cid はこれを返します。

csi.BOSON320: int

BOSON 320x256 カメラの場合、CSI.cid はこれを返します。

csi.BOSON640: int

BOSON 640x512 カメラの場合、CSI.cid はこれを返します。

csi.LEPTON: int

LEPTON1/2/3 カメラの場合、CSI.cid はこれを返します。

csi.HM01B0: int

HM01B0 カメラの場合、CSI.cid はこれを返します。

csi.HM0360: int

HM0360 カメラの場合、CSI.cid はこれを返します。

csi.GC2145: int

GC2145 カメラの場合、CSI.cid はこれを返します。

csi.GENX320ES: int

GENX320(エンジニアリングサンプル)カメラの場合、CSI.cid はこれを返します。

csi.GENX320: int

GENX320 カメラの場合、CSI.cid はこれを返します。

csi.PAG7920: int

PAG7920 カメラの場合、CSI.cid はこれを返します。

csi.PAG7936: int

PAG7936 カメラの場合、CSI.cid はこれを返します。

csi.PAJ6100: int

PAJ6100 カメラの場合、CSI.cid はこれを返します。

csi.FROGEYE2020: int

FROGEYE2020 カメラの場合、CSI.cid はこれを返します。

csi.SOFTCSI: int

ソフトウェア CSI カメラの場合、CSI.cid はこれを返します。

csi.NORMAL: int

CSI.special_effect のノーマルモード。

csi.NEGATIVE: int

CSI.special_effect のネガティブモード。

csi.QCIF: int

カメラセンサーの 176x144 解像度。

csi.CIF: int

カメラセンサーの 352x288 解像度。

csi.QSIF: int

カメラセンサーの 176x120 解像度。

csi.SIF: int

カメラセンサーの 352x240 解像度。

csi.QQQVGA: int

カメラセンサーの 80x60 解像度。

csi.QQVGA: int

カメラセンサーの 160x120 解像度。

csi.QVGA: int

カメラセンサーの 320x240 解像度。

csi.VGA: int

カメラセンサーの 640x480 解像度。

csi.HQVGA: int

カメラセンサーの 240x160 解像度。

csi.HVGA: int

カメラセンサーの 480x320 解像度。

csi.WVGA: int

MT9V034 カメラセンサーの 720x480 解像度。

csi.WVGA2: int

MT9V034 カメラセンサーの 752x480 解像度。

csi.SVGA: int

カメラセンサーの 800x600 解像度。

csi.XGA: int

カメラセンサーの 1024x768 解像度。

csi.WXGA: int

MT9M114 カメラセンサーの 1280x768 解像度。

csi.SXGA: int

カメラセンサーの 1280x1024 解像度。OV2640/OV5640 カメラでのみ動作します。

csi.SXGAM: int

MT9M114 カメラセンサーの 1280x960 解像度。

csi.UXGA: int

カメラセンサーの 1600x1200 解像度。OV2640/OV5640 カメラでのみ動作します。

csi.HD: int

カメラセンサーの 1280x720 解像度。

csi.FHD: int

カメラセンサーの 1920x1080 解像度。OV5640 カメラでのみ動作します。

csi.QHD: int

カメラセンサーの 2560x1440 解像度。OV5640 カメラでのみ動作します。

csi.QXGA: int

カメラセンサーの 2048x1536 解像度。OV5640 カメラでのみ動作します。

csi.WQXGA: int

カメラセンサーの 2560x1600 解像度。OV5640 カメラでのみ動作します。

csi.WQXGA2: int

カメラセンサーの 2592x1944 解像度。OV5640 カメラでのみ動作します。

csi.IOCTL_SET_READOUT_WINDOW: int

読み出しウィンドウを設定します。CSI.ioctl を参照してください。

csi.IOCTL_GET_READOUT_WINDOW: int

読み出しウィンドウを取得します。CSI.ioctl を参照してください。

csi.IOCTL_SET_TRIGGERED_MODE: int

MT9V034 のトリガーモードを設定します。CSI.ioctl を参照してください。

csi.IOCTL_GET_TRIGGERED_MODE: int

MT9V034 のトリガーモードの状態を取得します。CSI.ioctl を参照してください。

csi.IOCTL_SET_FOV_WIDE: int

CSI.framesize が FPS よりも視野を優先して最適化するようにします。CSI.ioctl を参照してください。

csi.IOCTL_GET_FOV_WIDE: int

CSI.framesize が FPS よりも視野を優先して最適化しているかどうかを返します。CSI.ioctl を参照してください。

csi.IOCTL_TRIGGER_AUTO_FOCUS: int

OV5640 FPC カメラモジュールでオートフォーカスをトリガーします。CSI.ioctl を参照してください。

csi.IOCTL_PAUSE_AUTO_FOCUS: int

OV5640 FPC カメラモジュールで(実行中の)オートフォーカスを一時停止します。CSI.ioctl を参照してください。

csi.IOCTL_RESET_AUTO_FOCUS: int

OV5640 FPC カメラモジュールでオートフォーカスをデフォルトにリセットします。CSI.ioctl を参照してください。

csi.IOCTL_WAIT_ON_AUTO_FOCUS: int

OV5640 FPC カメラモジュールでオートフォーカスが完了するのを待ちます。CSI.ioctl を参照してください。

csi.IOCTL_SET_NIGHT_MODE: int

ナイトモードをオンまたはオフにします。露出を動的に増やすためにフレームレートを下げます。CSI.ioctl を参照してください。

csi.IOCTL_GET_NIGHT_MODE: int

ナイトモードが有効かどうかを返します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_WIDTH: int

FLIR Lepton 画像の解像度の幅をピクセル単位で返します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_HEIGHT: int

FLIR Lepton 画像の解像度の高さをピクセル単位で返します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_RADIOMETRY: int

FLIR Lepton のタイプ(放射計測対応かどうか)を返します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_REFRESH: int

FLIR Lepton のリフレッシュレートを Hz 単位で返します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_RESOLUTION: int

FLIR Lepton の ADC 解像度をビット単位で返します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_RUN_COMMAND: int

FLIR Lepton SDK の16ビットコマンドを実行します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_SET_ATTRIBUTE: int

FLIR Lepton SDK から FLIR Lepton 属性を設定します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_ATTRIBUTE: int

FLIR Lepton SDK から FLIR Lepton 属性を取得します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_FPA_TEMP: int

FLIR Lepton の FPA 温度を摂氏で取得します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_AUX_TEMP: int

FLIR Lepton の AUX 温度を摂氏で取得します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_SET_MODE: int

FLIR Lepton ドライバを、各ピクセルが温度値となるモードに設定します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_MODE: int

FLIR Lepton センサーで測定モードが有効かどうかを返します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_SET_RANGE: int

測定モードでピクセル値にマッピングされる温度範囲を設定します。CSI.ioctl を参照してください。

csi.IOCTL_LEPTON_GET_RANGE: int

測定モードで使用される温度範囲を返します。CSI.ioctl を参照してください。

csi.IOCTL_HIMAX_MD_ENABLE: int

HM01B0 のモーション検出割り込みを制御します。CSI.ioctl を参照してください。

csi.IOCTL_HIMAX_MD_WINDOW: int

HM01B0 のモーション検出ウィンドウを設定します。CSI.ioctl を参照してください。

csi.IOCTL_HIMAX_MD_THRESHOLD: int

HM01B0 のモーション検出しきい値を設定します。CSI.ioctl を参照してください。

csi.IOCTL_HIMAX_MD_CLEAR: int

HM01B0 のモーション検出割り込みをクリアします。CSI.ioctl を参照してください。

csi.IOCTL_HIMAX_OSC_ENABLE: int

HM01B0 の内蔵オシレーターを制御します。CSI.ioctl を参照してください。

csi.IOCTL_GET_RGB_STATS: int

カメラセンサーから RGB 統計を返します。CSI.ioctl を参照してください。

csi.IOCTL_GENX320_SET_BIASES: int

GENX320 センサーのバイアスを GENX320_BIASES_* プリセットのいずれかに設定します。CSI.ioctl を参照してください。CSI.reset の後、ドライバは csi.GENX320_BIASES_DEFAULT ではなく csi.GENX320_BIASES_LOW_NOISE を適用します --- アプリケーションがより高い感度や帯域幅を必要とする場合は、この ioctl を使って別のプリセットに切り替えてください。

csi.GENX320_BIASES_DEFAULT: int

GenX320 のデータシートデフォルト --- 一般的なシーン向けに感度、ノイズ、帯域幅のバランスを取っています。

csi.GENX320_BIASES_LOW_LIGHT: int

低照度条件向けに調整 --- 両方のコントラストしきい値を緩めて感度を高め、FO を下げ、HPF を無効にしてゆっくりとした明るさの変化も検出できるようにしています。

csi.GENX320_BIASES_ACTIVE_MARKER: int

高コントラストで点滅する LED(アクティブマーカー)の追跡向けに調整 --- 鋭い遷移のみがトリガーするようコントラストしきい値を上げ、帯域幅を最大化してゆっくりとした周囲光のドリフトを排除するために FO と HPF を高く設定し、すべての点滅エッジを捉えるために REFR=0 にしています。

csi.GENX320_BIASES_LOW_NOISE: int

ドライバのデフォルト --- DEFAULT よりも感度が低く(コントラストしきい値を上げています)、背景ノイズによる活動を減らすために FO も低くしています。誤イベントが支配的になる、静止したシーンや動きの遅いシーンに最適です。

csi.GENX320_BIASES_HIGH_SPEED: int

高速な動きのあるシーン向けに調整 --- より広いピクセル帯域幅のために FO を高くし、ゆっくりとした変化を排除するために HPF を高くし、各イベント後の不感時間を長くして読み出しが飽和しないように REFR を高くしています。

csi.IOCTL_GENX320_SET_BIAS: int

単一の GENX320 センサーバイアスを DAC 値に設定します。GENX320_BIAS_* 定数(csi.GENX320_BIAS_DIFF_OFFcsi.GENX320_BIAS_DIFF_ONcsi.GENX320_BIAS_FOcsi.GENX320_BIAS_HPFcsi.GENX320_BIAS_REFR)と整数の DAC 値を渡します。各バイアスは独立しています --- プリセットを適用した後、必要なバイアスだけを調整するためにこの ioctl を繰り返し呼び出してください。CSI.ioctl を参照してください。

csi.GENX320_BIAS_DIFF_OFF: int

負側コンパレータのコントラストしきい値 --- csi.PIX_OFF_EVENT が発生するまでにピクセルがどれだけ暗くなる必要があるかを制御します。値が低いほど感度が高くなります(イベントが増えます)。

csi.GENX320_BIAS_DIFF_ON: int

正側コンパレータのコントラストしきい値 --- csi.PIX_ON_EVENT が発生するまでにピクセルがどれだけ明るくなる必要があるかを制御します。値が低いほど感度が高くなります(イベントが増えます)。

csi.GENX320_BIAS_FO: int

ピクセルのローパスカットオフ周波数 --- ピクセル帯域幅(速度/レイテンシ)と背景ノイズによる活動とのトレードオフを制御します。値が高いほどピクセルの応答が速くなり、ノイズが増えます。

csi.GENX320_BIAS_HPF: int

ピクセルのハイパスカットオフ周波数 --- ゆっくりとした明るさの変化を排除します。値が高いほどゆっくりとした変化がフィルタリングされます(速い遷移のみが検出されます)。

csi.GENX320_BIAS_REFR: int

ピクセルの不応期 --- ピクセルがイベントを発生させた後、再び発生できなくなる不感時間です。値が高いほど不感時間が長くなり、活発なピクセルからのイベントが減ります。

csi.IOCTL_GENX320_SET_AFK: int

GENX320 のアンチフリッカー(AFK)フィルタを設定します。これは、周期的な周波数帯域でトグルするピクセル(蛍光灯、LED 駆動ディスプレイなど)からのイベントを排除します。enable(有効なら 1、無効なら 0)を渡し、有効にする場合は帯域の端をヘルツ単位で渡します: (enable, freq_low_hz, freq_high_hz)CSI.ioctl を参照してください。

csi.IOCTL_GENX320_SET_STC: int

GENX320 の時空間コントラスト(STC)フィルタモードを設定します。GENX320_STC_* 定数(csi.GENX320_STC_DISABLEcsi.GENX320_STC_ONLYcsi.GENX320_STC_TRAIL_ONLYcsi.GENX320_STC_TRAIL)に続けて、そのモードが必要とするしきい値(ミリ秒単位)を渡します。CSI.ioctl を参照してください。

csi.GENX320_STC_DISABLE: int

GENX320 の STC/トレイルフィルタを無効にします --- すべてのイベントが通過します。

csi.GENX320_STC_ONLY: int

バーストの2番目のイベントを保持します。最初のイベントとそれ以降のイベントを破棄します。1つのパラメータ stc_threshold(ミリ秒単位)を取ります --- 同じピクセルで先行するイベントからこのウィンドウ内にあるイベントは、同じバーストの一部とみなされます。

csi.GENX320_STC_TRAIL_ONLY: int

バーストの最初のイベントを保持しますtrail_threshold が経過するまで、同じピクセルでのそれ以降のイベントを破棄します。1つのパラメータ trail_threshold(ミリ秒単位)を取ります。

csi.GENX320_STC_TRAIL: int

バーストの最初のイベントとそれ以降のエッジを保持します --- csi.GENX320_STC_ONLYcsi.GENX320_STC_TRAIL_ONLY を組み合わせたものです。2つのパラメータ stc_thresholdtrail_threshold(両方ミリ秒)を取ります。センサーはこの2つがおおよそ 13:1 の比率の範囲内に収まることを要求します。

csi.IOCTL_GENX320_SET_MODE: int

GENX320 の動作モードを設定します。オンチップのイベントヒストグラム(カメラは設定されたフレームレートで通常のグレースケールカメラのように動作します)には csi.GENX320_MODE_HISTO を渡し、生のイベントストリーミングには csi.GENX320_MODE_EVENT に続けてイベント ndarray の行軸方向の長さ(1024 から 65536 の間の2のべき乗)を渡します。CSI.ioctl を参照してください。

csi.GENX320_MODE_HISTO: int

ヒストグラムモード --- イベントがオンチップでピクセルごとのビンに蓄積され、設定されたレート(約20~350 FPS)で 320x320 のグレースケールフレームとして報告されます。カメラは通常のカメラのように見えるため、すべての標準的な画像処理ルーチンが直接動作します。

csi.GENX320_MODE_EVENT: int

イベントモード --- オンチップのヒストグラムをバイパスし、マイクロ秒のタイムスタンプ付きで生のイベントを numpy の ndarray にストリーミングします。事前にビン化されたフレームではなく完全な時間的詳細を必要とするアプリケーション向けです。

csi.IOCTL_GENX320_READ_EVENTS: int

形状 (EVT_res, 6) の uint16 ndarray に生のイベントを読み込みます(EVT_rescsi.IOCTL_GENX320_SET_MODE に渡されたバッファサイズと一致します)。各列は次のとおりです: [0] イベントタイプ(csi.PIX_OFF_EVENTcsi.PIX_ON_EVENTcsi.EXT_TRIGGER_RISING/FALLINGcsi.RST_TRIGGER_RISING/FALLING)、[1] 秒のタイムスタンプ、[2] ミリ秒、[3] マイクロ秒、[4] X 座標(0~319)、[5] Y 座標(0~319)。バッファに書き込まれたイベントの数を返し、そのカウントを超える古い行はそのまま残します。CSI.ioctl を参照してください。

csi.IOCTL_GENX320_CALIBRATE: int

ホットピクセル --- 静止したシーンでも誤って発生するピクセル --- を自動的に無効にします。ドライバは 320x320 のピクセルごとのヒット数を構築し、平均と標準偏差を計算して、カウントが mean + sigma * stddev を超えるピクセルを無効にします。イベント数の予算(統計を計算する前に集計するイベント数 --- 多いほど推定が信頼でき、遅くなります。約10000が良いデフォルトです)と sigma の浮動小数点値(低いほど積極的になります。約0.5がデフォルトです)を渡します。無効にされたピクセルの数を返します。動きによるイベントが実際には問題のないピクセルに対してカウントされないように、まずカメラを静止したシーンに向けてください。CSI.ioctl を参照してください。

csi.IOCTL_GENX320_READ_EVENTS_RAW: int

GENX320 からの生のイベントフレーム image.Image を返します。イベントはまだチップのネイティブなパック形式エンコーディングのままです --- カメラ上で処理するのではなく、生のストリームをオフライン復号のために PC へ転送したい場合に便利です。CSI.ioctl を参照してください。

csi.PIX_OFF_EVENT: int

GENX320 のイベントタイプ(列 [0])--- ピクセルが明るさの低下を検出しました(負側コントラストしきい値を超えました)。列 [4]/[5] にはそのピクセルの X/Y が入ります。

csi.PIX_ON_EVENT: int

GENX320 のイベントタイプ(列 [0])--- ピクセルが明るさの上昇を検出しました(正側コントラストしきい値を超えました)。列 [4]/[5] にはそのピクセルの X/Y が入ります。

csi.RST_TRIGGER_RISING: int

GENX320 のイベントタイプ(列 [0])--- ピクセルリセットトリガー、立ち上がりエッジ。X/Y は使用されません。現時点ではファームウェアによって生成されません。

csi.RST_TRIGGER_FALLING: int

GENX320 のイベントタイプ(列 [0])--- ピクセルリセットトリガー、立ち下がりエッジ。X/Y は使用されません。現時点ではファームウェアによって生成されません。

csi.EXT_TRIGGER_RISING: int

GENX320 のイベントタイプ(列 [0])--- センサーの外部トリガーピンが立ち上がりエッジを検出しました。GENX320 の外部トリガー入力はカメラのフレーム同期ラインに接続されており、これはプロセッサ上の P10 およびピンヘッダにもルーティングされています。X/Y は使用されません。

csi.EXT_TRIGGER_FALLING: int

GENX320 のイベントタイプ(列 [0])--- センサーの外部トリガーピンが立ち下がりエッジを検出しました。GENX320 の外部トリガー入力はカメラのフレーム同期ラインに接続されており、これはプロセッサ上の P10 およびピンヘッダにもルーティングされています。X/Y は使用されません。