Recherchez les images. Il s'agit d'un serveur de moteur de recherche pour les scènes d'animation. Vous pouvez rechercher en sens inverse à travers des captures d'écran d'un certain moment de l'anime, et à l'envers, de quel épisode il est venu et l'heure exacte à laquelle il est apparu. Front-end du site Web
Par rapport à Trace.moe, ce projet peut être en mesure de fournir des services de recherche plus robustes et plus précis car il utilise des modèles d'apprentissage en profondeur pour extraire les fonctionnalités de l'image. Par conséquent, les frais généraux de performance sont plus importants et l'inclusion est plus lente. Toujours dans la phase de test
Tester des images
Résultats de la recherche
python3 doit être installé ffmpeg
Installez les dépendances:
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.pyCette méthode est pour tester uniquement. Veuillez vous référer à la méthode de déploiement du flacon pour l'environnement de production
L'exemple suivant utilise gunicorn , 4 Worker Process ( -w 4 ) pour exécuter l'application FLASK et se lier au port 4000 de localhost ( -b 127.0.0.1:4000 ):
gunicorn -w 4 -b 127.0.0.1:4000 app:flask_appGrâce à l'API de Bilibili (ou autre site Web), téléchargez automatiquement le drame et enregistrez initialement les informations sur le drame.
Utilisez FFMPEG pour compresser la vidéo et le convertir en MP4, et mettez-le dans le répertoire statique du site Web
Utilisez FFMPEG pour convertir la vidéo en une image à un certain taux d'échantillonnage et mettez-le dans un répertoire temporaire
Lisez l'image Cadre by Frame, filtrez les images similaires adjacentes à travers l'algorithme phash et extriez les vecteurs de fonction à l'aide du modèle et insérez-les dans milvus . Les informations correspondantes de chaque trame ajoutée sont stockées dans la base de données leveldb , telles que id , time et epid
Lors de la recherche, le vecteur de fonctionnalité d'image est également extrait, recherché avec milvus , renvoyez id des cadres similaires, puis interrogez d'autres informations via la base de données.
Xception et de la dimensionnalité PCA crop.py of Trace.moe