Earlier today I saw the following question being asked on SO: Algorithm improvement for Coca-Cola can shape recognition. In my opinion a very interesting question based on its subject matter and well written as well.

However, at the end of all information, the original question ( the specific revision I'm referring to can be seen here ) asked the following:

I'd like to get some ideas to improve my project (not asking for general case shape recognition, just specifically for cans like here). I spent quite a bit of time on it, and would have loved to spend more, but I didn't have time or courage (or maybe both) to do it until now, probably because I'm not sure how I can improve it, and that's why I'm here asking for help. This could be improvements on this one algorithm, or totally different algorithms that may be more adapted. Any language is welcome, even if I'd prefer more C++ / OpenCV specifics or maybe Java, but this is overall more of a talk about algorithms than language-specific stuff.

Even though I like the topic and find the question as such interesting, based on this last section I voted to close as "not-constructive". I my opinion, with the question as it was, it would essentially allow for a discussion, a debate and a whole myriad of possibly correct answers targetting too broad a scope.

From the moment of casting this vote however, it has been questioned by various commenters and the OP stating such things as:

  • "This is a perfect question for this site."
  • "This is a great interesting question."
  • "brilliant question..........."

as well as various other comments in support of the question and questioning the vote to close. In fact, the question has gathered quite a number of upvotes by now, which I can even understand.

I can see where they are coming from, but if I would be particularly negative I would say "it's a non-constructive question in excellent disguise". Perhaps more suited for a forum setting rather than a Q&A.


I'm not here to get the question closed and even hesitated to ask this question here. I would readily accept that my interpretation of "not constructive" is too strict. But is it?

At which point does a question become "not constructive"? (I guess the answer simply is "when the community decides it is"?) And am I complete off-target in my assessment?

  • 1
    To the mods who re-opened the question. Thank you. And thank you especially for restoring faith in the system. – ely Apr 16 '12 at 19:07
  • 1
    @EMS out of respect for the DSP SE, I should point out that the question was never actually closed, but rather moved to the DSP site. Give the other sites some credit, SO isn't the center of the universe. – Shep Apr 16 '12 at 19:18
  • Sure, but the OP mentioned that in less than 10 hrs on SO, the question received a lot of useful answers. Meanwhile, at that time, it had received none at DSP. My aesthetic taste / experience is that you don't get good implementational advice at DSP, but it's great for understanding the theory better. I think SO was right for this question, but many others are right for DSP. – ely Apr 16 '12 at 19:21
  • I don't think the question is non-constructive in the least. I'm leaning toward off-topic -- SO is about programming, and computer science != programming, as this question clearly shows. If the question was "I'm trying to implement such-and-such particular algorithm in less CPU time", it'd be completely on-topic. But discussions of image recognition algorithms aren't, not even discussions of which have higher complexity. – Ben Voigt May 19 '12 at 21:04
  • @BenVoigt I back then felt that the initial revision of the question would lead to a brainstorm session where one could fling solutions at a wall to see what would stick. As such I thought the end result would be not constructive. I have since (partially via this question) revised my viewpoint slightly and see where you're coming from. I still don't think this is a good question though, but I'm largely outnumbered and perhaps stubborn. ;) – Bart May 19 '12 at 22:04
  • @Bart: I think brainstorming by non-experts is a common outcome of interesting but off-topic questions. – Ben Voigt May 19 '12 at 22:57

I'm not here to get the question closed and even hesitated to ask this question here. I would readily accept that my interpretation of "not constructive" is too strict. But is it?


In my opinion a very interesting question based on its subject matter and well written as well.

Primarily because he didn't just post the title and that last section, he described, in detail, what he was trying to do, what he'd tried, and the problems he'd encountered. The vast, vast majority of "not constructive" questions fall into that category by lacking this effort.

Can and will it still attract lousy answers? Sure. It's an interesting question, popular, and therefore prone to attract folks who just want to be part of the action, even if they've nothing to contribute. I've seen this happen to the most clearly-written, objective questions imaginable, questions where the answers could be easily tested for accuracy in seconds... And aren't. Down-vote those answers. Flag them, if they're bad enough. Leave comments chiding the answerers for not bothering to put in even a fraction of the effort the asker did in asking.

There are countless questions asked on SO every day that are boring, lazy, and completely thoughtless. The Don't Ask portion of the FAQ does a pretty good job of laying out the hallmarks of a real "not constructive" question. Close as such for those reasons.

But please, don't close a question when it gains unwanted attention for being too good!

  • 8
    Love the last sentence. Heavy traffic means a question may need protection, not closure. – BoltClock's a Unicorn Apr 16 '12 at 17:21
  • 4
    +1 Thanks a lot for this answer. I really like the point of view, although I don't follow it fully. I don't think the question was being "too good". It was very interesting and informative, but the ultimate question asked was not that good IMHO. (Although we might and probably do disagree). But I can agree that I might have been too strict in my evaluation. Which was why I asked this question in the first place. So thanks a lot once again. – Bart Apr 16 '12 at 17:24
  • I'd add that after seeing this, I will probably not risk writing "interesting" or "quality" questions, and will just fall back to what seems to be expected from me : plain, boring, short, dull down-to-earth questions. – Charles Menguy Apr 16 '12 at 18:04
  • 2
    @Bart: my best advice is that you evaluate questions holistically: don't fixate on a single line or paragraph, read the entire question and re-phrase it in your own voice... Then decide whether or not your question is constructive. This technique also helps if you need to edit the original question for clarity. The goal here is to produce the best question possible, not shut down anything that doesn't exactly fit a pre-defined template. – Shog9 Apr 16 '12 at 18:11
  • Thanks for the post @Shog9, I really appreciate it. This makes me think I should maybe follow the formal process to request to un-move the question. But after what I've seen with the Meta-gang, I'm just afraid to get -Infinity downvotes if I dare only think about it. – Charles Menguy Apr 16 '12 at 18:11
  • 2
    @linker: if you want it un-migrated, I'm happy to do that. Yoda's answer seems to indicate that DSP will welcome it as well, so looks like you have your pick of sites. – Shog9 Apr 16 '12 at 18:17
  • @Shog9 I ultimately still am more inclined to say that (at least part of) the responsibility for the attracted kind of answers lies with the OP. However, I do feel after all the discussions and opinions that I should perhaps have commented first to the OP, clarifying my point of view. Perhaps, as you say, telling him about "my question" and how I would have phrased it, all to avoid the problems I foresaw. I'll keep this in mind on future questions. – Bart Apr 16 '12 at 18:19
  • @Shog9, yes I feel it would be more at its place in SO, and I believe the reasons are good: I really want a quality answer, and I believe I would be more enclined to have great answers on SO. Image processing and general programming are far from being incompatible, I already started getting some quality answers after barely 10 hours, so I'm sure I'd get something really good after some time, and this would improve the community a lot. – Charles Menguy Apr 16 '12 at 18:21
  • 2
    @linker Don't have too glum a view of SO or MSO. Especially on MSO we're all an opinionated bunch. Ultimately all with a similar goal. To make SO better. In fact, the whole reason I asked my question here is to get opinions. Even if it would have meant that I would have been shot down. The results of discussions here might not always be to our liking, but I'd rather have that than no opportunity to discuss at all. – Bart Apr 16 '12 at 18:21
  • @Bart I totally understand that you're doing your best to make SO a better place, and I can understand that you had your opinion on the topic. I'm still new to the site so still learning how all of this works together, but I really felt my question did fit well for SO, especially since I took the time to go through the FAQ like 10 times to make sure I wasn't OT. – Charles Menguy Apr 16 '12 at 18:24
  • @Shog9 thanks, I feel this is the right decision for the community on this passionating topic. – Charles Menguy Apr 16 '12 at 18:32
  • 2
    @SO: And yet, there wasn't a single line of code. – agks mehx Apr 16 '12 at 19:21
  • 1
    .. Just like the FAQ says there doesn't need to be. – ely Apr 16 '12 at 20:06

I don't believe your interpretation is incorrect. In making edits to a question, we do as much as we can to respect the author.

In this case, the author has laid out a very interesting piece on what they've done (in fact, the majority of the question is about that).

However, the actual question is "how can I improve on this"? That makes the question "not constructive". As you've read it (and as I have) there are many ways this can be done, each with varying degrees of effect, and people tend to get worked up over this kind of thing, hence the close reason.

Fortunately we have a site for people who have working code that they wish to be reviewed for improvements.

However, I'd emphatically state that this is really a question that should be moved to Digital Signal Processing as they specialize in doing exactly this kind of work, and while this has been upvoted heavily here, the answers are really quite lacking. The first answer isn't even an answer, it just asks another question (for the most part).

  • 4
    the question is not "how can i improve on this", but "how can i improve my algorithm in OpenCV to solve the 4 points where my algorithm fails". – Charles Menguy Apr 16 '12 at 13:54
  • 2
    The code review site doesn't correspond at all to the question: I implemented the algorithm correctly, the problems I encountered do not come from a wrong design choice. This is about the algorithm itself and what I did wrong in the process to make it slow and fail on some use cases. – Charles Menguy Apr 16 '12 at 14:05
  • 2
    @linker It seems like you could contribute a lot to the dsp site with this question, not to mention get more qualified responses. Why not take the question there? – Shep Apr 16 '12 at 14:08
  • 1
    I'd like to understand why a question like "how can i improve my algorithm in OpenCV to solve the 4 points where my algorithm fails" doesn't fit on SO, because if it's the case we should seriously update the FAQ. To me it fits as well on SO than on DSP, I even saw a comment saying this shouldn't be here because this is machine learning. But why do we have a machine-learning tag with 1k+ posts then? – Charles Menguy Apr 16 '12 at 14:11
  • 3
    @linker I didn't make the statement that there shouldn't be an intersection between all sites on Stack Exchange. That's nearly impossible. There are some places where the question has a better fit, however, which is the statement I made. – casperOne Apr 16 '12 at 14:46
  • 2
    I see the question has been moved. How does move work? This doesn't seem right. I've hesitated for a long time to join Overflow because nearly all my friends told me that all interesting questions get closed or moved. I guess that wasn't so far away from the truth. – Charles Menguy Apr 16 '12 at 14:54
  • 2
    @linker That argument doesn't really work. You'd have to find the people that cast the close vote, find their reasons, etc. That's just not how the system works. The Stack Exchange sites rely heavily on the collaboration of the community to maintain quality. Your question failed to meet the current standards that are clearly established. Why are you so dedicated to seeing the question on Stack Overflow? Your pursuance of the location of this question hints at a lack of concern for a quality answer, and for the promotion of the question, which is not a good basis for asking a question. – casperOne Apr 16 '12 at 15:10
  • 3
    If the question is not constructive on SO, then it is not constructive on every SE site and shouldn't be migrated anywhere. It might certainly be a better fit on DSP, but if you were convinced that it is not constructive it shouldn't be migrated. – Mad Scientist Apr 16 '12 at 15:16
  • 2
    @Fabian That's not necessarily true. The close reasons don't always translate exactly across sites. Also, some sites are, how shall we say, more tolerant of certain questions because they are more constructive in their domain as opposed to Stack Overflow, which is the general domain. – casperOne Apr 16 '12 at 15:22
  • 2
    I not only did research on it, but explained my whole process of thought and what I wanted to improve. I spent more than an hour to write it. And yet I see people who just copy/paste their homework who don't get moved and get upvoted... – Charles Menguy Apr 16 '12 at 15:58
  • 3
    @linker: Stack Overflow is not a "do my homework for me" site. – user102937 Apr 16 '12 at 16:23
  • 2
    @linker: It's great that you spent time and effort on the question. But spending time and effort is simply not how we decide what questions to keep. Your question ultimately asks for people's opinions, with little objective way to measure whether an answer is correct. There is no one right answer, and someone answering has no way to know that their answer is right. That's simply not allowed here. As others have stated, other sites are generally a bit more lenient about "good subjective" questions. These rules keep SO focused on solving real problems. – Nicol Bolas Apr 16 '12 at 16:37
  • 5
    @Nicol: I gotta disagree with this - it may not be trivial to test the correctness of an answer, but it is certainly possible. It's a bit grating to see folks picking on a couple of sentences out of a detailed, multi-page question, when the problems with them can be more than mitigated by the context. Every day, I see questions that consist of little more than, "What's a good algorithm for..." without any indication of thought or research on the part of the asker, much less detail on what he has tried, or how it has failed. Those damnable questions need this sort of attention. – Shog9 Apr 16 '12 at 17:30
  • 2
    @Bart -- I appreciate your point, but I do disagree with you very much. If 100+ folks upvote a question, and 4 people can cause it to be closed/migrated, the moderators deserve a lot of criticism. – ely Apr 16 '12 at 18:02
  • 2
    Note that I got 7 interesting answers in 10 hours, out of which a few were of quality. But on DSP? None ! – Charles Menguy Apr 16 '12 at 18:02

I have posted this question in hope to get good and constructive answers about how to improve my system. I don't really see in what manner this is non-constructive, there seem to be all components of a constructive question here :

  • A specific algorithm that I wish to improve on.
  • A specific language and even library I wish to use.
  • A lot of details about what I want to improve on.

I see a lot of questions labelled as "Help me improve my code", or "Make my code run faster", that for most of them don't give any direction on how we can help them, yet there is no request for close.

In my opinion it is not because the problem is slightly more complex that this is not constructive. If I understand correctly, SO is a website to solve programming problems, and this is indeed a programming problem with a reduced scope even if I did not post any code.

By the way I have updated the main scope of the question, please give me more details if you think this is not constructive.

As an attempt to comply with those who consider this "non-constructive", here is a simple reduced form of my question: can you help me improve my specific algorithm, using exclusively OpenCV features, to resolve the four specific issues mentionned? Don't tell me that it's less constructive than "Improve this SQL query" or "Make my program faster" or so, please. Sorry if that limits the discussion, but this seems to be what a group of a few people want.

  • 2
    FAQ: """if your question generally covers … a specific programming problem a software algorithm software tools commonly used by programmers practical, answerable problems that are unique to the programming profession""" it seems to me all 4 are respected by my question: 1) specific programming problem: improving coca cola can detection, 2) algorithm: generalized hough transform, 3) openCV, 4) recognizing coca cola cans is very practical and quite unique. – Charles Menguy Apr 16 '12 at 14:43
  • 4
    I understand the FAQ and its finer points; again, you've talked about code but we don't see any of it. It is very hard to improve code you cannot see. You're looking for higher level help which doesn't always fit on SO and often sets the bar higher for being Constructive. If you'd have provided profiling data or something (poor performance due to allocation, etc), perhaps it would be a better fit. A good test to see if your question is constructive is to see the answers it receives...which are not great: this is indicative of the question needing another home. – user7116 Apr 16 '12 at 14:51
  • 2
    Why do you speak about code? The FAQ explicitely says you don't necessarily need code. Please let me know a valid reason that agrees with the FAQ. – Charles Menguy Apr 16 '12 at 14:53
  • 2
    You asked us to improve code without providing any code...hence 5 individuals (I was not one of them, and likely would have left your question alone) with close privileges believed your question to be Non-Constructive. This jives with the FAQ. Not every question is a good fit for SO. – user7116 Apr 16 '12 at 15:00
  • 2
    You're avoiding my question, I wasn't asking to improve my code, but my algorithm. Speed was not the most important. – Charles Menguy Apr 16 '12 at 15:05
  • 2
    I believe code is the core of the algorithm for sure, but why does the FAQ say you don't necessarily need code, while you're saying the opposite? – Charles Menguy Apr 16 '12 at 15:18
  • 2
    Why is there a machine-learning tag then? I can repost this with some code for sure ! – Charles Menguy Apr 16 '12 at 15:25
  • 3
    There are plenty of sharp folks who would love to help fix problems in your code which is limiting the performance of your algorithm on SO. There are (maybe, never been there) plenty of sharp folks who would love to help design an accurate and well performing DSP algorithm on DSP. – user7116 Apr 16 '12 at 15:32
  • 2
    To whoever wrote "algorithm == code", thank you for giving me something to laugh about. I personally have helped answer algorithm performance and design questions on SO many times, and lots of others answered the same questions, gave them upvotes, and never complained. It didn't even occur to any of us that such questions could possibly not be right for SO. The only difference here is that this OP did a ton of great research first. If the question had been 1 paragraph about Hough transforms, no one would have said anything about it. – ely Apr 16 '12 at 15:59
  • 2
    I think some moderators just made a very subjective choice, but sadly they will never admit it. If you read the FAQ, my question matched ALL of it, and nobody has been able to give me a valid reason except some vague answers. – Charles Menguy Apr 16 '12 at 16:02
  • 2
    @EMS, you're free to answer any question you'd like regardless of its fit on SO. I was pointing out why this particular question received close votes in spite of its popularity (again, I did not vote either way). At the end of the day, code wins on SO. – user7116 Apr 16 '12 at 16:21
  • 2
    @sixlettervariables Yeah, I know I can answer the question. But why should I bother to answer questions on SO if very well-researched, thorough, widely useful questions that are specifically about implementation and algorithms won't be allowed to stay up here? Saying that "code wins" does nothing but avoid all of linker's good points. Update the FAQ to say that non-code questions will be judged at a higher standard, and then clearly spell out the specifics of that higher standard, or else admit that code is not necessary and that linker's question was totally valid as-is. – ely Apr 16 '12 at 17:32
  • 2
    It seems silly to give your users, especially us who answer more than we ask, a dis-incentive to ask or answer thorough, on-topic questions. This moderator opinion nonsense has to change or SO will just morph into a homework question site, much like what happens at mathoverflow, where the moderators are even worse and will close things for purely aesthetic reasons. The density of disguised textbook problems there is very high, and that will happen here because opinionated moderators act like a pressure to force out good, research-quality questions. – ely Apr 16 '12 at 17:45
  • 2
    This is a totally silly argument. The FAQ exists to serve as a fixed guideline for the extra scrutiny you mention. Saying that you don't need to update it just because traffic is higher implies that because of higher traffic, moderator opinions are more important than experienced user opinions, and that the FAQ is free to totally diverge from the actual criteria that are promised to the users that their questions will be judged by. – ely Apr 16 '12 at 17:53
  • 3
    Also, I disagree that the FAQ underemphasizes code. Code should not be emphasized. Code is only a minor part of the learning exchanges that SO is intended to service. Questions without code, when well-researched, are often the best and most appropriate questions. I agree that poorly researched non-code questions are not good, but that is a straw man that no one here is trying to defend. – ely Apr 16 '12 at 17:54

