小编RLo*_*ris的帖子

使用带有Tensorflow JS的自定义视觉导出模型并输入图像

我是tensorflow.js和tensorflow的新手

上下文:我们已经使用自定义视觉训练了一个模型,以便从图像中识别头发的长度:短,中,长。该模型已导出,我们希望将其与tensorflow js一起在本地使用。从自定义视觉导出的文件是* .pb文件和labels.txt文件。

我使用了tensorflowjs_converter python脚本,这是我用来在json模型中转换冻结模型* .pb的命令:

tensorflowjs_converter --input_format=tf_frozen_model --output_node_names='model_outputs' --output_json OUTPUT_JSON C:\python\tf_models\hairlength\model.pb C:\python\tf_models\exports\
Run Code Online (Sandbox Code Playgroud)

然后,将这个model.json和碎片粘贴到我的有角客户端的资产文件夹中。然后,我尝试加载模型,并给他一张图像以进行预测,但我所得到的只是索引值超出范围,因为我只需要0:长,1:中,2:短发即可。这是控制台的截图 预测清单

这是我在客户端(打字稿)中用于预测的类:

import * as tf from '@tensorflow/tfjs';

// import {HAIRLENGTH_LABELS} from './hairlength';
import { FrozenModel } from '@tensorflow/tfjs';

const MODEL = 'assets/models/hairlength/model.json';
const INPUT_NODE_NAME = 'model_outputs';
const OUTPUT_NODE_NAME = 'model_outputs';
const PREPROCESS_DIVISOR = tf.scalar(255 / 2);

export class MobileNetHairLength {

  private model: FrozenModel;
  private labels = ['long', 'mid', 'short'];

  constructor() {}

  async load(){
    this.model = await tf.loadGraphModel(MODEL);
  }

  dispose() {
    if (this.model) {
      this.model.dispose();
    } …
Run Code Online (Sandbox Code Playgroud)

tensorflow angular tensorflow.js tensorflowjs-converter microsoft-custom-vision

11
推荐指数
1
解决办法
688
查看次数

使用电子主进程流式传输大型本地媒体文件并在渲染器进程中处理它们的最佳方法

你好呀,

我会尝试更具体地回答我的问题,我正在使用 Angular 9 和最新的 Electron 版本 8.1.1。

我的目标是读取大型媒体文件,例如视频(>4go)、歌曲(flac)或位于我的文件系统上的其他大型文件,但在主进程中使用nodeJS中的流api并将结果(块,缓冲区)发送到渲染器进程。

我如何处理渲染器进程中的流缓冲区,我想使用html5中已经内置的视频和音频api,因此在主进程和渲染器进程之间使用ipc,我将发送块并希望能够显示,播放,使用 html5 api 读取这些块(例如,使用视频标签和属性 src 或音频标签和属性 src)我应该为这些元素提供什么作为 src,以便它像带有 url 的基本 Web 流一样工作?

这是我的主要流程代码(其中我将 fs 与 nodejs 一起使用):

ipcMain.on('getFileStream', (event, arg) => {
  try {
    if(fs.existsSync(arg.path) && fs.lstatSync(arg.path).isFile()) {
      const s = fs.createReadStream(arg.path)
      s.on('data', (chunk: Buffer) => {
        console.log(chunk)
        event.sender.send('getFileStreamResponse', chunk)
      }).on('end', () => {
        console.log("end stream")
        event.sender.send('getFileStreamResponse', false)
        s.close()
      });
    }
  } catch(e) {
    console.log('getFileStream', e)
  }
})
Run Code Online (Sandbox Code Playgroud)

我不想等待所有块开始播放媒体,我希望能够在加载足够的数据时播放媒体。我读过有关 html5 中的 Mediasources 的内容,但想知道这是否是正确的方法,或者您是否知道读取大文件并在渲染器进程中重建块的更好方法?

非常感谢您抽出时间

javascript node.js html5-video html5-audio electron

9
推荐指数
0
解决办法
2877
查看次数

使用SIGNAL R的Angular 7和ASP.NET Core 2.2的CORS策略问题

我和我的朋友在使用API​​和angular客户端时遇到了CORS问题。我们正在尝试建立链接,我们正在使用signalR并且客户端(Angular 7)进行了注册,以接收来自服务器(ASP .NET core 2.2)的消息。

在浏览器控制台中,我收到此消息:

已从CORS策略阻止从原点' http:// localhost:4200 ' 在' https:// ourEndpoint / CoordinatorHub / negotiate ' 访问XMLHttpRequest :对预检请求的响应未通过访问控制检查:'当请求的凭据模式为“ include”时,响应中的“ Access-Control-Allow-Origin”标头不得为通配符“ *”。XMLHttpRequest发起的请求的凭据模式由withCredentials属性控制。

服务器端

我们的startup.cs看起来像这样,我们已经关注了microsoft docs

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors();
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
    services.AddDbContext<OneRoomContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("OneRoomContext")));
    services.AddSignalR();
    // Register the Swagger services
    services.AddSwaggerDocument();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseDeveloperExceptionPage();
    app.UseCors(builder =>
        builder.AllowAnyOrigin()
               .AllowAnyMethod()
               .AllowAnyHeader()
               .AllowCredentials());
    //if (env.IsDevelopment())
    //{
    //    app.UseDeveloperExceptionPage(); …
Run Code Online (Sandbox Code Playgroud)

cors signalr asp.net-core angular

5
推荐指数
2
解决办法
2868
查看次数