我想将Kinect 2中的动作捕捉数据存储为BVH文件.我找到了Kinect 1的代码,可以在这里找到.我查看了代码,发现了一些我无法理解的内容.例如,在上面提到的代码中,我试图理解skel
在代码中的几个地方找到的Skeleton 对象到底是什么.如果没有,是否有任何已知的应用程序可用于完成预期的?
编辑:我试图将Skeleton skel更改为Body skel,我认为它是kinect SDK 2.0的对应对象.但是,当我试图获得身体的位置时,我遇到了错误:
tempMotionVektor[0] = -Math.Round( skel.Position.X * 100,2);
tempMotionVektor[1] = Math.Round( skel.Position.Y * 100,2) + 120;
tempMotionVektor[2] = 300 - Math.Round( skel.Position.Z * 100,2);
Run Code Online (Sandbox Code Playgroud)
调用Body skel的函数Position时,我遇到了错误.如何在sdk 2.0中检索骨架的X,Y,Z?我试图将以上三行更改为:
tempMotionVektor[0] = -Math.Round(skel.Joints[0].Position.X * 100, 2);
tempMotionVektor[1] = Math.Round(skel.Joints[0].Position.Y * 100, 2) + 120;
tempMotionVektor[2] = 300 - Math.Round(skel.Joints[0].Position.Z * 100, 2);
Run Code Online (Sandbox Code Playgroud)
编辑:基本上我设法在bodyBasicsWPF和kinect2bvh组合后存储一个bvh文件.然而,似乎我存储的骨架效率不高.肘部有奇怪的动作.我想知道我是否必须更改文件kinectSkeletonBVH.cp中的内容.更具体地说,kinect 2版本的关节轴方向的变化是什么.如何更改以下行:skel.BoneOrientations[JointType.ShoulderCenter].AbsoluteRotation.Quaternion;
我尝试更改该行skel.JointOrientations[JointType.ShoulderCenter].Orientation
.我对吗?我使用以下代码将关节添加到BVHBone对象:
BVHBone hipCenter = new BVHBone(null, JointType.SpineBase.ToString(), 6, TransAxis.None, true);
BVHBone hipCenter2 = …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下项目,以便在服务器和客户端套接字之间创建异步通信.当我运行这些项目时,我正在从客户端向服务器发送消息,因此我收到了消息:
数据:记录EOF,向客户端发送14个字节.
我想要实现的是使用套接字从服务器向客户端发送布尔变量.这样做是否可行,我想知道因为在代码中我有等待和监听的服务器以及发送数据的客户端,我可以这样做吗?一般来说,我想要的是向几个客户端发送一个布尔值.为什么我需要文件结束才能发送字符串?是否有必要将所有内容转换为字符串?
编辑:一般来说,我想要的是将一个变量从一台计算机发送到另外两台,以便在所有计算机上同时开始一个过程.事实上,要创建一个切换器,它可以同时在2-3台机器上发出信号.
我尝试将以下代码用于服务器:
class Program
{
const int PORT_NO = 2201;
const string SERVER_IP = "127.0.0.1";
static void Main(string[] args)
{
//---listen at the specified IP and port no.---
IPAddress localAdd = IPAddress.Parse(SERVER_IP);
TcpListener listener = new TcpListener(localAdd, PORT_NO);
Console.WriteLine("Listening...");
listener.Start();
//---incoming client connected---
TcpClient client = listener.AcceptTcpClient();
//---get the incoming data through a network stream---
NetworkStream nwStream = client.GetStream();
byte[] buffer = new byte[client.ReceiveBufferSize];
//---read incoming stream---
int bytesRead = …
Run Code Online (Sandbox Code Playgroud) 我试图从java代码执行.py文件.我将.py文件移动到我的java项目的默认目录中,并使用以下代码调用它:
String cmd = "python/";
String py = "file";
String run = "python " +cmd+ py + ".py";
System.out.println(run);
//Runtime.getRuntime().exec(run);
Process p = Runtime.getRuntime().exec("python file.py");
Run Code Online (Sandbox Code Playgroud)
使用变量运行,或者整个路径或"python file.py"我的代码正在运行,显示消息构建成功总时间0秒而不执行file.py. 我的问题在这里是什么?
我正在尝试使用python库scikit-tensor分解3D矩阵.我设法将我的Tensor(尺寸为100x50x5)分解为三个矩阵.我的问题是如何使用Tensor分解产生的分解矩阵再次组合初始矩阵?我想检查分解是否有任何意义.我的代码如下:
import logging
from scipy.io.matlab import loadmat
from sktensor import dtensor, cp_als
import numpy as np
//Set logging to DEBUG to see CP-ALS information
logging.basicConfig(level=logging.DEBUG)
T = np.ones((400, 50))
T = dtensor(T)
P, fit, itr, exectimes = cp_als(T, 10, init='random')
// how can I re-compose the Matrix T? TA = np.dot(P.U[0], P.U[1].T)
Run Code Online (Sandbox Code Playgroud)
我正在使用scikit-tensor库函数cp_als提供的规范分解.此外,分解矩阵的预期维数是多少?
我试图找出如何使用Generative Adversarial Networks的数据集标签信息.我试图使用可在此处找到的条件GAN的以下实现.我的数据集包含两个不同的图像域(真实对象和草图),具有公共类信息(椅子,树,橙等).我选择了这种实现,它只将两个不同的域视为对应的不同"类"(列车样本X
对应于真实图像,而目标样本y
对应于草图图像).
有没有办法修改我的代码并考虑我整个架构中的类信息(椅子,树等)?我希望我的鉴别器能够预测我生成的图像来自生成器是否属于特定类,而不仅仅是它们是否真实.实际上,在当前架构中,系统学会在所有情况下创建类似的草图.
更新:鉴别器返回一个大小的张量1x7x7
然后两者y_true
并y_pred
在计算损失之前通过展平层:
def discriminator_loss(y_true, y_pred):
BATCH_SIZE=100
return K.mean(K.binary_crossentropy(K.flatten(y_pred), K.concatenate([K.ones_like(K.flatten(y_pred[:BATCH_SIZE,:,:,:])),K.zeros_like(K.flatten(y_pred[:BATCH_SIZE,:,:,:])) ]) ), axis=-1)
Run Code Online (Sandbox Code Playgroud)
以及鉴别器对发电机的损失功能:
def discriminator_on_generator_loss(y_true,y_pred):
BATCH_SIZE=100
return K.mean(K.binary_crossentropy(K.flatten(y_pred), K.ones_like(K.flatten(y_pred))), axis=-1)
Run Code Online (Sandbox Code Playgroud)
此外,我对输出1层的鉴别器模型的修改:
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))
#model.add(Activation('sigmoid'))
Run Code Online (Sandbox Code Playgroud)
现在鉴别器输出1层.如何相应修改上述损失函数?我应该有7而不是1,n_classes = 6
用于预测真实和假对的+一类吗?
python conv-neural-network keras loss-function generative-adversarial-network
我正在尝试使用来自Library Compiler(java包)的javac从Matlab代码中提取jar文件.
我已经设置JAVA_HOME
为:
C:\Program Files\Java\jdk1.7.0_71
并添加到PATH
:
C:\Program Files\Java\jdk1.7.0_71\bin
.
当我进入java -version
我的控制台时,我得到java version jdk1.7.0_71
并运行javac -version
节目jdk1.7.0_71
.
但是,似乎matlab找不到javac,因此,我无法将我的.m
代码编译成.jar
文件.当我尝试编译.m代码时,我得到以下内容:
Error: An error occurred while shelling out to javac (error code = -1).
Unable to build executable.
Executing command: ""C:\Program Files\Java\Java\jdk1.7.0_11\bin\javac" -verbose - classpath "...\MATLAB\R2014a\toolbox\javabuilder\jar\javabuilder.jar" -d "...\features_extraction\for_testing\classes" "...\features_extraction\for_testing\features_extraction\Class1.java" "...\features_extraction\for_testing\features_extraction\Features_extractionMCRFactory.java" "...\for_testing\features_extraction\Class1Remote.java" "...\for_testing\features_extraction\package-info.java""
Run Code Online (Sandbox Code Playgroud)
这是我的Java bin文件夹下的javac.exe的目录存在:...\Java\jdk1.7.0_71\bin\bin\javac
?我发现这个链接,Java和Matlab2014a之间的兼容性(这是我的版本)在这里.为了正确地将Matlab链接到Java,我应该检查什么?几天前,Matlab正在使用Java.
在我看来,PATH
我注意到存在以下路径:C:\ProgramData\Oracle\Java\javapath
其中有三个错误的快捷方式,java.exe,javac.exe和javax.exe.当我输入matlab控制台时,getenv JAVA_HOME
我得到的 C:\Program Files\Java\jdk1.7.0_11
时候我写version …
我想在Netty nio中创建一个具有两个客户端和一个服务器的通信系统.更具体地说,首先,我希望当两个客户端与服务器连接以从服务器发送消息时,之后能够在两个客户端之间传递数据.我正在使用此示例提供的代码.我可以在这里找到我对代码的修改:链接
似乎serverHandler中的channelRead在第一个客户端被连接时工作,因此它总是返回1但是当连接第二个客户端时不会更改为2.当两个客户端连接到服务器时,如何从服务器正确检查?如何从客户端的主要功能中动态读取此值?那么这是让两个客户沟通的最佳方式?
EDIT1:显然似乎客户端服务正在运行并直接关闭,因此每次运行新的NettyClient时都会连接,但之后关闭连接.所以计数器总是从0到1.正如我在下面的评论中所建议的那样,我在相同的端口使用telnet测试它,并且计数器似乎正常增加,但是,NettyClient服务没有.
编辑2:似乎我得到的问题是从中future.addListener(ChannelFutureListener.CLOSE);
获得channelRead
的ProcessingHandler class
.当我评论它似乎代码工作.但是,我不确定评论的后果是什么.此外,我希望从客户端的主要功能检查返回消息何时是特定的两个.如何,我可以创建一个等待来自服务器的特定消息的方法,同时它阻止主要功能.
static EventLoopGroup workerGroup = new NioEventLoopGroup();
static Promise<Object> promise = workerGroup.next().newPromise();
public static void callClient() throws Exception {
String host = "localhost";
int port = 8080;
try {
Bootstrap b = new Bootstrap();
b.group(workerGroup);
b.channel(NioSocketChannel.class);
b.option(ChannelOption.SO_KEEPALIVE, true);
b.handler(new ChannelInitializer<SocketChannel>() {
@Override
public void initChannel(SocketChannel ch) throws Exception {
ch.pipeline().addLast(new RequestDataEncoder(), new ResponseDataDecoder(), new ClientHandler(promise));
}
});
ChannelFuture f = b.connect(host, port).sync(); …
Run Code Online (Sandbox Code Playgroud) 我正在尝试.wav
使用Python 从文件中计算出频谱图。为了做到这一点,我遵循此处的说明。我首先.wav
使用librosa库读取文件。在链接中找到的代码可以正常工作。该代码是:
sig, rate = librosa.load(file, sr = None)
sig = buf_to_int(sig, n_bytes=2)
spectrogram = sig2spec(rate, sig)
Run Code Online (Sandbox Code Playgroud)
和功能sig2spec:
def sig2spec(signal, sample_rate):
# Read the file.
# sample_rate, signal = scipy.io.wavfile.read(filename)
# signal = signal[0:int(1.5 * sample_rate)] # Keep the first 3.5 seconds
# plt.plot(signal)
# plt.show()
# Pre-emphasis step: Amplification of the high frequencies (HF)
# (1) balance the frequency spectrum since HF usually have smaller magnitudes compared to LF
# (2) avoid numerical …
Run Code Online (Sandbox Code Playgroud) 我有一个对应于一个数字但前面有几个前导零的字符串。我想要做的是删除数字之前但不在数字中的零。例如,“00000001”应该是 1,“00000010”应该是 10。我写了删除零和尾随的代码:
segment = my_str.strip("0")
Run Code Online (Sandbox Code Playgroud)
该代码删除所有零。如何只删除数字前的前导零。
我想对我的keras模型(称为model1
)做一个深层复制,以便能够在for循环中使用它,然后为每个for-loop迭代重新初始化,并fit
对该模型进行一个额外的采样。我希望能够在每次迭代后初始化模型,因为执行完之后fit
(但是修改了我的模型,但是我希望在使用load_weights从路径加载时将其保持原样)。
我的代码如下:
model1= create_Model()
model1.compile(optimizer='rmsprop', loss='categorical_crossentropy')
model1.load_weights('my_weights')
model_copy= create_Model()
model_copy.compile(optimizer='rmsprop', loss='categorical_crossentropy')
model_copy= keras.models.clone_model(model1)
for j in range(0, image_size):
model_copy.fit(sample[j], sample_lbl[j])
prediction= model_copy.predict(sample[j])
Run Code Online (Sandbox Code Playgroud)
而且,每次在for循环中加载模型对我来说并不是真正有效,因为这很耗时。在我的情况下,我该如何正确进行深拷贝?我发布的代码给出了有关函数.fit和我的参考模型model_copy的以下错误:
RuntimeError:必须在训练/测试之前编译模型。使用
model.compile(optimizer, loss)
。