AnimeBack
1.0.0
以圖搜番。這是一個動漫場景搜索引擎服務端。可以通過番劇某一刻的截圖,反向搜索它出自哪部番,以及出現的確切時間。網站前端
與trace.moe相比,由於使用的是深度學習模型提取圖像特徵,此項目或許能夠提供魯棒性更高,更準確的搜索服務。也因此性能開銷更大,收錄比較慢。目前仍處於測試階段
測試圖片
搜索結果
需要安裝python3 ;需要安裝ffmpeg
安裝依賴項:
pip install bilibili_api imagehash tensorflow keras flask pymilvus opencv-python sklearn bilili
# Linux
pip install plyvel
# Windows
pip install plyvel-win32python run.pyconfig.jsonpython run.py download-bilibili # 将会处理已下载的视频
python run.py processpython app.py此方法僅供測試。生產環境請參考Flask部署方式
下面的例子使用gunicorn , 4 worker 進程( -w 4 )來運行Flask 應用,綁定到localhost的4000 端口( -b 127.0.0.1:4000 ):
gunicorn -w 4 -b 127.0.0.1:4000 app:flask_app通過bilibili(或其他網站)的API,自動下載番劇,並初步保存番劇信息
使用ffmpeg壓縮視頻並轉為mp4,放到網站靜態目錄下
使用ffmpeg,將視頻以一定採樣率轉為圖片,放到臨時目錄
逐幀讀取圖片,通過phash算法過濾掉相鄰的相似圖片,其餘的圖片用模型提取特徵向量,插入到milvus 。添加的每幀的id 、 time 、所屬epid等對應信息存到leveldb數據庫
搜索時同樣提取圖像特徵向量,用milvus搜索,返回相似幀的id ,再通過數據庫查詢其他信息
Xception預訓練模型與PCA降維crop.py