Phantoscope 是一个基于 Milvus 与深度学习的云原生图像搜索引擎
十亿级别的图像的高性能搜索
完全兼容 Tensorflow Pytorch TensorRT ONNX XGBoost 等主流深度学习框架
提供 GUI 展示搜索效果、管理 Phantoscope 资源
即将提供扩展仓库,在这里可以上传并与全世界的开发者分享你的扩展
原生支持 Docker 与 Kubernetes
中文版 | English
人类的搜索不应该被局限在单词与短句。
随着图像、视频等数据所占人类生活的比重越来越大,原先的单一文本搜索已经越来越无法满足人们的需求。
一张图像包含了大量的信息,不同人站在不同的角度解读,会产生不同的结果。无论是现在的全文检索还是以图搜图的搜索引擎,都无法满足这种灵活多变的高维度搜索需求。
利用深度学习模型,灵活组合不同的图片处理技术,加上 Milvus 向量搜索引擎的强大赋能后,提供统一接口的高性能图像搜索引擎,这就是 Phantoscope。
- Docker >= 19.03
- Docker Compose >= 1.25.0
- Python >= 3.5
Phantoscope 已经在 x86 平台下的 Ubuntu 16.04 和 CentOS 7.3 以上经过验证。
下载 Phantoscope
$ git clone https://github.com/zilliztech/phantoscope.git && cd phantoscope
设置环境变量
$ export LOCAL_ADDRESS=$(ip a | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1'| head -n 1)
启动 Phantoscope 容器
$ docker-compose up -d
检查所有容器状态:
$ docker-compose ps
预期得到如下输出:
Name Command State Ports
----------------------------------------------------------------------------------------------------------------
phantoscope_api_1 /usr/bin/gunicorn3 -w 4 -b ... Up 0.0.0.0:5000->5000/tcp
phantoscope_milvus_1 /var/lib/milvus/docker-ent ... Up 0.0.0.0:19530->19530/tcp, 0.0.0.0:8080->8080/tcp
phantoscope_minio_1 /usr/bin/docker-entrypoint ... Up 0.0.0.0:9000->9000/tcp
phantoscope_mysql_1 docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp
phantoscope_vgg_1 python3 server.py Up 0.0.0.0:50001->50001/tcp
从这里 运行一个最小的 Phantoscope 应用,你可以使用它来上传与搜索图像。
点击 这里 阅读详细 RESTful API 文档。
我们由衷欢迎你的贡献。关于贡献流程的详细信息,请参阅 贡献者指南。
本项目遵循 Phantoscope 行为准则。如果你希望参与本项目,请遵守该准则的内容。
我们使用 GitHub issues 追踪问题和补丁。
如需提出问题或进行讨论,请加入我们的社区。
- Slack 频道 这里可以进行沟通与咨询在使用过程中遇到的问题。
你可以参考我们的路线图。
我们欢迎更多的人可以一起参与到 Phantoscope 的开发当中。
Apache License 2.0