# cv_img_matcher **Repository Path**: dj_coding/cv_img_matcher ## Basic Information - **Project Name**: cv_img_matcher - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-21 - **Last Updated**: 2024-11-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OPENCV 匹配器

## 快速开始 ### conda环境 0. 安装conda [https://docs.anaconda.com/free/miniconda/](https://docs.anaconda.com/free/miniconda/) 1. conda环境安装 ```shell conda env create -f environment.yml & conda activate matcher ``` 2. 在根目录的 static 文件夹创建文件夹foo,并将图片放入 foo 文件夹中 ```shell mkdir -p static/foo ``` 3. 体验 - 提取图片特征 ```shell python fast_build.py ``` > --debug 开启debug > --force 强制覆盖数据集 - 对图片集匹配并寻找最匹配的图 ```shell python fast_match.py ``` > --debug 开启debug > --show 显示匹配图 ``` 注意: 存储之后的数据集的特征检测模式必须和匹配时候设置的相同! ``` 4. 检测耗时情况 ```shell python -m line_profiler fast_build.lprof python -m line_profiler fast_match.lprof ``` ### 本地环境 1. 安装pip包 ```shell pip install --no-cache-dir -r requirements.txt ``` 2. 运行fast_build.py 或 fast_match.py 快速体验 3. 运行本地服务 ```shell python -m server.app ``` ### docker环境(flask服务) 0. 安装docker 桌面版:https://www.docker.com/products/docker-desktop 服务器版:https://docs.docker.com/engine/install/#server 1. 打镜像 ```shell docker build -t matcher_flask:v1 . ``` 2. 运行容器 ```shell docker run --rm -d -p 5000:5000 matcher_flask:v1 ``` ## 网络层 ## 内核 (匹配、特征提取) ### 特征检测方法对比: | - | 时间(ms) | 存储(M) | 图片 | 测试次数 | - | --- | --- | --- | --- | SIFT| 1680 ~ 1770 | 12 | 4 | 10 | ORB | 172 ~ 179 | 8.5 | 4 | 10 ### 特征匹配方法对比: | - | 时间(ms) | 图片 | 测试次数 | 精确度 | | - | --- | --- | --- | -- | BF | 87 ~ 89 | 4 | 10 | 较FLANN好 FLANN | 135 ~ 147 | 4 | 10 | - ``` 以上是在SIFT特征的KNN匹配情况, FLANN在其他情况未知错误待处理! ``` ## 打包/上传 ```shell conda env export --no-builds > environment.yml pip freeze > requirements.txt ``` ## TODO: - [x] 图片的特征提取并持久化存储与获取 - [x] 增加server包 - [x] docker容器化 - [ ] 本地服务部署, 图片集放OSS存储 - [ ] 功能 toB - [x] upload上传的图片使用buffer, imread读取buffer直接提取