Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upSuggestion for creation of OpenCV technical notes #17217
Comments
@vpisarev could you look at it? |
Afterward, technical note wording (in the sense something citable) is probably too "strong". I see the What I would like to emphasis with the different examples is the need to a strong focus on OpenCV documentation and tutorials. Harris example:
AprilTag3
To summarize an again too long post, better documentation is needed.
Having more implementation details, performance, accuracy results would be great, but definitively the priority is in the documentation instead. |
To finish with an intentionally provocative post, this is a comment about code quality and software design in OpenCV. In my opinion, there are some observations that deserve a look in the linked comment. For instance:
This is a "rant post". For sure what should be taken into account is the human and financial resources attributed to the OpenCV project, but focus on the API design, code quality are still relevant. Also, due to the long OpenCV history, some changes cannot be made without breaking user code. Participation of the OpenCV community is probably disappointing, compared to the size of the OpenCV users. There are still some nice contributions, like the CUDA DNN implementation. |
Apology for answering here. I don't think my posts are suitable for the https://opencv.org/ homepage. There are mostly critics, that I hope are constructive, and some improvement suggestions. Rather, some ideas that I think would be more suitable for the https://opencv.org/ homepage:
In general, I think motivations for writing on the OpenCV homepage would be:
Finally, if the community is big enough something like the ROS Discourse? But the community must be big enough in order to be useful to have an OpenCV Discourse. |
In my opinion, there should be some kind of OpenCV technical notes for certain important algorithms. The idea is to summarize in a document different things like implementation details, implementation choices, deviation from the original algorithm, performance or accuracy benchmarks.
Cons:
Pros:
Here some examples I have in mind:
SIFT features
vl_sift
implementationSURF features
changes
Harris corners detection
goodFeaturesToTrack()
instead of retrieving manually the corners from the output ofcornerHarris()
, better results can be achieved. Here the link, left is result from DIPlib, right is OpenCVAprilTag
I like the AprilTag fiducial marker detector
there is a GSoC subject tackling this topic
ideally, the OpenCV AprilTag implementation should give the exact same results than the original implementation
here the official repo for AprilTag 3 version described in this paper: Flexible Layouts for Fiducial Tags
in my opinion, if the OpenCV implementation deviates and gives poorer results than the original code, warning should be put in the documentation to warn the user that the results are inferior to the original code
and ideally global performance and accuracy results should be documented somewhere
I would also advice to avoid mixing ArUco and AprilTag methods in the code:
from my experience, AprilTag 3 is better for detecting tags and gives more accurate tag corners locations than OpenCV ArUco
for instance a quick test:
this is AprilTag 3

this is OpenCV ArUco with

DICT_6x6
andrefine=None
:this is OpenCV ArUco with

DICT_6x6
andrefine=Subpixel
:this is OpenCV ArUco with

DICT_6x6
andrefine=contour
:this is OpenCV ArUco with

DICT_6x6
andrefine=AprilTag 2
:this is a quick test, I did not try to tweak the ArUco parameters
detection rate of AprilTag 3 should be a little bit better than OpenCV ArUco but accuracy in corners extraction should be definitively better with AprilTag 3
no idea why changing the ArUco refine method gives different detection results, I am using
example_aruco_detect_markers
samplePixel coordinates system
For important new algorithms, new developments, these kind of implementation details or performance/accuracy benchmarks should be made available from the OpenCV doc. This can be simply in a Doxygen form or maybe even in pdf form for easy citation?