作成者 :(株)クラスキャット セールスインフォメーション
作成日 : 02/07/2019
ClassCat® TF/ONNX Hub とは
「ClassCat® TF/ONNX Hub」はクラスキャットが提供する実用性の高い機械学習モデルのレポジトリです。各モデルは TensorFlow 固有フォーマットと ONNX フォーマットの両者で提供されます。 [ClassCat® ONNX Hub 詳細]
- ONNX (Open Neural Network Exchange) は深層学習モデルのためのオープンなフォーマットで、異なるオープンソースの深層学習フレームワーク間の相互作用を可能にします。
「ClassCat TF/ONNX Hub」で提供されるモデルについてはクラスキャットが検証の上で仕様を公開致しますので、ユーザ企業は希望するモデルを自由に選択することができます。更にユーザ企業のデータセットによる再調整も含めて実運用するために必要なトータルサポートを提供致します。
今回は動画分類タスクを遂行するモデル – 3D ResNet & LRCN – を紹介致します。題材は UCF 101 という動作認識用の動画データセットです。
動画分類モデルの紹介
二次元の画像分類については、MNIST や CIFAR-10 の分類タスクを始めとして数多くのモデルが考案されてまた利用されていますが、動画の分類タスクについては十分な数のモデルが公開されているとは言えないのが現状です。
しかしながら動画分類タスクを遂行するために必要なビルディングブロックは各フレームワークで用意されており、ここではそれらを利用して構築した基本的なモデルを紹介します。
UCF 101 データセット
最初に利用するデータセットについて紹介しておきます。
動作認識のための定番の動画データセットの一つである UCF 101 をここでは動画分類のために使用します。
データセットの動画は名前どおりに 101 クラスに分類されていて、下記のように非常に多岐に渡る動画が含まれています。野球・サッカー・バスケットボール・ゴルフ・乗馬・相撲・ビリヤード・ボーリングのようなスポーツからピアノ・ギター・バイオリン演奏などのアクションも含まれています :
Apply Eye Makeup, Apply Lipstick, Archery, Baby Crawling, Balance Beam, Band Marching, Baseball Pitch, Basketball Shooting, Basketball Dunk, Bench Press, Biking, Billiards Shot, Blow Dry Hair, Blowing Candles, Body Weight Squats, Bowling, Boxing Punching Bag, Boxing Speed Bag, Breaststroke, Brushing Teeth, Clean and Jerk, Cliff Diving, Cricket Bowling, Cricket Shot, Cutting In Kitchen, Diving, Drumming, Fencing, Field Hockey Penalty, Floor Gymnastics, Frisbee Catch, Front Crawl, Golf Swing, Haircut, Hammer Throw, Hammering, Handstand Pushups, Handstand Walking, Head Massage, High Jump, Horse Race, Horse Riding, Hula Hoop, Ice Dancing, Javelin Throw, Juggling Balls, Jump Rope, Jumping Jack, Kayaking, Knitting, Long Jump, Lunges, Military Parade, Mixing Batter, Mopping Floor, Nun chucks, Parallel Bars, Pizza Tossing, Playing Guitar, Playing Piano, Playing Tabla, Playing Violin, Playing Cello, Playing Daf, Playing Dhol, Playing Flute, Playing Sitar, Pole Vault, Pommel Horse, Pull Ups, Punch, Push Ups, Rafting, Rock Climbing Indoor, Rope Climbing, Rowing, Salsa Spins, Shaving Beard, Shotput, Skate Boarding, Skiing, Skijet, Sky Diving, Soccer Juggling, Soccer Penalty, Still Rings, Sumo Wrestling, Surfing, Swing, Table Tennis Shot, Tai Chi, Tennis Swing, Throw Discus, Trampoline Jumping, Typing, Uneven Bars, Volleyball Spiking, Walking with a dog, Wall Pushups, Writing On Board, Yo Yo.
以下はそのサンプル画像です。動画ファイルは AVI フォーマットで提供されていますが、動画ファイルをフレーム分解した上で幾つかの静止画像をピックアップしたものです。上から順にサッカーのペナルティキック、相撲、ゴルフスイングのクラスに属します :
Soccer Penalty
Sumo Wrestling
Golf Swing
◆ これらの動画を分類可能な基本モデルとして次を紹介します :
3D Residual Net
前述のように動画分類タスクのためのモデルはそれほど公開されているわけではありませんが、現在では最小限必要なビルディングブロックは各フレームワークで用意されています。例えば TensorFlow であれば tf.keras.layers.Conv3D、PyTorch であれば torch.nn.Conv3d を利用して 3D CNN を構築することができます。
実際に UCF 101 データセット上で訓練するにあたり、101 クラスではコストがかかるためにここでは 10 クラス分類を遂行しています。また、単純な 3D AlexNet や 3D VGG では想定した精度が得られなかったので、ここでは 3D ResNet モデルを訓練しました。比較的短時間で 77.25 % の精度を得ています。
以下は TensorBoard 出力で、左側の画像が訓練損失、右側が検証精度です :
![]() |
![]() |
LRCN
次のペーパーで公開された LRCN (Long-term Recurrent Convolutional Networks) というモデルもあります :
- Long-term Recurrent Convolutional Networks for Visual Recognition and Description
Jeff Donahue, Lisa Anne Hendricks, Marcus Rohrbach, Subhashini Venugopalan, Sergio Guadarrama, Kate Saenko, Trevor Darrell
(Submitted on 17 Nov 2014 (v1), last revised 31 May 2016 (this version, v4))
3D ResNet では単純に 2D CNN を 3D 化しただけですが、LRCN では CNN と RNN を上手く組み合わせていてこのモデルは動作認識タスク以外にも画像キャプショニング等にも利用されます。
このモデルでは 75.125 % の精度を得ています :
![]() |
![]() |
以上