CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
BRISQUE No Reference Image Quality Assessment (IQA) API #2015
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BRISQUE No Reference Image Quality Assessment (IQA) API #2015
Conversation
https://www.utexas.edu), is acknowledged in any publication that reports research using this code. The research | ||
is to be cited in the bibliography as: | ||
|
||
1) A. Mittal, A. K. Moorthy and A. C. Bovik, "BRISQUE Software Release", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add also a reference about the BRISQUE algorithm and the software release in the bibliography?
See for instance the xobjdetect.bib file. You can then cite the paper in the doxygen documentation, e.g. @cite Mittal12
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@catree Thanks! I've added the bibliography and cited in both header and main C++ files.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please reuse SVM implementation from OpenCV ML module. RBF SVM kernel should be available here.
|
||
extern int libsvm_version; | ||
|
||
struct svm_node |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Take a look on OpenCV ML module instead of trying to put libsvm into OpenCV.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi, I had tried this before and the brisque_allmodel.dat
(model file) only supports LIBSVM. I'll try once again and let you know what exactly might be the issue. Thanks!
modules/quality/CMakeLists.txt
Outdated
@@ -1,2 +1,5 @@ | |||
set(the_description "Image Quality Analysis API") | |||
ocv_define_module(quality opencv_core opencv_imgproc WRAP python) | |||
ocv_add_testdata(testdata/ contrib/quality | |||
FILES_MATCHING PATTERN "*.dat" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
testdata
should go into opencv_extra
repository (create PR with the same source branch name).
We put into repository only small enough data files which is used/shared with "samples" (like text detection models).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work!
|
||
// collects training data from LIVE R2 database | ||
// returns {features, responses}, 1 row per image | ||
std::pair<cv::Mat, cv::Mat> collect_data_live_r2(const std::string& foldername) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BTW, you can use "static" here instead of anonymous namespace.
/** | ||
@brief BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator) is a type of No Reference | ||
Image Quality Assessment. It measures score based on extracting Natural Scene Satistics (https://en.wikipedia.org/wiki/Scene_statistics) | ||
and calculating feature vectors. @cite Mittal2 for original paper and @cite Mittal2_software for original implementation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add extra line after the first sentence to separate "brief" and "details" sections.
Sentence with citations can be improved.
Documentation preview for this patch is here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree this needs improvement. That preview is very helpful, thanks for the link
Set BRISQUE expected scores from original impl Added BRISQUE models and interface, test methods [alalek] drop changes from libsvm files
Minor edits minor edits double* to vector<data> Updates: BRISQUE and Python Added BRISQUE and Python Samples Minor edits Final edits: BRISQUE Final edits: BRISQUE Copyright notice added deleted .vscode Warnings rectified. Added CV_Assert Final Commit: BRISQUE Removed whitespaces. Corrected array initializations and override warnings Removed whitespaces Resolved array initialization Override warning Mac build resolved Added bibliography and corrected Mac/Android/iOS warnings Rollback changes Added BRISQUE bib Solves Mac/iOS/Android warnings Removed trailing whitespaces Updated sample code for BRISQUE C++ Fixes for Win32, Win64 Warnings removed trailing whitespaces Trailing whitespace removed
…cumentation. Provided cpp samples for model training and evaluation. Fixes for warnings Improved BRISQUE documentation Fixed documentation typo
Looks good to me! For PRs with many commits we usually squash commits onto one commit during merge, but for this PR there are two authors. So I squashed "fixup"/"update" commits and removed libsvm changes from git history. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well done! Thank you 👍
Thank you @alalek ! Nice job @krshrimali ! |
Hi, |
@VenkatKrish17 , have you tried OpenCV >= 4.0? |
@clunietp Yes. I do run with Opencv 4.1.0 and i face the error "missing or invalid svm type in function 'read_params' ". |
Hmm I'll have to take a look when I get more time. Do you happen to have a call stack, and sample code to reproduce? I'm guessing it's in the brisque constructor |
@VenkatKrish17 looking into the code, the BRISQUE constructor just calls Looking at the source of svm.cpp ( https://github.com/opencv/opencv/blob/master/modules/ml/src/svm.cpp ), I'm not sure why this would happen, other than a pointer to a missing/invalid file perhaps. |
Hi, I will share the code snippet soon. Thanks for your reply. |
@VenkatKrish17 did get it work on Android? can you update us on that? |
This pullrequest changes
opencv_contrib
(Thanks to @clunietp for all the help in getting this ready according to the interface of existing Quality API.