As a top opencv contributor, I have my own take on this subject so please be patient with me as I may provide a different view of the situation:

Obviously, this question has received a ridiculous amount of up votes on other sites, and there's a reason for it: it's an interesting problem and it was well written by someone who seems to have an above-the-average knowledge in OpenCV. All that plus the fact that we were all brain-washed by Coca-Cola since medieval times, led that question to receive more up votes than everyone else (at the moment of this writing) that has ever contributed to the OpenCV tag (besides myself) on Stackoverflow.

A side note: as some of you may have noticed, it's not fair to these guys, so I think it would be cool if someone posted a thread to debate whether we should really preserve up votes when moving questions from one site to another.

Back to the subject: the OP of that question pointed out (somewhere here) that the purpose of the question is not how can I improve on this (talking about code), but how can I improve my algorithm in OpenCV. The reality is: either a program solves a problem, or it doesn't, and his current approach doesn't respect the constraints of the project.

With that in mind, consider this: OpenCV is not just another programming library, it's a fantastic framework for Computer Vision - a field of study within Computer Science, that involves other fields of science such as Artificial Intelligence, Machine Learning, Mathematics, Physics, Signal Processing and others - developed by awesome researchers in these areas. When you are building applications with OpenCV you are using a lot more than just your programming skills in C/C++.

