Auto.js pytorch插件使用案列

这篇博客介绍了如何使用PyTorch模型在JavaScript中检测图像中人物是否穿着丝袜。通过加载和应用预训练的模型,对图片进行预处理,然后将结果转换为布尔值来判断。代码示例展示了加载、使用和保存模型的过程,以及如何对移动端模型进行优化。在实际运行时,如果模型文件存在问题,可能会导致加载失败。
摘要由CSDN通过智能技术生成

第一次用,记录下
判断快手截图女生是否穿丝袜。

在这里插入图片描述

# 使用这句代码生成一下移动端模型即可
model = torch.jit.trace(model, example_input, strice=False)

# 官网文档说这句可选,我这一执行这句生成的模型就load出错 
# model = mobile_optimizer.optimize_for_mobile(mobile)
model.save("siwa.plt")
function log(str) { console.log(str); }


let SiwaAi = {
    pytorch: undefined,
    modelPath: "/sdcard/siwa1.pt",
    module_: undefined,
    init: function () {
        log("正在加载模型:" +  this.modelPath);
        pytorch = $plugins.load("com.hraps.pytorch");
        this.module_ = pytorch.load(this.modelPath, 0);
        log("初始化并加载模型成功,模型路径:" + this.module_);
        return this;
    },
    transformImage: function (img) {
        let iw = 1080;
        let ih = 1920;
        let trimTop = 300;
        let trimBottom = 150;
        let resize_w = 512;
        let resize_h = 696;
        let clip = images.clip(img, 0, trimTop, iw, ih - trimTop - trimBottom);
        let resize = images.resize(clip, [resize_w, resize_h]);
        // images.save(resize, "/sdcard/test.png");
        return resize;
    },
    detect: function (path) {
        let inputImage = this.transformImage(images.read(path));
        log(inputImage);
        let array = pytorch.forward(this.module_, 
            pytorch.bitmapToTensor(inputImage.getBitmap())).getDataAsFloatArray();
        return array[0] - array[1]
    }
}

let ai = SiwaAi.init();


log(ai.detect("/sdcard/1.jpg"));
log(ai.detect("/sdcard/0.jpg"))

// 大于0就是有丝袜,数字越大或者越小,准确率越高
if (ai.detect("/sdcard/0.jpg") > 0) {
    log("有丝袜");
} else {
    log("无丝袜");
}

如果模型文件有问题,会报。
04-23 18:00:29.321 Script-59 Main [[remote]scan.js]/E: Wrapped java.lang.RuntimeException: Unsupported value kind: Object
at file:/data/user/0/org.autojs.autojspro/cache/plugin-scripts/com.hraps.pytorch/index.js:38:0
at [remote]scan.js:60:0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值