第一次用,记录下
判断快手截图女生是否穿丝袜。
# 使用这句代码生成一下移动端模型即可
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