FEAT: Inférence YOLO/ONNX dans l'agent (FrameAnalyzerService réel) #2
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#2
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🎯 Contexte
FrameAnalyzerService.RunInferenceest un stub qui retourne[]. Le packageMicrosoft.ML.OnnxRuntimen'est pas référencé. Aucune détection d'objet n'est produite — toute la chaîne IA de la plateforme est un squelette.📚 Référence spec (MASTER_SPECIFICATION.md v2.0)
Phase 16 — IA Pipeline
intraOpNumThreads=2)CameraDetectionProfile.YoloModel= "yolov8n" (défaut),MinConfidence= 0.4DetectionResult🔍 État actuel (vérifié dans le code)
FrameAnalyzerService: queue bornée Channel (16,DropWrite), mode passthrough simodels/yolov8m.onnxabsent (MODEL_PATH), COCO 80 classes embarquées,WaitAsync(ct).RunInference→return [](placeholder). Le service n'est pas enregistré dans le DI.🧩 À faire
Microsoft.ML.OnnxRuntimeau projet agentCameraDetectionProfile(person/vehicle/animal/package)MinConfidenceDockerfile.agent)🧪 Critères d'acceptation
[]) avec un modèle présentintraOpNumThreads=2, queueDropWriteconservée📁 Fichiers concernés
src/Heimdall.Agent/Services/FrameAnalyzerService.cs, src/Heimdall.Agent/Heimdall.Agent.csproj, docker/Dockerfile.agent, tests/Heimdall.Agent.Tests/
📝 Notes (mise à jour 12/08/2026 — mutualisation GPU)
Microsoft.ML.OnnxRuntime.Gpu(CUDA pour NVIDIA) ; alternatives DirectML (AMD/Windows) et OpenVINO (Intel/iGPU) via Execution Providers — le backend choisi dépend de la machine (cf. ticket #77 docker GPU).FrameAnalyzerService. L'implémentation doit rester derrière une abstraction (IInferenceEngine) réutilisable en local ET en mode worker.Mise à jour (08/2026) : le service est désormais enregistré dans le DI et branché sur le pipeline de capture (Fixes #1). Le cœur du ticket reste valide : RunInference est toujours un stub retournant [], ONNX Runtime absent, et les frames passent réellement par AnalyzeFrameAsync sans produire de détection.