What I am trying to say is: as the question aims to find a better set of algorithms, a new approach to really solve that complex computer vision task, IMHO, the question should either be moved to some other place or it will get closed for 2 reasons:

  • 1st: it's simply too localized for Stackoverflow. It requires a lot more than programming experience in C/C++ to answer it successfully (for reasons I explained earlier);
  • 2nd: what the OP is really saying is: I need a solution to this complex research problem, but the thing is that Stackoverflow is not your personal research assistant.

What I think that most people don't understand is that solving this type of exercise takes a lot of time and testing of several different approaches. If the OP is not willing to share what the code he has written so far, it is highly unlikely that any of us are going to start from scratch and just to be able to tell him which algorithms do better at certain points of the application. Not going to happen. In it's current form, the question is better suited to freelancer.com.

  • I don't think the question of "fairness" has anything to do here, it's not my fault if my question was upvoted so much, it's the community who decided this. 1st: if we consider that every problem that requires "programming experience" is too localized for SO, we're in trouble. 2nd: i don't need a solution to any complex research problem, i've already gotten very relevant and quality answers on this specific problem. I agree that it would fit equally well on DSP (or the upcoming image processing on area 51), but it also fits very well on SO with the current FAQ. – Charles Menguy Apr 23 '12 at 2:27
  • And I think you're misunderstanding my question: i'm not asking that anyone starts from scratch to tell me which algorithms do better at which points, that would be way OT ! Look at the answers I received, which focus on the specific problem I gave for some of them, which is exactly what I expected, and it seems to have worked. But my question doesn't have anything to do with your last paragraph. – Charles Menguy Apr 23 '12 at 2:32
  • 1
    I'm not saying it's your fault that it got so many upvotes, I only acknowledge that it did and said why I believe that happened and that I also think it's something we should discuss and maybe prevent in the future. I didn't, at any point, said your question should be closed because it has received an extraordinary amount of up votes. – karlphillip Apr 23 '12 at 2:32
  • 1
    About 1st: your problem requires a lot more than programming experience. It also requires knowledge in a field of science, and that is what makes it localized. We have DSP for that sort of question. – karlphillip Apr 23 '12 at 2:34
  • 1
    What makes it require a lot more than programming experience? This is above all a talk about an algorithm, which is encouraged by the FAQ. I'm not interested in a perfect and very complex solution that requires a PhD, I wouldn't have enough knowledge to understand it anyway. I can tell you I have done very little in image processing, only 1 course at university, and have a software engineering background, but definitely not a researcher one. So I don't see why a question that may require a bit more thought than some others would be too localized. – Charles Menguy Apr 23 '12 at 2:37
  • 2
    About my last paragraph, without sharing what you have done so far and let us build & improve upon that, you will get answers that only seem to be good, and you will spend a lot of time testing their suggestions. Therefore, the question in it's current form is not constructive for Stackoverflow, and is too localized, since you are the only one being benefited. – karlphillip Apr 23 '12 at 2:37
  • @linker it certainly doesn't require a PhD in computer vision, but it is highly unlikely that an useful answer is going to come from someone who never invested a proper amount of time being involved researching image processing or computer vision. – karlphillip Apr 23 '12 at 2:41
  • The "non constructive" talk has already been discussed in all possible directions in this thread, I'm not looking to discuss that again as we already have some solid talks as to why this is indeed constructive, I was just replying to the "too localized" question, which I don't understand, it's not because it could fit well in an other website of SE that it doesn't fit as well in SO, it's not mutually exclusive. – Charles Menguy Apr 23 '12 at 2:41
  • Well I don't know if the guys who posted the top answers to this question have a PhD, but their answers are definitely in the range of what I was looking. I think where you're mistaken is that it's a talk about a specific problem and algorithm, not computer vision in general where this would be OT. – Charles Menguy Apr 23 '12 at 2:43
  • This question has been mostly discussed by people that have NO experience in the subject of your question. That is why I chose to interfere, since I can offer a unique perspective in the subject. You don't need to worry, though, I don't have the power to close your question alone. Good luck. – karlphillip Apr 23 '12 at 2:45
  • I really appreciate your point, and I'm truly grateful that you take the time to express your concerns, that means a lot and you're truly passionate on the topic. I just disagree with the fact that it's too localized for SO, I think it's perfect since there is a specific problem, a description of what I tried, and what I want to improve. I'm really interested in the image processing website on Area 51 though and already committed to it, I have several questions in mind who would be too broad for SO who will find a home there. – Charles Menguy Apr 23 '12 at 2:47
  • 1
    karlphillip, I agree with most of your answer, but disagree with your conclusions. First off, we don't have a Computer Vision site - we might well have one in the future, but if a question like this isn't getting any worthwhile answers now, on SO, then I don't see much hope for creating one - all of our successful sites have had at least some roots in our existing community, and if a question with this much attention can't get an answer then asking it on a much smaller site is pointless. You're free to ask a question on CS.SE or DSP.SE if you think there's a better format and venue. – Shog9 Apr 23 '12 at 21:04
  • 1
    Second, "too localized" does not mean "I have an obscure problem"... It means "I have a problem that will never apply to anyone else". Exceedingly localized questions tend to have a problem with being noise, not with being too popular. Oh, and again - if it was too localized on SO, it's not gonna get any less localized if I migrate it somewhere else. – Shog9 Apr 23 '12 at 21:08
  • 1
    Finally, it's impossible to predict how much effort someone will put into an answer on Stack Overflow. If you don't want to, if the question doesn't interest you, or the reward is too small for the effort, then don't - if no one does, then the question may never be answered. If you do want to answer, but for some reason answering on SO offends you, then re-post the question and your answer on whatever site you feel is more appropriate. Heck, write it up and then sit on it until CV.SE launches, if that makes you happy. This is, BTW, the proper way in which to migrate a question without votes. – Shog9 Apr 23 '12 at 21:15
  • 1
    @karl, you've been around SO long enough to have seen quite a few topics that were allowed, accepted, even embraced before getting their own sites. Indeed, one of the best ways of pulling together a new SE site has traditionally been to take a subcommunity on SO and create a site to handle their specific, not-strictly-programming needs, with Server Fault being the first and Mathematica being the most recent. Sites like Seasoned Advice with no overlap are considerably harder to build. If you ever change your mind and want to continue this discussion, let me know... – Shog9 Apr 24 '12 at 0:19

