私的AI研究会 > PyTorch3
「教師データにない状況を以上検出」異常検出を行う AI を作成する。
定点カメラからの映像をもとに学習データに含まれていない状況を検出する手法を実行してみる。
(py37) $ mkdir unnormal-validation (py37) $ ls chapt02-model1.bin chapt02-model1.pth chapt02_2a.py chapt02_4.py chapt02-model1.mapping chapt02-model1.xml chapt02_2b.py chapt03_1a.py chapt02-model1.onnx chapt02_1a.py chapt02_3.py unnormal-validation (py37) $ ffmpeg -i ../sample/chapt03/chapt03-validate.mp4 -f image2 unnormal-validation/%03d.jpg : (py37) mizutu@ubuntu-vbox:~/workspace_py37/chapter02$ ls unnormal-validation/ 001.jpg 008.jpg 015.jpg 022.jpg 029.jpg 036.jpg 043.jpg 050.jpg 057.jpg 002.jpg 009.jpg 016.jpg 023.jpg 030.jpg 037.jpg 044.jpg 051.jpg 058.jpg 003.jpg 010.jpg 017.jpg 024.jpg 031.jpg 038.jpg 045.jpg 052.jpg 059.jpg 004.jpg 011.jpg 018.jpg 025.jpg 032.jpg 039.jpg 046.jpg 053.jpg 060.jpg 005.jpg 012.jpg 019.jpg 026.jpg 033.jpg 040.jpg 047.jpg 054.jpg 006.jpg 013.jpg 020.jpg 027.jpg 034.jpg 041.jpg 048.jpg 055.jpg 007.jpg 014.jpg 021.jpg 028.jpg 035.jpg 042.jpg 049.jpg 056.jpg
(py37) $ cd ~workspace_py37/chapter02/ (py37) $ cp ../sample/chapt02/chapt03_1.py ./chapt03_1a.py
(py37) $ vi chapt03_1a.py # -*- coding: utf-8 -*- ##------------------------------------------ ## 「PyTorch で始める AI開発」 ## Chapter 03 / Section 008 ## PyTorch による学習 ## ## 2021.09.12 Masahiro Izutsu ##------------------------------------------ ## chapt03_1a.py (original: chapt03_1.py) import numpy as np import pandas as pd import itertools : # GPUを使うかどうか USE_DEVICE = 'cuda:0' if torch.cuda.is_available() else 'cpu' # データがあるディレクトリ #INPUT_DIR = 'forest-path-movie-dataset/' INPUT_DIR = '../forest-path-movie-dataset/' # 2021.09.12 :
: # 学習時と評価時のバッチサイズ BATCH_SIZE = 16 BATCH_SIZE_VALID = 4 # データの読み込みスレッドの数 NUM_WORKERS = 2 # 学習エポック数 NUM_EPOCHS = 3 :
(py37) $ python3 chapt03_1a.py [W NNPACK.cpp:80] Could not initialize NNPACK! Reason: Unsupported hardware. epoch #0: train_loss:0.8026571273803711 epoch #1: train_loss:0.009136885404586792 epoch #2: train_loss:0.003079937305301428
機種 | 開始日時 | 終了日時 | 処理時間 (h:m) |
DELL Latitude 7520 Intel® Core™ i7-1185G7 CPU | 09/12 16:12 | 09/12 22:18 | 06:06 |
HP EliteDesk 800 Intel® Core™ i7-6700 CPU | 09/12 18:50 | 09/13 01:41 | 06:51 |
(py37) $ ls -l 合計 368160 : -rw-rw-r-- 1 mizutu mizutu 94417647 9月 13 01:41 chapt03-model1.pth -rw-rw-r-- 1 mizutu mizutu 347 9月 13 01:50 chapt03-normal.json -rw-rw-r-- 1 mizutu mizutu 8490 9月 12 15:34 chapt03_1a.py -rw-rw-r-- 1 mizutu mizutu 52241 9月 13 01:50 scatter.png
(py37) $ cd ~workspace_py37/chapter02/ (py37) $ cp ../sample/chapt03/chapt03_2.py ./chapt03_2a.py
(py37) $ vi chapt03_2a.py # -*- coding: utf-8 -*- ##------------------------------------------ ## 「PyTorch で始める AI開発」 ## Chapter 03 / Section 009 ## PyTorch による学習 ## ## 2021.09.13 Masahiro Izutsu ##------------------------------------------ ## chapt03_2a.py (original: chapt03_2.py) import numpy as np : ## 2021.09.13 #「forest path movie dataset」用のサンプルを利用する # 異常のサンプル # self.cap = cv2.VideoCapture('../sample/chapt03/chapt03-sample.mp4') # 正常/異常のサンプル self.cap = cv2.VideoCapture('../sample/chapt03/chapt03-sample-a.mp4') :
(py37) $ python3 chapt03_2a.py
(py37) $ cd ~workspace_py37/chapter02/ (py37) $ cp ../sample/chapt03/chapt03_2.py ./chapt03_2b.py (py37) $ vi chapt03_2b.py
py37) mizutu@ubuntu-vbox:~/workspace_py37/chapter02$ python3 chapt03_2b.py -h --- Surveillance camera Abnormality monitoring --- 4.5.2 usage: chapt03_2b.py [-h] [-i IMAGE_FILE] [-l LANGUAGE] [-t TITLE] [-s SPEED] [-o IMAGE_OUT] optional arguments: -h, --help show this help message and exit -i IMAGE_FILE, --image IMAGE_FILE default = ../sample/chapt03/chapt03-sample-a.mp4, help = 'Absolute path to image file or cam for camera stream.') -l LANGUAGE, --language LANGUAGE Language.(jp/en) Default value is 'jp' -t TITLE, --title TITLE Program title flag.(y/n) Default value is 'y' -s SPEED, --speed SPEED Speed display flag.(y/n) Default calue is 'y' -o IMAGE_OUT, --out IMAGE_OUT Processed image file path. Default value is 'non'
(py37) $ python3 chapt03_2b.py --- Surveillance camera Abnormality monitoring --- 4.5.2 Surveillance camera Abnormality monitoring: Starting application... - Image File : ../sample/chapt03/chapt03-sample-a.mp4 - Language : jp - Program Title: y - Speed flag : y - Processed out: non [W NNPACK.cpp:80] Could not initialize NNPACK! Reason: Unsupported hardware. FPS average: 4.90 Finished.