数字图像处理是北京大学信息科学技术学院的一门课。 本项目是该课的大作业。 使用了以下技术:
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@1=60
mAP@50=65
界面使用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.