OK, so on the premise that SO is a Q&A site, and that we don't accept questions that will encourage open-ended debate or extended discussion, let's look at the answers so far:

  1. Suggest the OP scan the bottles first and filter them out. OP comments that doing it this way is probably not adventitious, for somewhat speculative reasons, and that it could double the processing time.

  2. Suggests several completely new algorithms. The argument is well cited, but would require a totally different approach from the one the OP started with, and so far there is no concrete evidence that it's superior.

  3. Basically treat the can like a barcode. Very interesting, but not well cited, so would require some testing, which makes this choice quite debatable.

  4. Look at shape and highlights, also not cited or easy to test, i.e. debatable.

  5. Suggests looking for rectangles. Not cited, OP comments that the usefulness is debatable.

  6. Suggests using a range sensor and neural nets. OK, good ideas, but who said anything about a range sensor? Are we free to suggest any sensing technology we can think of?

The rest of the answers make a lot of interesting suggestions, some involving more hardware, some asking for algorithms which may not exist in OpenCV.

In any case, the top 5 answers all suggest completely different solutions, most of which aren't tested and all of which surely have nuanced advantages and disadvantages, even within the OPs four specific focuses. While we can't blame the OP for bad or open-ended answers, I can't help but think that the question may just be conducive to them.

There is currently a +100 bounty on the question, which may just draw out the "right" answer, but if the answers continue the way they are, determining the correct answer will require every reader to wade through many paragraphs of debate before weighing his particular situation against the various answers and coming his own conclusion. This strikes me as exactly the kind of question we're opposed to, and awarding a bounty to a subjectively superior answer misses the issue even further. Fact is, computer vision is an entire academic discipline with numerous obvious commercial applications. Many in the profession have spent years arguing over the "best" classifier to use in a given situation. To call this thread "specific" in the SO sense overlooks the huge amount of testing and tuning which would be required to rule out even one of the suggested solutions, let alone select the best one.

