绘图和绘画机器人的算法 -
你好
我想编写一个分析图像的软件,然后使用最少的不同颜色和不透明度的bezier路径对象生成一个图像,该图像捕获人眼在原始图像中感知的内容.
与最近的推特超级压缩比赛(参见:stackoverflow.com/questions/891643/twitter-image-encoding-challenge)不同,我的目标不是创建一个忠实于图像的复制品,而是复制人类的体验.看着这个形象.
例如,如果原始图像在左上角显示一个红色气球,并且再现在左上角看起来像一个红色气球,那么我将实现我的目标,即使再现中的气球是不是在相同的位置,并没有完全相同的大小或颜色.
当我说"被人类感知"时,我的意思是非常有限.我不是试图分析图像的意义,我不需要知道图像是什么,我只对人眼会注意到的关键视觉特征感兴趣,只要这可以通过算法无法概念化实际观察的内容.
为什么这种不同的人类感知标准超过了摄影的准确性?
该软件将用于驱动绘画机器人,它会与人的艺术家进行合作(见:video.google.com/videosearch?q=mr%20squiggle).
算法应该寻求将画布上已经存在的内容合并到最终图像中,而不是将人类制作的标记视为不完美的错误.
因此,相对亮度,色调,饱和度,大小和位置比照片上与原始相同更重要.保持特征的拓扑结构,颜色块,渐变,凸凹曲线对于这些特征的确切尺寸形状和颜色将更为重要
还在我这儿?
我的问题是,我从"当你有一把锤子看起来像钉子"综合症时会受到一点点痛苦.对我来说,似乎这样做的方法是使用遗传算法的东西,如小波变换的比较(见:grail.cs.washington.edu/projects/query/)由retrievr使用(参见:labs.systemone.at/ retrievevr /)选择合适的解决方案.
但我认为这是答案的主要原因是,这些是我所知道的技术,可能有更优雅的解决方案使用我现在没有任何关于的技术.
考虑到人类视觉系统分析图像的方式会特别有趣,因此可能需要特别注意直线,角度,高对比度边框和相似颜色的大块.
您对视觉,图像算法,遗传算法或类似项目应该阅读的内容有什么建议吗?
谢谢
垫
PS.上面的一些拼写可能对你和你的拼写检查有误.这只是国际拼写变化,可能与您所在国家/地区的标准不同:例如澳大利亚标准:颜色与美国标准:颜色
robotics artificial-intelligence image-processing computer-vision
我正在编写一个软件代理来控制模拟足球比赛中的机器人玩家.最终我希望参加RoboCup比赛.
在创造这样一个特工所涉及的各种挑战中,它的身体运动是我面对的第一个.我瞄准的模拟使用了一个带有22个铰链的Nao机器人体来控制.每条腿六条,每条手臂四条,颈部两条:
http://simspark.sourceforge.net/wiki/images/b/b4/Models_NaoVirtual.png
我对机器学习很感兴趣,并且相信必须有一些技术可以控制这个人.
在任何时候,它是众所周知的:
我想要实现的任务类型是:
对于这些任务中的每一项,我相信我可以提出一个合适的健身功能,但不是一组具有预期输出的训练输入.也就是说,任何机器学习方法都需要提供无监督学习.
我已经在圆形功能(正弦波)的开源项目中看到了一些例子,它们连接到每个铰链的角度,具有不同的幅度和相位.这些看起来好像是直线行走,但它们看起来都很笨重.这不是一种适用于我上面提到的所有任务的方法.
有些团队显然使用反向运动学,但我对此并不了解.
那么,机器人两足动作/行走的方法是什么?
顺便说一句,我编写并发布了一个名为TinMan的.NET库,它提供了与足球模拟服务器的基本交互.它有一个简单的编程模型,用于机器人22铰链的传感器和执行器.
您可以阅读更多关于RoboCup的3D模拟足球联赛的信息:
我正在研究一种基于立体相机的移动机器人避障系统.它将在室内使用,所以我假设地平面是扁平的.我们还设计了自己的环境,因此我可以避免产生误报或否定的特定类型的障碍.
我已经找到了大量资源来校准相机并使图像排成一行,以及生成视差图/深度图的信息.我正在努力的是从中检测障碍的技术.通过检测地平面而工作的技术同样有用.
我正在使用openCV,并使用Learning OpenCV作为参考.
谢谢,所有
我们是学生在大学里开发一个中型(~4.5英尺高)人形机器人作为赞助研究项目.机器人应该能够执行的主要任务包括:四处移动(向前,向后,侧向),跑步,拾取物体.我们正在考虑使用硬实时操作系统来控制机器人.但是,由于我们是这个领域的新手,几乎没有嵌入式系统或操作系统的背景,并且有多种选择,我们不确定哪一个是合适的选择.我们遇到以下情况(括号内是我们目前对它们的印象):
我有很多问题:
更新:感谢您提供非常详细的答案.很明显,我们以错误的方式解决这个问题; 没有任何知识和vauge要求潜水肯定会很糟糕.我们必须坐下来,准确地说出我们需要的东西.当我们充分领先时,我们将尝试找出合适的操作系统.让我们看看它是如何运作的.我还将阅读MicroC OS II的第2章:实时内核.
在我的机器人视觉项目中,我需要检测运动物体的标记,但运动会导致图像模糊.反卷积方法非常慢.所以我想用更高的fps相机.有人说我不需要更高的fps,而是需要更短的曝光时间.
OpenCV的Python界面cv2提供了一种更改摄像机设置的方法,但它不包括"曝光时间"或"快门速度"设置.我也担心网络摄像头甚至不支持这种设置.
关于的任何其他想法:
使用相机设置消除模糊效果?
要么
具有实时性能的图像恢复?
要么
关于实时机器人应用的低成本相机的任何建议?
ROS2是使用节点之间的发布者/订阅者消息传递的分布式架构
ROS2在其消息传递层采用了不同的方法,现在采用了称为数据分布式服务(DDS)的行业标准.
但是,DDS是一种用于通信的中间件,也支持发布者/订阅者.
那么,我们可以直接使用DDS,为什么要使用ROS2?
我正在研究如何构建/编写简单的硬件,然后转向简单的机器人.我应该从哪里开始?购买硬件的最佳网站是什么?有关我应该使用的硬件/语言类型的任何建议吗?
所以我目前正在进行一些机器人研究,我们在实验室中有一个我们想要模拟的定制臂.我已经做了一些谷歌搜索和维基百科搜索,似乎有相当数量的开源和专有应用程序来做我需要的,如Gazebo,LpzRobots,Webots,RoboLogix等.我们的主要研究工具是C++和网络接口.
我的问题是,有没有人在处理机器人模拟器方面有任何经验? 如果我应该跳过哪一个,或者我是否应该从头开始自己开始编写,你能推荐一下吗?我的主要用途是运动规划测试(所以我希望能够完全控制机器人的位置而不用担心动力学)和控制器动力学测试(恰恰相反),用于定制运动链机器人.
我正在为Haskell开发混合系统控制器.
FRP库(现在我正在使用netwire,但有几个好的和未来的很多有趣的研究)为问题的连续时间提供了一个很好的解决方案.使用信号名称,尺寸,首选单位等对它们进行扩充可以使您获得一个具有模块性,自我描述并且具有直接信任正确性的路径的系统.
我正在寻找为离散时间提供类似属性的信息,民间传说或论文.在某种意义上,问题更容易,状态机是经过充分研究和简单的.在其他方面,它更难,我将简要解释如何.
正确性显然是最重要的,谢天谢地,它也很简单.
自我描述更是一个问题.你不仅希望控制器处于正确的状态,而且能够告诉你它处于什么状态.它也是如何实现的.接下来可能会发生什么.因此,您可以将名称添加到所有内容中,并且它可以工作,但它与模块化有些冲突.您还希望能够从更简单的时间行为构建复杂的离散时间行为.但是当你问系统处于什么状态时,通常高级答案比低级答案更有趣(或者至少有趣).你怎么干净利落的呢?我尝试了一些天真的方法,并用几种不同的方式将自己包裹在意大利面中,但似乎必须有优雅的解决方案?
我自我描述的另一个问题是我想要一个自我描述条件的列表(通常比较:它是10秒?我在下一个航点的3英尺内吗?电池电量下降了吗?低于15%?等)可能会触发下一次状态转换.有一些棘手的问题,即使这里的理想语义是什么,因为看起来这些事件中的一些更好地"自下而上"处理(例如,你正在执行的任何低级步骤的预期终止条件)和一些"从顶部"(例如设备故障检测,地理围栏......).即使你放松了自我描述的目标,这也可能导致自己的意大利面.
除了诊断之外,这里准确的自我描述信息对抽象解释也非常有用,通过猜测哪些事件可能发生在未来时将系统状态投射到未来.许多事件条件导致相当简单的猜测(例如使用速度良好,燃料消耗率,计时器).其他更复杂,但可能仍然值得为某些应用开发预测(例如,运营商的预期订单,天气预报,移动感兴趣对象的预测轨道).很高兴找到一个不仅用名字来注释条件的设计,而且还有这种东西的函数.
有没有人有这方面的经验,他们愿意分享?
robotics haskell functional-programming state-machine control-theory