/digital_image_processing_homework

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

这只是一只鸟

鸟类检索库

关于本项目

数字图像处理是北京大学信息科学技术学院的一门课。 本项目是该课的大作业。 使用了以下技术:

特征提取 对象检测 部件检测

Bilinear-CNN是一种细粒度分类方法,其主要**是结合不同维度特征进行分类,既保留全局特征也能反映局部细微特征。

如图所示,Bilinear分别利用两个CNN提取不同维度特征,使用bilinear pooling聚合两个特征,最后使用多分类器实现分类。

其中,我们使用了两个 VGG-16 提取图像特征,用2层softmax进行分类。

因为Bilinear-CNN能够很好地提取到图片的部件特征,并没有使用对象检测和部件检测。

特征提取

我们尝试使用了VGG输出、bilinear pooling输出、softmax输出作为分类特征,最终在使用bilinear pooling特征时有最高的mAP。

相似度计算

我们尝试使用了sigmoid、cosine similarity、Euclidean distance计算相似度。综合计算速度和准确率,三者效果差不多。

mAP结果

mAP@1=60

mAP@50=65

UI界面

界面使用web网页,使用laravel+jQuery实现了浏览和查询的功能。

使用方法

要求:

  • torch>=1.0
  • flask
  • php>7
  • composer
  • mysql>=5.7
  • PIL

下载项目

git clone git@github.com:Littlebus/digital_image_processing_homework.git
cd digital_image_processing_homework
composer install

配置数据库

cp .env.example .env
vim .env

将其中SQL设置为自己的数据。

数据库迁移

将CUB_200_2011中的images移动到public/assets/img下并重命名为birds 之后在根目录执行

python init.py
php artisan migrate
php artisan key:generate

运行服务

php artisan serve
cd flask
FLASK_APP=server.py flask run

最后访问http://127.0.0.1:8000即可。

部署

使用uWSGI,nginx等部署。

协议

本项目基于以下开源协议 GPL-3.0 license.