Skip to content

Latest commit

 

History

History
461 lines (331 loc) · 15.5 KB

README.rst

File metadata and controls

461 lines (331 loc) · 15.5 KB

PyPI version License: MIT Downloads

zoomg Docs

バーチャル背景適用済み動画からバーチャル背景を復元するライブラリ

icon

icon

System Requirements / 動作保証環境

  • python 3.6.4
  • pip 20.2.4
  • OS
    • macOS Catalina 10.15.7 (x86_64)
    • macOS Bug Sur 11.4 (aarch64)
    • Ubuntu 20.04.1 LTS / 18.04.4 LTS

Installing / インストール

  • aarch64環境の場合
pip install zoomg
  • x86_64環境の場合
pip install git+https://github.com/Tsuku43/zoomg

Windows では動作保証をしていません

How to use / 使用方法

簡単な使用方法

python3 sample.py sample_video.mp4
import zoomg
import cv2
import sys
import numpy


# ビデオ読み込みの初期設定
filename = sys.argv[1]
video = cv2.VideoCapture(filename)
height = int(video.get(cv2.CAP_PROP_FRAME_HEIGHT))
width = int(video.get(cv2.CAP_PROP_FRAME_WIDTH))

# zoomgの初期化
zoom = zoomg.Zoomg(height, width)

while True:
    # フレーム読み込み
    ret, frame = video.read()
    if not ret:
        break
    # zoomgに画像を追加
    zoom.add_image(frame)

# 背景画像を生成
zoom.generate_image()
# 背景画像を取得
image = zoom.get_image()
# 背景画像を保存
cv2.imwrite("room.png", numpy.array(image))

Zoomg クラス

背景画像の生成を行います.

コンストラクタ
zoom = zoomg.Zoomg(height, width)
  • 引数
パラメータ キーワード引数 省略 説明
height int 可(h)
入力画像の高さ
width int 可(w)
入力画像の幅
  • 返り値
パラメータ 説明
zoom Zoomg Zoomg オブジェクト

Zoomg.add_image

zoomg オブジェクトに画像を追加します.動画を入力したい場合はフレーム単位で分割する必要があります.

zoom.add_image(frame)
  • 引数
パラメータ キ ーワード引数 省略 説明
frame 3 次元 numpy.ndarray
zoomg オ ブジェクトに 追加する画像
  • 返り値
    • なし

Zoomg.generate_image

Zoomg.add_imageで追加した画像から背景画像を復元する.

zoom.generate_image(comp, param, noise_frame)
  • 引数

パ | 型 | キ | 省略 ラ | | ー | メ | | ワ | ー | | ー | タ | | ド |

| 引 |
| 数 |
説明
c o m p s t r i n g 可 (co mp) 可(default= “ciede2000”) 色差を決定する.詳 細は表「色差」を参照.
p a r a m f l o a t 可( par am) 可(defau lt=表「色 差 _」を参照) 各ピクセルが部屋の背景かバーチ ャル背景か判定するためのパラメータ.詳 細は表「色差」を参照.
n o i s e _ f r a m e i n t 可( noi se_ fra me) 可 (default=1) 画像にノイズが多く含まれてい る場合,ノイズを軽減するためのパラメータ
色差
色 差計算 アルゴ リズム co mp param 指定可 能範囲 省略 説明
コ サイン 類似度 ` c os _s im ` [0.0, 1.0] 可 (def ault= 0.75) 高くす ると復元できるピクセル数が減り **,低くすると誤判定が**増える.
CI EDE2000 ` c ie de 20 00 ` [0.0, 100] 可 (def ault= 5.06) 高くす ると誤判定が増え,低くすると 復元できるピクセル数が減る.
  • 返り値
    • なし

Zoomg.get_image

Zoomg.generate_imageで生成した画像を取得します.

image = zoom.get_image()
  • 引数
    • なし
  • 返り値
パラメータ 説明
image int 型 3 次元 list 復元した画像ファイル

Zoomg.get_omgc

Zoomg.generate_imageを使用した際,正しく復元できたか拘らず,復元したピクセル数を返します.この数はZoomg.generate_imageの引数paramに影響されます.

omgc = zoom.get_omgc()
  • 引数
    • なし
  • 返り値
パラメータ 説明
omgc int 復元したピクセル数

Zoomg.verify

Zoomg.generate_imageparam引数の値がどれだけいいものか検証します.部屋の画像と復元した部屋の画像からどれだけ二つの画像が似ているか計測し,復元精度を返します.

ok, ng, acc = zoomg.verify(room_image, comp, param)
  • 引数

パ | 型 ラ | メ | ー | タ |



キ ー ワ ー ド 引 数 省略 説明
r o o m _ i m a g e 3 次元 num py.nd array
部屋の画像
c o m p s tring 可 (c om p) 可 (default=“ ciede2000”) 色差を決定する.詳細 は表「色差」を参照.
p a r a m float 可 ( pa ra m)

可(default= 表「`色差

<#色差>`__

」を参照)

各ピクセルが部屋の背景かバーチャル 背景か判定するためのパラメータ.詳細 は表「色差」を参照.
  • 返り値
パラメータ 説明
ok int 部屋の画像と復元画像のピクセル一致数
ng int 部屋の画像と復元画像のピクセル不一致数
acc float 精度(ok / (ok + ng))

Zoomg.get_height

生成画像の高さを取得します.zoomg.Zoomg(height, width)heightと同一の値になります.

height = zoomg.get_height()
  • 引数
    • なし
  • 返り値
パラメータ 説明
height int 生成画像の高さ

Zoomg.get_width

生成画像の幅を取得します.zoomg.Zoomg(height, width)widthと同一の値になります.

width = zoomg.get_width()
  • 引数
    • なし
  • 返り値
パラメータ 説明
width int 生成画像の幅

Zoomg.get_shape

生成画像の高さと幅を取得します.zoomg.Zoomg(height, width)heightと同一の値になります.

height, width = zoomg.get_shape()
  • 引数
    • なし
  • 返り値
パラメータ 説明
height int 生成画像の高さ
width int 生成画像の幅

Function

その他,利用できる関数をこちらに記載します.

add_noise()

背景画像の生成を妨害します.画像に対してノイズを入ります.

zoomg.get_shape(image&, height, width, rate)
  • 引数
パラメータ キー ワード引数 省略 説明
image 3 次元 nu mpy.ndarray の参照
ノイズを入 れたい画像
height int 可(h)
imag eの高さ
width int 可(w)
im ageの幅
rate float 可(rate) 可(defa ult=0.0003) ノイズの 入れる割合
  • 返り値
パラメータ 説明
height int 生成画像の高さ
width int 生成画像の幅

Build / ビルド

  • 本ソースコードのコンパイル
> pwd
ほにゃらら/zoomg/zoomg

> clang++ -O3 -Wall -shared -std=c++17 -fPIC `python -m pybind11 --includes` -undefined dynamic_lookup zoomg.cpp ColorSpace/src/Comparison.cpp ColorSpace/src/ColorSpace.cpp ColorSpace/src/Conversion.cpp -o zoomg`python3-config --extension-suffix`
  • 実行
> cd test
> pip uninstall zoomg # いらないかも
> python test.py sample_02.mp4