MATLAB による動画処理
用途、例、技術
オブジェクトの追跡
オブジェクトの追跡は,歩行者の回避,セキュリティと監視、拡張現実などのさまざまな用途で不可欠なものです。この例では、固定カメラから取得した動画に対し、動きに基づいた歩行者の追跡を実行する方法を説明します。
オブジェクトの検出とカウント
動画シーケンス内を移動するオブジェクトを検出してカウントするために、動画処理を使用できます。このケーススタディでは、オーストラリアの科学者たちがビデオ映像を使って水鳥の野生個体数を推定しています。
MATLAB®には、動画の表示、解析、読み取り、書き込みを行うツールやアルゴリズムが用意されています。動画処理は、以下のような用途で役立ちます。
動画処理の簡単な 4 つのステップ
MATLAB を用いた動画処理のステップは以下のとおりです。
- 动画の読み込み
- 動画の表示
- 動画の処理
- 動画の書き込み
ステップ 1.動画の読み込み
ファイルから、または直接カメラから動画を読み込むことができます。
単一の MATLAB コマンドでファイルから動画を読み込むことができます。
>> vid = VideoReader('filename.avi')
MATLAB は動画処理用の Web カメラをサポートしています。Image Acquisition Toolbox™を使用すれば、さまざまな工業用カメラや科学用カメラからライブ画像を取得することも可能です。
matlabでは,微软®Windows®、Mac、Linux®用の OS 固有のコーデックなど、さまざまなコーデックを使用して動画ファイルを読み取ることができます。
ステップ 2.動画の表示
MATLAB で動画を表示するには、次の 2 つの方法があります。
deployableVideoPlayer
:一連のビデオフレームを効率的に表示しますimplay
:ビデオ ビューアー アプリを起動して動画を表示します
ステップ 3.動画の処理
動画は、個々のビデオフレームまたは画像のシーケンスです。これは、画像上でエッジ検出を実行するように設計されたアルゴリズムを、動画上でエッジ検出を実行するものに迅速に変換できることを意味します。
Read single image |
Read image frame from video |
---|---|
|
|
動画処理は、エッジ検出を使用した例のように非常に単純な場合もあれば、前のフレーム内のオブジェクトの位置を考慮する必要がある追跡アルゴリズムのように、非常に複雑な場合もあります。
高度なのについては,以下を参照して。。
ステップ 4.動画の書き込み
処理の後、動画の各フレームをファイルに書き戻すことができます。次の関数を使用して動画ファイルを作成できます。
>> vid_w = VideoWriter('newfile.avi'); >> open(vid_w)
変数vid_w
に、新しく作成したフレームを蓄積して動画を作成します。
MATLAB の詳細な例
すべてのコンポーネントをまとめて、動画の読み込み、表示、処理、書き込みの手順を示す詳細な例を見てみましょう。
%% Read and process a video into MATLAB % Setup: create Video Reader and WritervideoFileReader = VideoReader('tilted_face.avi'); myVideo = VideoWriter('myFile.avi');% Setup: create deployable video player and face detectordepVideOplayer = vision.deployableVideOplayer;facedetector = Vision.cascadeObjectDetector();打开(myvideo);%% Detect faces in each framewhilehasFrame(videoFileReader)% read video framevideoFrame = readFrame(videoFileReader);% process framebbox = faceDetector(videoFrame); videoFrame = insertShape(videoFrame,'Rectangle', bbox);% Display video frame to screendepVideoPlayer(videoFrame);% Write frame to final video filewriteVideo(myVideo, videoFrame); pause(1/videoFileReader.FrameRate);end关闭(myvideo)
このコードは MATLAB Central からダウンロードできます。
コンピューター ビジョンのための動画処理アルゴリズム
matlabアルゴリズム使用使用相关相关关系アルゴリズムアルゴリズムはのの概念にに基づい基づい基づいています。これこれはは,,ががののののビデオその出力するいう考えです。これは,事前にに基づい基づいてて将来将来将来のの动作教える教えるオブジェクトオブジェクトのの追迹追迹アルゴリズムででは非常非常ににににです。。。。ののの一般一般一般一般一般しての位置をするするKLT アルゴリズムが挙げられます。
動画処理アルゴリズムの開発者は、Computer Vision System Toolbox™のビジョン固有のアルゴリズムを使用することもできます。このアルゴリズムを使用することで、高速かつメモリ効率の良い方法で高解像度の動画を読み込み、視聴できます。このツールボックスには、3D 点群処理、ステレオビジョン、オブジェクト検出、追跡と認識、およびその他のアプリケーション用のアルゴリズムも含まれています。