机器学习和太空船的乐趣
ds2sim的Python项目详细描述
#ds2sim
一个简单的空间sim来进行机器学习的实验。
它用cython包装[horde3d](http://www.horde3d.org/)并使用它来呈现这样的场景。
<;img src="docs/img/example\scene.jpg"width="400">;
从[ds2data]设置(https://github.com/olitheolix/ds2data)
项目。该项目不仅有一组具有代表性的
相关对象的训练集,还提供了一个预渲染飞行路径来测试您的
模型。
一旦您有了模型,您就可以将其插入查看器应用程序(有关详细信息,请参见
[查看空间模拟]("查看空间模拟")部分)、
并通过当它识别对象时的场景。你也可以用另一个人工智能代替手动控制,让它自动飞行。
d,您仍然可以使用
来自[ds2data]的数据集(https://github.com/olitheolix/ds2data)来训练和测试ML模型。
克隆/编译/安装horde3d如下:
``bash
git克隆https://github.com/olitheolix/horde3d
mkdir-p horde3d/build
cd horde3d/build
git checkout ds2sim
cmake.-dcmake_build_type=release-dcmake_install_prefix=`python-c'import sys;print(sys.prefix)`
make install
````
之后,通过pip:
``bash
pip install ds2sim
```
查看空间模拟
这包括两部分:提供渲染图像的web服务器和
qt应用程序to显示它们。
启动web服务器并加载默认场景:
``bash
ds2server--default scene
```
注意,几乎整个文件都是qt的样板
qt的样板
``python
import sys
import ds2sim.viewer
import numpy as np
import pyqt5.qtgui as qtgui
import pyqt5.qtcore as qtcore导入pyqt5.qtqt5.qtwidgets as qtwidgets
br/>qpen,qcolor,qrectf=qtgui.qpen,qtgui.qcolor,qctcore.qreccore.qrecectcore.qrecectcore.qrecture。f
ds2text=ds2sim.viewer.ds2text
class myclassifier(ds2sim.viewer.classifiercamera):
def classifyimage(self,img):
pass
app=qtwidts.qapplication(sys.argv)
widget=myclassifier('camera',host='127.0.0.1',port=9095)
widget.show()
app exec()
```
这里唯一没有样板文件的部分是"myclassifier",即使
现在也不起作用。
单击它,并使用
esdf键和鼠标在场景中飞行。
为此,请像这样重载前一次演示中的"classifyimage"方法:
``python
``为方便起见。
qpen,qcolor,qrectf=qtgui.qpen,qtgui.qcolor,qtcore.qrectf
ds2text=ds2server.viewer.ds2text
class myclassifier(ds2sim.viewer.classifiercaramera)类myclassifier(ds2sim.viewer.viewer.ds2text=ds2server.viewer.ds2text=ds2server.viewer.ds2text.ds2text
是的始终是一个<;高度、宽度、3>;numpy图像。
断言img.dtype==np.uint8
/>bbbox=[qpen(qcolor(255,0,0,0)),qrectf(x,y,宽度,高度,x,y,宽度,高度)]
定义一个绿色文本标签。
x,y=0.3,0.4
text=[qpen(qcolor(100,200,0)),ds2text(x,y,‘发现了什么东西’)]
;安装覆盖层。
self.setmloverlays([bbox,text])
```
FYIMAGE公司`方法将为每个帧调用。它总是接收
一个rgb图像作为numpy数组。将该图像传递到分类器以识别场景中的对象。
当您确定哪些对象在其中时,可以添加覆盖以突出显示它们。每个覆盖都是一个2元组:一个"qpen"定义颜色,一个
要绘制的基元。目前,"qrect"和"ds2textures"是唯一受支持的基元。将所有覆盖传递到"setmloverlays",它将显示在场景中。
t;
一个简单的空间sim来进行机器学习的实验。
它用cython包装[horde3d](http://www.horde3d.org/)并使用它来呈现这样的场景。
<;img src="docs/img/example\scene.jpg"width="400">;
从[ds2data]设置(https://github.com/olitheolix/ds2data)
项目。该项目不仅有一组具有代表性的
相关对象的训练集,还提供了一个预渲染飞行路径来测试您的
模型。
一旦您有了模型,您就可以将其插入查看器应用程序(有关详细信息,请参见
[查看空间模拟]("查看空间模拟")部分)、
并通过当它识别对象时的场景。你也可以用另一个人工智能代替手动控制,让它自动飞行。
d,您仍然可以使用
来自[ds2data]的数据集(https://github.com/olitheolix/ds2data)来训练和测试ML模型。
克隆/编译/安装horde3d如下:
``bash
git克隆https://github.com/olitheolix/horde3d
mkdir-p horde3d/build
cd horde3d/build
git checkout ds2sim
cmake.-dcmake_build_type=release-dcmake_install_prefix=`python-c'import sys;print(sys.prefix)`
make install
````
之后,通过pip:
``bash
pip install ds2sim
```
查看空间模拟
这包括两部分:提供渲染图像的web服务器和
qt应用程序to显示它们。
启动web服务器并加载默认场景:
``bash
ds2server--default scene
```
注意,几乎整个文件都是qt的样板
qt的样板
``python
import sys
import ds2sim.viewer
import numpy as np
import pyqt5.qtgui as qtgui
import pyqt5.qtcore as qtcore导入pyqt5.qtqt5.qtwidgets as qtwidgets
br/>qpen,qcolor,qrectf=qtgui.qpen,qtgui.qcolor,qctcore.qreccore.qrecectcore.qrecectcore.qrecture。f
ds2text=ds2sim.viewer.ds2text
class myclassifier(ds2sim.viewer.classifiercamera):
def classifyimage(self,img):
pass
widget=myclassifier('camera',host='127.0.0.1',port=9095)
widget.show()
app exec()
```
这里唯一没有样板文件的部分是"myclassifier",即使
现在也不起作用。
单击它,并使用
esdf键和鼠标在场景中飞行。
为此,请像这样重载前一次演示中的"classifyimage"方法:
``python
``为方便起见。
qpen,qcolor,qrectf=qtgui.qpen,qtgui.qcolor,qtcore.qrectf
ds2text=ds2server.viewer.ds2text
class myclassifier(ds2sim.viewer.classifiercaramera)类myclassifier(ds2sim.viewer.viewer.ds2text=ds2server.viewer.ds2text=ds2server.viewer.ds2text.ds2text
是的始终是一个<;高度、宽度、3>;numpy图像。
断言img.dtype==np.uint8
/>bbbox=[qpen(qcolor(255,0,0,0)),qrectf(x,y,宽度,高度,x,y,宽度,高度)]
定义一个绿色文本标签。
x,y=0.3,0.4
text=[qpen(qcolor(100,200,0)),ds2text(x,y,‘发现了什么东西’)]
;安装覆盖层。
self.setmloverlays([bbox,text])
```
FYIMAGE公司`方法将为每个帧调用。它总是接收
一个rgb图像作为numpy数组。将该图像传递到分类器以识别场景中的对象。
当您确定哪些对象在其中时,可以添加覆盖以突出显示它们。每个覆盖都是一个2元组:一个"qpen"定义颜色,一个
要绘制的基元。目前,"qrect"和"ds2textures"是唯一受支持的基元。将所有覆盖传递到"setmloverlays",它将显示在场景中。
t;