Last updated: Styczeń 2026
Alternatywa dla Accord.NET: Przewodnik migracji do VisioForge .Net SDK
Zamień zarchiwizowany Accord.NET na nowoczesne alternatywy .NET 6-10
Programiści C# migrujący z Accord.NET (Accord.Video, Accord.Vision, Accord.MachineLearning) na nowoczesne alternatywy .NET 6-10
Dlaczego warto zastąpić Accord.NET?
Accord.NET włączył kod źródłowy AForge.NET w 2015 roku i rozszerzył go o uczenie maszynowe, statystykę i dodatkowe algorytmy wizji komputerowej. Projekt jest teraz zarchiwizowany na GitHub bez aktywnego utrzymania. Jeśli szukasz zamiennika lub alternatywy dla Accord.NET na .NET 6-10, ten przewodnik obejmuje każdą ścieżkę migracji.
| Ryzyko | Wpływ |
|---|---|
| Projekt zarchiwizowany | Brak poprawek błędów, łatek bezpieczeństwa ani aktualizacji |
| Legacy .NET | Tylko .NET Framework — brak wsparcia dla .NET 6, 8, 9 lub 10 |
| Przestarzałe ML | Powstało przed ML.NET, TensorFlow.NET, ONNX Runtime |
| Kod wideo AForge | Te same porzucone komponenty wewnętrzne AForge.Video do przechwytywania wideo |
| Tylko Windows | Wideo oparte na DirectShow, brak wsparcia wieloplatformowego |
| Bezpieczeństwo | Niezałatane luki w przetwarzaniu obrazów/wideo |
Strategia migracji
Accord.NET obejmował trzy domeny. Każda migruje do innego nowoczesnego stosu:
| Domena Accord.NET | Nowoczesny zamiennik |
|---|---|
| Przechwytywanie wideo (Accord.Video) | VisioForge Video Capture SDK .Net |
| Wizja komputerowa (Accord.Vision, Accord.Imaging) | VisioForge .Net SDK (wbudowane detektory OpenCV 4.11 / DLib) lub samodzielny OpenCvSharp |
| Uczenie maszynowe (Accord.MachineLearning, Accord.Neuro) | ML.NET lub ONNX Runtime |
Migracja przechwytywania wideo: Accord.Video → VisioForge
Accord.Video to zasadniczo AForge.Video z drobnymi dodatkami. Jeśli używasz `VideoCaptureDevice`, `MJPEGStream` lub `ScreenCaptureStream` z Accord.NET, zamień je na VisioForge Video Capture SDK do nowoczesnego przechwytywania z kamery internetowej w C#, streamingu RTSP i nagrywania ekranu na .NET 6-10.
Mapowanie klas
| Klasa Accord.Video | Zamiennik VisioForge |
|---|---|
| `VideoCaptureDevice` | `VideoCaptureCoreX` + `VideoCaptureDeviceSourceSettings` |
| `MJPEGStream` | `VideoCaptureCoreX` + `RTSPSourceSettings` |
| `ScreenCaptureStream` | `VideoCaptureCoreX` + `ScreenCaptureSourceSettings` |
| `FileVideoSource` | `MediaPlayerCoreX` lub `VideoEditCoreX` |
| `NewFrameEventArgs` | Zdarzenie `OnVideoFrameBuffer` |
Przykład przechwytywania wideo w C#
Accord.NET — przechwytywanie z kamery (przed)
C#var videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
var videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
videoSource.NewFrame += (s, e) =>
{
pictureBox.Image = (Bitmap)e.Frame.Clone();
};
videoSource.Start();VisioForge — przechwytywanie z kamery (po)
C#var capture = new VideoCaptureCoreX(videoView);
var devices = await DeviceEnumerator.Shared.VideoSourcesAsync();
capture.Video_Source = new VideoCaptureDeviceSourceSettings(devices[0]);
capture.Outputs_Add(new MP4Output("recording.mp4"), true);
await capture.StartAsync();Migracja wizji komputerowej: Accord.Vision → VisioForge / OpenCvSharp
VisioForge .Net SDK zawiera wbudowane bloki wizji komputerowej oparte na OpenCV 4.11 i DLib. Integrują się bezpośrednio z potokami multimedialnymi VisioForge — bez ręcznej konwersji klatek ani zewnętrznych bibliotek. Do samodzielnego przetwarzania obrazów poza potokiem wideo można bezpośrednio używać OpenCvSharp.
Mapowanie klas
| Funkcja Accord.Vision | Wbudowane w VisioForge | Samodzielny OpenCvSharp |
|---|---|---|
| `HaarObjectDetector` (wykrywanie twarzy) | `CVFaceDetectBlock` — Kaskada Haar z wykrywaniem oczu/nosa/ust, rozmycie/pikselizacja twarzy | `CascadeClassifier` |
| `HaarObjectDetector` (wykrywanie twarzy, DNN) | `CVFaceDetectBlock` — Model Caffe SSD, filtrowanie pewności, akceleracja GPU | Moduł DNN |
| `HaarObjectDetector` (wykrywanie twarzy, DLib) | `CVFaceDetectBlock` (CVD) — Detektor twarzy frontalnej DLib HOG+SVM | — |
| `MotionDetector` | `CVMotionCellsBlock` — Odejmowanie tła MOG2 ze śledzeniem obiektów | `BackgroundSubtractorMOG2` |
| `BlobCounter` | `CVMotionCellsBlock` — Śledzenie blobów, wykrywanie konturów, zliczanie pojazdów | `Cv2.FindContours()` + `Cv2.ConnectedComponents()` |
| `HistogramsOfOrientedGradients` (HOG) | `CVFaceDetectBlock` — Wykrywanie osób HOG+SVM | `HOGDescriptor` |
| `CannyEdgeDetector` | `CameraCoveredDetector` — Wykrywanie zasłonięcia obiektywu oparte na Canny | `Cv2.Canny()` |
| `SpeededUpRobustFeatures` (SURF) | — | `SIFT.Create()` (SURF opatentowany, użyj SIFT lub ORB) |
| `HoughLineTransformation` | — | `Cv2.HoughLinesP()` |
| Dopasowanie szablonów | — | `Cv2.MatchTemplate()` |
Wbudowane funkcje prywatności
Detektory VisioForge zawierają wbudowane przetwarzanie prywatności — bez dodatkowego kodu:
- ✓Rozmycie twarzy — Rozmycie gaussowskie stosowane do wykrytych obszarów twarzy
- ✓Pikselizacja twarzy — Blokowa pikselizacja obszarów twarzy
- ✓Pamięć podręczna regionów — Płynne wyniki między klatkami (konfigurowalny rozmiar pamięci podręcznej)
Przykład wykrywania twarzy w C#
Accord.NET — wykrywanie twarzy (przed)
C#var detector = new HaarObjectDetector(
new HaarCascade(HaarCascade.FaceHaarCascadePath));
detector.MinSize = new Size(30, 30);
Rectangle[] faces = detector.ProcessFrame(bitmap);VisioForge — wykrywanie twarzy kaskadą Haar (po)
C#var settings = new CVFaceDetectSettings
{
DetectFrontalFace = true,
DetectEyes = true,
DetectNose = true,
DetectMouth = true,
MinFaceSize = new Size(30, 30),
ScaleFactor = 1.1,
DrawEnabled = true
};
var detector = new CVFaceDetectBlock(settings);
// Add to a MediaBlocks pipeline or use standaloneVisioForge — Detektor twarzy DNN (wyższa dokładność, wsparcie GPU)
C#var settings = new CVFaceDetectSettings
{
Confidence = 0.25,
DrawEnabled = true,
BlurFaces = true // built-in privacy blur
};
var detector = new CVFaceDetectBlock(settings);VisioForge — Detektor twarzy DLib
C#var settings = new CVFaceDetectSettings
{
DrawEnabled = true,
MinFaceSize = new Size(30, 30)
};
var detector = new CVFaceDetectBlock(settings);Samodzielny OpenCvSharp (alternatywa)
C#using var cascade = new CascadeClassifier("haarcascade_frontalface_default.xml");
using var mat = Cv2.ImRead("image.jpg");
using var gray = new Mat();
Cv2.CvtColor(mat, gray, ColorConversionCodes.BGR2GRAY);
var faces = cascade.DetectMultiScale(gray, 1.1, 3, 0, new Size(30, 30));Przykład wykrywania pieszych w C#
Accord.NET — wykrywanie pieszych HOG (przed)
C#var hog = new HistogramsOfOrientedGradients();
double[] features = hog.ProcessImage(bitmap);
// Manual SVM classification neededVisioForge — wykrywanie pieszych (po)
C#var settings = new CVFaceDetectSettings
{
DrawEnabled = true,
VideoScale = 1.0,
FramesToSkip = 2
};
var detector = new CVFaceDetectBlock(settings);Przykład wykrywania ruchu w C#
Accord.NET — wykrywanie ruchu (przed)
C#var detector = new MotionDetector(
new TwoFramesDifferenceDetector(),
new BlobCountingObjectsProcessing());
double motionLevel = detector.ProcessFrame(bitmap);VisioForge — wykrywanie obiektów/ruchu (po)
C#var settings = new CVMotionCellsSettings
{
DrawEnabled = true
};
var detector = new CVMotionCellsBlock(settings);
// MOG2 background subtraction with automatic object tracking and ID assignmentMigracja uczenia maszynowego: Accord.MachineLearning → ML.NET
Do wnioskowania głębokiego uczenia podczas przetwarzania wideo VisioForge zapewnia wbudowane wykrywanie twarzy DNN (`CVFaceDetectBlock`), wykrywanie pieszych (`CVFaceDetectBlock`) i śledzenie obiektów (`CVMotionCellsBlock`). Dla modeli niestandardowych zintegruj ONNX Runtime z callbackami klatek.
Mapowanie klas ML
| Funkcja Accord.ML | Zamiennik ML.NET |
|---|---|
| `SupportVectorMachine` | `SdcaMaximumEntropy` lub `LinearSvm` |
| `DecisionTree` | `FastTree` lub `FastForest` |
| `KMeans` | `KMeansTrainer` |
| `NaiveBayes` | `NaiveBayes` (ML.NET) |
| `NeuralNetwork` (Accord.Neuro) | ONNX Runtime lub TensorFlow.NET |
| `PrincipalComponentAnalysis` | `PrincipalComponentAnalysis` (ML.NET contrib) |
Lista kontrolna migracji
- Audyt użycia Accord.NET — Zidentyfikuj, które domeny (wideo, wizja, ML) są używane
- Przechwytywanie wideo → Zainstaluj pakiety NuGet VisioForge Video Capture SDK
- Wizja komputerowa → Użyj wbudowanych detektorów VisioForge (twarz, pieszy, obiekt, zliczanie pojazdów) lub zainstaluj OpenCvSharp4 do samodzielnego użytku
- Uczenie maszynowe → Zainstaluj pakiety NuGet ML.NET lub ONNX Runtime
- Zamień klasy źródeł wideo — Zobacz tabelę mapowania powyżej
- Zamień algorytmy wizji — Użyj VisioForge MediaBlocks lub przenieś na odpowiedniki OpenCvSharp
- Zamień modele ML — Przetrenuj z ML.NET lub wyeksportuj do ONNX
- Usuń pakiety NuGet Accord — Wyczyść zależności
- Celuj w nowoczesny .NET — .NET 6-10
- Testuj wieloplatformowo — VisioForge i OpenCvSharp wspierają Windows, macOS i Linux
Co zyskujesz po migracji
| Aspekt | Accord.NET | Po migracji |
|---|---|---|
| Status | Zarchiwizowany | Aktywny rozwój (wszystkie zamienniki) |
| Framework | .NET Framework | .NET 6-10 |
| Przechwytywanie wideo | Podstawowe komponenty AForge | Profesjonalne SDK z efektami, streamingiem, nagrywaniem |
| Wizja komputerowa | Przestarzałe algorytmy | Wbudowane detektory VisioForge + pełne OpenCV 4.11 (2500+ algorytmów) |
| Uczenie maszynowe | Podstawowe algorytmy | ML.NET + ONNX (poziom produkcyjny) |
| Wykrywanie twarzy | Tylko podstawowy Haar | Haar + DNN (Caffe SSD) + DLib HOG, z rozmyciem/pikselizacją |
| Wykrywanie obiektów | Podstawowy licznik blobów | Odejmowanie tła MOG2 + śledzenie z ID |
| Wykrywanie pieszych | Ręczne HOG+SVM | Wbudowany jednoliniowy detektor pieszych |
| Deep learning | Brak | ONNX Runtime, TensorFlow.NET |
| Platformy | Tylko Windows | Windows, macOS, Linux, iOS, Android |
| Efekty audio | Brak | 40+ (EQ, reverb, chorus, 3D) |
| Akceleracja GPU | Brak | CUDA (OpenCvSharp), efekty GPU (VisioForge) |