In my opinion, to say this question is evolving into anything but an open-ended research blog betrays a lack of experience in machine learning. So while I believe it's an interesting question, and while I would love to learn more about the OPs progress as the project develops, as it's currently evolving I don't think it's appropriate here.

  • +1 Exactly what I (think I) said in my answer, but in a more clear way. If the OP edited his question and maybe shared some code, than I would be more inclined to think it could be a constructive question for Stackoverflow. But in its current form I don't think it is. If he share code, than people could improve upon that, but right now any answer that is not build upon concrete proof could be seen as random guesses/speculation. – karlphillip Apr 23 '12 at 16:54
  • Again, I'm not asking about the "best" classifier or anything, but an alternative to boost performance on this specific problem, which is exactly what the top answers are. Sure not all answers make a good point, but I'd like to see a case for a popular question where this is no the case on SO. This is exactly what the bounty is for. I don't understand your argument about the answers "not cited", this is not a research project, i don't care about references as long as answers bring a clear and pertinent point. – Charles Menguy Apr 23 '12 at 19:05
  • @karlphillip why are you still in a deadlock about code? This has already been debated, and it's well explained in the first paragraph of the FAQ that you don't necessarily need code. – Charles Menguy Apr 23 '12 at 19:10
  • @linker I understand that, but in your case it would make a lot of difference as it would be seen not only as you giving it back to the community, but it would also give us something to build upon, allowing us to really provide useful answers. Right now, I still can't see a way in which your current question contributes to Stackoverflow. The only one being benefited is you. – karlphillip Apr 23 '12 at 19:17
  • @karlphillip Come on, you're saying im the one this question benefits to, while the only thing you've been looking at for this question is the top opencv list... I think this question actually contributes a lot to the community, by providing a clear concise and detailed problem statement on an interesting topic which is totally in phase with the FAQ. If you're not happy with the answers I can't control that, flag them, downvote them, or even better, propose your own. – Charles Menguy Apr 23 '12 at 19:23
  • Most of my contributions to OpenCV involves hard data or actual code. I can't provide any of those in this case because it would take me hours to find a proper solution that addresses all the restrictions your question imposed. It's a complex problem, it requires a high level of expertise, and any relevant answer would need hours of research and testing. The way the question is written right now doesn't invite good answers. Therefore, I continue to believe this question is too localized and really doesn't contribute to Stackoverflow. – karlphillip Apr 23 '12 at 19:41
  • @karlphillip It's not because your contributions involve code that all questions need to, again, from the FAQ. Should all questions asking about a more-complex-than-average problem be closed as too localized? Hell no, otherwise you're better off turning stackoverflow into homeworkstackoverflow. Again, I'm not asking for hours of research, testing, etc, I have asked a specific problem with specific constraints and am asking on how to improve my algorithm. Look at some of the answers, they understood very well what was expected here and add a lot of value to the topic. – Charles Menguy Apr 23 '12 at 19:50
  • @linker No need to put words in my mouth, I never said all questions should share code. It's just that your question invites a (long) theoretical discussion about a complex subject within a field of research few people in this site are prepared to participate. Again, I agree with Shep observations, specially about the usefulness of most (if not all) the answers so far being debatable. It's very difficult to give a useful answer to the problem in the way it was described. – karlphillip Apr 23 '12 at 19:55
  • @karlphillip all popular questions attract noise, answers who are not exactly on topic. Look at some of the other highly voted questions out there. If an answer is not good or not on topic, you should downvote or flag them, that's why we have this stuff. By saying that if a good question hosts a minority of questionnable content (answers) it should be closed, you're just acting like SOPA ! It's these minotiry answers that you should worry about, not the question itself since it's clearly on topic and a good fit for SO. – Charles Menguy Apr 23 '12 at 20:02
  • 1
    let us continue this discussion in chat – karlphillip Apr 23 '12 at 20:04
  • you're just acting like SOPA ! does some extension of Godwin's Law apply here? – Shep Apr 23 '12 at 20:14

