GithubHelp home page GithubHelp logo

krshrimali / no-reference-image-quality-assessment-using-brisque-model Goto Github PK

View Code? Open in Web Editor NEW
182.0 7.0 33.0 1.74 MB

Implementation of the paper "No Reference Image Quality Assessment in the Spatial Domain" by A Mittal et al. in OpenCV (using both C++ and Python)

License: MIT License

CMake 3.22% C 18.62% C++ 29.37% Makefile 10.34% Python 7.24% HTML 10.43% Java 12.70% M4 7.96% MATLAB 0.11%
image-processing image-quality-assessment image-quality computer-vision machine-learning svm libsvm opencv cpp python

no-reference-image-quality-assessment-using-brisque-model's Introduction

Note

Please see #4 if you are looking to contribute. :)

Note: There have been many revisions, specially about the models used. Please check the work by @clunietp (https://github.com/clunietp) and myself on BRISQUE IQA committed to opencv_contrib here: https://github.com/opencv/opencv_contrib/tree/master/modules/quality

Note: This work was originally published on LearnOpenCV. For code: https://github.com/spmallick/learnopencv/tree/master/ImageMetrics

The work was published on https://www.learnopencv.com/. Link: blog post.

Process

Steps to Calculate Image Quality Score using BRISQUE Model

Installation Instructions

Python 2.x LIBSVM Installation sudo apt-get install python-libsvm

Python 3.x LIVSVM Installation and C++ LIBSVM Installation

For C++ :

  1. cd C++/libsvm/
  2. cmake .
  3. make

For Python 3.x :

  1. cd Python/libsvm/
  2. make
  3. cd python
  4. make

Usage

Python 2.x

  1. python2 brisquequality.py <image_path>

Python 3.x

  1. cd Python/libsvm/python/
  2. python3 brisquequality.py <image_path>

C++

  1. cd C++/
  2. ./brisquequality <image_path>

Example

Quality Score Comparison using BRISUQE Model

Quality Score Comparison using BRISQUE Model

no-reference-image-quality-assessment-using-brisque-model's People

Contributors

krshrimali avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

no-reference-image-quality-assessment-using-brisque-model's Issues

This PR needs attention: Refactor code, better documentation and build script

I appreciate the attention given to this project, and I thank all of you for that. Keeping that in mind, I've decided to give this work another look. A few notes:

  • This code was ported to OpenCV's contrib repository (quality module: https://docs.opencv.org/4.5.2/d8/d99/classcv_1_1quality_1_1QualityBRISQUE.html).
  • This repo uses incorrect models which might result in wrong results, this was however corrected while porting to OpenCV.
  • I wrote this code when I was in my 2nd year of Bachelors's, pretty young! ;) I've loved C++ more with time, and I plan to write better code for this.

So, what's the plan?

  • Use models appropriate for this code. Create a link in case the models are deleted from the source (will have to check if it's allowed or not though).
  • Refactor code for both C++ and Python.
  • Re-visit dependency of LIBSVM for this project.
  • Build scripts for the C++ code. (Cross-platform)
  • Better documentation on how to use, and known issues (if any).
  • Address all the opened issues on this project.

This project has come back to life, thanks to all of you!

How to contribute?

In case you are planning to contribute, please reach out here and let me know what's your plan (if you have one already), and what task you want to pick up. I'll create separate issues for the tasks above later, but for now, please feel free to comment here.

Thanks!
~ Kushashwa (/krshrimali/Kush)

issues

hello, I have run your code on windows system, but I meet some compilation issues.

the problems are as follows:

1.CMake Error: The source directory "C:/Users/pan/Desktop/No-Reference-Image-Quality-Assessment-using-BRISQUE-Model-master/C++/libsvm" does not appear to contain CMakeLists.txt.

2.make: Nothing to be done for 'all'.

hope that you can answer my confuses. thank you very much!

the brisque model seems yield wrong result quite often

the brisque model seems yield wrong result quite often. I have original png image, jpeg compressed with 90% quality, jpeg with 60% quality.
The computed score is:

  • (23.201696395874023, 0.0, 0.0, 0.0) for png
  • (19.102746963500977, 0.0, 0.0, 0.0) for high quality jpg
  • (17.447845458984375, 0.0, 0.0, 0.0) for low quality jpg

If I get the paper correct, the higher the score the lower the quality.

png:
good_small

high quality jpeg:
good_small_high

low quality jpeg:
good_small_low

About the all model

First, thank you for providing the implementation of BRISQUE.
And I want to know where the "allmodel" file used by svm comes from?
Does the "allmodel" file trained from the tid2013 or tid2008 dataset?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.