如何设计近似求解算法
我想编写一种算法,可以获取图片的一部分并将它们与同一对象的另一张图片进行匹配。
例如,如果我给计算机一张花瓶的图片和一张包含花瓶的场景的图片,我希望它能够确定花瓶在图像中的位置。 我如何开始开发这样的算法?
该算法的最终用途将是一个应用程序,例如通过某人的脸部照片可以判断他们是否在人群中。 该算法最终将应用于视频流。
编辑:我不期待这个问题的实际解决方案,因为我不希望很快解决它。 真正的问题是如何向计算机定义这样的东西,以便你可以制定算法来完成它。
谢谢
I want to write an algorithm that can take parts of a picture and match them to another picture of the same object.
For example, If I gave the computer a picture of a vase and a picture of a scene with the vase in it, I'd expect it to determine where in the image the vase is.
How would I begin to develop an algorithm like this?
The final usage for this algorithm will be an application that for example with a picture of somebody's face could tell if they were in a crowd of people. This algorithm would eventually be applied to video streams.
edit: I'm not expecting an actual solution to this problem as I don't hope to solve it anytime soon. The real question was how do you define something like this to a computer so that you could make an algorithm to do it.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我以前的一位老师就类似的问题撰写了他的博士论文,只不过他的输入是某个物体的详细 3D 模型,他将用它来在 2D 图像中查找该物体。 这是一个非常重要的问题,没有单一的“答案”,当然也没有任何适合 Stack Overflow 格式的问题。
我的最佳答案是:筹集大量资金并聘请一位经验丰富的程序员。
祝你好运。
A former teacher of mine wrote his doctorate thesis on a similar sort of problem, except his input was a detailed 3D model of something, which he would use to find that object in 2D images. This is a VERY non-trivial problem, there is no single 'answer', certainly nothing that would fit the Stack Overflow format.
My best answer: gather a ton of money and hire a very experienced programmer.
Best of luck to you.
您描述的第一个问题和第二个问题有很大不同。
每个问题的主要部分都是通过众多机器视觉库解决的可用的。 您可能需要结合使用多种技术才能在任一任务上取得成功。
在第一个中,您需要一些能够普遍识别对象的东西。 也许我会同时使用多种算法来识别模型图像中的前景对象,然后对分区的目标图像进行某种加权比较。
在第二种情况下,相对于上述通用识别器,检查面部是一个更加困难的问题。 面孔看起来都一样,或者几乎一样。 一般识别器会注意到的事情不太可能有利于区分面孔。 您需要一种已经针对面部识别进行调整的算法。 幸运的是,这是一个快速成熟的领域,您可能可以像第一种情况一样做到这一点,但使用一组不同的功能。
The first problem you describe and the second are both quite different.
A major part of each is solved by the numerous machine vision libraries available. You may need a combination of techniques to achieve any success at either task.
In the first one, you would need something that generically recognizes objects. Probably i'd use a number of algorithms in concert to identify the foreground object in the model image and then do some kind of weighted comparison of the partitioned target image.
In the second case, examining faces, is a much more difficult problem relative to the general recognizer above. Faces all look the same, or nearly so. The things that a general recognizer would notice aren't likely to be good for differentiating faces. You need an algorithm already tuned to facial recognition. Fortunately this is a rapidly maturing field and you can probably do this as well as the first case, but with a different set of functions.
简单的答案是,找到一种描述面部的数学方法,可以解释角度和部分缺失数据,然后改进和教授它。
显然苹果已经做了类似的事情,但它仍然会犯错误,并且在前进的过程中需要接受教训。
我预计这将更多地涉及数学,而不是编程。
The simple answer is, find a mathematical way to describe faces, that can account for angles and partial missing data, then refine and teach it.
Apparently apple has done something like this, however, it still makes mistakes and has to be taught as it moves forward.
I expect it will be more about the math, than about the programming.
我想你会发现这是一个很大的挑战。 这是一个极其困难的问题,也是属于人工智能 (AI) 领域的众多计算领域之一。 面部识别肯定是这个问题最流行的变体,无论您在媒体上读到什么,任何声称的成功都不是他们所声称的那样。 我认为最接近的解决方案涉及神经网络,它们通常需要非常清晰且精心选择的图像。
不过,您可以尝试阅读此处。 祝你好运!
I think you will find this to be quite a challenge. This is an extremely difficult problem and is one of the many areas of computing that fall under the domain of artificial intelligence (AI). Facial recognition would certainly be the most popular variant of this problem and in spite of what you may read in the media, any claimed success are not what they are made out to be. I think the closest solutions involve neural nets and they require very clear and carefully selected images usually.
You could try reading here though. Good luck!