I think this question reveals something about SE culture that I have struggled to articulate, but I think is worth noting.

We have a question that the OP acknowledges is well-written, interesting, and useful and on topic for the posted site, yet he felt compelled to vote to close it as "non-constructive," because the poster expressed an openness to algorithmic rather than language-specific solutions.

The SE community seems to be incentivizing people to identify and root out "crap" in almost a pack-like mentality that is IMO getting a little ugly. The way one signals that they "get it" and are part of the in-group around here is identifying and rooting out crap posts. See the meta for the workplace beta for a condensed example of this attitude.

What would be accomplished by closing this post? Not letting it serve as an example for other posts? Not allowing users to gain rep with fluffy answers? Not making the internet worse?

Of course, those are visible. The downside is discouraging users inclined to ask and answer these types of questions.

  • 2
    Why the need to attach qualifications like a "pack-like mentality" to my vote as "not constructive"? I took the decision based on the direction I personally felt this question would take. (A concern perhaps better worded in the recent answer by @shep) I have no interest in being part of the so called "in-group" and came here to discuss what I thought is an edge-case which had me doubt myself. I still feel there are issues with this question and its answers, and I'm arguably one of the few. I welcome your opinion. I just don't recognize myself in the picture you paint. – Bart Apr 23 '12 at 19:27
  • The question seems interesting and well written, but it's not a good fit to the site. Having theorical discussions about something that no one can prove/back up brings little to no value to Stackoverflow. The user tried to solve the problem and successfully described an approach that doesn't work. Now he is looking for a new approach. At this point I invite everyone to read Stackoverflow is not your personal research assistant. – karlphillip Apr 23 '12 at 19:27
  • I suggest he comes back with a question when he is ready to share something valuable, code or something else that the community can build upon. I'm not convinced that this question helps anyone but the guy that asked it. – karlphillip Apr 23 '12 at 19:27
  • @karlphillip you've shown pretty clearly meta.stackexchange.com/q/130060/183554 that you're above all concerned about your top opencv list and so-called competition (which i have no interest on), you're saying the answers "don't work", how can you say that? The community has already built a lot on this question and for most of them totally in the direction described by the problem, what can you ask more? – Charles Menguy Apr 23 '12 at 19:31
  • Independently of my personal concerns (if there are any), the fact remains the same: I still think that the question, in its current format, doesn't bring value to Stackoverflow by reasons I mentioned several times. – karlphillip Apr 23 '12 at 19:46
  • @karlphillip And i still think it adds a lot of value to the community. The post from Shog9 sums it all pretty well. – Charles Menguy Apr 23 '12 at 19:52
  • @linker I'll say this: I enjoy reading the opinion of people that have little-to-no-idea about what you are asking. I would love to see the people that share your point of view actually contributing with an answer in that question. – karlphillip Apr 23 '12 at 20:03

