fabnavi で撮影された工程ごとに解析を行う API Server
- Linux
- Python 3.6.5
- OpenCV 3.4.0
- Darknet + Yolo v3
- sox
- ffmpeg
このファイル全体を ${PATH}/darknet/python
以下にコピーして使用する必要がある.darknet を python で使うスクリプトがそこにあるため.
この辺り を自分で学習させた config データに書き換える.
必要なもの install して python index.py
して終わり.
中心となるファイル.API の定義とか書いてある.以下 API 一覧
/analyze
... 本番で使う API URL.param と response は以下- Param:
movie_url
(String) ... 解析したい工程の動画 URL - Response(JSON):
- transcription ... 音声解析の結果
- detection ... 物体検出の結果
- Param:
/analyze/narration
... テスト用 API URL.音声解析結果のみ return する.- Param:
movie_url
(String) ... 解析したい工程の動画 URL - Response(JSON):
- transcript_result ... 音声解析の結果
- Param:
/analyze/detection
... テスト用の API URL.物体検出結果のみ return する.- Param:
movie_url
(String) ... 解析したい工程の動画 URL - Response(JSON):
- detection ... 物体検出の結果
- Param:
ポートは 5000 で起動
url から動画をダウンロードする.ダウンロートした動画は /download/movie
に保存される
ExtractAudio.py
, UploadStorage.py
, AudioToText.py
, Analyzer.py
の 4 つを使って解析する.
ExtractAudio.py
: 動画から � 音声を mp3 で分離,flac に変換UploadStorage.py
: 分離した音声を Google Cloud Storage にアップロードAudioToText.py
: Cloud Storage URL を Google Cloud Speech Text API に request するAnalyzer.py
: 文字起こしの結果を形態素解析する
編集中...
ExtractImage.py
, BackgroundSubstraction.py
, darknet.py
, SanitizedResult.py
の 4 つを使って解析する.
ExtractImage.py
: 動画の 1 フレーム目を抽出する.BackgroundSubstraction.py
: OpenCV を使ってdefault.jpg
をベースに背景差分を抽出するdarknet.py
: Yolo で物体検出SanitizedResult.py
: 背景差分の結果と Yolo の結果を合わせて綺麗にする
{
"detection": {
"detected": [],
"unknown": [
{
"points": [],
"candidate": {
"name": "???",
"confidence": 0
},
"color": "#FF0000"
},
{
"points": [],
"candidate": {
"name": "???",
"confidence": 0
},
"color": "#FF0000"
}
]
}
}