缺陷检测产线
产线每件工件拍一张,任一条目分数到 0.5 就判 NG,气动剔除。
- C
- C++
- C#
- Python
- Java
- Rust
darra_model* m = NULL; darra_image_desc d = {.size = sizeof(d), .format = DARRA_IMAGE_AUTO};
darra_model_create("defect.darmodel", NULL, &m); darra_model_open(m, NULL);
while (grab_frame(&buf, &len)) { char* json = NULL;
if (darra_model_infer_buffer(m, buf, len, &d, &json) == DARRA_OK) { if (has_ng(json, 0.5)) reject(); else pass(); }
darra_string_free(json);
}
darra_model_close(m);
Darra::AI::Model m("defect.darmodel");
if (!m.Open().is_success) return 1;
while (grab_frame(frame)) {
auto r = m.infer_image(frame, Darra::AI::ImageDesc::Auto());
if (r.is_success) { if (has_ng(r.content, 0.5f)) reject(); else pass(); }
}
using var m = new Darra.AI.Runtime.Model("defect.darmodel");
if (!m.Open().IsSuccess) return;
while (TryGrab(out byte[] frame)) {
var r = m.InferImage(frame, Darra.AI.Runtime.ImageDesc.Auto());
if (r.IsSuccess) { bool ng = false; foreach (var it in r.Content.Items) ng |= it.Score >= 0.5f; if (ng) Reject(); else Pass(); }
}
from darra_ai import Model
with Model("defect.darmodel") as m:
if not m.open().ok: raise SystemExit("打开失败")
for frame in camera_frames():
r = m.infer_image(frame)
if r.ok and any((it.get("score") or 0) >= 0.5 for it in r.content["results"]): reject()
else: accept()
import xyz.darra.ai.*;
Model m = new Model("defect.darmodel");
if (!m.open().isSuccess()) return;
for (byte[] frame : cameraFrames()) {
var r = m.inferImage(frame, ImageDesc.auto());
if (r.isSuccess() && r.getContent().items().stream().anyMatch(it -> it.score() != null && it.score() >= 0.5f)) reject(); else accept();
}
m.close();
use darra_ai::{ImageDesc, Model};
fn main() -> Result<(), darra_ai::AiError> {
let mut m = Model::new("defect.darmodel")?; if !m.open(None)? { return Ok(()); }
for frame in camera_frames() {
if let Ok(r) = m.infer_image_result(&frame, &ImageDesc::auto(), None) { if r.results.iter().any(|i| i.score.unwrap_or(0.0) >= 0.5) { reject(); } else { accept(); } }
}
m.close(); Ok(())
}
任一 score 到 0.5 即判 NG;box 给出剔除位置,label 记缺陷类型。