I can't but help suspect that the primary purpose of the question was to garner a significant number of votes and a corresponding increase in reputation. Assuming that is true, one could argue it is the fault of the community that such an attempt actually works, and therefore it should not be moderated in any way. The problem is that most votes (again I suspect since we can't really tell) are probably coming from members who are getting a short-term rush from the dose of engineering goodness, and who are consequently forgetting that they are not upvoting a question but merely reflecting their rush. More experienced members know what they are dealing with and resist the temptation to upvote despite the rush. I doubt if their conscience allows most experienced members to downvote and thus neutralize the tactic of the OP.

If we had a "get to the point" rule, it could be applied. Do we have one? Do we need one?

I claim we need such a rule because that would allow experienced members to have a conscientious basis for downvoting and thus neutralizing the understandably high number of votes such a blog post in the guise of a question would get.

  • 1
    I can honestly say you that I don't care about votes, up or down. This is a real problem I've faced, I've explained it quite clearly with many details in the posts. I wouldn't have suspected one second that I would have gotten so many upvotes, I've only joined SO 3 days ago, I don't even have the notion of what votes are worth yet. I would argue that if I get so many up votes, it may be because the community doesn't see often enough questions who are detailed like this one, but that's just a thought. – Charles Menguy Apr 16 '12 at 18:44
  • 1
    Me coming to the OP's defense might seem strange, but I don't believe that the primary purpose was to gain some quick rep. I honestly believe the question is well intended and focusing on practical issues found. (My final opinion of the ultimate question asked notwithstanding) – Bart Apr 16 '12 at 18:45
  • 9
    If people are writing detailed, illustrated questions that describe a specific tough problem in a way that's interesting to Stack Overflow users all for the sake of getting reputation, mission accomplished. – user149432 Apr 16 '12 at 18:46
  • @linker, perhaps it doesn't apply to you but i hope you can see that the "get to the point" rule could benefit? Compare your question with so many others -- each question has an interesting story behind it. I am not suggesting to close your question, but to get the community to establish a framework for somebody who could abuse it. The key is "get to the point" -- if you can see that you can understand everybody's concern; if you cannot see it, it will seem unfair to you. – agks mehx Apr 16 '12 at 18:51
  • @Mark Trapp, sure, make SO a blogging platform rather than a productive one. The key point you are missing is that if every post were this detailed, far fewer questions would get answered. "Get to the point" is legitimate -- we edit/close questions for FAR LESS. – agks mehx Apr 16 '12 at 18:54
  • 3
    This finally sounds more like a question than an answer then. If you really believe such a feature/rule should be implemented, perhaps make it a separate question/discussion/request. Although I'm personally doubtful of its chances of success. – Bart Apr 16 '12 at 18:54
  • 1
    You want a blog post question? Look at that one: stackoverflow.com/q/2297794/1332690 And yet this was created by one of the mods who suggested my question was OT... – Charles Menguy Apr 16 '12 at 18:55
  • @agks Like I said on the non-meta post, this is a senseless conjecture. The user is way too new at SO for a point grab to make sense for this effort. That's basically a conspiracy theory attitude and has nothing to suggest that it is probable, hence it shouldn't be believed. – ely Apr 16 '12 at 18:58
  • @Bart, hopefully it is not too difficult to see that my answer is: "it is not constructive because it doesn't get to the point". I'm too jaded to put it out as a rule because kind of as you said, the SO community has a bit of a feelings-orientation which makes me too doubtful of its prospects. – agks mehx Apr 16 '12 at 19:00
  • 1
    I just feel that forcing too much of "get to the point" would just turn SO into a homework site. I've been here only 3 days, yet I have seen a number of posts who were clearly posted by people who didn't understand what they were writing, yet they were upvoted because people just rushed for the easy reputation. Do you think it's better than clear constructive posts? – Charles Menguy Apr 16 '12 at 19:07
  • 1
    @linker, that's fine, we all have our opinions, and don't worry, nobody's taking the "get to the point" suggestion seriously :) I apologize for the suspicion, but that was the first thing that came to my mind and I feel that even if it doesn't apply to you it could for the general situation being discussed. – agks mehx Apr 16 '12 at 19:14
  • 2
    @agks There's no evidence to even deem it a reasonable conjecture. It's a completely baseless conjecture. Pure speculation with no grounds. It's amazing to me that anyone's even giving it the slightest credence at all. As for the 'get to the point' idea, I believe the OP did just that. Excellent background material that was needed for understanding the 4 points of improvement that the OP listed. Maybe it could be slightly shorter, but only with really nitpicky editing because largely all of the content meaningfully contributes to the question. – ely Apr 16 '12 at 20:10
  • 2
    Also, if you think your own claim is not practically falsifiable, then why bother making it? That's very disingenuous. You're making a character ad hominem attack with no evidence. That seems pretty scummy to me. I believe you're doing it for the benefit of SO, but really it's hard not to think you're being pretty terrible by making a character complaint with no evidence. – ely Apr 16 '12 at 20:13
  • 6
    If you're accusing a person of trying to grub for rep points by making an appropriate and well-edited question, and you don't have evidence for this beyond your own speculation, then I think I can stand by what I said with a totally clear conscience. I dispute entirely that you've given any grounds for your claim. If you assign greater than 50% probability to the claim that the OP's question is about grabbing rep points, then I would say you have an objectively bad prior distribution on the event of a question being asked to garner rep points. – ely Apr 16 '12 at 21:12
  • 3
    You probably also upvote questions that you think are good. Also, the sky is blue. – ely Apr 16 '12 at 21:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .